Files
k3nny a14c3f1181
ci / vet, staticcheck, test, build (push) Successful in 3m2s
docs / Build and deploy docs (push) Failing after 13s
release / Build and publish release (push) Successful in 4m29s
feat(pyproject): release v1.7.0 — Python pyproject.toml version bump
Add internal/pyproject package with ReadVersion and WriteVersion for
pyproject.toml files. Reads [project].version (PEP 621) first, then
falls back to [tool.poetry].version. Section boundaries are detected
via TOML's rule that headers always start at the beginning of a line
(\n[ pattern), so inline arrays with [ characters don't interfere.

Config follows the established multi-value pattern:
- python.pyproject_toml: single path (opt-in, no default)
- python.pyproject_tomls: list for monorepos (overrides single)
- --pyproject flag overrides pyproject_toml and clears pyproject_tomls

100% per-package statement coverage maintained across all 14 packages;
FuzzReadVersion and FuzzWriteVersion added per fuzzing guidelines.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-12 00:22:49 +02:00

2.6 KiB

title, weight
title weight
CLI Reference 20

Common workflows

# Scaffold a default .releaser.yml
releaser --init

# Preview next version (no side effects)
releaser --dry-run

# Full release: bump versions, commit, tag, push, create release
releaser

# Commit and tag locally — skip push and release creation
releaser --no-push

# Push commit and tag but skip creating the release
releaser --no-release

# Update files but stop before committing
releaser --no-commit
# ... review changes, then commit manually and re-run:
releaser --tag-only

# Verbose mode: show config sources, commit analysis, version decision
releaser --verbose --dry-run

Flags

Flag Default Description
--dry-run false Print next version and exit without making any changes
--branch <name> auto-detected Override branch name (useful in detached HEAD / CI)
--branch-pattern <regex> ^(?:.*/)?release/(\d+)\.(\d+)$ Override branch pattern (two capture groups: major, minor)
--tag-prefix <prefix> "" Prefix for version tags (e.g. vv1.2.3)
--pom <path> pom.xml Path to pom.xml relative to repo root
--gradle <path> Override gradle.build_file from config
--pyproject <path> Override python.pyproject_toml from config
--changelog-file <path> CHANGELOG.md Path to changelog file
--release-env-file <path> release.env Path for dotenv artifact; pass "" to disable
--no-commit false Update version files but stop before committing
--no-push false Commit and tag locally, skip push and release
--no-release false Push branch and tag but skip release creation
--tag-only false Skip version file updates — tag HEAD and push
--init false Scaffold a default .releaser.yml and exit
--verbose false Print config table, commit analysis, and version decision

Exit codes

Code Meaning
0 Success
1 Error (config, git, API, etc.)
2 No releasable commits found — nothing to do

Version bump rules

By default all releasable commits bump the patch component (minor is pinned to the branch). Override per commit type via git.bump_rules in .releaser.yml:

Commit type Default Configurable via bump_rules
fix: patch fix: "minor" to bump minor
feat: patch feat: "minor" to bump minor
feat!: / BREAKING CHANGE patch breaking: "minor" to bump minor
chore:, docs:, etc. none
unparseable message none non-strict: silently ignored