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

Drop support for Python 3.9 and 3.10 #836

Open
mfisher87 opened this issue Oct 2, 2024 · 8 comments
Open

Drop support for Python 3.9 and 3.10 #836

mfisher87 opened this issue Oct 2, 2024 · 8 comments
Labels
dependencies Pull requests that update a dependency file help wanted Extra attention is needed

Comments

@mfisher87
Copy link
Collaborator

We are now in Q4 of 2024, and per SPEC0, it's time to drop support for Python 3.10. We still support 3.9, so perhaps we should drop 3.9 in our next release, and 3.10 in the following one.

@mfisher87 mfisher87 added the dependencies Pull requests that update a dependency file label Oct 2, 2024
@betolink
Copy link
Member

betolink commented Oct 4, 2024

This sounds scary, albeit is a best practice... empirically I think most of the Python code out there in tutorials still uses 3.9 I'd say let's hear the community on this one before dropping it.

@mfisher87
Copy link
Collaborator Author

This sounds scary, albeit is a best practice

Not just a best practice, but a policy we committed to! https://earthaccess.readthedocs.io/en/latest/user_guide/backwards-compatibility/#our-python-and-dependency-support-policy #471

I'd say let's hear the community on this one before dropping it.

What would this process look like? I'm really wary about having a community veto on following through with our policy. I'd rather have the process look like the community designs the policy, we follow it, and if it doesn't work, the community changes the policy. If we do have a community veto process, it should be tightly defined and time bounded.

@mfisher87 mfisher87 added the help wanted Extra attention is needed label Oct 4, 2024
@jhkennedy
Copy link
Collaborator

Python 3.9 is at the very end of its life cycle, only receiving security fixes (and not bug fixes) until it's EOL in Oct. 2025. The scientific Python ecosystem, as described in SPEC0, started dropping support for Python 3.9 in Oct. 2023, and Numpy dropped support for it in its April 2024 release. Even Google CoLab, which is notoriously behind on updates, is currently running Python 3.10.12.

So yeah, I don't see any reason to keep 3.9 going forward -- if users are using 3.9 they can continue to use earthaccess v0.11.0 or lower.

For Python 3.10, I don't see a need to rush, but we could drop support in our next release. SPEC0 doesn't say you have to drop it immediately; it just communicates that users shouldn't expect support beyond those dates, so usually packages drop support 1-3 releases later. Since Google Colab is still 3.10, I guess keeping it makes sense, but once Google Colab updates, I don't see a reason to keep it at all since the are almost always the last to update.

@betolink
Copy link
Member

betolink commented Oct 4, 2024

I take the Google CoLab comment as the ultimate "what people are using" test. What about down the road we create one of those mini compatibility matrix just for the Python versions in the docs?

@jhkennedy
Copy link
Collaborator

jhkennedy commented Oct 4, 2024

I take the Google CoLab comment as the ultimate "what people are using" test

🤔 it'd be nice to have a better understanding of what people are using earthaccess for and where.

I know we have a bunch of users using CoLab, and I'm pointing to it mostly because it's an environment users can't control well, so they are stuck with the provided Python version, and CoLab incredibly slow at updating. Other similar places are either better at staying up to date, or users can select the Python version they want.

@betolink
Copy link
Member

betolink commented Oct 4, 2024

The comment was not sarcastic haha I think CoLab is at the tail of adoption and hence a good measure on what is supported.

🤔 it'd be nice to have a better understanding of what people are using earthaccess for and where.

Speaking of something related, we used to have "used by" and now we don't, I think it's tied to having a dummy setup.py file, we can take a look at the current projects https://github.com/nsidc/earthaccess/network/dependents that depend on earthaccess.

@jhkennedy
Copy link
Collaborator

We're drifting afeild here, but I'm not sure why we don't have the "used by"; it's still parsing our dependencies out of the pyproject.toml and recognizing we're in the pip ecosystem:
image

But this setting doesn't show up in our repository settings (for me at least):
https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/exploring-the-dependencies-of-a-repository#changing-the-used-by-package

@chuckwondo
Copy link
Collaborator

I agree with dropping support for 3.9 and that we should wait on dropping support for 3.10, even though SPEC0 recommends dropping it this quarter. Dropping 3.10 feels a bit aggressive. (Hard to believe 3.10 was released 3 years ago already.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file help wanted Extra attention is needed
Projects
Status: 🆕 New
Development

No branches or pull requests

4 participants