A changelog generator using simply structured git commit messages
and
Installation is as simple as it gets:
$ pip install whathappened
To generate a changelog, run:
$ whathappened
Make sure to activate any virtual environment that you might be using first.
Some options are available:
$ whathappened --help
Usage: whathappened [OPTIONS] [GIT_LOG_ARGS]...
Handle command line arguments. Extra arguments are passed to 'git log'.
Options:
--overriding-version TEXT Specify a version number to use [format: x.y.z]
-o, --output PATH The changelog destination [default: stdout]
-e, --emoji Include emoji in headings if present
-d, --development Include development-related commits
-p, --prefix TEXT Version prefix, often 'version' or 'v' [default: '']
--version Show the version and exit.
--help Show this message and exit.
To limit the range of commits, add a revision range
argument.
To create a changelog of commits that are yet to be pushed:
$ whathappened origin..HEAD
To create a changelog of commits between (branch: main) and (tag: v1.0.0) and write the output to file:
$ whathappened -o CHANGELOG.md main..v1.0.0
To create a development changelog, with addition headings like 'Testing' and 'Reverted':
$ whathappened -d
Created by Whathappened itself - very meta.
For the complete changelog, please see CHANGELOG.md.
For a full description of the message format, see Commit-It-Simple.
Whathappened expects git commit messages in the format outlined below:
[optional breaking ]<type>[ optional (<scope>)]: <description>
[optional body]
<type>
is recommended to be one of:
fix
feat
build
ci
docs
style
refactor
perf
test
Variations on these types like feat, feature, features
, or doc, docs
are seamlessly grouped together.
The <scope>
is recommended to be a module, file, or folder name as appropriate.
More examples can be viewed on whathappened's own commits.
For a nice summary of type
s and what they mean, please see Understanding Semantic Commit Messages Using Git and Angular.
Adding the --emoji
flag will add emoji after each heading in the changelog. Below are the emoji that are used:
Production:
- Docs 📝
- Features ✨
- Fixes 🐛
- Performance ⚡️
- Refactorings ♻️
- Other 🃏
Development:
- Continuous Integration 🤖
- Reverted ☠️
- Testing 🧪