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.12.0 #3180

Closed
31 of 35 tasks
seisman opened this issue Apr 19, 2024 · 17 comments
Closed
31 of 35 tasks

Release PyGMT v0.12.0 #3180

seisman opened this issue Apr 19, 2024 · 17 comments
Labels
maintenance Boring but important stuff for the core devs
Milestone

Comments

@seisman
Copy link
Member

seisman commented Apr 19, 2024

Release: v0.12.0
Scheduled Date: 2024/05/01
Pull request due date: 2024/04/28

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]
  • Run make codespell to check common misspellings. If there are any, either fix them or add them to ignore-words-list in pyproject.toml
  • Check to ensure that:
  • Reserve a DOI on Zenodo by clicking on "New Version" 10.5281/zenodo.11062720
  • Finish up 'Changelog entry for v0.x.x' Pull Request: Changelog entry for v0.12.0 #3201
    • Add a new entry in doc/_static/version_switch.js for documentation switcher
    • Update CITATION.cff and BibTeX at https://github.com/GenericMappingTools/pygmt#citing-pygmt
      • Update authorship list
      • Update DOI (and url for BibTeX)
      • Update version
      • Update date released
    • Add the documentation link doc/minversions.md
    • Add minimum required version information doc/minversions.md
    • Copy draft changelog from Release Drafter and edit it to look nice (see maintainers guide for details)

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
  • Manually upload the pygmt-vX.Y.Z.zip and baseline-images.zip files to https://zenodo.org/deposit, ensure that it is 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 Apr 19, 2024
@seisman seisman added this to the 0.12.0 milestone Apr 19, 2024
@seisman seisman pinned this issue Apr 19, 2024
@seisman
Copy link
Member Author

seisman commented Apr 19, 2024

@GenericMappingTools/pygmt-maintainers

It has been 2.5 months since the release of PyGMT v0.11.0 and there are more than 100 commits since then. I think it's time to prepare for the v0.12.0 release.

Please review your PRs/issues and see if there are any PRs/issues that you want to address before v0.12.0.

@seisman
Copy link
Member Author

seisman commented Apr 23, 2024

@weiji14 Please reserver a DOI on Zenodo. I can do it to GMT and GSHHG, but not PyGMT and DCW. Not sure why.

@weiji14
Copy link
Member

weiji14 commented Apr 25, 2024

@weiji14 Please reserver a DOI on Zenodo.

Ok, DOI reserved: 10.5281/zenodo.11062720.

I can do it to GMT and GSHHG, but not PyGMT and DCW. Not sure why.

Same issue as before at #601 (comment), we can continue the discussion there, maybe we need to email someone at Zenodo?

@weiji14
Copy link
Member

weiji14 commented Apr 26, 2024

Starting draft announcement at https://hackmd.io/@pygmt/v0-12-0_announcement

@michaelgrund
Copy link
Member

Starting draft announcement at https://hackmd.io/@pygmt/v0-12-0_announcement

Thanks for the initiation @weiji14. Made already a few adjustments.

@yvonnefroehlich
Copy link
Member

Starting draft announcement at https://hackmd.io/@pygmt/v0-12-0_announcement

Thanks for the initiation @weiji14. Made already a few adjustments.

Thanks @weiji14 for setting up the release draft. I also made some adjustments.

@seisman
Copy link
Member Author

seisman commented Apr 29, 2024

In the "GMT Legacy Tests" workflow, we have some failures with geopandas inputs, e.g.,:

=================================== FAILURES ===================================
______________ test_geopandas_info_shapely[multipolygon-desired0] ______________

geojson = <shapely.geometry.multipolygon.MultiPolygon object at 0x7fb12b12cb50>

    @contextmanager
    def tempfile_from_geojson(geojson):
        """
        Saves any geo-like Python object which implements ``__geo_interface__`` (e.g. a
        geopandas.GeoDataFrame or shapely.geometry) to a temporary OGR_GMT text file.
    
        Parameters
        ----------
        geojson : geopandas.GeoDataFrame
            A geopandas GeoDataFrame, or any geo-like Python object which
            implements __geo_interface__, i.e. a GeoJSON.
    
        Yields
        ------
        tmpfilename : str
            A temporary OGR_GMT format file holding the geographical data.
            E.g. '1a2b3c4d5e6.gmt'.
        """
        with GMTTempFile(suffix=".gmt") as tmpfile:
            import geopandas as gpd
    
            Path(tmpfile.name).unlink()  # Ensure file is deleted first
            ogrgmt_kwargs = {"filename": tmpfile.name, "driver": "OGR_GMT", "mode": "w"}
            try:
                # OGR_GMT only supports 32-bit integers. We need to map int/int64
                # types to int32/float types depending on if the column has an
                # 32-bit integer overflow issue. Related issues:
                # https://github.com/geopandas/geopandas/issues/967#issuecomment-842877704
                # https://github.com/GenericMappingTools/pygmt/issues/2497
