Skip to content

chore(release): adopt rivet 0.22 release-handling — migrate v0.1.0 scope tag→field + burn-down#123

Merged
avrabe merged 1 commit into
mainfrom
chore/adopt-rivet-0.22-release-handling
Jun 27, 2026
Merged

chore(release): adopt rivet 0.22 release-handling — migrate v0.1.0 scope tag→field + burn-down#123
avrabe merged 1 commit into
mainfrom
chore/adopt-rivet-0.22-release-handling

Conversation

@avrabe

@avrabe avrabe commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

What

rivet 0.21/0.22 shipped release-handling (#516) — first-class release: field + rivet release status <ver> readiness burn-down (CI-gateable, exit non-zero when not cuttable) + rivet list --release + rivet release move. This is the feature that resolved gale's earlier request (pulseengine/rivet#512), where we used a release-vX.Y.Z tag as the workaround. This PR adopts it on gale's existing release plan (v0.1.0 = semaphore) and tests it end-to-end.

  • Migrate the v0.1.0 scope from the release-v0.1.0 tag to the native release: v0.1.0 field on the 11 semaphore artifacts (SYSREQ-SEM-001 + SWREQ-SEM-P01..P10). Tested:
    • rivet release status v0.1.0 → 11 artifacts, all approved, NOT cuttable, exit 1 ✓ (matches the documented plan — sem V not yet closed)
    • rivet list --release v0.1.0 → 11 artifacts ✓
    • rivet release move … v0.1.1 → logged scope change, round-trips, validate stays PASS ✓
  • Bump compliance.yml: rivet-version v0.15.0 → v0.22.0, action v0.19.0 → v0.22.0. rivet validate = PASS on gale's 967 artifacts under 0.22 (45 pre-existing coverage warnings, 0 errors).
  • Add the burn-down step to compliance.yml (rivet release status <tag> → job summary at release time).
  • Update docs/release-plan.md to the native field + rivet release status (off the tag query).

Known limitation — filed pulseengine/rivet#612

release status judges cuttability by status ∈ {verified, accepted} only, but gale (ASPICE V-model) marks artifacts verified via verified-by/verified-on links (what rivet validate coverage checks), with terminal req status approved. So the burn-down verdict always reads "not cuttable" for gale; the counts are accurate. The burn-down step is therefore advisory, and the real V-gate stays rivet validate — flipping to a hard gate once #612 lands.

Oracle

  • rivet 0.22 validate = PASS (0 errors)
  • rivet release status v0.1.0 = 11 sem artifacts, exit 1 (gate behavior confirmed)
  • compliance.yml valid YAML; gust_driver_model.yaml unchanged vs main

🤖 Generated with Claude Code

@codecov

codecov Bot commented Jun 27, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

…ope tag→field + burn-down

rivet 0.21/0.22 shipped release-handling (#516) — the first-class `release:` field
+ `rivet release status <ver>` readiness burn-down (exits non-zero when not
cuttable, CI-gateable) + `rivet list --release` + `rivet release move`. This is the
feature that resolved gale's earlier request (pulseengine/rivet#512), where we'd
used a `release-vX.Y.Z` TAG as the workaround.

Adopt it on gale's existing release plan (v0.1.0 = semaphore, depth-first):
- **Migrate the v0.1.0 scope** from the `release-v0.1.0` tag to the native
  `release: v0.1.0` field on the 11 semaphore artifacts (SYSREQ-SEM-001 +
  SWREQ-SEM-P01..P10). `rivet release status v0.1.0` now renders the burn-down:
  11 artifacts, all `approved`, NOT cuttable (exit 1) — matching the documented
  plan (the sem V isn't closed yet: verifications authored but not yet linked).
- **Bump compliance.yml**: rivet-version v0.15.0 → v0.22.0 and the compliance
  action v0.19.0 → v0.22.0. `rivet validate` = PASS on gale's 967 artifacts under
  0.22 (45 pre-existing coverage warnings, 0 errors).
- **Add the burn-down step** to compliance.yml: `rivet release status <tag>` into
  the job summary at release time (advisory — see below).
- **Update docs/release-plan.md** to the native `release:` field + `rivet release
  status` (off the tag-based query).

KNOWN LIMITATION (filed pulseengine/rivet#612): `release status` judges cuttability
by `status ∈ {verified,accepted}` only, but gale (ASPICE V-model) marks artifacts
verified via `verified-by`/`verified-on` LINKS (what `rivet validate` coverage
checks), with terminal req status `approved`. So the burn-down VERDICT always reads
"not cuttable" for gale; the COUNTS are accurate. Hence the burn-down is advisory
(non-blocking) and the real V-gate stays `rivet validate` — until #612 lands, when
it flips to a hard gate.

Oracle: rivet 0.22 `validate` = PASS; `release status v0.1.0` = 11 sem artifacts,
exit 1 (gate works); compliance.yml valid YAML; gust_driver_model.yaml unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@avrabe avrabe force-pushed the chore/adopt-rivet-0.22-release-handling branch from 3c2e5a6 to f887758 Compare June 27, 2026 09:38
@avrabe avrabe changed the title chore(release): adopt rivet 0.22 release-handling — scope + burn-down gate chore(release): adopt rivet 0.22 release-handling — migrate v0.1.0 scope tag→field + burn-down Jun 27, 2026
@avrabe avrabe merged commit 9f354d5 into main Jun 27, 2026
60 checks passed
@avrabe avrabe deleted the chore/adopt-rivet-0.22-release-handling branch June 27, 2026 10:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant