blob: e43bd4f68df8b93c27694c0d7d34508dfe3e39f0 [file] [log] [blame]
# Requirements for the Federated Compute Python development environment.
#
# For compatibility with TensorFlow and TensorFlow Federated, most Python
# dependencies should be managed by pip, not Bazel.
#
# * For packages that have a stable release, we use a version that is
# compatible with that release (e.g. `~=x.y`). See
# https://peps.python.org/pep-0440/#compatible-release for more information.
# * For packages that do not have a stable release, we use a version that
# matches a release that has been tested (e.g. `==x.y.z`). See
# https://peps.python.org/pep-0440/#version-matching for more information.
#
# Note: There is bug in `pip` when multiple packages use the compatible release
# operator `~=` to specify a version and one of those versions ends in `0`. See
# https://github.com/pypa/pip/issues/9613 for more information. In this case,
# use the equivalent clause `>=x.0,==x.*` instead of `~=x.0`.
#
# This assumes that the packages follow Semantic Versioning, see
# https://semver.org/. If a package follows a different versioning scheme or
# requires unique handling, we use a different version specifier and comment the
# versioning scheme or reasoning.
absl-py>=1.0,==1.*
protobuf~=3.20
# The TensorFlow version should match what's specified in the WORKSPACE file for
# C++ targets.
tensorflow==2.12.0
tensorflow-federated~=0.53