Dropping Python 2 support #1010
jpivarski
started this conversation in
Deprecations
Replies: 2 comments 1 reply
-
A naive question from me - are there any minor version constraints on LHC usage? Or is dropping 3.5 acceptable for the reason that it isn't constrained? |
Beta Was this translation helpful? Give feedback.
1 reply
-
Version 1.7.0 is the last to support Python 2 and 3.5. A branch called save/1.7.x-end-of-Python-2-and-3.5 has been created for bug-fixes in the 1.7.x line. The next Now we should feel free to rip out any Python 2.7 or 3.5-supporting infrastructure (as long as those PRs target the |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
(It must seem rather late to even be talking about this.)
We've been keeping Python 2 support in Awkward Array to prevent overconstrained dependencies in legacy systems. For instance, if your collaboration software stack isn't Python 3 ready, a Python 3-only Awkward Array would prevent you from using it with experiment-specific software. Maybe I'm overly sensitive to this issue from too many bad experiences, but I think that time spent trying to bolt together formally incompatible versions of packages to enable some calculation is a waste of time.
Dropping Python 2 support in Awkward Array wouldn't mean that old versions of Awkward Array can't be used with Python 2, but it would mean that Python 2 users would not get any Awkward Array updates (bug-fixes and features). Since language features and library features are usually unrelated, I've wanted to keep them decoupled.
However, two things have changed. It sounds like LHC collaboration software is fully or almost fully out of the Python 2 jungle—specifically, I've heard that CMSSW_12_0_0 will be fully Python 3. (Let me know about other LHC experiments and any collaboration software stacks you're familiar with.) The second thing is that compatibility constraints on the distribution side are starting to get unmanageable. Yesterday, @henryiii said,
It's the fall of Rome for Python 2: all the infrastructure is coming apart. For a while, supporting Python 2 could be justified because it didn't cost us much effort and maybe made things easier for users working in tight environments; soon it would cost us effort and maybe doesn't matter anymore for users.
Awkward Array should drop Python 2 support this year, before this manylinux1 cut-off on Jan 1, 2022, maybe a month before: Dec 1, 2021. That date corresponds to version 1.9.0. After that threshold, the minimum Python version would be 3.6. (Supporting Python 3.5 is almost as hard as 2.7, but I have not seen any issues from 3.6 onward.)
Let me know if this would cause any problems for you or if you'd be happier with an even earlier cut-off date!
Beta Was this translation helpful? Give feedback.
All reactions