-
Notifications
You must be signed in to change notification settings - Fork 232
apm pack --check-clean: rewrite error message to teach the amend+force-with-lease recipe #1381
Copy link
Copy link
Closed
Labels
area/marketplacemarketplace.json schema, federation, authoring suite, source parity.marketplace.json schema, federation, authoring suite, source parity.area/package-authoringapm pack/unpack, plugin authoring, vendoring guidance, bundle format.apm pack/unpack, plugin authoring, vendoring guidance, bundle format.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/triagedInitial agentic triage complete; pending maintainer ratification (silence = approval).Initial agentic triage complete; pending maintainer ratification (silence = approval).theme/portabilityOne manifest, every target. Multi-target deploy, marketplace, packaging, install.One manifest, every target. Multi-target deploy, marketplace, packaging, install.type/featureNew capability, new flag, new primitive.New capability, new flag, new primitive.
Metadata
Metadata
Assignees
Labels
area/marketplacemarketplace.json schema, federation, authoring suite, source parity.marketplace.json schema, federation, authoring suite, source parity.area/package-authoringapm pack/unpack, plugin authoring, vendoring guidance, bundle format.apm pack/unpack, plugin authoring, vendoring guidance, bundle format.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/triagedInitial agentic triage complete; pending maintainer ratification (silence = approval).Initial agentic triage complete; pending maintainer ratification (silence = approval).theme/portabilityOne manifest, every target. Multi-target deploy, marketplace, packaging, install.One manifest, every target. Multi-target deploy, marketplace, packaging, install.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
Problem
When
apm pack --check-cleandetects drift between the checked-inmarketplace.jsonand what regeneration would produce, the error tells producers that there's drift but not how to fix it cleanly. Producers staring at a red CI status on their release PR end up doing one of:chore: regen marketplace.json) that clutters the PR history--force-with-lease, which is unsafeThe lockfile pattern (treat marketplace.json like
package-lock.json— checked in, regenerated by pipeline, drift-gated in CI) is sound; what's missing is the teaching moment at the exact place the producer hits the wall.Proposed fix
Rewrite the
--check-cleanerror to include the canonical recovery recipe. Concretely, when drift is detected, emit:Also: emit the same lines for each
marketplace.outputsprofile (claude, codex) so multi-output drift surfaces the right path per profile.Out of scope (explicit)
pack-botmode, no GitHub-App auto-regen, no pre-commit hooks. A DevUX panel evaluated those options (provocateur / pragmatist / automation lenses). The pragmatist verdict — ship the teaching error and re-evaluate later — won on "is the complexity worth it?". The lockfile pattern is fine; we just need to teach it at the right moment._generated_byJSON key change. Worth its own ticket if/when we see a real merge-conflict pain pattern in the wild.Acceptance
apm pack --check-cleanon drift prints the recipe above (exact wording can iterate).tests/integration/asserts the error text contains bothcommit --amendandforce-with-lease.Evidence trail