Skip to content

Markdown Changelog Generator

Generate a Markdown Changelog from your Github repository.

PyPI
version  PyPI - License 

Having a changelog is a great way to keep your users informed about changes to your project. It is also a great way to keep track of what you have done and when. However, it can be a pain to maintain, especially if you have a lot of changes. This tool aims to make it easy to generate a Markdown-formatted changelog from your project's Github repository.

Important!

You need to use the Github Pull Request and Release methodology for this tool to work. If you don't, then this tool is not for you!

Until you have at least one GitHub Release, this tool will lump all the PRs together under the Unreleased heading.

It will detect all GitHub releases and generate a changelog based on the merged Pull Requests for each release along with a section for unreleased PRs (those merged since the last release) at the top. It will also include a list of all Issues closed for each release.

The PRs and issues are grouped by type (bug, enhancement, etc.) and sorted by latest to oldest in this release. You can add custom sections to the list too.

There is an option to tag all the Unreleased PRs (ie those closed after the previous release) with an upcoming release number to ease the process of creating a new release by having the changelog already up to date, or hide any unreleased PR's completely.

There is much more this app can do, see the Usage page for full details.

While the project is written in Python, it is NOT limited to just generating a changelog for Python projects. It will work with any Github repository and therefore any coding language. In this case a global installation is recommended. Most linux-based systems will already have Python installed, but if not, it is easy to install. Windows and the latest releases of MacOS will need Python to be installed, see the Python documentation for details.

For an example of the output, see the Changelog for this project.

This generator puts a small unobtrusive comment at the bottom of the changelog to indicate that it was generated by this tool. This is to acknowledge the work of the contributors and to help spread the word about this project. Please leave this comment in place for others 🙏.

If you use this tool and like it, please consider giving it a ⭐ on Github, which helps others find it. Thanks!

If you find this tool is useful, please consider sponsoring the developer. All sponsors will be listed on the documentation and README. All contributions are greatly appreciated and will be directly used to support and improve the project.