releasio init¶
Interactive configuration wizard for setting up releasio.
Usage¶
Description¶
The init command launches a beautiful, interactive configuration wizard that guides you through setting up releasio for your project. It auto-detects your project settings and creates the optimal configuration.
Interactive Wizard¶
The wizard offers two setup modes:
Quick Mode (Recommended)¶
6 steps with sensible defaults for most projects:
- Setup Mode - Choose quick or comprehensive
- Basic Settings - Branch, tag prefix
- Publishing - Build tool, PyPI settings
- Changelog - Enable/disable, path, PR-based
- GitHub - Owner/repo detection, workflow creation
- Output - File location, preview, confirm
Comprehensive Mode¶
9 sections for full customization:
- Setup Mode - Choose mode
- Basic Settings - Branch, tag prefix, initial version
- Commits - Types for major/minor/patch, Gitmoji support
- Changelog - Detailed options, authors, first-time contributors
- GitHub - Full GitHub integration settings
- Release Notes - Author attribution, contributors, installation, emojis, title format
- Publishing - Tool, registry, trusted publishing
- Advanced - Hooks, monorepo, security, release channels
- Output - File choice, preview, workflows
Smart Auto-Detection¶
The wizard automatically detects:
| Setting | Detection Method |
|---|---|
| Build tool | Lock files (uv.lock, poetry.lock, pdm.lock) |
| GitHub remote | Git remote URL |
| Default branch | Current branch or main/master existence |
| Version | pyproject.toml project version |
| Squash merge | Commit message patterns |
| Monorepo | packages/ directory structure |
Arguments¶
| Argument | Type | Default | Description |
|---|---|---|---|
PATH |
Path | . |
Project directory |
Options¶
| Option | Description |
|---|---|
--force |
Overwrite existing configuration |
--help |
Show help message |
Example Session¶
╭────────────────────── Setup Wizard ──────────────────────╮
│ Welcome to releasio! │
│ │
│ This wizard will help you set up automated releases │
│ for your project. │
╰──────────────────────────────────────────────────────────╯
─────────────────── Setup Mode [1/6] ───────────────────────
Choose how detailed you want the configuration to be
quick - Sensible defaults, minimal questions (recommended)
comprehensive - Full customization of all options
Choose setup mode [quick/comprehensive] (quick):
Output Options¶
The wizard can create configuration in three locations:
| Output | File | Notes |
|---|---|---|
pyproject |
pyproject.toml |
Under [tool.releasio] section |
dotfile |
.releasio.toml |
Hidden file (highest priority) |
visible |
releasio.toml |
Visible config file |
Generated Configuration¶
Example output for quick mode:
[tool.releasio]
default_branch = "main"
[tool.releasio.version]
tag_prefix = "v"
[tool.releasio.commits]
types_minor = ["feat"]
types_patch = ["fix", "perf"]
[tool.releasio.changelog]
path = "CHANGELOG.md"
[tool.releasio.github]
owner = "myorg"
repo = "myproject"
release_pr_branch = "releasio/release"
release_pr_labels = ["release"]
[tool.releasio.publish]
enabled = true
tool = "uv"
GitHub Workflows¶
The wizard can generate GitHub Actions workflows:
Release Workflow¶
Creates .github/workflows/release.yml:
name: Release
on:
push:
branches: [main]
permissions:
contents: write
pull-requests: write
id-token: write
jobs:
release-pr:
if: "!startsWith(github.event.head_commit.message, 'chore(release):')"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: astral-sh/setup-uv@v4
- run: uv sync --all-extras
- run: uv run releasio release-pr --execute
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
release:
if: startsWith(github.event.head_commit.message, 'chore(release):')
runs-on: ubuntu-latest
environment: release
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: astral-sh/setup-uv@v4
- run: uv sync --all-extras
- run: uv run releasio release --execute
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PR Title Validation Workflow¶
Optionally creates .github/workflows/pr-title.yml for conventional commit enforcement.
When to Use¶
Use init when you want to:
- Set up releasio for a new project
- Customize version bumping rules
- Change changelog settings
- Configure GitHub release options
- Generate GitHub Actions workflows
Zero Config
releasio works without any configuration. Only run init if you need
to customize the defaults or want guided setup.