Skip to content

ci: stop automatic major releases - #40

Merged
llbbl merged 1 commit into
mainfrom
ci/37-no-auto-major
Nov 8, 2026
Merged

llbbl merged 1 commit into
mainfrom
ci/37-no-auto-major

Conversation

@llbbl

@llbbl llbbl commented Nov 8, 2026

Copy link
Copy Markdown
Owner

Closes #37

The release workflow turned any ! marker or BREAKING CHANGE into a major bump, so one stray marker would have published v1.0.0.

Changes

  • scripts/next-version.sh now picks the next version. Breaking markers (type!:, BREAKING CHANGE: / BREAKING-CHANGE: footers) bump minor with a ::warning::; feat bumps minor; everything else bumps patch. The major never changes. Commit bodies are now read, not only subjects.
  • scripts/assert-same-major.sh refuses any major change and fails closed on missing or malformed tags. It runs before the version files are updated and pushed, and again before the tag is pushed.
  • The version step runs with pipefail, so a git log failure stops the release instead of shipping a patch. With no tag, it reads the full history.
  • docs/RELEASING.md is updated: a major is now a manual decision (just bump-major).

Tests

  • tests/scripts/next-version.test.ts and tests/scripts/assert-same-major.test.ts. Every test was confirmed to fail when the logic it guards is broken.
  • lint, typecheck, ./scripts/check-coverage.sh (459 pass), build, shellcheck and actionlint all pass.

After merge

  • Add a tag ruleset blocking refs/tags/v[1-9]*.

Move version selection into scripts/next-version.sh. Breaking markers now bump
minor with a warning, and the major never changes. scripts/assert-same-major.sh
guards the bump push and the tag push, fails closed on missing or malformed
tags, and the version step runs with pipefail and reads full history when no
tag exists.

Closes #37
@llbbl
llbbl merged commit 1e9bc96 into main Nov 8, 2026
3 checks passed
@llbbl
llbbl deleted the ci/37-no-auto-major branch November 8, 2026 01:07
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.

ci: stop automatic major releases

1 participant