Back to home page

Keep A Changelog Manager

Easily maintain your project changelog!

Written inPowerShell 5.1
Checksum (SHA-256)f3619327e1efc2e995903a0a05c24f2058cd5d6d9d48d76e02851f8a0fff78c6
NameChangelogger
Version25.0.0
Stage60.50 Published
Released2025-07-02 00:00:00

A CLI tool for managing Keep A Changelog changelogs

ChangeLogger is a PowerShell module and CLI tool for managing changelogs in a standardized format. It uses the "Keep a Changelog" format and provides a set of functions and classes to create, manage, and manipulate changelogs and changes.

You can use the changelog command to interact with the changelog, including adding changes, creating versions, and lising both of those.

How to use

First, you need to import the module:

Import-Module ChangeLogger

Then, you can start using the CLI tool:

changelog <command> [<options>]

Available commands

Initialize a new changelog

changelog init

This command initializes (created) a new changelog file in the current directory. It creates a CHANGELOG.md file with some default content.

You can edit the title and description of the changelog file manually and the script will automatically update the file when you add changes or versions.

Add a change

changelog add <type> <description> [--version <version>]

or, when using standard Keep a Changelog types:

changelog <type> <description> [--version <version>]

If you use standard types, the command will automatically recognize the type and add it to the changelog. Otherwise, you have to use the add command to specify the type. A warning will be shown if the type is not a standard type:

WARNING: Change type '{type}' is not a standard type. Standard types are: Added, Changed, Deprecated, Removed, Fixed, Security

Remove a change

changelog remove <type> <description> [--version <version>]

This command removes a change from the changelog. It searches for the change by type and description, and removes it from the changelog file.

List changes

changelog list [<version>]

This will list all changes in a version. If no version is specified, it will list all changes in the 'Unreleased' section.

Release a version

changelog release <version>

Releasing a version will show the version number in the changelog as well as the release date. All changes in the 'Unreleased' section will be moved to the new version section.

List all versions

changelog versions

This will list all versions in the changelog, including the 'Unreleased' section.

Yank a version

changelog yank <version>

Yanking a version will mark it as yanked in the changelog. This is useful for versions that should not be used anymore, for example, if they contain a critical bug.

Unyank a version

changelog unyank <version>

Undoes the yanking of a version.

Show help

changelog help

This command shows the help message for the CLI tool, including all available commands and options.

Example usage

>>> changelog init

>>> changelog Added "README.md file"

>>> changelog add Breaking "The sky is no longer blue"
WARNING: Change type 'Breaking' is not a standard type. Standard types are: Added, Changed, Deprecated, Removed, Fixed, Security

>>> changelog list
Changes for version 'Unreleased' (2):
    [Added] README.md file
    [Breaking] The sky is no longer blue

>>> changelog release 1.0.0
Released version '1.0.0'.

>>> changelog versions
Available versions (1):
    [1.0.0] - 2025-07-04

The CHANGELOG.md file will look like this:

# 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).

## [1.0.0] - 2025-07-04

### Added

- README.md file

### Breaking

- The sky is no longer blue