Skip to content

Lack of requires-python causes tfp v0.20.0 to break all Python 3.7 and older  #1723

@matthewfeickert

Description

@matthewfeickert

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions