-
Notifications
You must be signed in to change notification settings - Fork 32
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
Discontinue Python 2.7 support in the next version of CMOR #563
Comments
@mauzey1 would it be reasonable to continue support until a 2020 release, maybe 3.7.0? This requires no additional effort on your part right? We could add a note to the release info for 3.6.0 (see cmor/releases/tag/3.5.0) that python2 support will be dropped in a 2020 version |
@durack1 Okay, we will hold off on discontinuing Python 2.7 until a future release in 2020. Should we consider adding Python 3.8 support to 3.6.0? |
@mauzey1 totally, I think we should make sure that CMOR3.6.0 supports all current Python releases, so Py2.7.17, Py3.5.x, 3.6.x, 3.7.x and 3.8.0 It seems there are many current variants available from https://www.python.org/downloads/ Is this much additional work? |
An interesting question -- I'd suggest you ask data processors using CMOR which version they use and whether they use python3. As PrePARE is part of the publication process (or should be) it might be worth checking with the ESGF node owners as well. From the Met Office perspective I don't expect to have made the transition from python2.7 to python3.x until mid 2020 at the earliest. We currently use CMOR v3.4 and are looking at v3.5 now. |
@matthew-mizielinski thanks for chiming in, it's useful to have "someone on the ground" who can provide direct feedback on usage. Now I am curious, considering Python2.7 is due for "death" in just over a month (at least lack of support) what is the MOHC plan to migrate to Python3.x? For your institutional point of view, what would you want us to provide regarding Python2.7 support, considering Python2.7 itself will no longer be supported after 1st January 2020? For context, here is a blurb on Python2 support in linux variants going forward:
For RHEL specifically (the standard LLNL image), it seems RHEL8 supports both Python2/3 at release time https://developers.redhat.com/blog/2019/05/07/what-no-python-in-red-hat-enterprise-linux-8/ (with Python3.6 the factory default), not sure what is going to happen in the patch releases post 1st January 2020. |
@mauzey1 a google form questionnaire is something we could send around if it was developed, not sure I have the right information now to know what questions would be useful to ask |
We're using RHEL7 within MOHC and while there will be no further development of central python2.7 installations from the end of 2019 we'll still have some operational forecasting systems working with this version until the migration completes in 2020. As we've been a bit behind in publishing data sets for CMIP6 (the metric for success for me :-) ) I haven't been able to put resources into a python 2 to 3 migration and there are a couple of other library version jumps that we'll need to thoroughly test first (iris 1.13 to 2.x) and understand the performance implications of (iris 2 uses dask and is up to twice as slow as iris 1). It may be that there isn't a specific need for us to pick up CMOR v3.6 any time soon (currently we use 3.4), but if there are changes that allow CMOR to produce new variables we would be unable to incorporate these changes until the second half of 2020 when we've migrated. There are almost certainly ways to manage this. For example you could make CMOR v3.6 python3 only but continue with micro version updates to 3.5 to give the two equivalent functionality for a limited period. The duration of this overlap would then be a topic for negotiation between you and the user base. |
@matthew-mizielinski thanks again, useful feedback that we can ponder as we ascertain resource availability for maintenance going forward |
Just because this info is relevant to this thread
|
It might be a challenge to get all sites to migrate their publisher installations to Python3 in a timely fashion. The work to migrate the code is in progress. So in order to keep the PrePARE integration current, which appears now to be crucial for CMIP6, I would be hesitant to cut off Python2 support too quickly -- at least for PrePARE as it is integrated with esg-publisher. |
@sashakames @durack1 We could still keep Python 2.7 support for the source install and nightly build, but the stable builds from conda-forge will only be for Python 3.6, 3.7, and 3.8. I am currently working on getting Python 3.8 supported for the next release. |
@mauzey1 wow, that’s a dramatic support move, what is their plan for py27 libraries, maintain with no future releases?
For CMOR3 I suggest we take this path, keep current releases “floating” for py27, and don’t bother to add more steps to support this in future releases. |
@matthew-mizielinski can you chime in here? |
According to the conda-forge's announcements, you can still have Python 2.7 in your feedstock by adding an issue titled |
@durack1 @taylor13 @sashakames @muryanto1 I am currently running into an issue with Python 2.7 regarding the testsrunner module from CDAT. A change was added to it that makes it incompatible with Python 2.7.
I have tried using older versions of testsrunner in the CMOR tests, but they were also causing errors. We could skip parts of the Python tests for 2.7 but I don't recommend this. I think we have gotten to the point where we should discontinue support for Python 2.7 for CMOR. It has been over half a year since the end-of-life of Python 2, CMOR's conda-forge feedstock no longer builds for Python 2.7, and CDAT applications have also dropped Python 2.7 support. |
@mauzey1 thanks so much for attempting to continue to support py2.7 with CMOR3. I had not realized how quickly anaconda/conda-forge etc would drop support for py2.7, which to be honest has shocked me. I think planning forward, we'll need to drop py2.7 support, it's going to take too much time to continue to find workaround after workaround, so I think we've lost that battle. For the preservation of the py2.7 versions that currently work, is it technically possible to pin this to existing versions of libraries that work, so that we can try and keep this limping along for a little longer? I think we'll need to note on the cmor webpage that py2.7 support is no longer provided, but for users that are willing to invest the time finding compatible libraries, the last supported version was 3.6.0-py2.7-pinned. Does this sound like a reasonable conclusion to this issue, and not too much work? |
@durack1 As for the current issue with testsrunner, I think we could replace the command |
@mauzey1 I am happy for you to take a lead on how to best deal with this, however I am a little concerned that maintaining py2.7 support is going to be a never ending job, so am a little hesitant for us to commit much time to it |
With the approaching end-of-life for Python 2, should we consider dropping CMOR's support for Python 2.7 for the release of CMOR 3.6.0?
The text was updated successfully, but these errors were encountered: