Skip to content
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

NEP29: Don't drop Python 3.8 support until Google Colab upgrades to Python 3.9 or above? #2300

Closed
seisman opened this issue Jan 4, 2023 · 10 comments · Fixed by #2487
Closed
Labels
maintenance Boring but important stuff for the core devs
Milestone

Comments

@seisman
Copy link
Member

seisman commented Jan 4, 2023

As per the NEP29 policy, we will drop Python 3.8 support on Apr 14, 2023.

Google Colab is slowly upgrading its Python version. Recently, they finally upgraded to Python 3.8 (googlecolab/colabtools#3246) after a three-year delay. The upgrade to Python 3.9 or newer is still ongoing (googlecolab/colabtools#2165). If we drop Python 3.8 support in the next PyGMT version, then Google Colab users won't be able to use the latest PyGMT versions.

Considering that supporting old Python versions is not a big burden for us (we're not using features in new Python versions), I'm unsure if we can still support Python 3.8 until Google Colab upgrades to Python 3.9 or newer.

@seisman seisman added the question Further information is requested label Jan 4, 2023
@weiji14
Copy link
Member

weiji14 commented Jan 24, 2023

Let's wait and see, Google is experiencing some mass layoffs now, so support might be lacking 🙂

Personally, we could do:

  • Release PyGMT v0.9.0 before Apr 14 2023, and that version will support Python 3.8
  • Release PyGMT v0.10.0 (sometime mid 2023?), we could decide to keep Python 3.8 if Google Colab doesn't support Python 3.9 yet
  • Release PyGMT v0.11.0, I think we should drop Python 3.8 regardless of whether Google Colab has upgraded to Python 3.9, otherwise we'll be falling behind on NEP29, and we don't want too big a range of supported Python versions in our CI, especially if we're starting to support Python 3.12 (scheduled for 2023-10-02).

@weiji14 weiji14 added this to the 0.10.0 milestone Jan 24, 2023
@maxrjones
Copy link
Member

Xarray just dropped 3.8 and is now relying on 3.9+ features, so think we'll need to drop 3.8 for the next release. I'm actually a bit confused by xarray's rolling policy relative to NEP 29 and will ask for clarification.

@weiji14
Copy link
Member

weiji14 commented Mar 3, 2023

According to https://docs.xarray.dev/en/v2023.02.0/getting-started-guide/installing.html#minimum-dependency-versions, xarray supports Python versions that are within a 24 month range, which is more aggressive than NEP29's 42 month range. The strange thing is that xarray references NEP29, so it doesn't make a lot of sense.

I still think that we should keep supporting Python 3.8 for PyGMT v0.9.0. That means Python 3.8 users would be able to use xarray versions up to v2023.01.0. Should we be starting to think about a release by the end of March?

@seisman
Copy link
Member Author

seisman commented Mar 3, 2023

I still think that we should keep supporting Python 3.8 for PyGMT v0.9.0.

Yes to me.

Should we be starting to think about a release by the end of March?

Yes.

@maxrjones
Copy link
Member

According to https://docs.xarray.dev/en/v2023.02.0/getting-started-guide/installing.html#minimum-dependency-versions, xarray supports Python versions that are within a 24 month range, which is more aggressive than NEP29's 42 month range. The strange thing is that xarray references NEP29, so it doesn't make a lot of sense.

I was confused about this as well - started pydata/xarray#7482 for that reason.

I still think that we should keep supporting Python 3.8 for PyGMT v0.9.0.

Could we use conditional dependencies to specify the xarray requirements for Python 3.8?

@seisman
Copy link
Member Author

seisman commented Mar 9, 2023

The good news is that it's very likely that Google Colab already upgraded its Python version to 3.9 (xref: googlecolab/colabtools#3450).

@maxrjones
Copy link
Member

The good news is that it's very likely that Google Colab already upgraded its Python version to 3.9 (xref: googlecolab/colabtools#3450).

I don't have pro to check if the fallback runtime still has 3.8 available, but the default runtime was 3.9 on a quick test.

@weiji14
Copy link
Member

weiji14 commented Mar 10, 2023

The good news is that it's very likely that Google Colab already upgraded its Python version to 3.9 (xref: googlecolab/colabtools#3450).

Oo, that changes things. In that case, I'm indifferent with keeping Python 3.8 or dropping it. What does the team think?

@seisman
Copy link
Member Author

seisman commented Mar 10, 2023

I think it really depends on when we do the v0.9.0 release. If we do the release before April, then we should still support Python 3.8 following NEP29.

@weiji14 weiji14 mentioned this issue Apr 4, 2023
36 tasks
@weiji14
Copy link
Member

weiji14 commented Apr 4, 2023

I think it really depends on when we do the v0.9.0 release. If we do the release before April, then we should still support Python 3.8 following NEP29.

Ok, so PyGMT v0.9.0 was released and that still supports Python 3.8. Can we decide on whether to drop Python 3.8 in PyGMT v0.10.0 so that it can be mentioned in the PyGMT v0.9.0 forum post, xref #2424 (comment)? 👍 for dropping Python 3.8.

@seisman seisman added maintenance Boring but important stuff for the core devs and removed question Further information is requested labels Apr 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
maintenance Boring but important stuff for the core devs
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants