GenericMappingTools / pygmt

A Python interface for the Generic Mapping Tools.
https://www.pygmt.org
BSD 3-Clause "New" or "Revised" License
759 stars 220 forks source link

Release PyGMT v0.12.0 #3180

Closed seisman closed 6 months ago

seisman commented 6 months ago

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:

Release:

After release:

seisman commented 6 months ago

@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 commented 6 months ago

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

weiji14 commented 6 months ago

@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 https://github.com/GenericMappingTools/pygmt/issues/601#issuecomment-1913414832, we can continue the discussion there, maybe we need to email someone at Zenodo?

weiji14 commented 6 months ago

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

michaelgrund commented 6 months ago

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

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

yvonnefroehlich commented 6 months ago

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 commented 6 months ago

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

``` =================================== FAILURES =================================== ______________ test_geopandas_info_shapely[multipolygon-desired0] ______________ geojson = @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: : 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 https://github.com/GenericMappingTools/pygmt/pull/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 commented 6 months ago

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 commented 6 months ago

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 commented 6 months ago

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 commented 6 months ago

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 commented 6 months ago

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 commented 6 months ago

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 commented 6 months ago

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 commented 6 months ago

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 :slightly_smiling_face:

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

michaelgrund commented 6 months ago

Can make the RG post later this day or tomorrow.

Added at RG.

seisman commented 6 months ago

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