This document describes the release process for KeepKey Bitcoin-Only Vault.
# Method 1: Create release branch and update version in one command
make release-branch VERSION=2.2.6
# Method 2: Auto-increment version and create branch
make release-patch-branch # For patch release (2.2.5 -> 2.2.6)
make release-minor-branch # For minor release (2.2.5 -> 2.3.0)
make release-major-branch # For major release (2.2.5 -> 3.0.0)# Create release branch and update all version files
make release-branch VERSION=2.2.6This command will:
- Create a new branch named
release-2.2.6 - Update version in all relevant files:
VERSIONprojects/vault-v2/package.jsonprojects/vault-v2/src-tauri/tauri.conf.jsonprojects/vault-v2/src-tauri/Cargo.tomlprojects/keepkey-rust/Cargo.tomlprojects/vault-v2/VERSIONprojects/keepkey-rust/VERSION- Lock files (
package-lock.json,Cargo.lock)
git diff# Build the application
make vault-build
# Run tests
make test-keepkey-rustgit add .
git commit -m "chore: release v2.2.6"git push -u origin release-2.2.6Create a PR from release-2.2.6 to master branch on GitHub.
Once the PR is merged to master:
# Checkout master and pull latest
git checkout master
git pull
# Create and push tag
git tag -a v2.2.6 -m "Release v2.2.6"
git push --tagsThe tag will trigger the GitHub Actions release workflow to:
- Build applications for all platforms (Windows, macOS, Linux)
- Create a GitHub release with artifacts
- Upload built binaries
The primary version source is projects/vault-v2/package.json. All other version files are synchronized from this source.
VERSION- Root version fileprojects/vault-v2/package.json- Main application packageprojects/vault-v2/src-tauri/tauri.conf.json- Tauri configurationprojects/vault-v2/src-tauri/Cargo.toml- Rust backendprojects/keepkey-rust/Cargo.toml- KeepKey Rust libraryprojects/vault-v2/VERSION- Project version fileprojects/keepkey-rust/VERSION- Library version file- Lock files (
package-lock.json,Cargo.lock)
make release-branch VERSION=x.y.z- Create branch and set specific versionmake release-patch-branch- Auto-increment patch version and create branchmake release-minor-branch- Auto-increment minor version and create branchmake release-major-branch- Auto-increment major version and create branch
make release VERSION=x.y.z- Update version without creating branchmake release-patch- Increment patch version (2.2.5 -> 2.2.6)make release-minor- Increment minor version (2.2.5 -> 2.3.0)make release-major- Increment major version (2.2.5 -> 3.0.0)
The project includes automated workflows:
Triggered by:
- Push to
main,master, orrelease-*branches - Pull requests to these branches
- Manual workflow dispatch
Purpose: CI/CD builds and testing for all platforms
Triggered by:
- Tags starting with
v*(e.g.,v2.2.6) - Manual workflow dispatch
Purpose: Creates official GitHub releases with artifacts for:
- Windows (MSI installer)
- macOS (DMG installer)
- Linux (AppImage, DEB packages)
- Always create a release branch for version updates
- Test thoroughly before pushing the release branch
- Use semantic versioning:
- Patch (x.y.Z): Bug fixes, minor updates
- Minor (x.Y.z): New features, backward compatible
- Major (X.y.z): Breaking changes
- Document changes in commit messages and PR descriptions
- Tag only after PR is merged to master
If version files get out of sync:
make release VERSION=<correct-version>Check the Actions tab in GitHub for build logs and errors.
# Clean and rebuild
make clean
make rebuild