On this page
Manage structured JSONL changelog entries: add per-commit entries, validate them against schema and coverage, and generate CHANGELOG.md.
#rlsbl changelog
Structured changelog management using JSONL entries. Add and generate CHANGELOG.md from per-commit changelog entries stored in unreleased.jsonl for precise, auditable release notes.
#changelog add
Append a structured changelog entry to the project's unreleased.jsonl file. Each entry includes a human-readable description, an entry type (feature, fix, or breaking), and optional commit hashes linking it to specific changes. The file is auto-committed unless --no-commit is passed. Use --no-user-facing to mark internal changes that should not appear in the published changelog.
#Flags
| Name | Short | Type | Default | Env | Description |
|---|---|---|---|---|---|
--commits | str | Comma-separated list of commit hashes to associate with this changelog entry | |||
--description | str | Human-readable description of the change, shown in the generated CHANGELOG.md | |||
--type | str | Classification of the change: feature, fix, or breaking (required if user-facing) | |||
--no-user-facing | bool | Mark this entry as internal (excluded from generated CHANGELOG.md output) | |||
--no-commit | bool | Append to unreleased.jsonl without auto-committing the change | |||
--allow-batch | bool | Auto-create an exclusion if this entry exceeds the commit batch limit |
#changelog generate
Compile all validated JSONL changelog entries into a formatted CHANGELOG.md file. Groups entries by type (features, fixes, breaking changes) under the appropriate version heading, preserving existing changelog content for previous releases. Use --dry-run to preview the generated Markdown output without writing to disk, which is useful for reviewing before committing.
#Flags
| Name | Short | Type | Default | Env | Description |
|---|---|---|---|---|---|
--no-commit | bool | Write generated CHANGELOG.md and per-version .md files without auto-committing |
#changelog amend
Append a changelog entry to a released version's JSONL file. Temporarily unlocks the read-only file, appends the entry, re-locks it, regenerates CHANGELOG.md, and syncs GitHub Release notes. Use --no-resolve to skip hash validation for old or amended commits.
#Flags
| Name | Short | Type | Default | Env | Description |
|---|---|---|---|---|---|
--version | str | Semver of the already-released version whose JSONL to amend (e.g. 0.39.0) | |||
--commits | str | Comma-separated commit hashes to associate with the amended changelog entry | |||
--description | str | Human-readable description for the amended entry in CHANGELOG.md | |||
--type | str | Classification for the amended entry: feature, fix, or breaking (required if user-facing) | |||
--no-user-facing | bool | Mark the amended entry as internal (excluded from CHANGELOG.md output) | |||
--no-resolve | bool | Skip git rev-parse hash validation for old or rewritten commits |
#changelog edit
Modify an existing changelog entry in unreleased or released JSONL files. Finds the entry by commit hash, applies field changes (type, description, user-facing status), and rewrites the file atomically. For released files, temporarily unlocks the read-only file, regenerates CHANGELOG.md, and syncs GitHub Release notes.
#Flags
| Name | Short | Type | Default | Env | Description |
|---|---|---|---|---|---|
--commits | str | Comma-separated commit hashes identifying the target entry | |||
--type | str | New type value (feature, fix, breaking); also disambiguates multi-entry commits | |||
--description | str | Replacement description text for the matched changelog entry | |||
--no-user-facing | bool | Set user_facing=false on the matched entry, clearing its description and type | |||
--user-facing | bool | Set user_facing=true (requires --description and --type if entry doesn't already have them) | |||
--no-commit | bool | Write the edited JSONL file without auto-committing the change |