A fast linter for changelogs in the Keep a Changelog format.
notabene provides the nb
binary.
cargo install --features=cli notabene
nb lint [FILE]
By default, nb
tries to read CHANGELOG.md
in the current directory.
Use --output-format
to change the output format of diagnostics.
Use --select
and --ignore
to select or ignore rule codes, respectively.
Ignored rules have precedence over selected rules.
You can configure nb
using an nb.toml
or pyproject.toml
file.
If you use an nb.toml
file, configure the linter with a lint
section:
[lint]
ignore = ["E003"]
If you use a pyproject.toml
file, use [tool.nb.lint]
instead.
Select these rules.
Ignore these rules.
Use this output format.
Choose from full
, short
, json
, or jsonl
.
The title is missing.
There is a duplicate h1
in the document.
The document does not have an unreleased section.
There is more than one unreleased section heading in the document.
The unreleased section is not the first section in the document.
The title is not plain text.
The h2
is not a valid unreleased or release section heading.
A section is unexpectedly empty (e.g. a release with no changes).
The change section heading is not a known change type.
There is more than one change section with the same change type.
The release is not in reverse chronological order.
There is more than one release for this version in the document.
The release is missing a date
The date is not in ISO 8601 format.
The yanked token does not match [YANKED]
.
The target reference does not exist.