-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
Hi. As TensorFlow Probability doesn't have requires-python metadata (c.f. https://peps.python.org/pep-0621/#requires-python) the recent v0.20.0 release has broken installation for Python 3.7 and older for everyone (c.f. e81e7e8). This is because TensorFlow v2.12.0 is the first TensorFlow release to require Python 3.8+. So requiring
| required_tensorflow_version = '2.12' |
without properly communicating that Python 3.8+ is now explicitly required by TensorFlow probability means that any Python 3.7 (or older) that was able to install and use TensorFlow v2.11.0 and previous versions of TensorFlow Probability now gets a broken install of tensorflow v2.11.0 and tensorflow-probability v0.20.0 which produce a runtime ImportError
This version of TensorFlow Probability requires TensorFlow version >= 2.12; Detected an installation of version 2.11.0. Please upgrade TensorFlow to proceed.
(Example: scikit-hep/pyhf#2202)
Including requires-python metadata would have properly guarded against this behavior. TensorFlow Probability v0.20.0 should be yanked from PyPI and a v0.20.1 should be cut that includes PR #1725 (backport of PR #1724).
These patterns have been discussed in many places previously and in great detail in @henryiii's blog post "Should You Use Upper Bound Version Constraints?" (c.f. https://iscinumpy.dev/post/bound-version-constraints/#pinning-the-python-version-is-special for somewhat similar ideas).
cc @jburnim who made the release.