GenericMappingTools / pygmt

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

SPEC 0: Set minimum supported versions to pandas>=2.0 and xarray>=2023.04 #3460

Closed seisman closed 1 month ago

seisman commented 1 month ago

Description of proposed changes

Following SPEC0, we should drop pandas 1.5 and xarray 2022.09 support in 2024 Q3, but now we have dependency conflicts.

  error    libmamba Could not solve for environment specs
      The following packages are incompatible
      ├─ pandas =2.0 is requested and can be installed;
      └─ xarray =2022.11 is not installable because it requires
         └─ pandas >=1.3,<2a0, which conflicts with any installable versions previously reported.
  critical libmamba Could not solve for environment specs

Following https://github.com/pydata/xarray/issues/7716#issuecomment-1510434058, xarray 2023.04 works with pandas 2.0. Then we must decide whether to merge this PR now (violating the SPEC0 policy) or wait until April 2025.

I prefer to wait until April 2025, so adding this PR to milestone v0.16.0.

Previous pandas version bump at #3043.

weiji14 commented 1 month ago

Following pydata/xarray#7716 (comment), xarray 2023.04 works with pandas 2.0. Then we must decide whether to merge this PR now (violating the SPEC0 policy) or wait until April 2025

Yeah, I think we'll need to bump the minimum required xarray version more than needed this time (to 2023.03) to work with pandas=2.0, considering that conda-forge did a repodata-patch for this at https://github.com/conda-forge/conda-forge-repodata-patches-feedstock/pull/426#issuecomment-1496389758. Note that SPEC 0 does say the following:

... projects may occasionally want to drop support for core package dependencies earlier than recommended by this SPEC. For instance, if a newer minimum version of a core package is needed by a project due to a critical bug fix, which is not backported to older versions.

I would consider that xarray 2023.03 supporting pandas 2.0 is a critical bug fix :slightly_smiling_face:, so would prefer to get this into PyGMT v0.14.0.

seisman commented 1 month ago

I'm OK with making it to v0.14.0

seisman commented 1 month ago

Need to update doc/minversions.rst too.

No need to update this file after https://github.com/GenericMappingTools/pygmt/pull/3380.

Can we also agree on a consistent title for SPEC 0 updates? We've been inconsistent in https://www.pygmt.org/v0.13.0/changes.html:

  • SPEC 0: Bump minimum supported version to xarray 2022.09
  • SPEC 0: Set minimum supported versions to Python>=3.10, pandas>=1.5 and xarray>=2022.06
  • NEP29: Set minimum required version to NumPy 1.23+

I like the middle one using pandas>=1.5, but no strong opinions.

Sounds good