Skip to content

No first-class release: field on artifacts — release planning falls back to tag conventions #516

@avrabe

Description

@avrabe

Friction

Doing release planning on synth (assign requirements to releases, query readiness as "which artifacts in release: vX.Y are not yet verified"), I expected a first-class release: attribute on artifacts — the status lifecycle (draft → … → verified → accepted) implies a release-planning workflow, but there is nothing to scope an artifact to a release:

  • rivet schema show sw-req (rivet 0.15.0): fields are req-type / priority / verification-criteria — no release.
  • rivet list filters by --type / --status / --filter s-expression — no release dimension.

Workaround used

Tag convention: release-v0.11.35 etc. in tags:, queried via

rivet list --filter '(has-tag "release-v0.11.35")'

It works, but it's stringly-typed: no validation that the release exists, no burn-down view (rivet release status v0.11.35 → N verified / M total), no "unassigned = backlog" semantics, and scope moves (re-targeting an artifact to a later release) are invisible diff noise rather than a logged scope decision.

What would close the gap

  1. A core optional release: field on all artifact types (like status), plus rivet list --release vX.Y.
  2. A readiness query: rivet release status vX.Y → per-status counts + the not-yet-verified set (the release is cuttable when zero).
  3. (Nice) rivet release move <id> vX.Z that logs the scope change.

Context: synth release planning, rivet 0.15.0 (f66362b). Related friction: #510 (standards presets). Filed via report-tool-friction.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions