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

Decide on a Python version support policy #362

Closed
dstansby opened this issue Apr 25, 2024 · 12 comments
Closed

Decide on a Python version support policy #362

dstansby opened this issue Apr 25, 2024 · 12 comments
Labels
task A task to be completed with the repo

Comments

@dstansby
Copy link
Member

What needs to be done?

It would be good to decide and document which versions of Python to support. The two options here seem to be:

  1. All currently supported Python versions (currently 3.8 - 3.12)
  2. All Python versions supported by Scientific Python Ecosystem Coordination 0 (currently 3.10 - 3.12)
@dstansby dstansby added the task A task to be completed with the repo label Apr 25, 2024
@dstansby
Copy link
Member Author

I'm happy for either - I see the arguments for only supporting newer versions (#359 (comment)), but also don't think there would be much more burden in supporting older but-still-security-patched versions.

@samcunliffe
Copy link
Member

samcunliffe commented May 9, 2024

Half-vote for keeping 3.9 🗳️. (I guess that's option 1.5 🙃 )

@dstansby
Copy link
Member Author

dstansby commented May 9, 2024

I'm 👎 👎 having an ad-hoc approach where we decide a list of versions we support on a rolling basis, instead of following an existing policy that decides for us.

@samcunliffe
Copy link
Member

samcunliffe commented May 9, 2024

Wait, 3.8 is EOL, no?

Nope. 3.8's EOL is 2024-10 so option 1 will become what I voted for very soon.

@paddyroddy
Copy link
Member

I vote 2️⃣

@dstansby
Copy link
Member Author

I'm coming round to 1️⃣ , because I don't think it is much more effort to support more Python versions, and we do work on some projects in ARC that aren't within the scientific python ecosystem (I'm thinking web projects, but maybe there's others?)

@dstansby
Copy link
Member Author

Those advocating for 2️⃣ , what are your reasons?

@paddyroddy
Copy link
Member

For me, a few reasons:

  • The green reason, inevitably CI will have to run more
  • Missing out on new features of the language - you'll get them eventually, but nice to get them quicker
  • Missing out on potential speed gain, for example Python 3.11 was 10-60% faster than Python 3.10 - again you'll get it eventually, but once the min version is 3.11 then you benefit quicker
  • Supported by big communities, SPEC 0 is endorsed by ipython, networkx, numpy, scikit-image, scipy, xarray, zarr
  • New libraries may not be built to support older Python versions, say 3.10 was the newest one when it came out. It may not support older versions.

@dstansby
Copy link
Member Author

The green reason, inevitably CI will have to run more

If you do the numbers I think this is very small number compared to e.g., flying to conferences or on holiday or embodied carbon of hardware or electricity usage of a large simulation code. I once etimated that Matplotlib uses ~25 kg/month [png link], and they must be running orders of magnitude more CI than us.

I buy the rest of the arguments though. I think @matt-graham was also pro SPEC 0, so perhaps we give @samcunliffe a bit to explain

Half-vote for keeping 3.9

from above, and then unless there's a compelling reason go with SPEC 0?

@samcunliffe
Copy link
Member

My vote was a soft 1, but very soft. Mostly web/dashboard/other.

If the majority want 2, let's go for it. Less GHA minutes also has cost implications if our users have nonpublic repos. And 🌱 is a good argument.

@dstansby
Copy link
Member Author

dstansby commented May 17, 2024

👍 I'll leave this open until we document the decision, and merge #360

samcunliffe added a commit that referenced this issue Nov 6, 2024
(Finally) closes #362 as per the definition of done in David's last comment.
dstansby added a commit that referenced this issue Nov 6, 2024
(Finally) closes 
- #362

as per the definition of done in @dstansby's last comment.

Think this is fairly uncontroversial (the decision itself is already
logged in #362).

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: David Stansby <[email protected]>
@samcunliffe
Copy link
Member

Viz #360 (mostly) and #487 (finally).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
task A task to be completed with the repo
Projects
None yet
Development

No branches or pull requests

3 participants