Seal is a release-management tool, written in Rust. It keeps version updates, changelog generation, release branches, commits, and release notes in one CLI.
Warning
Seal is in alpha and is not yet ready for production use. Expect missing features and breaking changes.
- Update versions in plain-text files, TOML fields, and files selected by glob patterns.
- Preview every file change before applying it, or use
--dry-runin automation. - Create release branches and commits, run pre-commit commands, and push the result.
- Build changelogs from merged GitHub pull requests, grouped by labels.
- Produce JSON release metadata from the latest changelog section.
Install Seal with the standalone installer for your platform:
# macOS and Linux
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/MatthewMckee4/seal/releases/download/0.0.1-alpha.8/seal-installer.sh | sh# Windows
powershell -ExecutionPolicy Bypass -c "irm https://github.com/MatthewMckee4/seal/releases/download/0.0.1-alpha.8/seal-installer.ps1 | iex"Prebuilt archives and checksums are available from the GitHub Releases. Seal is not currently published to crates.io or other package registries.
Create seal.toml in your project root:
[release]
current-version = "0.1.0"
version-files = [
{ path = "Cargo.toml", format = "toml", field = "package.version" },
]Validate the configuration and preview a patch release:
seal validate config
seal bump patch --dry-runRun seal bump patch to review and apply the changes. See the
getting-started guide for branch,
commit, and push configuration.
The full documentation is available at matthewmckee4.github.io/seal.
Contributions are welcome. See CONTRIBUTING.md for setup and development instructions.
Use GitHub issues for bug reports and feature requests.
Report security issues privately; see SECURITY.md.
Seal takes inspiration from the Rust tooling built by the Astral team, particularly uv and Ruff.
Seal is licensed under the MIT License.
The repository also includes Astral's
MIT license because
some implementation ideas and snippets are derived from uv.