-
Notifications
You must be signed in to change notification settings - Fork 361
[BUG] Marketplace uninstall aliases are lost after apm update #2997
Copy link
Copy link
Open
Labels
area/lockfileLockfile schema, per-file provenance, integrity hashes, drift detection.Lockfile schema, per-file provenance, integrity hashes, drift detection.area/marketplacemarketplace.json schema, federation, authoring suite, source parity.marketplace.json schema, federation, authoring suite, source parity.status/acceptedHuman scope approval; verify the issue's approval record and review contact before work.Human scope approval; verify the issue's approval record and review contact before work.theme/portabilityOne manifest, every target. Multi-target deploy, marketplace, packaging, install.One manifest, every target. Multi-target deploy, marketplace, packaging, install.triage/recommendedAutomated advice completed; not human scope approval.Automated advice completed; not human scope approval.type/bugSomething does not work as documented.Something does not work as documented.
Description
Activity
Metadata
Metadata
Assignees
Labels
area/lockfileLockfile schema, per-file provenance, integrity hashes, drift detection.Lockfile schema, per-file provenance, integrity hashes, drift detection.area/marketplacemarketplace.json schema, federation, authoring suite, source parity.marketplace.json schema, federation, authoring suite, source parity.status/acceptedHuman scope approval; verify the issue's approval record and review contact before work.Human scope approval; verify the issue's approval record and review contact before work.theme/portabilityOne manifest, every target. Multi-target deploy, marketplace, packaging, install.One manifest, every target. Multi-target deploy, marketplace, packaging, install.triage/recommendedAutomated advice completed; not human scope approval.Automated advice completed; not human scope approval.type/bugSomething does not work as documented.Something does not work as documented.
Type
Projects
- StatusShow more project fieldsNo status
Bug
After installing a plugin using
plugin@marketplace, runningapm updatecan lose the metadata needed to uninstall it by that original alias. This affects both project and global scope.Installation stores canonical Git coordinates in
apm.ymland records the marketplace alias in the lockfile. When update rebuilds the dependency's lock entry without rediscovering the marketplace, it dropsdiscovered_viaandmarketplace_plugin_name. The dependency updates successfully, but uninstall can no longer resolve the alias offline and may abort at the existing registry/lock ownership guard.Reproduction
plugin@marketplace.apm update --yesin the same scope.The automated project/global reproduction uses a local Git remote and does not manually edit the consumer manifest or lockfile.
Expected behavior
Updating the same dependency preserves its marketplace alias metadata while refreshing its revision and content hashes. Uninstalling by the original alias should continue to work without the marketplace being available.
Environment
Originally reproduced with APM 0.30.0 and main at
e38261c5, on macOS with Python 3.12.13 and the source-installed CLI.