This document assumes you are familiar with Conventional Commits and your git commit messages follow the convention described there. Furthermore it assumes you're using Semantic Versioning for your project.
ChangeLog is distributed as .NET (global) tool and requires at least the .NET 6 SDK to be installed (.NET 7 is suppored as well).
ChangeLog is available on NuGet.org. Prerelease builds on are available on MyGet.
To install ChangeLog, run:
dotnet tool install -g Grynwald.ChangeLog
ChangeLog assumes you have a local git repository which's commit messages follow the Conventional Commits format.
The versions of your project are read from the git repository's tags. Versions need to follow the Semantic Versioning format.
By default all tag names that are semantic versions and tag names that are semantic versions prefixed with v
are recognized (e.g. 1.2.3-alpha
or v1.2
).
Parsing of tags can be customized using the Tag Patterns Setting.
To generate a change log from a git repository, run the changelog generate
command and specify the path to the git repository.
changelog generate --repository <LOCALPATH>
The repository path can be omitted when changelog
is run from a directory within the git repository.
Important
changelog needs access to all commits in the git repository and can run into issues with shallow clones. If you are running changelog in a CI system (like GitHub Actions or Azure Pipelines) make sure to configure your build to not use shallow clones.
By default, the change log is saved to changelog.md
in the repository.
You can override the output path using the --outputPath
parameter or in the configuration file (see Configuration).
For all full list of commandline parameters, see Commandline reference
The behavior of ChangeLog can be customized using a configuration file and environment variables.
For details, see Configuration.