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

Change CI to either use macos-13 or drop 3.9 support #359

Closed
paddyroddy opened this issue Apr 25, 2024 · 10 comments · Fixed by #360
Closed

Change CI to either use macos-13 or drop 3.9 support #359

paddyroddy opened this issue Apr 25, 2024 · 10 comments · Fixed by #360
Labels
bug Something isn't working

Comments

@paddyroddy
Copy link
Member

Describe the Bug

See bug described here actions/setup-python#850, essentially macos-latest now represents ARM mac 😱

To Reproduce

Use macos-latest in conjunction with python versions <3.10

Expected Behaviour

Actual Behaviour

Additional Context

- Cookiecutter version:
- Operating system: macos
- Python version: 3.9
@paddyroddy paddyroddy added the bug Something isn't working label Apr 25, 2024
@dstansby
Copy link
Member

My vote would be to have runs with macos-13 + {3.8, 3.9} and macos-latest + {3.10, 3.11, 3.12}.

@paddyroddy
Copy link
Member Author

Should we drop 3.9 altogether due to NEP29?

@dstansby
Copy link
Member

I can't remember if we ever discussed NEP29, but I'd currently advocate for supporting all supported Python versions instead of following NEP29. Motivation is we don't want to limit this to just numpy/scientific python specific packages, so we shouldn't follow NEP29 which is scientific python specific.

@paddyroddy
Copy link
Member Author

I've had a look and I don't think we've discussed it. I've tended to follow it, but I can see arguments either way.

@paddyroddy
Copy link
Member Author

There's also SPEC 0 which @p-j-smith highlighted. I suspect most of our users will be doing scientific work, I assume.
image

@paddyroddy paddyroddy linked a pull request Apr 25, 2024 that will close this issue
@matt-graham
Copy link
Collaborator

matt-graham commented Apr 25, 2024

I think choosing to follow something like NEP29 or SPEC0 to follow make sense to avoid having to spend too long debating and thinking about what versions to support in the long term and because I think there is value in keeping the list of versions we support relatively short both from the perspective of being able to use newer language features internally and encouraging users to use relatively recent Python versions (which I'd say is part of the good practice we want to promote).

I agree with @dstansby we don't necessarily just want to limit to just scientific Python specific packages, but I also think that following the scientific Python ecosystem recommendations doesn't limit us to use in those settings unless there is similar set of guidelines in other communities which specifically recommend something else (which as far as I'm aware there isn't?). I also think the point made in SPEC0 that having longer support cycles is no longer so important given the much wider use of virtual environments is a good argument in favour of keeping our supported version list short.

So I would vote for choosing one of SPEC0 or NEP29 to adopt (I was only previously aware of NEP29 but happy to go with SPEC0) and on that basis then dropping 3.9 support as I think its out of suggested support window of both(?).

@dstansby
Copy link
Member

I opened an issue at #362 to discuss Python version support.

@giordano
Copy link
Member

If the motivation is only the actions/setup-python currently failing, why don't you explicitly set the architecture to x64 and keep testing older versions of Python?

@paddyroddy
Copy link
Member Author

If the motivation is only the actions/setup-python currently failing, why don't you explicitly set the architecture to x64 and keep testing older versions of Python?

It's not the only motivation IMO. I hadn't checked NEP29, so hadn't realised 3.9 was 💀

@p-j-smith
Copy link
Contributor

I would lean towards testing on all Python versions that still get security patches, and let users decide if they want to follow NEP29 / SPEC0, but happy to go with the crowd

dstansby pushed a commit that referenced this issue May 17, 2024
Following the recent change on GitHub Actions
actions/setup-python#850 our tests are
currently failing #359.

Previously we were following
[NEP29](https://numpy.org/neps/nep-0029-deprecation_policy.html) which
is why we never supported `3.8`. My suggestion is to drop `3.9` which
means nothing else has to change.

The alternative is to do @dstansby's
[suggestion](#359 (comment)),
but I think this is low-key complicated when involving our `tox` setup
too. Personally, I don't think it's worth it, and we should fix the
tests ASAP.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants