| Age | Commit message (Collapse) | Author |
|
Downloads original dist archives, hashes files with SHA-1, and compares
against installed copies to detect modified, added, and removed files.
Supports verbose file listing and exits with code 1 when changes found.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Add binary execution from vendor/bin/ with --list enumeration,
root package bin entries marked as (local), configurable bin-dir
resolution with {$vendor-dir} placeholder support, .bat filtering,
and PATH prepending. Add bin field to RawPackageData.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
versions
Adds the version_bumper module for constraint manipulation (caret, tilde,
wildcard, GTE, OR constraints, stability flags, dev versions) and wires
it into the bump command with --dev-only, --no-dev-only, --dry-run flags,
package filtering, lock file freshness checks, and content-hash updates.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Resolves URLs from composer.json, composer.lock, or Packagist API with
priority: support.source > source.url > homepage. Supports --homepage
flag, --show for printing URLs, and cross-platform browser opening.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
output modes
Replaces the todo\!() stub with full implementation that collects
suggested packages from lock file, installed packages, and root
composer.json. Supports --no-dev, --all, --list, --by-package,
--by-suggestion flags and package name filtering. Filters out
already-installed and platform packages. Includes 11 tests covering
collection, filtering, and edge cases.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Display funding links from installed packages grouped by vendor,
reading from lock file (preferred) or installed.json. Includes
GitHub URL rewriting to sponsor links.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Support listing dependency licenses from installed packages or lock file
with --no-dev filtering, format validation, and sorted output. Includes
unit tests for license extraction/counting and integration tests using
temp dirs for both installed and locked package sources.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Implement a cache module with CacheConfig and Cache structs supporting
read/write (string and binary), atomic writes via temp+rename, TTL-based
expiration, and size-limited garbage collection. Wire the repo cache into
packagist.rs and resolver.rs for API response caching, and the files
cache into downloader.rs for dist archive caching. Implement the
clear-cache command with full clear and --gc modes. All existing call
sites pass None for backward compatibility.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
strict-psr
Add PHP file scanner (php_scanner.rs) with class/interface/trait/enum
detection, comment/string/heredoc stripping, and PSR-4/PSR-0 validation.
Extend autoload generation with: classmap directory scanning, --optimize
mode (PSR-4/PSR-0 to classmap), --classmap-authoritative, --apcu caching
with optional prefix, platform_check.php generation, and --strict-psr
violation reporting. Wire new options through dump-autoload, install,
require, update, and remove commands.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
updates
Implement Phase 5.5 of the require/remove commands:
- Interactive package search when no packages specified on CLI (require)
- --with-dependencies/--with-all-dependencies partial update for require
- --with-all-dependencies/--no-update-with-dependencies for remove
- --minimal-changes support for remove
- Extract search API types and logic from search.rs into packagist.rs
for reuse by both search and require commands
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Add full config write support: setting/unsetting config keys with type
validation, package properties, repository management, extra/suggest
fields, dotted subkeys, --editor mode, --json/--merge/--append flags,
and enhanced read mode for repos/extra/suggest/package properties.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
and interactive mode
Implement Phase 5.4 update command extensions:
- Wildcard package matching (e.g. symfony/*) against the lock file
- --with-dependencies expands update set to include direct deps
- --with-all-dependencies expands to full transitive dependency tree
- --minimal-changes pins all packages to locked versions unless constraints changed
- --interactive prompts user to select packages for update (y/n per package)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
and --format=json
Replace stub messages with full implementations for all show command
extensions: dependency tree rendering from lock file, latest version
fetching from Packagist, outdated filtering with update classification,
available versions listing, platform package detection via PHP CLI,
and JSON output format across all modes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Replace positional boolean parameters in install_from_lock with a
structured InstallConfig. Add platform requirement warnings, download
progress display, classmap-authoritative autoloader support, and
prefer-source detection across install/update/require/remove commands.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Inline aliases ("1.0.x-dev as 1.0.0") now use the right side for
constraint matching via parse_for_constraint(), while parse() keeps
the left side for version identity.
Branch aliases from extra.branch-alias metadata create synthetic
dev-stability entries in the resolver, allowing constraints like
^2.0 to match dev-master aliased to 2.x-dev. Real releases take
precedence via entry().or_insert().
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|