Skip to content

release: separate verification from publication and make partial publish recoverable #343

Description

@pengfei-threemoonslab

Problem

The release workflow performs expensive verification and immutable publication in one job. If PyPI publication succeeds and a later step fails, PyPI can contain an immutable version with no finalized GitHub Release or attached provenance. Re-running is not a safe recovery because the version already exists.

Test selection, parallelism, and timeout sizing are now owned by #344. This issue owns the publication transaction and recovery model.

Target design

  1. A read-oriented verification job builds/validates the exact candidate and produces a content-addressed artifact handoff.
  2. A publication job starts only after verification succeeds and consumes that exact handoff.
  3. A draft GitHub Release exists before PyPI publication.
  4. PyPI publication occurs once.
  5. The draft is finalized only after all required release assets are attached and validated.

Acceptance criteria

Non-goals

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