-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Drop Python 3.7 support #1866
Drop Python 3.7 support #1866
Conversation
I've updated the https://github.com/dials/dials/wiki/Version-Release-History with the planned releases around our shutdown schedule up to March 2022. This means that 3.8 is due to be released on 2022-01-04, after which point python 3.7 will be dropped. |
CCP4 8.0 will have Python 3.7. The following release is planned for later in 2022 and will have Python 3.9. |
Codecov Report
@@ Coverage Diff @@
## main #1866 +/- ##
==========================================
- Coverage 67.35% 67.18% -0.18%
==========================================
Files 627 627
Lines 70747 71214 +467
Branches 10449 10448 -1
==========================================
+ Hits 47652 47842 +190
- Misses 21128 21423 +295
+ Partials 1967 1949 -18 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good to see - helps us stay up to date and avoid the pain we had dropping Python 2.7 etc.
import sys | ||
|
||
if sys.version_info.major == 2: | ||
sys.exit("Python 2 is no longer supported") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
\o/
installer/bootstrap.py
Outdated
@@ -1264,7 +1264,7 @@ def run(): | |||
"--python", | |||
help="Install this minor version of Python (default: %(default)s)", | |||
default="3.9", | |||
choices=("3.7", "3.8", "3.9"), | |||
choices=("3.8", "3.9"), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There a reason we do not allow 3.10 yet?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lots of packages don't build on 3.10 yet, but yes we can probably enable this in bootstrap
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've added 3.10 in this PR. The step currently holding this back is our numpy incompatibility due to cctbx/cctbx_project#627. Other packages that are not yet on 3.10 include eg. bitshuffle (kiyo-masui/bitshuffle#94, conda-forge/bitshuffle-feedstock#22), so you may still want to hold off for a bit.
As not all our dependencies have Python 3.10 builds yet this will likely fail for another few weeks/months. However, after that you'll benefit from much improved exception messages and all the other 3.10 goodness.
These new warnings make me wonder if we've been missing things by only running the oldest version in CI |
Yes. The reason we only run one version is because building cctbx takes ages. Fix that and (eg. via prebuilt cctbx) then we could build all versions simultaneously while still being faster than before. |
As requested in the last core meeting here's some advance warning of dropping Python 3.7 support as per DC3.
This change will take effect after the release following the 26th of December 2021.
This pull request will be updated once we can narrow this down further to a specific date range.
After this PR is merged new language features such as
:=
assignment, positional-only parameters in functions, f-string=
, etc... become available to developers.