Type object
File match releasaurus.toml
Schema URL https://catalog.lintel.tools/schemas/schemastore/releasaurus-config/latest.json
Source https://raw.githubusercontent.com/robgonnella/releasaurus/refs/heads/main/schema/schema.json

Validate with Lintel

npx @lintel/lintel check
Type: object

Configuration properties for releasaurus.toml

Properties

base_branch string | null

The base branch to target for release PRs, tagging, and releases defaults to default_branch for repository

Default: null
first_release_search_depth integer

Maximum number of commits to search for the first release when no tags exist

Default: 400
format=uint64min=0
separate_pull_requests boolean

Generates different release PRs for each package defined in config

Default: false
prerelease object

Configurable prerelease settings for both global and package scopes

2 nested properties
suffix string | null

Prerelease identifier (e.g., "alpha", "beta", "rc", "SNAPSHOT")

Default: null
strategy string | string

Determines how prerelease identifiers should be appended to versions

auto_start_next boolean | null

Global config to auto start next release for all packages. Packages can override this configuration

Default: null
breaking_always_increment_major boolean

Always increments major version on breaking commits

Default: true
features_always_increment_minor boolean

Always increments minor version on feature commits

Default: true
custom_major_increment_regex string | null

Custom regex pattern matched against commit messages to trigger a major version bump. This is additive — breaking change commits always trigger major bumps regardless of this setting. In TOML double-quoted strings, escape backslashes (e.g. "\\[BREAKING\\]" matches [BREAKING]).

Default: null
custom_minor_increment_regex string | null

Custom regex pattern matched against commit messages to trigger a minor version bump. This is additive — feat: commits always trigger minor bumps regardless of this setting. In TOML double-quoted strings, escape backslashes (e.g. "\\[FEATURE\\]" matches [FEATURE]).

Default: null
changelog object

Changelog configuration (applies to all packages)

10 nested properties
body string

Main changelog body template.

Default: "# [{{ version }}]{% if tag_compare_link %}({{ tag_compare_link }}){% else %}({{ link }}){% endif %} - {{ timestamp | date(format="%Y-%m-%d") }} {% for group, commits in commits | filter(attribute="merge_commit", value=false) | sort(attribute="group") | group_by(attribute="group") %} ### {{ group | striptags | trim }} {% for commit in commits %} {% if commit.breaking -%} {% if commit.scope %}_({{ commit.scope }})_ {% endif -%}[**breaking**]: {{ commit.title }} [_({{ commit.short_id }})_]({{ commit.link }}){% if include_author %} ({{ commit.author_name }}){% endif %} {% if commit.body -%} > {{ commit.body }} {% endif -%} {% if commit.breaking_description -%} > {{ commit.breaking_description }} {% endif -%} {% else -%} - {% if commit.scope %}_({{ commit.scope }})_ {% endif %}{{ commit.title }} [_({{ commit.short_id }})_]({{ commit.link }}){% if include_author %} ({{ commit.author_name }}){% endif %} {% endif -%} {% endfor %} {% endfor %} "
skip_ci boolean

Skips including ci commits in changelog

Default: false
skip_chore boolean

Skips including ci commits in changelog

Default: false
skip_miscellaneous boolean

Skips including miscellaneous commits in changelog

Default: false
skip_merge_commits boolean

Skips including merge commits in changelog

Default: true
skip_release_commits boolean

Skips including release commits in changelog

Default: true
skip_shas array | null

Skips targeted commit shas (or prefixes) when generating next version and changelog. Each value matches any commit whose SHA starts with the provided value

Default: null
reword array | null

Rewords commit messages for targeted shas when generated changelog. Each SHA can be a prefix - matches any commit whose SHA starts with the provided value

Default: null
include_author boolean

Includes commit author name in default body template

Default: false
aggregate_prereleases boolean

Aggregates changelogs from prior prereleases when graduating

Default: false
package PackageConfig[]

Packages to manage in this repository (supports monorepos)

Default:
[
  {
    "name": "",
    "workspace_root": ".",
    "path": ".",
    "release_type": null,
    "tag_prefix": null,
    "sub_packages": null,
    "prerelease": null,
    "auto_start_next": null,
    "additional_paths": null,
    "additional_manifest_files": null,
    "breaking_always_increment_major": null,
    "features_always_increment_minor": null,
    "custom_major_increment_regex": null,
    "custom_minor_increment_regex": null
  }
]

Definitions

PrereleaseConfig object

Configurable prerelease settings for both global and package scopes

suffix string | null

Prerelease identifier (e.g., "alpha", "beta", "rc", "SNAPSHOT")

Default: null
strategy string | string

Determines how prerelease identifiers should be appended to versions

PrereleaseStrategy string | string

Determines how prerelease identifiers should be appended to versions

ChangelogConfig object

Changelog configuration (applies to all packages)

body string

Main changelog body template.

