Skip to content

feat(release): configurable release-status readiness — ready-when + coverage (REQ-240, #612)#641

Merged
avrabe merged 1 commit into
mainfrom
feat/req-240-coverage-cuttability
Jul 1, 2026
Merged

feat(release): configurable release-status readiness — ready-when + coverage (REQ-240, #612)#641
avrabe merged 1 commit into
mainfrom
feat/req-240-coverage-cuttability

Conversation

@avrabe

@avrabe avrabe commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

What

Completes REQ-240. rivet release status readiness is now configurable via rivet.yaml's release: block, so a V-model/ASPICE project (which verifies via links, not a status flip) can green the gate.

release:
  ready-when: [approved]   # extend the release-ready status set
  require: coverage        # OR: derive readiness from validate V-closure
  • ready-when extends the built-in verified/accepted set.
  • require: coverage counts an artifact ready when its V is closed — every validate coverage rule applicable to its type is satisfied — regardless of status. Purely additive: a verified/accepted/ready-when artifact still counts, so switching modes never makes a release less cuttable.

Note

Supersedes the closed #624 (which delivered only the ready-when half on a now-stale branch). This is both halves, fresh on main, so REQ-240 is fully implemented + verified.

Verification

Regression test release_status_ready_when_and_coverage_modes on a minimal schema exercises all four states: status-mode blocks approved; ready-when: [approved] → cuttable; require: coverage + V-closed → cuttable; require: coverage + V-open → blocks. rivet-core lib 1160 + cli_commands 149 green; clippy --all-targets clean.

Self-hosted CI pool offline (#509); verified locally.

🤖 Generated with Claude Code

…+ coverage (REQ-240, #612)

`rivet release status` treated only verified/accepted as release-ready, so a
V-model/ASPICE project — which verifies via links, not a status flip — could
never green the gate. Readiness is now configurable via rivet.yaml's `release:`
block:

- `ready-when: [<status>...]` extends the release-ready status set (e.g. a
  project whose lifecycle gates on an `approved` sign-off).
- `require: coverage` ALSO counts an artifact ready when its V is closed —
  every validate coverage rule applicable to its type is satisfied — regardless
  of the status string. Purely additive: a verified/accepted/ready-when
  artifact still counts, so switching modes never makes a release LESS cuttable.

ReleaseConfig{ready-when, require} on ProjectConfig; cmd_release_status folds
both into the readiness predicate, computing coverage V-closure only in
coverage mode. Defaults unchanged (status-only).

Confirmed end-to-end on a minimal schema: an `approved` widget whose V is
closed by a tracing part is not-cuttable by status, cuttable under
`require: coverage`, and blocks again when the trace is removed. Regression
test release_status_ready_when_and_coverage_modes covers all four states.

This completes REQ-240 (the earlier ready-when-only slice was partial).

Implements: REQ-240
Verifies: REQ-240
Refs: REQ-007
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@avrabe avrabe merged commit 49b44e5 into main Jul 1, 2026
23 checks passed
@avrabe avrabe deleted the feat/req-240-coverage-cuttability branch July 1, 2026 05:14
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

📐 Rivet artifact delta

Change Count
Added 0
Removed 0
Modified 1
Downstream impacted (depth ≤ 5) 0

Graph

graph LR
  REQ_240["REQ-240"]:::modified
  classDef added fill:#d4edda,stroke:#28a745,color:#155724
  classDef removed fill:#f8d7da,stroke:#dc3545,color:#721c24
  classDef modified fill:#fff3cd,stroke:#ffc107,color:#856404
  classDef overflow fill:#e2e3e5,stroke:#6c757d,color:#495057,stroke-dasharray: 3 3
Loading
Modified
ID Changes
REQ-240

📎 Full HTML dashboard attached as workflow artifact rivet-delta-pr-641download from the workflow run.

Posted by rivet-delta workflow. The graph shows only changed artifacts; open the HTML dashboard (above) for full context.

@codecov

codecov Bot commented Jul 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

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