From b53c7281cd64915838db2995d0823916732979e6 Mon Sep 17 00:00:00 2001 From: Nikolai Emil Damm Date: Sat, 18 Jul 2026 12:44:40 +0200 Subject: [PATCH] fix(release): treat `type!:` commits as breaking MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit semantic-release's default preset recognises a breaking change only from a `BREAKING CHANGE:` footer, so a bang-style commit produced NO release at all — a breaking change shipped unversioned and nobody downstream learned the API broke. The org's commit-message ruleset explicitly permits the bang, so contributors are invited to write exactly the form that silently does nothing. Only the bang forms change: feat: -> minor, fix: -> patch, docs:/chore:/ci: -> no release, and the BREAKING CHANGE: footer still works. Any existing release rules are preserved. Verified with semantic-release 25.0.3 against this repo's actual config. Part of devantler-tech/actions#653 Co-Authored-By: Claude Opus 4.8 --- .releaserc | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.releaserc b/.releaserc index b712c29..50e4059 100644 --- a/.releaserc +++ b/.releaserc @@ -3,6 +3,19 @@ "main" ], "plugins": [ - "@semantic-release/commit-analyzer" + [ + "@semantic-release/commit-analyzer", + { + "parserOpts": { + "breakingHeaderPattern": "^(\\w*)(?:\\((.*)\\))?!: (.*)$" + }, + "releaseRules": [ + { + "breaking": true, + "release": "major" + } + ] + } + ] ] }