Skip to content

feat(ci): derive auto-tag bump level from conventional commits#20

Merged
gek0z merged 1 commit intomainfrom
chore/conventional-commits-autotag
Apr 15, 2026
Merged

feat(ci): derive auto-tag bump level from conventional commits#20
gek0z merged 1 commit intomainfrom
chore/conventional-commits-autotag

Conversation

@gek0z
Copy link
Copy Markdown
Owner

@gek0z gek0z commented Apr 15, 2026

Summary

Currently Auto-tag always cuts a patch release, regardless of what was merged. This PR teaches it to read commit subjects since the previous tag and pick the right bump level.

Bump rules (first match wins):

  • any commit with ! before the : in the subject (feat!:, fix(scope)!:, …) or a BREAKING CHANGE: footer → major
  • otherwise any feat(...): commit → minor
  • otherwise → patch

The manual Bump & Release workflow is still available for out-of-band releases and for overriding the inferred level when needed.

Updated alongside:

  • README.md release pipeline description
  • CONTRIBUTING.md commit-message section now points at Conventional Commits and explains the link to Auto-tag

Test plan

  • Merge this PR. It touches only .github/ and docs, so Auto-tag's paths filter means no tag will be cut from the merge itself — good, lets us validate the logic on the next Sources-bearing commit.
  • Confirm Auto-tag runs on the next Sources/Tests/project.yml/bootstrap.sh push to main, picks a bump that matches the commit subjects since the previous tag, and writes the bump level into the workflow-run summary.
  • Verify the subject-parsing regex locally against a few fixture commits (feat:, feat(scope):, fix!:, feat(scope)!:, bodies containing BREAKING CHANGE:).

Until now auto-tag always cut a patch release regardless of what
landed on main. Now it parses commit subjects since the previous tag
and picks the highest applicable bump:
  - `<type>(scope)?!:` subject OR `BREAKING CHANGE:` footer -> major
  - `feat(scope)?:` subject                                 -> minor
  - anything else                                           -> patch

Workflow header, job name, README release section, and CONTRIBUTING
commit-message guidance updated to match. Manual "Bump & Release" is
still available for out-of-band releases.
@gek0z gek0z merged commit 1511c93 into main Apr 15, 2026
1 check passed
@gek0z gek0z deleted the chore/conventional-commits-autotag branch April 15, 2026 18:18
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