- Clean up clippy lints
- Run
cargo auditand fix any issues - Generate protos
- Run
cd tensorflow-proto-codegen; cargo run -- ${PATH_TO_TENSORFLOW?} $PWD/.. - Update Cargo.toml in root and tensorflow-op-codegen to ensure version of protobuf exactly equals version of protoc_rust used
- Run
- Generate ops
- Run
cd tensorflow-op-codegen; cargo run -- ${PATH_TO_TENSORFLOW?} $PWD/.. - Run
cd tensorflow-op-codegen; cargo run --bin eager -- ${PATH_TO_TENSORFLOW?} $PWD/.. - Run
cargo fmtto format generated code
- Run
- Commit and push changes
Note that any crate not mentioned here (e.g. tensorflow-proto-codegen, tensorflow-op-codegen) is internal-only and should not be published to crates.io.
- Check out a clean copy. Note that
cargo publishpackages up untracked files. Use--allow-dirtyat your peril. - Fetch from the main repo
- Ensure that the TensorFlow version is a real release, not a release candidate
- Ensure that the minimum supported Rust version in the README is up to date
- Update changelog.
- Bump version number of
tensorflow-sysif necessary- Run
git log v${PREVIOUS_VERSION?}..HEAD tensorflow-sysand see if there were any changes. If not, skip. - Bump the version in
tensorflow-sys/Cargo.toml - Bump the version in
tensorflow-sys/README.md - Bump the version for
tensorflow-sysin the rootCargo.toml
- Run
- Bump version number of
tensorflow-sys-runtimeif necessary- Run
git log v${PREVIOUS_VERSION?}..HEAD tensorflow-sys-runtimeand see if there were any changes. If not, skip. - Bump the version in
tensorflow-sys-runtime/Cargo.toml - Bump the version in
tensorflow-sys-runtime/README.md - Bump the version for
tensorflow-sys-runtimein the rootCargo.toml
- Run
- Bump version number of
tensorflow-internal-macrosif necessary- Run
git log v${PREVIOUS_VERSION?}..HEAD tensorflow-internal-macrosand see if there were any changes. If not, skip. - Bump the version in
tensorflow-internal-macros/Cargo.toml - Bump the version for
tensorflow-internal-macrosin the rootCargo.toml
- Run
- Bump the version number in
Cargo.toml - Bump the version number in
README.md - Inside a virtualenv, run
./test-all. (See "Running in a virtualenv" section.) - Double-check that addition.py is built using the version of TensorFlow being linked against. (See "Upgrading TensorFlow" section.)
- Run
./run-valgrind - Commit and push the changes. (Push before publishing to ensure that the changes being published are up to date.)
- If the version of tensorflow-sys was bumped, run
cargo publishfor tensorflow-sys. (Publish before tagging in case there are problems publishing and we need to add commits to fix them.) - If the version of tensorflow-sys-runtime was bumped, run
cargo publishfor tensorflow-sys-runtime. (Publish before tagging in case there are problems publishing and we need to add commits to fix them.) - If the version of tensorflow-internal-macros was bumped, run
cargo publishfor tensorflow-internal-macros. (Publish before tagging in case there are problems publishing and we need to add commits to fix them.) - Run
cargo publish. (Publish before tagging in case there are problems publishing and we need to add commits to fix them.) - Add a
v${VERSION?}tag and push it - Run
./update-docs - Announce the release to the mailing list
- Update version numbers of dependencies
- Remove any deprecated items scheduled to be removed
- Update version and tag in tensorflow-sys/build.rs
- Update version in .github/workflow/requirements.txt
- Inside a virtualenv using the version of TensorFlow being linked against, run
python examples/addition/addition.py. (See "Running in a virtualenv" section.)
- If you haven't set it up, run
./create-virtualenv ${TENSORFLOW_VERSION?} - Run
source ~/tensorflow-${TENSORFLOW_VERSION?}/bin/activateto activate the virtualenv - Do whatever you need to do in the virtual env
- Run
deactivateto exit the virtualenv