feat: tag commit and create GitHub release in manual publish workflow - #5
Merged
Merged
Conversation
The manual (workflow_dispatch) publish workflow now tags the released commit and creates a matching GitHub release alongside the crates.io publish, satisfying the Publishing requirement that the manual release workflow also creates a tagged GitHub release. - rust-publish.yml: master-branch guard, semver version resolved from Cargo.toml, local+remote tag-existence guard, tag push and GitHub release created before cargo publish, release notes extracted from the matching CHANGELOG section, dry_run skips tag/release creation. - Bump version 0.2.2 -> 0.2.3 and add CHANGELOG entry. - README: rewrite Releasing section with prerequisites, steps, and a Recovering from a failed release subsection.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Brings the Rust client's manual release workflow into compliance with the Publishing requirement that the manual release workflow also creates a tagged GitHub release. Previously
rust-publish.ymlonly published to crates.io; it now also tags the released commit and creates a matching GitHub release, mirroring the Go client'sgo-publish.yml.The OpenAPI spec is already on
v2-2026-06-18T095846Z, so there are no endpoint/spec/test changes — this is a workflow + docs change only.Changes
.github/workflows/rust-publish.yml— the manual (workflow_dispatch) publish workflow now:permissions: contents: write, full-history checkout (fetch-depth: 0), and a hard "Require master branch" guard.Cargo.tomlversion, the same valueCLIENT_VERSIONreads viaCARGO_PKG_VERSION), validates it as bare semver, and guards against an already-existing tag (local + remote).cargo publish(the only unrepeatable step); the release step is idempotent.## [X.Y.Z]CHANGELOG section, with a fallback.dry_runnow also skips tag/release creation. Secrets are read only from repository secrets (CARGO_REGISTRY_TOKEN; tag/release use the defaultGITHUB_TOKEN).Cargo.toml— version bump0.2.2→0.2.3.CHANGELOG.md— new[0.2.3]entry.README.md— "Releasing" section rewritten with prerequisites, numbered steps, master-gate / tag-guard / missing-token behavior, and a "Recovering from a failed release" subsection.Testing
cargo test --allpasses (unit, integration withAPIFY_TOKEN, and 22 doctests; all0 failed).cargo fmt --checkandcargo clippy -D warningsclean.Generated by Claude Code