Skip to content

release: no tag has ever run through release.yml — the attestation path is untested #47

Description

@cdeust

Blocks the OpenSSF Best Practices silver criterion signed_releases ("MUST cryptographically sign releases intended for widespread use, and there MUST be a documented process explaining how users obtain the public signing keys and verify the signatures"). Answered Unmet in .bestpractices.json.

The gap

.github/workflows/release.yml was added by #37 and merged 2026-07-25 (d38171f). The latest release, v2.7.1, was cut by hand on 2026-07-24 (0d136b0), one day earlier.

So every published release artifact predates the signing pipeline. The workflow is correct as far as review can tell (it tests, builds, fingerprints ui/, emits a CycloneDX SBOM, checksums every asset, and calls actions/attest-build-provenance before upload), but it has never executed. An untested release path is not a control, and SECURITY.md currently describes the verification step as though a user could perform it today. They cannot: there is no attested asset to verify.

The Scorecard Signed-Releases check reports -1 (inconclusive) for the same reason.

What closes it

Cut v2.7.2 through the workflow and verify the output end to end:

  • Tag v2.7.2 pushed, Release workflow completes green
  • Release carries: wheel, sdist, cortex-viz.cdx.json, cortex-viz-ui-manifest.sha256, and a .sha256 companion for each
  • gh attestation verify cortex-viz-ui-manifest.sha256 --repo cdeust/cortex-viz succeeds from a clean checkout, run by someone following SECURITY.md verbatim
  • The UI manifest line count matches the file count under ui/ (98 JS files plus HTML/CSS)
  • The marketplace pin in Cortex's manifest is bumped, because tagging alone reaches zero installs
  • SECURITY.md names the first release for which verification actually works
  • .bestpractices.json signed_releases_status flips to Met

Related

Consider signing the version tag itself as well (git tag -s): the silver version_tags_signed criterion is SUGGESTED, and no current tag is signed (git tag -v v2.7.1 reports a non-tag commit object).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions