- Clean up clippy lints
- Run
cargo audit
and 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 fmt
to 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 publish
packages up untracked files. Use--allow-dirty
at 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-sys
if necessary- Run
git log v${PREVIOUS_VERSION?}..HEAD tensorflow-sys
and 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-sys
in the rootCargo.toml
- Run
- Bump version number of
tensorflow-sys-runtime
if necessary- Run
git log v${PREVIOUS_VERSION?}..HEAD tensorflow-sys-runtime
and 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-runtime
in the rootCargo.toml
- Run
- Bump version number of
tensorflow-internal-macros
if necessary- Run
git log v${PREVIOUS_VERSION?}..HEAD tensorflow-internal-macros
and see if there were any changes. If not, skip. - Bump the version in
tensorflow-internal-macros/Cargo.toml
- Bump the version for
tensorflow-internal-macros
in 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 publish
for 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 publish
for 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 publish
for 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/activate
to activate the virtualenv - Do whatever you need to do in the virtual env
- Run
deactivate
to exit the virtualenv