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

Policy for minimum supported GMT versions #2967

Closed
seisman opened this issue Jan 8, 2024 · 5 comments · Fixed by #3070
Closed

Policy for minimum supported GMT versions #2967

seisman opened this issue Jan 8, 2024 · 5 comments · Fixed by #3070
Assignees
Labels
maintenance Boring but important stuff for the core devs
Milestone

Comments

@seisman
Copy link
Member

seisman commented Jan 8, 2024

With GMT 6.5.0 released, now PyGMT supports three GMT minor versions, 6.3, 6.4 and 6.5, although old GMT versions may have some bugs and miss some features. Supporting multiple GMT versions is a big burden for us maintainers, so we need to decide our policy for the minimum supported GMT versions.

Here are a few options:

  1. No policy, i.e., try our best to support the oldest GMT version, unless there is no way or very difficult to be backward-compatible
  2. Follow SPEC 0's recommendations for Python versions (Migrate from NEP 029 to SPEC 0 #2863), and support for GMT versions to be dropped 3 years after their initial release.
  3. Follow SPEC 0's recommendations for core package dependencies (Migrate from NEP 029 to SPEC 0 #2863), and support for GMT versions to be dropped 2 years after their initial release.

FYI, GMT usually has one release per year (https://github.com/GenericMappingTools/gmt/tags).

  • GMT 6.3.0 was released on Nov 19, 2021
  • GMT 6.4.0 was released on Jun 16, 2022
  • GMT 6.5.0 was released on Jan 7, 2024
@seisman seisman added the discussions Need more discussion before taking further actions label Jan 8, 2024
@seisman seisman added this to the 0.12.0 milestone Jan 8, 2024
@weiji14
Copy link
Member

weiji14 commented Feb 6, 2024

We can probably support about 2-3 minor GMT versions at a time, so maybe go with Option 2 (drop GMT versions after 3 years)? That's assuming that GMT continues to have a minor release every year, which means PyGMT will support at least 2 (or more) GMT minor versions at a time.

@seisman
Copy link
Member Author

seisman commented Feb 6, 2024

I'm also in favor of option 2. Ping @GenericMappingTools/pygmt-maintainers for comments.

@seisman seisman added maintenance Boring but important stuff for the core devs and removed discussions Need more discussion before taking further actions labels Feb 6, 2024
@seisman
Copy link
Member Author

seisman commented Feb 18, 2024

Ping @yvonnefroehlich @willschlitzer @michaelgrund for comments. Otherwise, we will go with option 2.

@yvonnefroehlich
Copy link
Member

I feel PyGMT should support the last 2-3 GMT versions. From my experience, many users are not updating GMT immediately after a new release. I personally prefer to stay with the same GMT version for a publication, which can easily take a year (or more) to be finally published. So, I think option 2 is a fair compromise between supporting older GMT versions and the work for developers and maintainers.

@seisman seisman added the help wanted Helping hands are appreciated label Feb 21, 2024
@seisman
Copy link
Member Author

seisman commented Feb 21, 2024

I think we will go for option 2. Need to document the policy in README, doc/maintenance.md, doc/minversions.rst and also need to update the release checklist. Let's wait for #3056 and #3059 first.

@seisman seisman pinned this issue Feb 21, 2024
@seisman seisman removed the help wanted Helping hands are appreciated label Feb 27, 2024
@seisman seisman self-assigned this Feb 27, 2024
@seisman seisman unpinned this issue Feb 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
maintenance Boring but important stuff for the core devs
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants