| name | prepare-release |
| description | Prepare a new arkouda release with changelog and version bumps |
| license | MIT OR Apache-2.0 |
Prepare Release
Steps to prepare a new arkouda release. Pushing a vX.Y.Z tag triggers .github/workflows/release.yml, which builds Linux x86_64, macOS aarch64, and Windows x86_64 binaries and attaches them to a GitHub release.
Checklist
make ci is green (fmt, clippy -D warnings, tests, build, arkouda check on docs/adr/)
arkouda check passes on the project's own ADRs
- Update version in
Cargo.toml
- Update
Cargo.lock (cargo check)
- Update
CHANGELOG.md
- Find and update version references in docs
- Commit changes (including
Cargo.lock)
- Create annotated git tag and push
Version Bump
Update version in Cargo.toml:
[package]
version = "X.Y.Z"
After updating Cargo.toml, run cargo check to refresh Cargo.lock:
cargo check
Changelog Format
Follow Keep a Changelog format. If CHANGELOG.md does not yet exist, create it for this release.
## [X.Y.Z] - YYYY-MM-DD
### Added
- New features
### Changed
- Changes to existing functionality
### Fixed
- Bug fixes
Update Version References in Docs
Search for hardcoded version numbers in documentation and update them:
rg "arkouda@\d+\.\d+\.\d+" --type md
rg "v\d+\.\d+\.\d+" README.md
Common locations:
README.md — CI example (cargo install arkouda@X.Y.Z)
- Installation instructions
- Badge URLs
Release Commands
make ci
git add -A
git commit -m "chore: release vX.Y.Z"
git tag -a vX.Y.Z -m "Release vX.Y.Z"
git push && git push --tags
The release.yml workflow handles the rest: cross-platform builds, sha256 checksums, and a GitHub release with generate_release_notes: true (so commit subjects since the previous tag become the release body).
Publishing to crates.io
The release workflow does not publish to crates.io — do it manually after the GitHub release is up:
cargo publish --dry-run
cargo publish
After release
- Confirm the binary downloads on the GitHub release page work (
curl -sSfL .../install.sh | sh should now pick up the new version).
- If
cargo publish succeeded, cargo install arkouda and cargo install arkouda@X.Y.Z both reach the new version.