-
Notifications
You must be signed in to change notification settings - Fork 52
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
Python 3.7 and 3.8 support #1236
Comments
I have looked at this in the past and found some known package restrictions that hold back 3.8 support: Lines 12 to 38 in 1d438bf
ie. we'd need to update and validate matplotlib, biopython, scikit-learn, scipy, and sphinx. I've updated numpy (80b50b0), this was required to fix #1193, and fixed the conda-forge 3.8 package for orderedset already, but haven't had the time to look at more of them yet. 3.8 support is not currently urgent for us, and there was no point looking at this in more detail until cctbx/cctbx_project#409 was ready. I'll probably wait until it goes in before I revisit this. |
With the essential dependency updates applied the current status is:
https://dev.azure.com/azure-dials/dials/_build/results?buildId=155&view=results |
As it stands I think we can say we are not 3.7+ compatible, and some remedial effort is required before we can claim to be 3.7+ compatible. The 3.7 errors are interesting, as neither I nor @graeme-winter can reproduce them on a different machine. However they are 100% reproducible on Azure, so they are real problems. The 3.8 errors are probably worse and most likely correlate with the move from fork to spawn. Running
crashes one process with
which does not sound nice. The main process then gets stuck 6 layers deep in |
so that it can be pickled across processes. Required for Python3.8+ support on MacOS, #1236
I can't help but think that a lot of our problem here is going through the |
we are moving away from python-version-specific environment files. This allows setting up 3.7/3.8(/3.9) environments for DIALS, cf. dials/dials#1236 Python 2.7 and 3.6 installations remain with the current logic.
So the 3.7/3.8 issues on MacOS need a bit more investigative effort. |
The 3.7 build seems to be stable now. Breakthrough on 3.8, too: The leaked semaphores originate from Line 24 in 2ad7531
and are fixed by updating tqdm (Azure results) The tqdm update breaks the associated tqdm tests, so those will need some attention. Looks like that would be a good opportunity to address #1255, too. |
The remaining 3.8 error is that |
There's a potential issue in procrunner for 3.8 (DiamondLightSource/python-procrunner#47), but ideally need a catalina machine to confirm |
@graeme-winter gave me access to a catalina computer and I did not found anything of relevance, apart from the tqdm update requirement - see above pull request. |
I was testing cctbx/cctbx_project#409 with the dials builder to see how far it got and it stopped on base, since dials/.conda-envs/dials_py38_linux-64.txt is not available. Perhaps this issue could serve as a starting point for getting python 3.7 and 3.8 working in dials? First step would be getting the recipes ready.
The text was updated successfully, but these errors were encountered: