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

Aim for SPEC0 adherence over NEP29 #4536

Open
3 tasks
orbeckst opened this issue Mar 27, 2024 Discussed in #4466 · 8 comments
Open
3 tasks

Aim for SPEC0 adherence over NEP29 #4536

orbeckst opened this issue Mar 27, 2024 Discussed in #4466 · 8 comments
Assignees
Labels

Comments

@orbeckst
Copy link
Member

Implement SPEC0 (instead of NEP29)

  • SPEC0 describes minimal support for Python and other package versions across the eco-system
  • We already follow NEP29 which appears to be a superset in some regards but leaves other parts undefined — see below.

TODO

  • CHANGELOG note
  • public annoucement
  • modify CI (??)

Discussed in #4466

Originally posted by IAlibay February 24, 2024

Background

As outlined here: numpy/numpy#24932 (comment) the NEP29 enhancement proposal has been superseded by SPEC0.

There is very little difference between the two, except that SPEC0 has a shorter support window (3 years for Python, 2 years for core packages) than NEP29 (42 months for Python, and 2 years for NumPy). SPEC0 also defines support windows for a wider range of core packages (e.g. scipy, matplotlib, etc..).

How would this affect MDAnalysis?

In practice this would have very little impact. The difference between NEP29 and SPEC0 is small enough that we would be unlikely to see anything given our release frequency.

The main thing would be that we would be basing decisions to drop support for Python & other upstream dependency versions on the SPEC0 schedule rather than the NEP29 one. It would also mean that the day I finally get to write this blog post it would be about SPEC0, not NEP29.

Does this mean we have to strictly adhere to SPEC0?

The idea here is that SPEC0 defines the "minimum range of versions which should be supported", rather than "the only things that should be supported".

That means that we can support a wider range of dependency versions if we wish to. This would be up to the community to help define.

What if we don't adopt SPEC0

We could stick to NEP29 or seek alternative schemes to define what range of core dependency versions we support.

@IAlibay
Copy link
Member

IAlibay commented Mar 28, 2024

@orbeckst I'm not sure any of those steps need to be taken? I'll self assign here but I don't particularly think anything needs to change (edit: here I'm thinking of CI and changelog), SPEC0 is a minimum bound not a maximum one.

@IAlibay IAlibay self-assigned this Mar 28, 2024
@IAlibay
Copy link
Member

IAlibay commented Mar 28, 2024

Maybe the public announcement - although that's a low priority task we can deal with at the next release?

@orbeckst
Copy link
Member Author

orbeckst commented Mar 28, 2024 via email

@IAlibay
Copy link
Member

IAlibay commented Mar 28, 2024

IIRC historically we used CHANGELOG to record changes in support policy

Ah, this isn't something I've encountered before (unless I've missed it happening).

At a minimum we have to communicate that we will follow SPEC0

My suggestion is to tie it in to the next release. We can mention it on the release thing and then if we have energy tag on a separate blog post - ideally this is tied into a release strategy (i.e. it might not be very meaningful for us to talk about SPEC0 without telling folks about what we engage ourselves to do when it comes to releases - if you follow SPEC0 but release every 24 months then that's a bit of a problem, etc...).

@IAlibay
Copy link
Member

IAlibay commented Mar 28, 2024

To clarify my stance on "modify CI" - my view here is not to touch dependencies unless we have to. I.e. if we think "o we really need this feature from X" then we increasing the lower bound, otherwise we just periodically bump stuff up if it's really too old (i.e. a scipy version that isn't compatible with any of the numpy versions we support).

Alternatively, we can done on strict bump now and then be looser afterwards? Not sure.

@orbeckst
Copy link
Member Author

Looser CI is fine with me, as you said, "lower bound".

@orbeckst
Copy link
Member Author

Announcements in CHANGELOG could have been clearer... eg 2.1.0 introduced NEP29

* Dropped python 3.6 support and raised minimum numpy version to 1.18.0
(NEP29)
but for other projects I (or we??) had a "Changes: we now follow NEP29".

@IAlibay
Copy link
Member

IAlibay commented Mar 29, 2024

Ok sounds good, I'll do a review of our stack after we fix the tests & testsuite problems. We can bump up anything that's completely out of range & add a changelog entry.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants