Skip to content

ci: Automate releases via release-plz with OIDC trusted publishing#5

Merged
RReverser merged 3 commits intomainfrom
claude/release-2.2.1-g7bAq
May 1, 2026
Merged

ci: Automate releases via release-plz with OIDC trusted publishing#5
RReverser merged 3 commits intomainfrom
claude/release-2.2.1-g7bAq

Conversation

@RReverser
Copy link
Copy Markdown
Owner

@RReverser RReverser commented May 1, 2026

Sets up release-plz to handle the release process end-to-end, so future releases can be cut entirely from the GitHub mobile app.

How it works

A single workflow runs on every push to main:

  • If there are unreleased changes, release-plz opens (or updates) a "Release vX.Y.Z" PR with the Cargo.toml bump and a generated changelog.
  • When that release PR is merged, release-plz tags the commit, creates a GitHub Release, and publishes to crates.io via OIDC trusted publishing — no API token in repo secrets.

Version bump logic

semver_check = true runs cargo-semver-checks against rustdoc JSON of the last published version:

  • Breaking API change → forces major bump (automatic).
  • Otherwise → defaults to patch. Edit the proposed version in the release PR body to make it minor when desired.

Notes

  • Workflow filename is release.yml to match the existing crates.io trusted publisher configuration.
  • cargo-semver-checks is invoked by release-plz; it auto-installs the nightly toolchain it needs via the runner's pre-installed rustup.
  • This PR itself does not bump the version; merging it just installs the automation. The next push to main will open the first release PR (proposing 2.2.1).

Two jobs run on every push to main:

  - release-pr: opens/updates a "Release vX.Y.Z" PR with the
    Cargo.toml bump and changelog. Merging that PR ships the release.
  - release: when the merged commit's Cargo.toml version is
    unreleased, tags it, creates a GitHub Release, and publishes
    to crates.io via OIDC trusted publishing.

semver_check = true uses cargo-semver-checks (rustdoc JSON diff)
to force a major bump if breaking changes are detected.

Workflow filename kept as release.yml to match the existing
crates.io trusted publisher configuration.
@RReverser RReverser force-pushed the claude/release-2.2.1-g7bAq branch from d744f21 to 8f2dfc0 Compare May 1, 2026 12:52
@RReverser RReverser changed the title chore: Release serde-ndim version 2.2.1 ci: Automate releases via release-plz with OIDC trusted publishing May 1, 2026
@RReverser RReverser merged commit 20f4d30 into main May 1, 2026
2 checks passed
This was referenced May 1, 2026
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.

2 participants