aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2026-02-21feat(search): implement search command with Packagist API integrationnsfisis
Adds full implementation of the `search` command, querying the Packagist search API with pagination, --only-name/--only-vendor filtering, --type filtering, and text/json output formats. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21feat(remove): implement remove command with full resolve/lock/install pipelinensfisis
Replace the todo\!() stub with a complete implementation that handles package removal from require/require-dev with auto-detection, supports --dev, --dry-run, --no-update, --no-install flags, and runs the full dependency resolution pipeline after modification. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21feat(require): complete require command with resolve/lock/install pipelinensfisis
Replace the stub "not yet implemented" message with the full pipeline: resolve dependencies, generate lock file, report changes, write lock, and install packages. Handles --no-update, --no-install, and --dry-run flags. Reuses compute_update_changes from update.rs for change reporting. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21feat(update): implement update command with resolver-based dependency updatesnsfisis
Add full update command supporting --lock (content-hash refresh only), --dry-run, --no-install, --no-dev, --prefer-stable, --prefer-lowest, and partial updates (named packages). Extract install_from_lock() from install.rs for shared use. Add Stability::parse() to package.rs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21feat(lockfile): generate lock file from resolver resultsnsfisis
Add lock file generation pipeline that converts resolved packages into a complete composer.lock structure. Extends PackagistVersion with 15 metadata fields (authors, license, autoload, etc.), implements BFS-based dev package classification, platform requirements extraction, and content-hash computation. Cleans up unused skip_serializing_if attributes on the Deserialize-only PackagistVersion struct. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21feat(resolver): integrate pubgrub dependency resolvernsfisis
Add dependency resolution module using pubgrub v0.3.0 to convert Composer-style constraints into range-based version solving. Includes ComposerVersion type with stability ordering, MozartProvider implementing DependencyProvider, platform package handling, stability filtering, and conflict support via complement ranges. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21feat(validate): implement validate command with composer.json checksnsfisis
Check JSON validity, name format, license presence, version field, deprecated types, require/require-dev overlap, provide/replace overlap, commit references, empty PSR prefixes, minimum-stability, and lock file freshness. Supports --strict, --no-check-publish, --no-check-lock, --no-check-version flags with Composer-compatible exit codes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21feat(show): implement show command with installed, locked, and self modesnsfisis
Replaces the todo!() stub with full implementation supporting: - List mode with aligned columns (name, version, description) - Detail mode for single package inspection - --locked mode reading from composer.lock - --self mode reading from composer.json - --no-dev, --direct, --name-only, --path filtering - Wildcard pattern matching for package name filters - Graceful stubs for unimplemented options (--tree, --available, etc.) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21feat(autoload): generate Composer-compatible PHP autoloader filesnsfisis
Implement autoloader generation that produces all standard Composer autoloader files (autoload.php, autoload_real.php, autoload_static.php, autoload_psr4.php, autoload_namespaces.php, autoload_classmap.php, autoload_files.php, installed.php) plus embeds ClassLoader.php, InstalledVersions.php, and LICENSE from the Composer submodule. Wire into the install command (gated by --no-autoloader) and replace the todo!() in dump-autoload with a working implementation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21feat(install): implement install command with lock-based package installationnsfisis
Replaces the todo!() stub with a full implementation that reads composer.lock, computes install/update/skip/remove operations by comparing against vendor/composer/installed.json, downloads packages via the downloader module, and writes the updated installed registry. Handles edge cases: missing lock file, stale lock file, no dist info, empty packages, --dry-run, --no-dev, deprecated flags, and vendor directory cleanup after removals. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21feat(core): add version constraint, lockfile, installed registry, and ↵nsfisis
downloader modules Phase 1 infrastructure for the install command: - constraint: Composer-compatible version parsing and constraint matching (caret, tilde, wildcard, hyphen range, OR/AND combinators) - lockfile: composer.lock read/write with content-hash computation - installed: vendor/composer/installed.json registry (Composer 2.x format) - downloader: dist archive download with SHA-1 verification and zip/tar.gz extraction with top-level directory stripping Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21feat(require): implement require command with Packagist version resolutionnsfisis
Add the require command that updates composer.json with new package dependencies. When no version constraint is specified, the best version is resolved from the Packagist p2 API based on minimum-stability. Includes packagist API client, version comparison/stability detection, and RawPackageData deserialization support for roundtrip editing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14implement init commandnsfisis
2026-02-14define package types, which represent composer.jsonnsfisis
2026-02-14implement about commandnsfisis
2026-02-11change commands::*::execute() signaturesnsfisis
2026-02-11add more dependenciesnsfisis
2026-02-11enable workspacensfisis
2026-02-11define subcommands and optionsnsfisis
2026-02-10add some cratesnsfisis
2026-02-10cargo initnsfisis
2026-02-10add readme and licensensfisis
2026-02-10add composernsfisis
2026-02-10<empty>nsfisis