mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-10 02:25:56 +00:00
df7ad9be43
Stable promotions built whatever the dispatch branch was at that second. The resolver checked that HEAD descends from the promoted release candidate but never that its content matches, so v6.4.0 shipped 64 changed files, including product code, that v6.4.0-rc.12 had not soaked. Every v6 version was mapped to main, which now moves every few minutes under the autonomous maintainer, so each fix to a candidate brought everything landed since and stable was never an exact soaked commit. Five of six stable minor releases shipped under version-bound owner exceptions that waived the soak. From v6.5.0 the release train applies (RELEASE_PROMOTION_POLICY.md, "Release Train"): a two-week train sized to measured velocity, a release/v6.N branch per train declared in the control plane so the workflow refuses a dispatch from anywhere else, a stable promotion that may differ from its candidate only in release metadata unless hotfix_exception names active customer harm, and a seven day soak for minor releases. The 6.4.x line stays on main so the v6.4.3-rc.1 candidate already prepared there is unaffected. The gap is registered as coverage gap release-train-exact-candidate-promotion.