- 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-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
- Run
./test-all
- Double-check that addition.py and test_op are 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-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 run-valgrind
- Run
python examples/addition/addition.py
using the version of TensorFlow being linked against. (Use pip in a virtualenv, see https://www.tensorflow.org/install/pip#2-create-a-virtual-environment-recommended)- Run
virtualenv --system-site-packages -p python3 ~/tensorflow-${TENSORFLOW_VERSION?}
- Run
source ~/tensorflow-${TENSORFLOW_VERSION?}/bin/activate
to activate the virtualenv - Run
pip install --upgrade pip
- Run
pip install --upgrade tensorflow==${TENSORFLOW_VERSION?}
- Run
python examples/addition/addition.py
- Run
test_resources/library/build-test-op
and movetest_op.so
intotest_resources/library/linux
. - Run
deactivate
to exit the virtualenv
- Run