Skip to content

ci(release): auto-detect version and chain Homebrew bump - #62

Merged
scott merged 1 commit into
mainfrom
feature/streamline-release-homebrew
Aug 24, 2026
Merged

ci(release): auto-detect version and chain Homebrew bump#62
scott merged 1 commit into
mainfrom
feature/streamline-release-homebrew

Conversation

@scott

@scott scott commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • scripts/release.sh now auto-detects the next version from conventional commits since the last tag (BREAKING CHANGE / feat! → major, feat: → minor, everything else → patch) and asks for y/N confirm. A release becomes one command: scripts/release.sh.
  • --bump {major|minor|patch}, explicit <version>, and --no-homebrew flags cover the explicit-override cases.
  • After the release workflow publishes successfully, the script runs scripts/bump-homebrew.sh to open the Homebrew formula bump PR. Draft releases are detected and skipped with a clear message + manual rerun hint.
  • AGENTS.md and README.md release sections rewritten to match. shellcheck scripts/release.sh added to the lint floor (the other shell files have pre-existing warnings tracked separately).

Notes

  • 16 synthetic-history unit tests of auto_detect_bump and semver_inc pass — covers feat/fix/feat!/feat(scope)!/BREAKING CHANGE footer/perf-only/docs-only/non-conventional/no-commits + semver carry at boundaries.
  • --dry-run smoke tests against the current tree verified: auto-detect → v0.13.1 (no commits since v0.13.0), --bump minorv0.14.0, --bump majorv1.0.0, explicit v2.0.0 --no-homebrew all behave correctly.
  • scripts/bump-homebrew.sh is untouched and still runs standalone for re-bumps.
  • Existing first-release flow still works: with no prior vX.Y.Z tags the script errors out and asks for an explicit <version>.

scripts/release.sh now derives the next version from conventional commits
since the last tag (BREAKING CHANGE / feat! → major, feat: → minor,
everything else → patch), so a release is one command:

    scripts/release.sh

Explicit flags still work:

- <version>            set the version (skip auto-detect)
- --bump {major|minor|patch}  force the bump component off the latest tag
- --no-homebrew        release only, skip the Homebrew PR step

After the release workflow publishes successfully, the script runs
scripts/bump-homebrew.sh to open the Homebrew formula bump PR by default
(draft releases are detected and a manual re-run is suggested). Draft
handling prevents stale-PR footguns.

Also:

- docs/release section rewritten in AGENTS.md and README.md to match
- shellcheck scripts/release.sh added to the lint floor (bump-homebrew.sh
  and install.sh carry pre-existing warnings tracked separately)
@scott

scott commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator Author

/oc please review this PR and approve if you find it ready to merge

@scott
scott merged commit c50f68a into main Aug 24, 2026
1 check passed
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