- Generate protos
- Run
cd tensorflow-proto-codegen; cargo run -- $PATH_TO_TENSORFLOW $PWD/.. - Update Cargo.toml 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
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
- 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 for
tensorflow-sysin the rootCargo.toml
- Run
- Bump the version number in
Cargo.toml - Bump the version number in
README.md - Run
./test-all - Run
python examples/addition/addition.pyusing 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/activateto activate the virtualenv - Run
pip install --upgrade pip - Run
pip install --upgrade tensorflow==${TENSORFLOW_VERSION} - Run
python examples/addition/addition.py - Run
deactivateto exit the virtualenv
- Run
- 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.) - 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