jreleaser: [changelog] pickup `BREAKING CHANGE:` from footer
Is your feature request related to a problem? Please describe.
In the conventional commit specification, breaking changes can be specified either with a !
in the title, or with a BREAKING CHANGE: message
within the body.
BREAKING CHANGE: a commit that has a footer BREAKING CHANGE:, or appends a ! after the type/scope, introduces a breaking API change (correlating with MAJOR in Semantic Versioning). A BREAKING CHANGE can be part of commits of any type.
Examples from conventionalcommits.org
Describe the solution you’d like Pickup those changes and highlight them as breaking changes.
Describe alternatives you’ve considered Tools like semantic-release can pick those up, example here.
Additional context Add any other context or screenshots about the feature request here.
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Comments: 18 (18 by maintainers)
Commits related to this issue
- feat(changelog): handle BREAKING CHANGE from footer Introduces a new ConventionalCommit subtype of Commit, which parses the commit body according to conventional commit specification. The conventiona... — committed to gotson/jreleaser by deleted user 2 years ago
- feat(changelog): handle BREAKING CHANGE from footer Introduces a new ConventionalCommit subtype of Commit, which parses the commit body according to conventional commit specification. The conventiona... — committed to gotson/jreleaser by deleted user 2 years ago
- feat(changelog): handle BREAKING CHANGE from footer Introduces a new ConventionalCommit subtype of Commit, which parses the commit body according to conventional commit specification. The conventiona... — committed to gotson/jreleaser by gotson 2 years ago
- feat(changelog): handle BREAKING CHANGE from footer Introduces a new ConventionalCommit subtype of Commit, which parses the commit body according to conventional commit specification. The conventiona... — committed to gotson/jreleaser by gotson 2 years ago
- feat(changelog): handle BREAKING CHANGE from footer Introduces a new ConventionalCommit subtype of Commit, which parses the commit body according to conventional commit specification. The conventiona... — committed to gotson/jreleaser by gotson 2 years ago
- Document https://github.com/jreleaser/jreleaser/issues/809 — committed to jreleaser/jreleaser.github.io by aalmiray 2 years ago
- feat(changelog): Handle BREAKING CHANGE from footer. Resolves #809 Introduces a new ConventionalCommit subtype of Commit, which parses the commit body according to conventional commit specification. ... — committed to jreleaser/jreleaser by gotson 2 years ago
- refactor(changelog): Add CC trailers as name templates. Relates to #809 — committed to jreleaser/jreleaser by aalmiray 2 years ago
- Document https://github.com/jreleaser/jreleaser/issues/809 — committed to jreleaser/jreleaser.github.io by aalmiray 2 years ago
I’ve made good progress this week, I now have a
ConventionalCommit
subclass that has properties matching the conventional commit specification, and unit tests covering all the examples on the official conventional commit website.Now I need to tweak the default conventional commit preset to use those properties for better flexibility.
We have a test that relies on lots of mocks to make it work. I think that’s the wrong approach at this point. The alternative is to create a sample Git repository (a real one) and use it as a resource. Setting up the test is a bit troublesome at the moment as only a single .git dir may be present in a Git repo, thus sample projects would have to be provided as zip files, unzipped before the testcase is run.
For the time being manual testing is performed on repositories that exhibit the desired conditions. Just running
jreleaser changelog
should be enough.Correct. There are at least 2 issues as you aptly listed them. Additionally, treat CC (and gitmoji by extension) as proper entities instead of a bolt-on option as they are right now.
Ha! Sorry, the word “wither” is a typo. Changelog templates may be customizable in the future, just not yet. Also, JReleaser supports CC but it’s not aware of CC itself that is, the preset simply applies a predefined set of rules for labelers & categories but it does not inform JReleaser in any way that CC is in effect. This is perhaps another thing that could be changed, that way changelog templates and the inner plumbing can enforce additional rules pertaining to CC or any other presets/conventions.