Default: "# [{{ version }}]{% if tag_compare_link %}({{ tag_compare_link }}){% else %}({{ link }}){% endif %} - {{ timestamp | date(format="%Y-%m-%d") }} {% for group, commits in commits | filter(attribute="merge_commit", value=false) | sort(attribute="group") | group_by(attribute="group") %} ### {{ group | striptags | trim }} {% for commit in commits %} {% if commit.breaking -%} {% if commit.scope %}_({{ commit.scope }})_ {% endif -%}[**breaking**]: {{ commit.title }} [_({{ commit.short_id }})_]({{ commit.link }}){% if include_author %} ({{ commit.author_name }}){% endif %} {% if commit.body -%} > {{ commit.body }} {% endif -%} {% if commit.breaking_description -%} > {{ commit.breaking_description }} {% endif -%} {% else -%} - {% if commit.scope %}_({{ commit.scope }})_ {% endif %}{{ commit.title }} [_({{ commit.short_id }})_]({{ commit.link }}){% if include_author %} ({{ commit.author_name }}){% endif %} {% endif -%} {% endfor %} {% endfor %} "
skip_ci boolean

Skips including ci commits in changelog

Default: false
skip_chore boolean

Skips including ci commits in changelog

Default: false
skip_miscellaneous boolean

Skips including miscellaneous commits in changelog

Default: false
skip_merge_commits boolean

Skips including merge commits in changelog

Default: true
skip_release_commits boolean

Skips including release commits in changelog

Default: true
skip_shas array | null

Skips targeted commit shas (or prefixes) when generating next version and changelog. Each value matches any commit whose SHA starts with the provided value

Default: null
reword array | null

Rewords commit messages for targeted shas when generated changelog. Each SHA can be a prefix - matches any commit whose SHA starts with the provided value

Default: null
include_author boolean

Includes commit author name in default body template

Default: false
aggregate_prereleases boolean

Aggregates changelogs from prior prereleases when graduating

Default: false
RewordedCommit object

Rewords messages in changelog for targeted commit shas

sha string required

Sha (or prefix) of the commit to reword. Matches any commit whose SHA starts with this value

message string required

The new message to display in changelog

PackageConfig object

Package configuration for multi-package repositories and monorepos

name string

Name for this package (default derived from path if not provided). For proper manifest version file updates this should match the canonical name field in the release_type manifest file. i.e. name = "..." in Cargo.toml or "name": "..." in package.json

Default: ""
workspace_root string

Path to the workspace root directory for this package relative to the repository root

Default: "."
path string

Path to package directory relative to workspace_root

Default: "."
release_type ReleaseType | null

[ReleaseType] type for determining which version files to update

Default: null
tag_prefix string | null

Git tag prefix for this package (e.g., "v" or "api-v")

Default: null
sub_packages array | null

Groups sub-packages under a single release. Each will share changelog, tag, and release, but will receive independent manifest version updates according to their type

Default: null
prerelease PrereleaseConfig | null

Optional prerelease configuration that overrides global settings

Default: null
auto_start_next boolean | null

Auto starts next release for this package by performing a patch version update to version files and pushing a "chore" commit to the base_branch

Default: null
additional_paths array | null

Additional directory paths to include commits from

Default: null
additional_manifest_files array | null

Additional paths to generic version manifest files to update. Paths must be relative to the package path. Accepts either simple string paths or full config objects with custom regex patterns.

Default: null
breaking_always_increment_major boolean | null

Always increments major version on breaking commits

Default: null
features_always_increment_minor boolean | null

Always increments minor version on feature commits

Default: null
custom_major_increment_regex string | null

Custom regex pattern matched against commit messages to trigger a major version bump. This is additive — breaking change commits always trigger major bumps regardless of this setting. In TOML double-quoted strings, escape backslashes (e.g. "\\[BREAKING\\]" matches [BREAKING]).

Default: null
custom_minor_increment_regex string | null

Custom regex pattern matched against commit messages to trigger a minor version bump. This is additive — feat: commits always trigger minor bumps regardless of this setting. In TOML double-quoted strings, escape backslashes (e.g. "\\[FEATURE\\]" matches [FEATURE]).

Default: null
ReleaseType string

Supported release types for updating package manifest files

SubPackage object

Sub-package definition allowing grouping of packages under a parent package configuration. Sub-packages share changelog, tag, and release with the parent package definition but receive independent manifest version file updates according to their defined release type

name string required

Name for this sub-package (default derived from path if not provided). For proper manifest version file updates this should match the canonical name field in the release_type manifest file. i.e. name = "..." in Cargo.toml or "name": "..." in package.json

path string required

Path to the subpackage directory relative to the workspace_root of the parent package

release_type ReleaseType | null

[ReleaseType] type for determining which version files to update

AdditionalManifestSpec string | AdditionalManifest

Additional manifest specification that accepts either a string path or full config. Allows users to specify version files in a concise way while still supporting custom regex patterns when needed.

Examples

Simple string path (uses default GENERIC_VERSION_REGEX):

additional_manifest_files = ["VERSION", "README.md"]

Full config with custom regex:

additional_manifest_files = [
    { path = "VERSION.txt", version_regex = "version:\\s*(\\d+\\.\\d+\\.\\d+)" }
]
AdditionalManifest object

Additional manifest configuration for version updates on arbitrary files. This is the internal representation after conversion from AdditionalManifestSpec.

path string required

The path to the manifest file relative to package path

version_regex string | null

The regex to use to match and replace versions default: (?.version"?:?\s=?\s*['"]?)(?\d.\d.\d-?.?)(?['",].)?$