I've seen the attrs team using towncrier to generate their CHANGELOG, and after looking into towncrier's docs, I think it is the go-to tool for CHANGELOG management.
Using towncrier
towncrier uses news fragments to store changes between each release. A piece of news fragment is a rST-style file with suffixes like .feature, .bugfix, etc.
When publishing a new release, all news fragments will be moved to the corresponding sections in CHANGELOG.md, and the fragments will be removed (by using towncrier command).
All news fragments will be stored in the newsfragments directory under the project root.
Detailed Steps
[x] Add towncrier to the dev-dependency (poetry add towncrier -D).
[x] Add a newsfragments to the project root.
[x] Add .gitignore to newsfragments/.gitignore.
[x] Add a [tool.towncrier] section to pyproject.toml.
[x] Run towncrier command to generate the CHANGELOG for version 0.1.3.
I've seen the
attrs
team usingtowncrier
to generate their CHANGELOG, and after looking intotowncrier
's docs, I think it is the go-to tool for CHANGELOG management.Using
towncrier
towncrier
uses news fragments to store changes between each release. A piece of news fragment is a rST-style file with suffixes like.feature
,.bugfix
, etc.When publishing a new release, all news fragments will be moved to the corresponding sections in
CHANGELOG.md
, and the fragments will be removed (by usingtowncrier
command).All news fragments will be stored in the
newsfragments
directory under the project root.Detailed Steps
towncrier
to the dev-dependency (poetry add towncrier -D
).newsfragments
to the project root..gitignore
tonewsfragments/.gitignore
.[tool.towncrier]
section topyproject.toml
.towncrier
command to generate the CHANGELOG for version 0.1.3.