-
Notifications
You must be signed in to change notification settings - Fork 236
[FEATURE] Update revision-pins for external dependencies #1209
Copy link
Copy link
Closed
Labels
area/lockfileLockfile schema, per-file provenance, integrity hashes, drift detection.Lockfile schema, per-file provenance, integrity hashes, drift detection.priority/highShips in current or next milestoneShips in current or next milestonestatus/acceptedDirection approved, safe to start work.Direction approved, safe to start work.status/shepherdingActively being driven by an APM shepherd runActively being driven by an APM shepherd runstatus/triagedInitial agentic triage complete; pending maintainer ratification (silence = approval).Initial agentic triage complete; pending maintainer ratification (silence = approval).theme/securitySecure by default. Content scanning, lockfile integrity, MCP trust boundaries.Secure by default. Content scanning, lockfile integrity, MCP trust boundaries.type/featureNew capability, new flag, new primitive.New capability, new flag, new primitive.
Milestone
Metadata
Metadata
Assignees
Labels
area/lockfileLockfile schema, per-file provenance, integrity hashes, drift detection.Lockfile schema, per-file provenance, integrity hashes, drift detection.priority/highShips in current or next milestoneShips in current or next milestonestatus/acceptedDirection approved, safe to start work.Direction approved, safe to start work.status/shepherdingActively being driven by an APM shepherd runActively being driven by an APM shepherd runstatus/triagedInitial agentic triage complete; pending maintainer ratification (silence = approval).Initial agentic triage complete; pending maintainer ratification (silence = approval).theme/securitySecure by default. Content scanning, lockfile integrity, MCP trust boundaries.Secure by default. Content scanning, lockfile integrity, MCP trust boundaries.type/featureNew capability, new flag, new primitive.New capability, new flag, new primitive.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Projects
StatusShow more project fields
Done
Is your feature request related to a problem? Please describe.
Currently, one can pin to a
#revisioninapm.yml.dependencies.apm[].If one does this,
apm outdated1 no longer offers updates for those revision-pinned dependencies. This causes toil when updating, raising the risk of more seldom updates and consequently raising the risk of there being a wider gap if an update must be integrated to patch a vulnerability, say - just like other dependency management.Elaborating on how come revision-pinning is preferable - https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies - but, broadly; pins do not drift (leading to surprise build failures if upstream releases), and revision-pins are not mutable like tags are (same, plus supply-chain risk were upstream's secrets compromised).
Describe the solution you'd like
I'd like
apm updateto have a mode whereby it will interrogate the upstreams and offer the revision for the latest release, where a package has been revision-pinned.It would be extra nice to mirror the dependabot feature that its
github-actionsecosystem has, where it will update the revision-pin and then update a post-fix line-comment with the release tag that revision represents.Describe alternatives you've considered
None
Additional context
Footnotes
apm outdatedwith revision-pinned dependencies: note - modern-python is a transitive dependency and as such probably should be displayed separately? ↩