| Age | Commit message (Collapse) | Author |
|
dependency logic
Add the `depends` (why) and `prohibits` (why-not) commands that query
the dependency graph to answer "which packages require X?" and "which
packages prevent version Y of X from being installed?" respectively.
Introduces the shared `dependency` module with package loading from
lock file or installed.json, forward/inverted dependency graph walking,
recursive traversal with cycle detection, and table/tree output formatters.
Adds `conflict` field to LockedPackage for conflict-based prohibition
detection, updating all struct literals across install, remove, require,
and update test helpers.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Add ComposerConfig with Composer-compatible defaults, config merging
from global/local JSON files, placeholder resolution ({$vendor-dir},
{$home}, {$cache-dir}), single-key lookup, --list output, and 21 tests.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Replaces the todo\!() stub with full implementation that loads installed
or locked packages, fetches latest versions from Packagist, classifies
updates as semver-compatible (red) or semver-incompatible (yellow), and
supports all flags: --direct, --locked, --no-dev, --major-only,
--minor-only, --patch-only, --format json, --strict, and --ignore.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
|
|
|
|
|
|
|