-
Notifications
You must be signed in to change notification settings - Fork 0
plan(v0.37): file REQ-327 — rivet cannot state what a release contains - #900
Open
avrabe wants to merge 1 commit into
Open
plan(v0.37): file REQ-327 — rivet cannot state what a release contains #900avrabe wants to merge 1 commit into
avrabe wants to merge 1 commit into
Conversation
📐 Rivet artifact delta
Graphgraph LR
REQ_327["REQ-327"]:::added
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
Added
Posted by |
avrabe
force-pushed
the
feat/req-327-release-notes
branch
from
September 7, 2026 03:53
0eb1558 to
8b8e8eb
Compare
Grounded in Automotive SPICE PAM v4.1 (VDA QMC), SPL.2 Product Release, rather than in anything invented here. BP6 requires a release note; information item 11-03 defines its content, and that list is the specification. Two of the four sections chosen with the maintainer BEFORE reading the PAM turn out to be mandated rather than optional — "limitations in relation to the committed scope" is the notes-versus-query diff already run by hand and already responsible for catching drift twice, and "known non-conformities" is the residuals section. The standard treats declared gaps as first-class release-note content, which is why a mock-up over real v0.36.0 data had an ABSENCE as its highest-signal line: external references, 0 of 10 declared. Three elements were missed, and rivet already produces evidence for each: copyright and license information (Cargo Deny), configurations and variants (the variant subsystem), and approval by responsible roles (the review-signoff oracle that already enforces reviewer != author per GP 2.1.7 / GP 2.2.4). Second finding: supply-chain.yaml already carries a complete release model that rivet's own releases do not use — release-artifact, build-attestation and vulnerability, with fields that map one-for-one onto what v0.36.0 produced and discarded: a CycloneDX SBOM, a cosign bundle, per-asset digests verified by hand, and fifteen cargo-audit ignores that are declared-unresolved vulnerabilities each carrying a written rationale. Maintainer decision: rivet EMITS release-artifact and vulnerability artifacts per release rather than only reporting over them, so its supply-chain evidence becomes part of the trace and supply-chain.yaml is dogfooded by its author. Linkage reuses the existing cited-source base field rather than a new directive; oslc and polarion cover Jira and DOORS. Links are never inferred — an artifact without one renders as an explicit gap, since regexing issue numbers out of prose would both miss a Jira ticket and invent links from stray text. Refs: REQ-327 Trace: skip
avrabe
force-pushed
the
feat/req-327-release-notes
branch
from
September 7, 2026 06:57
8b8e8eb to
6491b9e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Artifact only. Design grounded in Automotive SPICE PAM v4.1 (VDA QMC),
process SPL.2 Product Release — not in anything invented here.
Information item 11-03 Release note is the specification
Two of the four sections chosen before reading the PAM turn out to be
mandated, not optional: limitations in relation to the committed scope is the
notes-vs-query diff already run by hand (and already responsible for catching
drift twice), and known non-conformities is the residuals section.
The standard treats declared gaps as first-class release-note content. That
explains why a mock-up over real v0.36.0 data had an absence as its
highest-signal line:
external references: 0 of 10 declared.Three elements I'd missed, each already backed by evidence rivet produces:
Cargo Deny (licenses, bans, sources)rivet check review-signoff(reviewer ≠ author, GP 2.1.7 / GP 2.2.4)supply-chain.yaml already models the release — and rivet doesn't use it
release-artifact(artifact-name, version, digest, signing-status, contains →sbom-component),
build-attestation,vulnerability(cve-id, severity,cvss-score, vuln-status, remediation).
Every field maps to something v0.36.0 produced and discarded: a CycloneDX
SBOM, a cosign bundle + pem + sig, per-asset SHA256 digests I verified by hand,
and 15
cargo audit --ignoreentries — which are exactlydeclared-unresolved vulnerabilities, each carrying a written rationale, living
in a workflow file where no reader will find them.
Decisions recorded
release-artifactandvulnerabilityartifacts per releaserather than only reporting over them — its supply-chain evidence becomes part
of the trace, and
supply-chain.yamlgets dogfooded by its author.cited-source(uri/kind/sha256/last-checked;oslcandpolarioncover Jira and DOORS) rather than a new directive.gap — regexing
#NNNout of prose would both miss a Jira ticket and inventlinks from stray text.
Blocker to fix first:
rivet list --format jsonexposes onlyid, links, status, title, typeand the release field, so the mock-up had to parse raw YAMLfor
cited-sourceand provenance and scrapecoverage --teststext.Not modelled anywhere yet, also produced by SPL.2: 11-04 product release
package, 13-06 delivery evidence, 13-13 product release approval, and 18-06
product release criteria — the last being "conditions to be satisfied prior to
authorization of a product for delivery", which is what the release-readiness
query already computes informally.
rivet is the first consumer.