| name | mahout-release |
| description | Guide the Apache Mahout release process. |
Mahout Release
Usage
/mahout-release <qumat_version> <qdp_version>
Example: /mahout-release 0.5.0 0.1.0
Instructions
Refer to dev/release.md for full details. Stop after each phase and confirm with user before proceeding.
Phase 1: RC Preparation
- Create stable branch from main (e.g.,
v0.5-stable)
- Update versions to RC suffix:
pyproject.toml → version = "<qumat_version>rc1"
qdp/Cargo.toml → version = "<qdp_version>-rc1"
- Build:
uv build
cd qdp/qdp-python
uv tool run maturin build --release --interpreter python3.10
uv tool run maturin build --release --interpreter python3.11
uv tool run maturin build --release --interpreter python3.12
- Sign and hash artifacts (GPG + SHA-512)
- Upload to TestPyPI first, verify install works
- Upload to PyPI after TestPyPI is confirmed
- Open testing issue:
./dev/generate-rc-issue.sh <qumat_ver>rc1 <qdp_ver>rc1 "Qumat <qumat_ver>"
- Send RC email using template in
dev/rc-email-template.md
Stop and confirm with user before Phase 2.
Phase 2: Vote
- Submit source artifacts to ATR
- Send vote email using template in
dev/rc-email-template.md
- Wait 72 hours for 3 binding +1 votes
Stop and confirm with user before Phase 3.
Phase 3: Final Publication
- Promote release in ATR
- Publish final version to TestPyPI, verify, then publish to PyPI
- Tag release:
git tag -a v<qumat_version> -m "Release <qumat_version>"
- Bump version on
main to next dev (e.g., 0.6.0)
- Create versioned docs:
cd website && npm run version <qumat_version>
- Announce on
dev@mahout.apache.org