Skip to main content

Zero-config changelog generator with monorepo support.

Project description

changenog

GitHub Tag Crates.io Version NPM Version PyPI Version GitHub Actions Test Workflow Status

Zero-config changelog generator with monorepo support.

Parses Git tags and commits since last entry, restricts them by current working directory, and adds any missing entries to the changelog.

See this repo's changelog for example output.

Usage

Rust

https://crates.io/crates/changenog

cargo install changenog
changenog

JS

https://www.npmjs.com/package/changenog

pnpm i -D changenog
{
  "scripts": {
    "changenog": "changenog"
  }
}

Python

https://pypi.org/project/changenog/

pip install changenog
changenog

Manual

Binaries are available on the releases page.

Supported Platforms

Platform Architecture Notes
Linux x86_64 Tested on Ubuntu latest
Linux aarch64 Tested on Ubuntu 22.04
MacOS x86_64 Tested on MacOS 13.0
MacOS aarch64 Tested on MacOS latest
Windows x86_64 Tested on Windows 11
Windows aarch64 Untested ⚠️

Options

Option Type Description
--overwrite boolean overwrite existing changelog
--root string root dir relative to the current working directory. default: current working directory
--output string output of the generated changelog. one of ['file', 'stdout']. default: 'file'
--no-links boolean disable links
--remote-url string remote URL to use for links. default: origin
--max-entries number maximum number of entries to process. default: '100'
--tag-filter-regex regex regex pattern(s) that each tag must match to be included
--commit-filter-regex regex regex pattern(s) that each commit must match to be included
--commit-filter-preset string filter preset(s) to use. one of ['angular', 'angular-readme-only-docs', 'no-changelog', 'no-semver']

Filters

Multiple --tag-filter-regex, --commit-filter-preset and --commit-filter-regex options can be passed. A tag/commit must match all filters to be included.

For example:

changenog --commit-filter-preset=angular --commit-filter-regex='^(?!.*changelog).*$'

Would filter:

✅
docs(readme): update usage
feat: add new feature
fix: fix bug
perf: improve performance

❌
chore: update dependencies
ci(release): release version
docs(changelog): v0.1.0
my commit message

Presets

  • angular - include only feat, fix, perf, and docs commits that match the Angular commit message convention
  • angular-readme-only-docs - exclude Angular docs commits unless they have a scope of readme
  • no-changelog - exclude all commits with changelog in the subject
  • no-semver - exclude all commits that match the semver format, specifically, this regex

Entry Strategy

This is the general strategy for building and filtering entries:

  1. All entries are processed, restricted by --max-entries
  2. Commits are filtered to only include those with changes in --root
  3. If <tag a>..<tag b> have no commits, the tags are made part of the same entry
  4. Commit filters are applied
  5. If an entry has no commits, the entry is excluded
  6. Tag filters are applied
  7. If an entry has no tags, all commits are merged into the next entry

Monorepo Support

If the git root is in a parent directory, changenog will filter commits to only include those that have changes within the subdirectory.

To include only the tags that apply to that subdirectory, you can provide a --tag-filter-regex option, e.g. --tag-filter-regex='my-package/.*'. This is assuming you have a convention for tagging that scopes to that subdirectory.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

changenog-2.0.4-py3-none-win_arm64.whl (593.0 kB view details)

Uploaded Python 3Windows ARM64

changenog-2.0.4-py3-none-win_amd64.whl (638.7 kB view details)

Uploaded Python 3Windows x86-64

changenog-2.0.4-py3-none-manylinux_2_39_x86_64.whl (745.5 kB view details)

Uploaded Python 3manylinux: glibc 2.39+ x86-64

changenog-2.0.4-py3-none-manylinux_2_39_aarch64.whl (699.7 kB view details)

Uploaded Python 3manylinux: glibc 2.39+ ARM64

changenog-2.0.4-py3-none-macosx_11_0_arm64.whl (646.6 kB view details)

Uploaded Python 3macOS 11.0+ ARM64

changenog-2.0.4-py3-none-macosx_10_12_x86_64.whl (699.9 kB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file changenog-2.0.4-py3-none-win_arm64.whl.

File metadata

  • Download URL: changenog-2.0.4-py3-none-win_arm64.whl
  • Upload date:
  • Size: 593.0 kB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for changenog-2.0.4-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 61f8bafee299d844946c5fabaa430363b8c3a817e863b09f7c0d6518ba78f032
MD5 c06295dcce795a912bcdba8279896337
BLAKE2b-256 6178c729c3e1e41a8522a92614aa07bd378f9f6c8657317cb3bd7d71a44799bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for changenog-2.0.4-py3-none-win_arm64.whl:

Publisher: release.yml on Daniel-Knights/changenog

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file changenog-2.0.4-py3-none-win_amd64.whl.

File metadata

  • Download URL: changenog-2.0.4-py3-none-win_amd64.whl
  • Upload date:
  • Size: 638.7 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for changenog-2.0.4-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 8d102ed0a9bb901d691642795e1989af9d3f7d7ed293d351f760f511ffa92dda
MD5 99cbab38a9f73a90687ff4c6c72b1b94
BLAKE2b-256 16dd1c71ef9ccd382d511db7c6698f4809de891acb6eeb68aabe98e4eadefc32

See more details on using hashes here.

Provenance

The following attestation bundles were made for changenog-2.0.4-py3-none-win_amd64.whl:

Publisher: release.yml on Daniel-Knights/changenog

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file changenog-2.0.4-py3-none-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for changenog-2.0.4-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 123eac56489afdcd5fb5676809cb51e82c5e2df517f8bdc8e45d52ac58604dbb
MD5 a91efa50cb83885884f29451eaa91077
BLAKE2b-256 654b45e6a842874a36065c32736a2ddb208f45a9ae327e69475fda656b0e86c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for changenog-2.0.4-py3-none-manylinux_2_39_x86_64.whl:

Publisher: release.yml on Daniel-Knights/changenog

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file changenog-2.0.4-py3-none-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for changenog-2.0.4-py3-none-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 4c29fab031aca114c4af2c2c42ee51c7349c7530ec394a46d637a47fb910fc8a
MD5 2410b53bd8d7b1ec6f37848e69a5459a
BLAKE2b-256 93df57f9e8a04ccfbeab2703dee344347200c6bdb6e073e596183fcea00d99a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for changenog-2.0.4-py3-none-manylinux_2_39_aarch64.whl:

Publisher: release.yml on Daniel-Knights/changenog

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file changenog-2.0.4-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for changenog-2.0.4-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e291d5ffd8d7c535f9d4ab07807379e4da5ae0bd918c0309fae3b6605a3bab32
MD5 35ab642ef5e781379a3798d4d79708c7
BLAKE2b-256 240bfe2315056f71a247e0be2d439a424847385ed477b5c427bdde5a67d864ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for changenog-2.0.4-py3-none-macosx_11_0_arm64.whl:

Publisher: release.yml on Daniel-Knights/changenog

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file changenog-2.0.4-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for changenog-2.0.4-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6238087de5afad3b65afc707f898bd2a936ba982cf5dba418f83e7f8b6490a20
MD5 eea24a2d35cbf893bf00b7068f371dd3
BLAKE2b-256 82c7e98a99b3bff3d495ba0ec4b132cf195d98944102d5bcb987250b465397bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for changenog-2.0.4-py3-none-macosx_10_12_x86_64.whl:

Publisher: release.yml on Daniel-Knights/changenog

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page