kraken releases a project in one command: it bumps the version, commits, tags and pushes. It is for developers who release JavaScript, Deno, Rust, Python, PHP, Dart, Flutter, Gradle, .NET, Xcode, XcodeGen, browser extension or Go projects from their own terminal and want the version files, the lock file and the tag to agree. kraken is made by Igor Churmeev.
- Bumps the version in
package.json,Cargo.toml,pyproject.toml,deno.json,jsr.json,gradle.properties,pubspec.yaml,composer.json, a browser extension'smanifest.json, MSBuild, Xcode and XcodeGen projects orVERSION, or works with git tags alone - Changes only the version string and updates the lock file (
package-lock.json,Cargo.lock,uv.lock,composer.lock) with no network - Suggests patch, minor or major from the conventional commits since the latest final release;
kraken auto --yestakes the suggestion in scripts - Releases pre-releases such as
1.4.0-rc.1with--pre alpha|beta|rc kraken changelogcreatesCHANGELOG.mdwith the past releases, and every release then adds its section, with compare links on GitHub, GitLab and Codeberg;--github-releasemakes a GitHub release with that section as notes- Checks the repository and origin's tags first, commits, tags and pushes in one atomic push, puts HEAD and the files back if anything fails before the tag, and
kraken undoremoves a release that is not pushed - A full-screen panel for releases by hand,
--yesand--dry-runfor scripts, and completions for bash, zsh and fish
brew install ingvarch/tap/kraken
kraken
╭ kraken ──────────────────────────────────────────────────╮
│ │
│ Version 1.4.2 from package.json │
│ Branch main → origin/main │
│ Changes 2 features, 1 fix since v1.4.2 │
│ │
│ Next version │
│ patch 1.4.3 bug fixes │
│ ❯ minor 1.5.0 new features │
│ major 2.0.0 breaking changes │
│ │
├──────────────────────────────────────────────────────────┤
│ ↑↓ choose enter continue esc quit │
╰──────────────────────────────────────────────────────────╯
Other ways to install (cargo, .deb and .rpm packages, archives), the commands and the flags are in docs/usage.md.
You need Rust stable and git, see docs/development.md.
git clone https://github.com/ingvarch/kraken
cd kraken
cargo test
cargo run -- patch --dry-run
- Usage: install, commands and flags, the panel, scripts and CI
- How it works: checks, version files, lock files, changelog, commit, tag, push, rollback, undo
- Limits: one version per repository, pre-release labels, files that take numbers only, the GitHub release
- Development: prerequisites, checks, project structure
- Releasing kraken: the release workflow and its secrets
MIT, see LICENSE.
Bug reports and pull requests are welcome, see CONTRIBUTING.md.