Skip to content

Navigation Menu

Sign in
Sign up

plan(v0.37): file REQ-327 — rivet cannot state what a release contains - #900

Open
avrabe wants to merge 1 commit into
main from
feat/req-327-release-notes
Open

plan(v0.37): file REQ-327 — rivet cannot state what a release contains #900
avrabe wants to merge 1 commit into
main from
feat/req-327-release-notes

Conversation

@avrabe

@avrabe avrabe commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Artifact only. Design grounded in Automotive SPICE PAM v4.1 (VDA QMC),
process SPL.2 Product Release — not in anything invented here.

SPL.2 purpose: to control the release of a product to the intended customer.
BP6: Provide a release note. BP5: Ensure the release approval before the delivery.

Information item 11-03 Release note is the specification

Identifies: functionalities provided · limitations in relation to the
committed scope
· known non-conformities · application parameters ·
configurations and variants · unique name and version · added/removed
functionalities · changed/improved functionalities · documentation of resolved
non-conformities

Includes: intended area and environment of usage · impact to other linked
components · upstream/downstream compatibility · copyright and license
information · result of verification and validation measures · approval for
delivery by responsible roles · dependencies to other linked products

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:

11-03 element rivet already has
copyright and license information Cargo Deny (licenses, bans, sources)
configurations and variants the variant / product-line subsystem
approval by responsible roles 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 --ignore entries — which are exactly
declared-unresolved vulnerabilities, each carrying a written rationale, living
in a workflow file where no reader will find them.

Decisions recorded

  • rivet emits release-artifact and vulnerability artifacts per release
    rather than only reporting over them — its supply-chain evidence becomes part
    of the trace, and supply-chain.yaml gets dogfooded by its author.
  • Linkage reuses cited-source (uri/kind/sha256/last-checked; oslc and
    polarion cover Jira and DOORS) rather than a new directive.
  • Links are never inferred. An artifact without one renders as an explicit
    gap — regexing #NNN out of prose would both miss a Jira ticket and invent
    links from stray text.

Blocker to fix first: rivet list --format json exposes only id, links, status, title, type and the release field, so the mock-up had to parse raw YAML
for cited-source and provenance and scrape coverage --tests text.

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.

github-actions Bot commented Sep 6, 2026
edited
Loading

Copy link
Copy Markdown

📐 Rivet artifact delta

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

Graph

graph 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
Loading
Added
  • REQ-327

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

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

avrabe force-pushed the feat/req-327-release-notes branch from 0eb1558 to 8b8e8eb Compare September 7, 2026 03:53
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 8b8e8eb to 6491b9e Compare September 7, 2026 06:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

1 participant

AltStyle によって変換されたページ (->オリジナル) /