You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Release process must advance the next edge line (reconcile + calendar bump) on every release, not just stable (#455)
* release: advance the `next` edge line on every tag, not just stable
release.yml's hyphenated-tag carve-out advanced neither `stable` (correctly)
nor `next`, so a prerelease cut left the edge marketplace serving a stale
plugin — the 0.24.0-pre1 cut drifted `next` 40 commits behind `main` and
hard-blocked `spacedock codex` on a binary/plugin version-compat check.
Add an `edge-advance` job (`needs: goreleaser`, a sibling so a reconcile
conflict can't unwind the published release) that reconciles `next` to the
tagged commit via `git merge -X theirs` on both tag paths, then bumps the
marketplace calendar key. On a stable tag it also stamps `next` PAST the
release to the post-release dev pre-version (X.(Y+1).0-pre1) so the edge line
never masquerades as the stable version it just shipped. The reconcile is a
fast-forward merge, never a reset or force-push.
Add release.DevPreVersion + the `spacedock-release dev-preversion` subcommand
(reusing stamp-version/bump-calendar unchanged), a temp-repo fixture proving
the reconcile closes the divergence force-free on both paths, a never-forces
workflow guard with adversarial twins, and the docs/releasing.md edge-line
section.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* release: couple edge-advance fixture + wiring to the on-disk release.yml
Close the two coupling holes the detached adversarial audit found: flipping
release.yml's reconcile steps to `-X ours` (the 0.24.0-pre1 incident) or
widening the stable step's `if:` to `always()` both stayed green.
- The divergence fixture now reads its merge `-X <strategy>` from the parsed
edge-advance reconcile step for the tag's path instead of hardcoding
`-X theirs`, so a workflow drift to `-X ours` reds the tree-match assertion
directly. Corrected the overclaiming doc-comment (it reconstructs the
sequence; it does not run release.yml's steps).
- Add TestReleaseWorkflowEdgeAdvanceWiring + assertEdgeAdvanceWiring in the same
readWorkflow harness, asserting both reconcile steps merge `-X theirs`, the
`if:` guards are complementary (exactly one fires per tag), and bump-calendar
carries no `if:`. Adversarial twins (-X ours, always(), copy-paste guard,
gated bump) each red. Consolidated on a shared edgeAdvanceJob lookup.
The never-force and DevPreVersion lenses are unchanged.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Spike Test <spike@example.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments