v1.9.0 — trailer stage ceiling
A commit's Change: trailer claimed the whole change, which is right when the commit is the landing — and wrong for a commit that lands an interim artefact. That commit is permanent, a deploy range can legitimately re-include it, and it could therefore carry the change all the way to ship having delivered none of it.
Added
- Optional stage ceiling on the correlation trailer:
Change: <slug>/CHG-NN:<stage>declares the furthest stage that commit may advance its change to. A stamp beyond every ceiling declared for a change is sent as a no-op — the change is neither advanced nor moved back to the ceiling. - Ceilings are aggregated across a range. If any commit for a change carries no suffix the change is unbounded, so a design commit riding alongside the real landing never blocks a ship.
- The reported commit is sent with the stamp, so the same commit never advances the same stage twice however often a range re-includes it.
- A
supports-trailer-stage-ceilingmarker in--help, so tooling can probe for support before writing a suffix.
Changed
- Ranges are walked per commit, so each trailer keeps its own sha.
Compatibility
Backward compatible. Omitting the suffix keeps the previous meaning — the commit delivers the change in full — so existing history, branches and pipelines are unaffected. Stage ordering deliberately stays server-side; this script passes declared ceilings through rather than comparing them.
Before writing a suffix, check for support. An older copy of this script matches only the trailer prefix, so it silently truncates a suffix and treats the commit as delivering the change in full — the dangerous direction of version skew:
npx @defprod/scripts defprod-stamp --help 2>&1 \
| grep -q 'supports-trailer-stage-ceiling' \
&& echo "suffix supported" || echo "omit the suffix"Upgrade
npm install -g @defprod/scripts
# or
npx @defprod/scripts defprod-stamp --help