Skip to content

Rework release targets for protected main - #36

Merged
kellenmurphy merged 1 commit into
mainfrom
makefile-pr-flow
Jul 20, 2026
Merged

Rework release targets for protected main#36
kellenmurphy merged 1 commit into
mainfrom
makefile-pr-flow

Conversation

@kellenmurphy

Copy link
Copy Markdown
Owner

Main's ruleset (PRs + status checks + signed commits) rejects the Makefile's original direct-push release flow — discovered during the v2.0.0 release, along with two failure modes this PR guards against (releasing from a dirty tree, and a stale tag left behind when push --tags partially succeeds).

New flow:

  1. make patch|minor|major — bumps __version__ on a fresh release-X.Y.Z branch cut from origin/main, pushes it, and opens the release PR.
  2. Merge the PR once checks pass.
  3. make release-finish — fast-forwards local main, creates the annotated tag (signed per tag.gpgsign), pushes it, and publishes the GitHub release with --generate-notes (so the release actually appears on the releases page).

No code changes; Makefile only.

Main's ruleset requires PRs, passing checks, and signed commits, so the
old direct 'git push origin main --tags' release flow is rejected.
Releases are now two phases:

- make patch|minor|major: bump __version__ on a release-X.Y.Z branch
  from origin/main and open the release PR
- make release-finish: after merge, fast-forward main, create the
  annotated tag (signed via tag.gpgsign), push it, and publish the
  GitHub release with generated notes

Also guards against a dirty working tree and an already-existing tag,
the two failure modes hit during the v2.0.0 release.
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@kellenmurphy
kellenmurphy merged commit eccb964 into main Jul 20, 2026
5 checks passed
@kellenmurphy
kellenmurphy deleted the makefile-pr-flow branch July 20, 2026 21:20
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