Changelog generator
Features
- feature-rich changelog format
- low-config changelog management
- customizable
See in action
This project use changen to maintain its changelog, using github action
- The changelog file - see what the syntax have to offer
- Its commits history
- The release Github workflow - It will create a PR
Getting started
-
Create the changelog
If you don't have a changelog file yet, you can use
changen new. -
Validate your changelog syntax
If you already have a changelog file, you can see if its syntax get accepted by running
changen validate. -
Generate release notes
When you know your changelog is valid, you can use
changen generateto generate a release-note about the last commit.It can generate release notes
- between two tags/commits
- for a specific commit/tag
- for a milestone
By default, it will generate release notes from the last release in the changelog to HEAD. It will get the list of commits using a
git logcommand, and try to match them against remote PRs if it have the necessary infos. -
Make a new release
To make a new release, use
changen release --version 1.0.0.
[!WARNING]
All tags of the repo and versions in the changelog must follow the semver format, and should match each other.
The full API reference can be found here (automatically generated).
Commit syntax
fix(project_a): Fix a nasty bug <=> commit-type(scope): commit-message
Advanced use
Ignore commit
Currently, you can write theses patterns anywhere in the commit message:
(skip changelog)(ignore changelog)!changelog!log
Map commit type to section(ex: ### Fixed) in the changelog
The default map can be seen here. Note than the order will define in witch order the section will appears in the log file.
Use with changen generate --map path/to/map.json
Changelog custom path
changen generate --file path/to/CHANGELOG.md
Acknowledgement
-
pom for being an awesome parser. Without this parser, i would have probably drop this project! The parser of the changelog is less than 200 lines!
-
Iced, for its well maintained changelog
-
Gitoxide changelog because its use a similar tool (quit complex and more powerful)