Handy command-line tool for managing changelog for your open source projects.
- bash auto-complete with https://github.com/kislyuk/argcomplete
- support multiple modes: list (just list of entries) and group (entries grouped by entry types: Features, Bugfixes, Improvements, etc)
- Git post-commit hook integration
- Git tag integration
pip3 install md-changelog
cd <project_path>
md-changelog init # it creates .md-changelog.cfg and Changelog.md in the current folder
md-changelog edit
md-changelog <entry type> <msg> [--split-by='<delimiter>']
# Examples
md-changelog message "My message"
md-changelog improvement "Code cleanup"
md-changelog bugfix "Fixed main loop"
md-changelog feature "Implemented new feature"
md-changelog breaking "Some breaking change"
# Add multiple entries the same type at once
md-changelog improvement --split-by=';' "Code cleanup; New command-line --split-by key; Improved feature X"
Changelog may look like
Changelog
=========
0.1.0+1 (UNRELEASED)
--------------------
* My message
* [Improvement] Code cleanup
* [Bugfix] Fixed main loop
* [Feature] Implemented new feature
md-changelog auto-message "${some_var_from_git_commit_post_hook}"
md-changelog last
Release currently unreleased version. Release assumes to set a release date to the current and update the last version (basically 0.1.0+1 -> 0.1.1 or 0.2.0, etc)
# Open in editor to update version manually
md-changelog release
# Set the version explicitly
md-changelog release -v 1.0.0
# Without confirmation dialog
md-changelog release -v 1.0.0 --force-yes
md-changelog append
md-changelog append --no-edit # just add a new entry without calling editor