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

Release PyGMT v0.14.0 #3691

Closed
37 of 49 tasks
seisman opened this issue Dec 16, 2024 · 20 comments
Closed
37 of 49 tasks

Release PyGMT v0.14.0 #3691

seisman opened this issue Dec 16, 2024 · 20 comments
Labels
maintenance Boring but important stuff for the core devs
Milestone

Comments

@seisman
Copy link
Member

seisman commented Dec 16, 2024

Release: v0.14.0
Scheduled Date: 2024/12/31
Pull request due date: 2024/12/28
DOI: 10.5281/zenodo.14535921

Priority PRs/issues to complete prior to release

Before release:

  • Check SPEC 0 to see if we need to bump the minimum supported versions of GMT, Python and core package dependencies (NumPy, pandas, Xarray) @seisman
  • Review the "PyGMT Team" page @seisman
  • Check to ensure that:
  • Update warnings in pygmt/_show_versions.py as well as notes in Not working transparency regarding GMT-Ghostscript incompatibility
  • Reserve a DOI on Zenodo by clicking on "New Version" @seisman
  • Finish up the "Changelog entry for v0.x.x" Pull Request (Use the previous changelog PR as a reference)
  • Run make codespell to check common misspellings. If there are any, either fix them or add them to ignore-words-list in pyproject.toml
  • Draft the announcement on https://hackmd.io/sxVhw5ReS3OVoeHgDmAxtA

Release:

  • At the PyGMT release page on GitHub:
    • Edit the draft release notes with the finalized changelog
    • Set the tag version and release title to vX.Y.Z
    • Make a release by clicking the 'Publish Release' button, this will automatically create a tag too
  • Download pygmt-X.Y.Z.zip (rename to pygmt-vX.Y.Z.zip) and baseline-images.zip from
    the release page, and upload the two zip files to https://zenodo.org/deposit,
    ensure that they are filed under the correct reserved DOI

After release:


  • Party 🎉 (don't tick before all other checkboxes are ticked!)
@seisman seisman added the maintenance Boring but important stuff for the core devs label Dec 16, 2024
@seisman seisman added this to the 0.14.0 milestone Dec 16, 2024
@seisman
Copy link
Member Author

seisman commented Dec 16, 2024

@GenericMappingTools/pygmt-maintainers I think it's time to prepare for the v0.14.0 release. I've set the release date to 2024/12/31, but it's OK to postpone it to early Jan. 2025, depending on the amount of final changes that we want to make to the v0.14.0 release.

@yvonnefroehlich yvonnefroehlich pinned this issue Dec 16, 2024
@yvonnefroehlich
Copy link
Member

yvonnefroehlich commented Dec 16, 2024

@GenericMappingTools/pygmt-maintainers I think it's time to prepare for the v0.14.0 release. I've set the release date to 2024/12/31, but it's OK to postpone it to early Jan. 2025, depending on the amount of final changes that we want to make to the v0.14.0 release.

I have added some of my pending PR, but probably a bit ambious to finish them all for v0.14.0.
Would prefer to move the release not too much into January, as it will be likely that I will be only limited available for the first month / half of 2025.

@seisman
Copy link
Member Author

seisman commented Dec 17, 2024

I have added some of my pending PR, but probably a bit ambious to finish them all for v0.14.0.

PRs/Issues that we have set the v0.14.0 milestone can be tracked at https://github.com/GenericMappingTools/pygmt/milestone/20. We may finish them or not depending on our availability. In the release checklist, I think we should only list the high-priority PRs/issues that must be finished prior to the release.

@weiji14
Copy link
Member

weiji14 commented Dec 19, 2024

I have added some of my pending PR, but probably a bit ambious to finish them all for v0.14.0.
Would prefer to move the release not too much into January, as it will be likely that I will be only limited available for the first month / half of 2025.

PRs/Issues that we have set the v0.14.0 milestone can be tracked at https://github.com/GenericMappingTools/pygmt/milestone/20. We may finish them or not depending on our availability. In the release checklist, I think we should only list the high-priority PRs/issues that must be finished prior to the release.

We can keep the release to be end of December. @seisman, I feel that the PRs around making NetCDF4 optional and pygmt.read might need more time, would probably push that to the v0.15.0 release. The PR at #3115 can probably get in though, I should have time to review next week around Christmas break.

@seisman
Copy link
Member Author

seisman commented Dec 27, 2024

@GenericMappingTools/pygmt-maintainers

I plan to merge PRs #3722, #3727, and #3726 tomorrow (2024/12/28) and then start working on the release changelog. From 12/28 to 12/31, documentation changes like #3720, and #3711 can still be merged, but no more other code changes (#2431 may be an exception depending on the progress).

@seisman
Copy link
Member Author

seisman commented Dec 30, 2024

I've created a draft release announcement at https://hackmd.io/sxVhw5ReS3OVoeHgDmAxtA.

@yvonnefroehlich
Copy link
Member

I've created a draft release announcement at https://hackmd.io/sxVhw5ReS3OVoeHgDmAxtA.

Thanks @seisman for starting to work on the draft release announcement, I made some additions and updates.

@seisman
Copy link
Member Author

seisman commented Dec 31, 2024

There is still one failure in the "GMT Dev Tests" workflow:

________________________ test_sphinterpolate_no_outgrid ________________________

mars =      longitude  latitude  radius_m
0      278.231   -40.059      6888
1      302.360    15.487      -233
2       57.10...8.384   -32.260      1375
368    312.032    22.271     -4400
369    134.260    47.670     -3820

[370 rows x 3 columns]

    @pytest.mark.benchmark
    def test_sphinterpolate_no_outgrid(mars):
        """
        Test sphinterpolate with no set outgrid.
        """
        temp_grid = sphinterpolate(data=mars, spacing=1, region="g")
        assert temp_grid.dims == ("lat", "lon")
        assert temp_grid.gmt.gtype == 1  # Geographic grid
        assert temp_grid.gmt.registration == 0  # Gridline registration
        npt.assert_allclose(temp_grid.max(), 14628.144)
        npt.assert_allclose(temp_grid.min(), -6908.1987)
        npt.assert_allclose(temp_grid.median(), 118.96849)
>       npt.assert_allclose(temp_grid.mean(), 272.60593)
E       AssertionError: 
E       Not equal to tolerance rtol=1e-07, atol=0
E       
E       Mismatched elements: 1 / 1 (100%)
E       Max absolute difference among violations: 0.00024763
E       Max relative difference among violations: 9.0836965e-07
E        ACTUAL: array(272.60568, dtype=float32)
E        DESIRED: array(272.60593)

It's likely caused by xarray changes.

@seisman
Copy link
Member Author

seisman commented Jan 1, 2025

I've made the v0.14.0 release and everything works fine, but the "Publish to PyPI" workflow fails https://github.com/GenericMappingTools/pygmt/actions/runs/12561955854/job/35021691730:

Error: Attestation generation failure: /github/workspace/dist/pygmt-0.14.0.tar.gz already has a publish attestation: /github/workspace/dist/pygmt-0.14.0.tar.gz.publish.attestation

So v0.14.0 is not available on PyPI yet.

This upstream issue pypa/gh-action-pypi-publish#283 explains the reason. In short, it's because the action (actually the twine tool called in this action) generates the attestation file (https://github.blog/news-insights/product-news/introducing-artifact-attestations-now-in-public-beta/), and it fails if a attestation file already exists. So, our CI job fails because we use the action twice, for TestPyPI and PyPI, respectively.

The issue also provides many solutions, e.g.,

We need to decide what to do with the workflow, but before that we need to decide what to do with v0.14.0 release. We can either manually upload v0.14.0 to PyPI or have a v0.14.1 release after fixing the workflow.

@seisman
Copy link
Member Author

seisman commented Jan 1, 2025

We need to decide what to do with the workflow, but before that we need to decide what to do with v0.14.0 release. We can either manually upload v0.14.0 to PyPI or have a v0.14.1 release after fixing the workflow.

I've decided to manually upload v0.14.0 following instructions at https://packaging.python.org/en/latest/guides/distributing-packages-using-setuptools/#packaging-your-project. Now v0.14.0 is on PyPI.

@yvonnefroehlich
Copy link
Member

A happy and healthy year 2025 to everyone 🎆🎇!

Thanks @seisman for finishing the changelog and making the release. After roughly reading through the PyPI-upload issue I feel uploading v0.14.0 manually was the better, fast, and probably easier solution.

For me, the draft release announcement looks already quite good. But I am a bit unsure about the examples and conferences sections. Currently, the AGU24 contributions (preworkshop and talk) are mentioned within in the conference section at the end. But for other releases we included the addition to the “External resources” page in the section for the “Addition and updates on examples”. Should we mention the preworkshop twice or move both AGU24 contributions up to the examples section? What do others think?

@seisman
Copy link
Member Author

seisman commented Jan 2, 2025

I think the current draft announcement is good.

@michaelgrund
Copy link
Member

Yes, announcement draft looks good!

@seisman
Copy link
Member Author

seisman commented Jan 2, 2025

@yvonnefroehlich Could you please make the announcements on the forum and ResearchGate?

@yvonnefroehlich
Copy link
Member

@yvonnefroehlich Could you please make the announcements on the forum and ResearchGate?

Thanks for the feedbacks @seisman and @michaelgrund! Just wanted to make the announcement on the forum, but currently I can’t access to GMT forum website; I will try it later again. Is there any planned maintenance?

@seisman
Copy link
Member Author

seisman commented Jan 2, 2025

I can access the forum, so the website is still on-line.

@michaelgrund
Copy link
Member

michaelgrund commented Jan 2, 2025

Can also do the RG announcement later if @yvonnefroehlich has no time. Btw, I have the same issue accessing the forum at the moment.

Edit: Done at https://www.researchgate.net/publication/387664868_PyGMT_A_Python_interface_for_the_Generic_Mapping_Tools_v0140

@seisman
Copy link
Member Author

seisman commented Jan 2, 2025

OK, I'll do the forum announcement in a few minutes.

Edit: Done at https://forum.generic-mapping-tools.org/t/pygmt-v0-14-0-released/5668.

@yvonnefroehlich
Copy link
Member

yvonnefroehlich commented Jan 2, 2025

OK, I'll do the forum announcement in a few minutes.

Edit: Done at https://forum.generic-mapping-tools.org/t/pygmt-v0-14-0-released/5668.

OK. Thanks!
(Just fixed two links.)

I can access the forum, so the website is still on-line.

I have still problems to access the forum (tried different browsers as well as my laptop and smartphone). It only works when using the VPN of my university. But good to hear, that the website itself is online.

@yvonnefroehlich
Copy link
Member

After @michaelgrund did the RG upload, it looks like all box a ticked 🎉! Thanks everybody for their efforts for this release 🤗!

@seisman seisman closed this as completed Jan 3, 2025
@seisman seisman unpinned this issue Jan 3, 2025
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

No branches or pull requests

4 participants