simple_pkg

Package Manager for Eiffel

v1.0.0 MIT

Overview

simple_pkg is a modern, GitHub-based package manager for the Simple Eiffel ecosystem. It dynamically discovers packages from the simple-eiffel organization, handles dependency resolution from ECF files, and manages environment variable setup automatically.

Part of the Simple Eiffel ecosystem.

Quick Start

# Install the package manager
simple-setup-1.0.0.exe

# Install packages
simple install json web sql

# See what's available
simple universe

# Check your environment
simple doctor

Installation

Windows Installer (Recommended)

Download and run simple-setup-1.0.0.exe from the releases page. The installer:

Manual Installation

# Clone and build
git clone https://github.com/simple-eiffel/simple_pkg.git
cd simple_pkg
ec -config simple_pkg.ecf -target simple_pkg_exe -finalize -c_compile

# Add to PATH (PowerShell)
$env:PATH += ";D:\path\to\simple_pkg\EIFGENs\simple_pkg_exe\F_code"

Commands

Command Alias Description
install <pkg>... i Install packages with dependencies
update [<pkg>...] up Update packages (all if none specified)
uninstall <pkg> rm Remove a package
move <pkg> mv Move package to current directory
search <query> s Search for packages
universe -u Show all packages with install status
inventory -i List installed packages
info <pkg> - Show package details
tree [<pkg>] deps Show dependency tree
doctor check Diagnose environment issues
init <name> [<pkg>...] - Create new project with dependencies

Features

Dynamic Discovery

Fetches available packages from GitHub API - no static registry needed

Dependency Resolution

Parses ECF files to find $SIMPLE_* dependencies automatically

Environment Setup

Sets persistent Windows environment variables for each package

Diagnostics

Doctor command checks git, EiffelStudio, and environment health

Visualization

Tree command shows package dependency graph

Project Init

Scaffolds new projects with ECF and dependencies

Usage Examples

# Install multiple packages at once
simple install json web sql http

# See everything available vs installed
simple -u

# Check what you have installed
simple -i

# Get detailed info about a package
simple info json

# Show dependency tree
simple tree web

# Create a new project with dependencies
simple init my_api json http web

# Update all packages
simple update

# Check for issues
simple doctor