On 16/11/2020 15.32, Paul Ganssle wrote:
Hi all,
One part of PEP 615 (IANA time zones) that I expected to be easily overlooked (a point about which I seem to have been right) is the recommendation that starting with Python 3.9, distros should add a dependency on the system time zone data to the Python package. Quoting the PEP:
Python distributors are encouraged to ensure that time zone data is installed alongside Python whenever possible (e.g. by declaring tzdata as a dependency for the python package).
https://www.python.org/dev/peps/pep-0615/#system-time-zone-information
I am not sure what is the best way to reach the largest number of distro packagers to suggest that they add a dependency on tzdata for Python 3.9+, so I figured I'd send a message here. If you know a distro packager who does not follow this list, or you use a distro that doesn't have a dependency on tzdata for Python 3.9, please forward this e-mail to them and/or open a bug on their issue tracker.
So far I know conda-forge got the dependency right from the first Python 3.9 release, Fedora has plans to fix this https://src.fedoraproject.org/rpms/python3.10/pull-request/13, and Christian Heimes has opened a bug on the Ubuntu launchpad https://bugs.launchpad.net/ubuntu/+source/python3.9/+bug/1904271 for this. I will figure out how best to notify Arch Linux and do that (since that's the distro I use).
I suspect this will be most important for distros that are heavily used in containers, since tzdata is a common enough dependency that it's likely to be satisfied accidentally in most full-featured user environments anyway.
Thanks!
Paul
P.S. If there's a mailing list or other community for Python distro packagers, please let me know, because I often find that we're making decisions that affect them that they don't hear about until way down the line. I'd love to have an easy way to keep them in the loop.
Thanks Paul, would it make sense to add a packaging section to our documentation or to write an informational PEP? There is already PEP 394, which defines the "python" command on Unix-like systems. A new informational PEP could 1) assist packagers with best practices, 2) state how the CPython core team envisions packaging of Python on Unix distributions. After all there are more dependencies than "tzdata". Python has dependencies on /etc/mime.types and system trust store for the ssl module. Users also have been complaining about usability issues and bugs caused by downstream patches and packaging decisions (like venv, distutils, tkinter split into optional packages). By the way Fedora isn't affected by lack of tzdata database. Fedora's Python package has a transient dependency on tzdata. The package is always shipped in Fedora's minimal container images, too. Miro's PR makes the dependency explicit. Christian