diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-07-04 03:20:13 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-07-04 16:58:29 +0900 |
| commit | f7b0eee15f17a4fa5db717cda5ddc387f884afd0 (patch) | |
| tree | 387b157c31e9c5c85127ab3a5d78821d4e556212 /crates/shirabe/src/package/archiver.rs | |
| parent | d94e3ec276cb2fd344b6243cdbe5a5c9f3c3613a (diff) | |
| download | php-shirabe-f7b0eee15f17a4fa5db717cda5ddc387f884afd0.tar.gz php-shirabe-f7b0eee15f17a4fa5db717cda5ddc387f884afd0.tar.zst php-shirabe-f7b0eee15f17a4fa5db717cda5ddc387f884afd0.zip | |
fix(installer): preserve fixedRootPackage identity for solver pool
PHP's createRepositorySet does `$this->fixedRootPackage = clone
$this->package;` once and then passes that same object both to `new
RootPackageRepository($this->fixedRootPackage)` and, later, to
createRequest($this->fixedRootPackage) — object identity matters
because the solver assigns a pool id by mutating the package object
itself.
The port instead called RootPackageInterfaceHandle::dup() a second
time when registering the RootPackageRepository, producing a second
object that never went through the pool and so never got an id.
create_request's `request.fix_package(root_package_handle)` then
referenced a package with id -1, which add_rules_for_request treats as
a real bug: "Fixed package ... was not added to solver pool." This
surfaced whenever a create-project run reached the second-stage
install (i.e. every dist-installed project with real dependencies).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/package/archiver.rs')
0 files changed, 0 insertions, 0 deletions
