-
Notifications
You must be signed in to change notification settings - Fork 3
build(semantic-release): add custom configuration #28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
d0f7eed
to
a41f052
Compare
Current problems:
|
a41f052
to
9f4cc66
Compare
@spike-rabbit The pr is ready for review 🙏 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Many thanks for the changes. Please describe in the commit what changes and why we change. For me it is not clear how the angular preset is different from the conventional change log and how it fits to our commit message rules. How can we test these rules and which rules we want. Let us clarify those topics.
I've updated the pull request description with a detailed explanation of the changes, how they relate to element's commit message rules, and how they can be tested locally. If anything remains unclear, feel free to reach out 🙌 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
🎉 This PR is included in version 47.2.0 🎉 The release is available on:
Your semantic-release bot 📦🚀 |
Purpose
This pull request introduces a custom semantic-release configuration based on the default preset, tailored to elements project's specific commit conventions and release logic.
Changes
Custom commit analysis logic in
tools/semantic-release/config.js
commitTypes
used in CHANGELOG and the corresponding section titles.commitTypes
andnoteTitleMap
Automatic version bump logic - determine whether a release is major, minor, or patch based on the commits.
BREAKING CHANGE
(configurable through releaserc.js)feat
(configurable through config.js)fix
,perf
orrevert
(configurable through config.js)Writer enhancements
Custom release note formatting in
tools/semantic-release/writer-opts.js
BREAKING CHANGES
NOTES
andDEPRECATIONS
in the CHANGELOG if commits with notesDEPRECATED:
orNOTE:
are found.BREAKING CHANGE
,DEPRECATED
, andNOTE
are included in the CHANGELOG, even when they originate from commits of hidden types (e.g.,docs
,refactor
,chore
, etc.).docs
,refactor
,chore
, ...) from appearing in the CHANGELOG if they contain notes. Only the notes themselves should be shown in their appropriate sections (e.g., under BREAKING CHANGES), without revealing the hidden commit type or adding a section for it.build(semantic-release): add custom configuration
that includes aBREAKING CHANGE
would generate a new section with an entry like:Build
section is suppressed, and only theBREAKING CHANGE
note is shown, keeping the hidden type (build
) excluded from the CHANGELOG output.Testing
The configuration can be tested locally by using the following command that simulates a release without publishing artifacts or pushing tags:
Because I have not setup any tokens on my environment I commented out the sections that include
'@semantic-release/npm',
and'@semantic-release/github'
in the releaserc.js.You can create commits using various types and note footers (e.g., fix: ..., feat: ..., with
BREAKING CHANGE:
,NOTE:
,DEPRECATED:
) and observe: