Skip to content

fix(release): rebaseline workshop-rs on release-plz and dist - #55

Merged
Teakowa merged 1 commit into
mainfrom
agent/release-dist-rebaseline
Aug 20, 2026
Merged

fix(release): rebaseline workshop-rs on release-plz and dist#55
Teakowa merged 1 commit into
mainfrom
agent/release-dist-rebaseline

Conversation

@Teakowa

@Teakowa Teakowa commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • return release-plz to its standard push-to-main flow for Release PR maintenance, crates.io publication, and the single canonical vX.Y.Z tag;
  • replace the repository-maintained five-platform GitHub Release state machine with dist 0.32;
  • keep the five existing CLI targets, .tar.gz / .zip archive formats, SHA-256 checksums, and catalog-identity.json as a dist extra artifact;
  • keep the already-proven CARGO_REGISTRY_TOKEN path in this change; crates.io Trusted Publishing is a separate follow-up after the external publisher configuration is verified.

Why

The current release pipeline has grown into a custom release orchestrator around release-plz: the release command runs from a merged-PR detached checkout, #54 has to synthesize a branch/upstream just to satisfy release-plz's Git context, and repository YAML separately owns tag creation, draft/published GitHub Release state, asset completeness, and partial-state recovery. Recent fixes #50, #51, and #54 are different symptoms of that same ownership problem.

This PR removes that state machine instead of adding another recovery condition.

Ownership contract

release-plz
  -> version / Release PR
  -> crates.io publication
  -> canonical vX.Y.Z tag

dist
  -> PR release plan
  -> five-platform workshop-rs-cli builds
  -> archive checksums
  -> catalog-identity.json
  -> GitHub Release with the complete artifact set

release-plz does not create the GitHub Release. dist does not decide crate versions or publish crates.io packages.

Distribution changes

The CLI targets remain:

  • x86_64-unknown-linux-gnu
  • aarch64-unknown-linux-gnu
  • x86_64-apple-darwin
  • aarch64-apple-darwin
  • x86_64-pc-windows-msvc

Linux ARM64 moves from a repository-maintained cross-linker setup to GitHub's native ubuntu-24.04-arm runner.

dist emits standard per-archive .sha256 files, replacing the hand-built aggregate SHA256SUMS.txt. catalog-identity.json remains a release artifact generated from workshop-rs-cli version --json.

Removed custom orchestration

  • pull_request.closed publication path;
  • synthetic release-plz-release branch/upstream setup;
  • manual gh api tag creation;
  • repository-owned draft/published GitHub Release state machine;
  • explicit published-release asset completeness recovery logic;
  • hand-written five-platform archive/release workflow.

Rare partial external states are handled explicitly by maintainers instead of expanding the normal release path into a transaction coordinator across crates.io, Git, and GitHub Releases.

Validation

Validated on the final PR head:

  • dist init --yes accepted the repository configuration and generated the checked-in Release workflow;
  • the generated PR workflow runs dist plan successfully against the real PR merge ref;
  • the five targets, native Linux ARM64 runner, SHA-256 configuration, and catalog-identity.json extra artifact are accepted by dist 0.32.0;
  • stable Rust CI passes fmt, clippy, tests, and catalog validation;
  • Rust 1.85.0 CI passes the same gates;
  • the temporary generation diagnostic was removed;
  • the final diff contains no second repository-owned tag/GitHub Release state machine.

The next real canonical tag remains the production end-to-end proof. No version is manufactured solely to test this migration.

@Teakowa
Teakowa marked this pull request as ready for review August 20, 2026 13:02
@Teakowa
Teakowa force-pushed the agent/release-dist-rebaseline branch from f93d52d to 1956fa9 Compare August 20, 2026 16:55
@Teakowa
Teakowa merged commit bebf6ff into main Aug 20, 2026
7 checks passed
@Teakowa
Teakowa deleted the agent/release-dist-rebaseline branch August 20, 2026 16:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant