#changelog-generator #changelog #release-note #tool #release

nightly bin+lib changen

Helper program to manage a changelog

3 releases

0.1.10 Sep 5, 2024
0.1.9 Aug 27, 2024
0.1.9-rc8 Aug 24, 2024

#710 in Development tools

GPL-3.0 license

100KB
3K SLoC

Changelog generator

Features

  • feature-rich changelog format
  • low-config changelog management
  • customizable

See in action

This project use changen to maintain its changelog, using github action

Getting started

  1. Create the changelog

    If you don't have a changelog file yet, you can use changen new.

  2. Validate your changelog syntax

    If you already have a changelog file, you can see if its syntax get accepted by running changen validate.

  3. Generate release notes

    When you know your changelog is valid, you can use changen generate to generate a release-note about the last commit.

    It can generate release notes

    • between two tags/commits
    • for a specific commit/tag
    • for a milestone

    By default, it will generate release notes from the last release in the changelog to HEAD. It will get the list of commits using a git log command, and try to match them against remote PRs if it have the necessary infos.

  4. Make a new release

    To make a new release, use changen release --version 1.0.0.

The full API reference can be found here (automatically generated).

Commit syntax

fix(project_a): Fix a nasty bug <=> commit-type(scope): commit-message

Advanced use

Ignore commit

Currently, you can write theses patterns anywhere in the commit message:

  • (skip changelog)
  • (ignore changelog)
  • !changelog
  • !log

Map commit type to section(ex: ### Fixed) in the changelog

The default map can be seen here. Note than the order will define in witch order the section will appears in the log file. Use with changen generate --map path/to/map.json

Changelog custom path

changen generate --file path/to/CHANGELOG.md

Acknowledgement

  • pom for being an awesome parser. Without this parser, i would have probably drop this project! The parser of the changelog is less than 200 lines!

  • Iced, for its well maintained changelog

  • Gitoxide changelog because its use a similar tool (quit complex and more powerful)

  • clap

Dependencies

~10–21MB
~312K SLoC