| Age | Commit message (Collapse) | Author |
|
|
|
Override OperationInterface::get_package for Install/Uninstall/MarkAlias*
operations so trait-object dispatch no longer hits the default todo!(), and
implement Rule::is_caused_by_lock's locked-repository lookup via
Request::get_locked_repository (LockArrayRepository::get_packages is infallible).
Change PackageInterface::get_type to return String (matching PHP getType():
string) so AliasPackage can delegate live to its aliasOf handle across the
RefCell instead of an impossible &str borrow.
Un-ignores 25 SolverTest cases; 2 alias cases stay ignored pending a real
solver alias-resolution discrepancy.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
|
Move __toString ports to std::fmt::Display: convert Link's inherent
to_string() and make OperationInterface require Display instead of a
to_string() method, with each operation implementing Display.
Also fix the operation __toString output to use show(false), matching
SolverOperation::__toString() (was show(true)).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
LicensesCommand now renders the root package version via
get_full_pretty_version, matching PHP getFullPrettyVersion, and holds
the root package handle directly instead of snapshotting fields. Also
align update/mark-alias operations on get_full_pretty_version and remove
the now-stale phase-b TODO markers in status and licenses commands.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
OperationInterface::clone_box (a todo!() trait-object clone stub) is
removed in favor of Rc<dyn OperationInterface> shared ownership. All its
methods are &self, so operations are immutable value objects that Rc can
share; pushing the same operation into multiple lists (installer's
install/uninstall splits) becomes a cheap Rc clone instead of clone_box.
Box<dyn OperationInterface> is replaced with Rc<dyn ...> across
Transaction (and its Lock/LocalRepo wrappers), Installer, PackageEvent,
InstallationManager and EventDispatcher; Box::new operation constructions
become Rc::new.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
|
Package/CompletePackage/RootPackage
Fill the trait-impl todo!() across the package accessor layer so loaded
packages are actually usable (the ArrayLoader::load path depends on it):
- Package: implement BasePackage/PackageInterface from struct fields and
existing inherent methods; Display via get_unique_name.
- CompletePackage: delegate PackageInterface to inner Package.
- RootPackage: delegate CompletePackageInterface/PackageInterface to inner
CompletePackage; RootPackageInterface link setters delegate to Package.
Correct three unfaithful trait signatures found during implementation:
- get_target_dir returns Option<String> (PHP computes a normalized value;
a borrow cannot represent it, and AliasPackage could not implement &str
across its aliasOf handle).
- RootPackageInterface link setters take IndexMap<String, Link>, matching
Package and the real ArrayLoader caller (PHP RootPackage inherits
Package::setRequires; the Link[] docblock was imprecise).
- get_full_pretty_version takes a DisplayMode enum instead of a raw i64;
the match is now exhaustive, so it returns String without an error path.
Move mirror conversion to the boundaries: PackageInterface mirror methods
use Vec<Mirror> (the typed form, matching the inherent methods), with
array<->Mirror conversion done by the producer (ComposerRepository) and
consumer (ArrayDumper).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
|
PHP packages have reference semantics, so introduce shared-ownership
handles over an AnyPackage enum (PackageInterfaceHandle and friends)
and replace Box<dyn PackageInterface> throughout.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
|
|
|
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|