Pre-RC Checklist
Run through this before cutting a release candidate. It catches the problems that are expensive to discover mid-vote, now that a single tag releases Java, Rust, Python, and C++ together.
Access and secrets
- Maven Central (Apache Nexus) access for
org.apache.fluss— see Release Manager Preparation -
CARGO_REGISTRY_TOKEN,PYPI_API_TOKEN, andTEST_PYPI_API_TOKENconfigured as repository secrets - crates.io owner of
fluss-rs; PyPI maintainer ofpyfluss - GPG key published to the Apache KEYS file
Build and publish dry-runs
-
cargo publish -p fluss-rs --dry-runsucceeds (run afterfluss-rust/scripts/vendor-proto.shso the proto is vendored) -
Python wheels + sdist install from TestPyPI (the RC tag publishes there):
pip install -i https://test.pypi.org/simple/ pyfluss==${RELEASE_VERSION} -
fluss-cppBazel build smoke test passes:cd fluss-rust/bindings/cpp && bazel build //...
Audits
-
cargo deny check licensespasses; the Rust dependency list is regenerated and committed - Java + Rust + binding CI is green on the release branch
-
LICENSE/NOTICEcover any third-party content bundled in the source release (including underfluss-rust/)
Once these pass, proceed to Creating a Fluss Release.