Skip to content

Python and code package version support (SPEC 0) #1657

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

Closed
VeckoTheGecko opened this issue Aug 14, 2024 · 1 comment · Fixed by #1658
Closed

Python and code package version support (SPEC 0) #1657

VeckoTheGecko opened this issue Aug 14, 2024 · 1 comment · Fixed by #1658

Comments

@VeckoTheGecko
Copy link
Contributor

VeckoTheGecko commented Aug 14, 2024

Parcels is currently documented as having support for Python 3.8+. This however may not be the case, since our unit tests are only run on the latest version of Python. More so, Parcels currently doesn't have an approach for deprecating support for older Python versions or core packages.

I suggest that we adopt SPEC 0, either in full or partially.

This SPEC recommends that all projects across the Scientific Python ecosystem adopt a common time-based policy for dropping dependencies. From the perspective of this SPEC, the dependencies in question are core packages as well as older Python versions.

All versions refer to feature releases (i.e., Python 3.8.0, NumPy 1.19.0; not Python 3.8.1, NumPy 1.19.2).
Specifically, we recommend that:

  • Support for Python versions be dropped 3 years after their initial release.
  • Support for core package dependencies be dropped 2 years after their initial release.

SPEC 0 is adopted by pandas. xarray doesn't do SPEC 0 but follows NEP 29 as mentioned here.

SPEC 0 seems to be more a guideline than a universal thing. I suggest we at least drop support for Python 3.8, 3.9, and consider pinning minimum version requirements for our core packages.

This also allows us to take advantage of newer Python features across the codebase.

Also, I suggest that we add Ubuntu unit-testing on supported Python versions.

@VeckoTheGecko
Copy link
Contributor Author

Other items:

  • Update pyproject.toml with new support
  • Update docs mentioning our minimum supported version
  • Update conda recipe (when new release is done)

If we want to define min deps, we could follow an implementation like in xarray

https://github.com/pydata/xarray/blob/28dfea76a8edcb4fa8c90801964f39bc706b38ab/.github/workflows/ci-additional.yaml#L265-L270

@github-project-automation github-project-automation bot moved this from Backlog to Done in Parcels development Aug 16, 2024
@VeckoTheGecko VeckoTheGecko changed the title Python and code package version support Python and code package version support (SPEC 0) Aug 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

1 participant