-
Notifications
You must be signed in to change notification settings - Fork 224
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
NEP29: Set minimum required versions to NumPy 1.17+ and Python 3.7+ #1074
Conversation
Start adopting NEP29 - Recommend Python and NumPy version support as a community policy standard, see https://numpy.org/neps/nep-0029-deprecation_policy.html. Bumps minimum supported NumPy version to 1.17 in the setup.py, requirements.txt and environment.yml files. Also set minimum required Python version to be 3.7+.
Test only on minimum and maximum supported versions according to NEP. I.e. minimum of NumPy 1.17 and Py3.7, maximum of NumPy 1.20 and Py3.9. This drops testing on the middle Python 3.8 version to conserve CI resources.
In `setup.py`, the `python_requires` variable should be set to the minimum | ||
supported version of Python. Minimum Python and NumPy version support should be | ||
adjusted upward on every major and minor release, but never on a patch release. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't add the line "All supported minor versions of Python should be in the test matrix and have binary artifacts built for the release." as in https://numpy.org/neps/nep-0029-deprecation_policy#implementation because:
- We're not testing the middle Python version (Python 3.8)
- We're using no-arch builds on conda-forge and a single PyGMT Python 3 wheel on PyPI, instead of having specific binary artifacts for each Python version.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good to me.
Compatibility with GMT and Python/NumPy versions | ||
------------------------------------------------ | ||
|
||
======= ========== ========= | ||
PyGMT GMT Python | ||
======= ========== ========= | ||
======= ========== ========= ========= | ||
PyGMT GMT Python NumPy | ||
======= ========== ========= ========= | ||
0.4.x >=6.2.0 >=3.7 >=1.17.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it a good idea to add this here now, or should we do it during the v0.4.0 release process instead?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should add it when we release v0.4.0, but I'm afraid we may forget it during the release process. I think it's fine to add this here.
Compatibility with GMT and Python/NumPy versions | ||
------------------------------------------------ | ||
|
||
======= ========== ========= | ||
PyGMT GMT Python | ||
======= ========== ========= | ||
======= ========== ========= ========= | ||
PyGMT GMT Python NumPy | ||
======= ========== ========= ========= | ||
0.4.x >=6.2.0 >=3.7 >=1.17.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should add it when we release v0.4.0, but I'm afraid we may forget it during the release process. I think it's fine to add this here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good!
Ok, I've updated the branch protection rules so our test matrix now has 6 instead of 9 tests. Hopefully this decreases the chances of those random Windows failures! |
Follow NEP29 (xref GenericMappingTools/pygmt#1074), setting minimum required versions to NumPy 1.17+ and Python 3.7+. Also set minimum of GMT 6.2.0 as per GenericMappingTools/pygmt#1321.
* updated v0.4.0 * MNT: Re-rendered with conda-build 3.21.4, conda-smithy 3.10.3, and conda-forge-pinning 2021.06.21.02.43.59 * Pin minimum required dependency versions Follow NEP29 (xref GenericMappingTools/pygmt#1074), setting minimum required versions to NumPy 1.17+ and Python 3.7+. Also set minimum of GMT 6.2.0 as per GenericMappingTools/pygmt#1321. Co-authored-by: Wei Ji <[email protected]>
Bumps [numpy](https://github.com/numpy/numpy) from 1.20.3 to 1.21.0 released on 23 June 2021. - [Release notes](https://github.com/numpy/numpy/releases) - [Changelog](https://github.com/numpy/numpy/blob/v1.21.0/doc/changelog/1.21.0-changelog.rst) - [Commits](https://github.com/GenericMappingTools/pygmt/pull/numpy/[email protected]) This is in line with PyGMT's policy on NEP29 at https://www.pygmt.org/v0.4.0/maintenance.html#dependencies-policy, xref #1074.
…enericMappingTools#1074) Start adopting NEP29 - Recommend Python and NumPy version support as a community policy standard, see https://numpy.org/neps/nep-0029-deprecation_policy.html. Bumps minimum supported NumPy version to 1.17 in the setup.py, requirements.txt and environment.yml files. Also set minimum required Python version to be 3.7+. * Modify CI test matrix to test on Numpy 1.17 and 1.20, Python 3.7 and 3.9 Test only on minimum and maximum supported versions according to NEP. I.e. minimum of NumPy 1.17 and Py3.7, maximum of NumPy 1.20 and Py3.9. This drops testing on the middle Python 3.8 version to conserve CI resources. * Add NumPy version to codecov reporting * Update website links of PyGMT deps to use https and official sources * Update MAINTENANCE.md to mention two Linux CI jobs are run in draft PRs * Place NEP29 dependencies policy in MAINTENANCE.md * List NumPy in compatibility version list on main README.rst page
Bumps [numpy](https://github.com/numpy/numpy) from 1.20.3 to 1.21.0 released on 23 June 2021. - [Release notes](https://github.com/numpy/numpy/releases) - [Changelog](https://github.com/numpy/numpy/blob/v1.21.0/doc/changelog/1.21.0-changelog.rst) - [Commits](https://github.com/GenericMappingTools/pygmt/pull/numpy/[email protected]) This is in line with PyGMT's policy on NEP29 at https://www.pygmt.org/v0.4.0/maintenance.html#dependencies-policy, xref GenericMappingTools#1074.
Description of proposed changes
Start adopting NEP29 - Recommend Python and NumPy version support as a community policy standard, see https://numpy.org/neps/nep-0029-deprecation_policy.html. Also modifies the Github Actions CI test matrix to test only minimum (NumPy1.17/Python3.7) and maximum (NumPy1.20/Python3.9) versions only.
Bumps minimum supported NumPy version to 1.17 in the setup.py, requirements.txt and environment.yml files. Also set minimum required Python version to be 3.7+.
Note: Will also need to modify the conda-forge pygmt-feedstock recipe to set these minimum required versions, specifically at https://github.com/conda-forge/pygmt-feedstock/blob/823be1f1bf96e6a33725ef7d9c016a0da645b1a9/recipe/meta.yaml#L27-L30
TODO also:
Fixes #690
Reminders
make format
andmake check
to make sure the code follows the style guide.doc/api/index.rst
.Slash Commands
You can write slash commands (
/command
) in the first line of a comment to performspecific operations. Supported slash commands are:
/format
: automatically format and lint the code/test-gmt-dev
: run full tests on the latest GMT development version