>               if geojson.index.name is None:
E               AttributeError: 'MultiPolygon' object has no attribute 'index'

../pygmt/helpers/tempfile.py:142: AttributeError

During handling of the above exception, another exception occurred:

>   ???

fiona/_shim.pyx:83: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

>   ???
E   fiona._err.CPLE_OpenFailedError: <fiona.io.MemoryFile object at 0x7fb12b1ed340>: No such file or directory

fiona/_err.pyx:291: CPLE_OpenFailedError

but these tests pass in the "Tests" workflow, so I'm not sure what's happening.

The "GMT Dev Tests" workflow also fail, because cftime is incompatible with numpy 2.x (https://github.com/GenericMappingTools/pygmt/actions/runs/8871676257). In #3208, I pinned numpy to v1.x and there are some failures (https://github.com/GenericMappingTools/pygmt/actions/runs/8872483491/job/24356892546?pr=3208), because geopandas v1.0.0-alpha changes its default engine from fiona to pyogrio (https://github.com/geopandas/geopandas/releases/tag/v1.0.0-alpha1). I guess we need to migrate from fiona to pyogrio in either this release or next release (https://geopandas.org/en/latest/docs/user_guide/fiona_to_pyogrio.html).

@weiji14
Copy link
Member

weiji14 commented May 1, 2024

Ok release has been tagged at https://github.com/GenericMappingTools/pygmt/releases/tag/v0.12.0, and Zenodo upload done at https://doi.org/10.5281/zenodo.11062720. Gonna go to bed now, and sort out the conda-forge bot update tomorrow (unless someone else gets to it first).

In the meantime, feel free anyone to update the forum post draft. Seems like there are more deprecation warnings to add?

@yvonnefroehlich
Copy link
Member

Ok release has been tagged at https://github.com/GenericMappingTools/pygmt/releases/tag/v0.12.0, and Zenodo upload done at https://doi.org/10.5281/zenodo.11062720.

Thanks for making the release @weiji14 !

In the meantime, feel free anyone to update the forum post draft. Seems like there are more deprecation warnings to add?

Hm, you mean we may want to add a separate section with the deprecations in this release, mentioning:

* Figure.plot/plot3d/rose: Remove deprecated parameter "color", use "fill" instead (deprecated since v0.8.0) ([#3032](https://github.com/GenericMappingTools/pygmt/pull/3032))
* Figure.velo: Remove deprecated parameters "color"/"uncertaintycolor", use "fill"/"uncertaintyfill" instead (deprecated since v0.8.0) ([#3034](https://github.com/GenericMappingTools/pygmt/pull/3034))
* Figure.wiggle: Remove deprecated parameter "color", use "fillpositive"/"fillnegative" instead (deprecated since v0.8.0) ([#3035](https://github.com/GenericMappingTools/pygmt/pull/3035))
* Figure.grdimage: Remove deprecated parameter "bit_color", use "bitcolor" instead (deprecated since v0.8.0) ([#3036](https://github.com/GenericMappingTools/pygmt/pull/3036))
* Figure: Remove deprecated "xshift" ("X") and "yshift" ("Y") parameters, use "Figure.shift_origin" instead (deprecated since v0.8.0) ([#3044](https://github.com/GenericMappingTools/pygmt/pull/3044))
* Figure: Remove deprecated "timestamp" ("U") parameter, use "Figure.timestamp" instead (deprecated since v0.9.0) ([#3045](https://github.com/GenericMappingTools/pygmt/pull/3045))

The following points are already added under "Upcoming deprecations":

* Deprecate the "build_arg_string" function, use build_arg_list instead (deprecated since v0.12.0, will be removed in v0.14.0) ([#3184](https://github.com/GenericMappingTools/pygmt/pull/3184))
* Deprecate the "sequence_plus" converter, only used for the "annotation" parameter of Figure.grdcontour (deprecated since v0.12.0, will be removed in v0.14.0) ([#3207](https://github.com/GenericMappingTools/pygmt/pull/3207))
* Figure.grdcontour: Deprecate parameter "interval" to "levels" (FutureWarning since v0.12.0, will be removed in v0.16.0) ([#3209](https://github.com/GenericMappingTools/pygmt/pull/3209))

Regarding the point

* clib: Rename the "virtualfile_from_data" method to "virtualfile_in" ([#3068](https://github.com/GenericMappingTools/pygmt/pull/3068))

I was / am a bit unsure, as there ins no FutureWarning added and not version stated when virtuealfile_frome_data is removed.

@weiji14
Copy link
Member

weiji14 commented May 2, 2024

Hm, you mean we may want to add a separate section with the deprecations in this release, mentioning:

Oh no, we don't need to mention the deprecations/removals, only the upcoming deprecations for v0.13.0 and beyond.

@yvonnefroehlich
Copy link
Member

Hm, you mean we may want to add a separate section with the deprecations in this release, mentioning:

Oh no, we don't need to mention the deprecations/removals, only the upcoming deprecations for v0.13.0 and beyond.

Then I think, all deprecations/removals are included in the release draft. Please correct me, in case I overlooked something.

@yvonnefroehlich
Copy link
Member

Hm, you mean we may want to add a separate section with the deprecations in this release, mentioning:

Oh no, we don't need to mention the deprecations/removals, only the upcoming deprecations for v0.13.0 and beyond.

Then I think, all deprecations/removals are included in the release draft. Please correct me, in case I overlooked something.

@GenericMappingTools/pygmt-maintainers are there any improvements regarding the announcement draft? If not, I think we can post it on the GMT forum. I should find time to do this later the day.

@weiji14
Copy link
Member

weiji14 commented May 4, 2024

Then I think, all deprecations/removals are included in the release draft. Please correct me, in case I overlooked something.

@GenericMappingTools/pygmt-maintainers are there any improvements regarding the announcement draft? If not, I think we can post it on the GMT forum. I should find time to do this later the day.

Yep, I just added one more note that passing something like Figure.grdcontour(..., annotation=[100, "e", "f10p", "gred"] is deprecated since #3116, and people should use annotation="100+e+f10p+gred" instead. Feel free to post the announcement on the forum!

@yvonnefroehlich
Copy link
Member

yvonnefroehlich commented May 4, 2024

Then I think, all deprecations/removals are included in the release draft. Please correct me, in case I overlooked something.

@GenericMappingTools/pygmt-maintainers are there any improvements regarding the announcement draft? If not, I think we can post it on the GMT forum. I should find time to do this later the day.

Yep, I just added one more note that passing something like Figure.grdcontour(..., annotation=[100, "e", "f10p", "gred"] is deprecated since #3116, and people should use annotation="100+e+f10p+gred" instead. Feel free to post the announcement on the forum!

Thanks for proof reading @weiji14! I just moved the bug report part before the "Updates on Intros, Tutorials, and Gallery examples" section. The GMT forum announcement is at https://forum.generic-mapping-tools.org/t/pygmt-v0-12-0/4864.

@weiji14
Copy link
Member

weiji14 commented May 4, 2024

Thanks for proof reading @weiji14! I just moved the bug report part before the "Updates on Intros, Tutorials, and Gallery examples" section. The GMT forum announcement is at https://forum.generic-mapping-tools.org/t/pygmt-v0-12-0/4864.

Wonderful! I've cross-posted this using my personal Mastodon account at https://mastodon.nz/@weiji14/112381710673099960 (since we haven't set up a Fediverse account yet for GMT/PyGMT). I'll need to find time to follow up on that at https://forum.generic-mapping-tools.org/t/gmt-and-pygmt-mastodon-migration/4227/2 🙂

Last task is the ResearchGate upload. Who would like to do this?

@michaelgrund
Copy link
Member

michaelgrund commented May 4, 2024

Can make the RG post later this day or tomorrow.

Added at RG.

@seisman
Copy link
Member Author

seisman commented May 5, 2024

Great work everyone. Let's move forward to v0.13.0!

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