Skip to content

release: add a non-publishing rehearsal path #355

Description

@pengfei-threemoonslab

Problem

The release workflow can only be exercised by pushing a v* tag, so its verification and failure paths are effectively first-run at the same moment publication becomes possible. The broader release review was tracked in #345; this issue owns the rehearsal path only.

A rehearsal must exercise the candidate build and verification path while being structurally incapable of publishing, tagging, or creating/finalizing a GitHub Release.

Acceptance criteria

  • A manual or reusable dry-run entry point exercises the same build, qualification validation, tests, dependency audit, SBOM generation, and artifact handoff used by release.
  • Dry-run mode never instantiates the publication job and has no contents: write or PyPI publishing authority.
  • The dry run cannot create a tag, upload to PyPI, or create/finalize a GitHub Release, even if a step is misconfigured.
  • At least one deliberate mismatch/failure path is rehearsed and shown to fail closed before publication.
  • The run produces inspectable candidate artifacts and a concise readiness summary.
  • The release runbook makes rehearsal mandatory for a candidate tag.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Next after P0; blocks other work or ships a misleading resultarea:releaseRelease pipeline, packaging, and safety qualificationbugSomething isn't working

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions