Python package allowing you to manage your `CHANGELOG.md` files
Project description
(Keep a) Changelog Manager
Python package allowing you to manage your CHANGELOG.md
files
Installation
In order to install the python scripts you can use the following command:
% pip install keepachangelog-manager
Usage
Usage: changelogmanager [OPTIONS] COMMAND [ARGS]...
(Keep a) Changelog Manager
Options:
--config TEXT Configuration file
--component TEXT Name of the component to update
-f, --error-format [llvm|github]
Type of formatting to apply to error
messages
--help Show this message and exit.
Commands:
add Command to add a new message to the CHANGELOG.md
create Command to create a new (empty) CHANGELOG.md
github-release Deletes all releases marked as 'Draft' on GitHub and...
release Release changes added to [Unreleased] block
validate Command to validate the CHANGELOG.md for inconsistencies
version Command to retrieve versions from a CHANGELOG.md
Validate the layout of your CHANGELOG.md
Although every command will validate the contents of your CHANGELOG.md
, the
command validate
will do nothing more than this.
% changelogmanager validate
You can change the error messages to GitHub format by providing the --error-format
option:
% changelogmanager --error-format github validate
Create a new CHANGELOG.md
Creating a new CHANGELOG.md
file is as simple as running:
% changelogmanager create
This will create an empty changelog in the current working directory:
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
Add a change to your changelog
The add
command can be used to add a new change to the CHANGELOG.md
:
Usage: changelogmanager add [OPTIONS]
Command to add a new message to the CHANGELOG.md
Options:
-t, --change-type [added|changed|deprecated|removed|fixed|security]
Type of the change
-m, --message TEXT Changelog entry
--apply / --not-apply Apply changes to the CHANGELOG.md file
--help Show this message and exit.
The options --change-type
and --message
can be omitted, providing a simple user
interface for defining the contents:
% changelogmanager add
Specify the type of your change (added, changed, deprecated, removed, fixed, security):
Message of the changelog entry to add:
In addition, you can provide a single command as well:
% changelogmanager add --change-type added --message "Added an example to the documentation" --apply
This will create a new [Unreleased]
entry in your CHANGELOG.md
:
## [Unreleased]
### Added
- Added an example to the documentation
Retrieving versions
The version
command can be used to retrieve versions based on the CHANGELOG.md
:
Usage: changelogmanager version [OPTIONS]
Command to retrieve versions from a CHANGELOG.md
Options:
-r, --reference [previous|current|future]
Which version to retrieve
--help Show this message and exit.
Taking the following CHANGELOG.md
as reference:
## [Unreleased]
### Added
- Added an example to the documentation
## [2.1.0] - 2022-03-09
### Fixed
- Handle empty `CHANGELOG.md` files gracefully
## [2.0.0] - 2022-03-08
### Fixed
- No longer throw exceptions when releasing `CHANGELOG.md` containing only an `[Unreleased]` section
### Added
- Added support for creating a new `CHANGELOG.md` file, using the `create` command
% changelogmanager version
2.1.0
% changelogmanager version --reference previous
2.0.0
% changelogmanager version --future
2.2.0
NOTE: The
future
version is based on the changes listed in the[Unreleased]
section in yourCHANGELOG.md
(applying Semantic Versioning)
Release a new CHANGELOG.md
The release
command allows you to "release" any "unreleased" changes:
Usage: changelogmanager release [OPTIONS]
Release changes added to [Unreleased] block
Options:
--apply / --not-apply Apply changes to the CHANGELOG.md file
--override-version TEXT Version to release, defaults to auto-resolve
--help Show this message and exit.
For example:
% changelogmanager release --apply
This will rename the [Unreleased]
section and add the current date next to it, marking
the change as "Released"
Create/Update Release in GitHub
The github-release
command will create/update a draft Release based on the contents of the
[Unreleased]
section in your CHANGELOG.md
:
Usage: changelogmanager github-release [OPTIONS]
Creates a new (Draft) release in Github
Options:
-r, --repository TEXT Repository [required]
-t, --github-token TEXT Github Token [required]
--apply / --not-apply Apply (release/publish) the draft release
--help Show this message and exit.
For example:
% changelogmanager github-release --github-token <PAT> --repository tomtom-international/cicd-changelog-manager
Will result in something alike:
Providing the --apply
flag will update and publish the draft Release.
Working with multiple CHANGELOG.md files in a single repository
You can create a configuration file with the following schema:
project:
components:
- name: Service Component
changelog: service/CHANGELOG.md
- name: Client Interface
changelog: client/CHANGELOG.md
You can provide the --config
and --component
options to select a specific
CHANGELOG.md
file, eg.
% changelogmanager --config config.yml --component "Client Interface" version
3.7.3
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for keepachangelog-manager-1.0.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 835e76eac9bb5c70f8f97d2491335d5b6d75de4fbe12b0a757447c9a0692edb7 |
|
MD5 | 42ddf5731bd5b16e862b4f80560dc9e4 |
|
BLAKE2b-256 | 60ca7904a36209c34e6db184f892b1ee49e1daadf0878af894008e5de806147c |
Hashes for keepachangelog_manager-1.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1b187afa77dbe4200bd6cc2c2c37d5b7303760be4b6dcfdf38c3a11da426051 |
|
MD5 | 61551f3a9cb3dfd047d4cf27ce65d3e3 |
|
BLAKE2b-256 | 883d4d9829879b5540903e60a986b670449be610c8b7f399f5dd8f34254f272c |