xCDAT / xcdat

An extension of xarray for climate data analysis on structured grids.
https://xcdat.readthedocs.io/en/latest/
Apache License 2.0
106 stars 11 forks source link

[Bug]: conda update wants to downgrade xcdat from 0.7.1 to 0.7.0 #677

Open jypeter opened 2 weeks ago

jypeter commented 2 weeks ago

What happened?

I have a brand new python environment on a Linux server where I installed xcdat and other stuff a few days ago

I thought I would check if there were some updates available today. There are, including a numpy update, but I also get

The following packages will be DOWNGRADED:

  xcdat                                  0.7.1-pyhd8ed1ab_0 --> 0.7.0-pyhd8ed1ab_0

Full output below. I have type "n" to cancel the operation

$ conda update -n bezaud_env --all
Retrieving notices: ...working... done
Channels:
 - conda-forge
 - defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /homedata/jypmce/miniconda3_2024-03/envs/bezaud_env

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    aws-c-auth-0.7.22          |       heee8711_7         104 KB  conda-forge
    aws-c-cal-0.7.0            |       h816f305_0          47 KB  conda-forge
    aws-c-http-0.8.2           |       had8cc17_4         190 KB  conda-forge
    aws-c-io-0.14.9            |       h37d6bf3_5         154 KB  conda-forge
    aws-c-s3-0.6.0             |       h1f67ec3_0         108 KB  conda-forge
    aws-crt-cpp-0.27.1         |       h93f15ff_1         337 KB  conda-forge
    aws-sdk-cpp-1.11.329       |       h70d5bd1_7         3.5 MB  conda-forge
    ipykernel-6.29.5           |     pyh3099207_0         116 KB  conda-forge
    ipython-8.26.0             |     pyh707e725_0         585 KB  conda-forge
    libarrow-16.1.0            |  h040edfd_12_cpu         7.9 MB  conda-forge
    libarrow-acero-16.1.0      |  he02047a_12_cpu         585 KB  conda-forge
    libarrow-dataset-16.1.0    |  he02047a_12_cpu         565 KB  conda-forge
    libarrow-substrait-16.1.0  |  hc9a23c6_12_cpu         536 KB  conda-forge
    libgoogle-cloud-2.26.0     |       h26d7fe4_0         1.2 MB  conda-forge
    libgoogle-cloud-storage-2.26.0|       ha262f82_0         746 KB  conda-forge
    libparquet-16.1.0          |  h9e5060d_12_cpu         1.1 MB  conda-forge
    mpich-4.2.2                |     h4a7f18d_100        25.1 MB  conda-forge
    numpy-2.0.0                |  py312h22e1c76_0         8.0 MB  conda-forge
    pillow-10.4.0              |  py312h287a98d_0        40.1 MB  conda-forge
    s2n-1.4.17                 |       he19d79f_0         342 KB  conda-forge
    snappy-1.2.1               |       ha2e4443_0          41 KB  conda-forge
    xcdat-0.7.0                |     pyhd8ed1ab_0          70 KB  conda-forge
    xesmf-0.8.6                |     pyhd8ed1ab_0          44 KB  conda-forge
    ------------------------------------------------------------
                                           Total:        91.4 MB

The following packages will be UPDATED:

  aws-c-auth                              0.7.22-hf36ad8f_6 --> 0.7.22-heee8711_7
  aws-c-cal                               0.6.15-h816f305_1 --> 0.7.0-h816f305_0
  aws-c-http                               0.8.2-h75ac8c9_3 --> 0.8.2-had8cc17_4
  aws-c-io                                0.14.9-hd3d3696_3 --> 0.14.9-h37d6bf3_5
  aws-c-s3                                0.5.10-h44b787d_4 --> 0.6.0-h1f67ec3_0
  aws-crt-cpp                            0.26.12-he940a02_1 --> 0.27.1-h93f15ff_1
  aws-sdk-cpp                           1.11.329-h0f5bab0_6 --> 1.11.329-h70d5bd1_7
  ca-certificates                       2024.6.2-hbcca054_0 --> 2024.7.4-hbcca054_0
  ipykernel                             6.29.4-pyh3099207_0 --> 6.29.5-pyh3099207_0
  ipython                               8.25.0-pyh707e725_0 --> 8.26.0-pyh707e725_0
  libarrow                           16.1.0-h4a673ee_10_cpu --> 16.1.0-h040edfd_12_cpu
  libarrow-acero                     16.1.0-hac33072_10_cpu --> 16.1.0-he02047a_12_cpu
  libarrow-dataset                   16.1.0-hac33072_10_cpu --> 16.1.0-he02047a_12_cpu
  libarrow-substrait                 16.1.0-h7e0c224_10_cpu --> 16.1.0-hc9a23c6_12_cpu
  libcurl                                  8.8.0-hca28451_0 --> 8.8.0-hca28451_1
  libgoogle-cloud                         2.25.0-h2736e30_0 --> 2.26.0-h26d7fe4_0
  libgoogle-cloud-s~                      2.25.0-h3d9a0c8_0 --> 2.26.0-ha262f82_0
  libparquet                         16.1.0-h6a7eafb_10_cpu --> 16.1.0-h9e5060d_12_cpu
  mpich                                  4.2.1-h63d650b_101 --> 4.2.2-h4a7f18d_100
  numpy                              1.26.4-py312heda63a1_0 --> 2.0.0-py312h22e1c76_0
  pillow                             10.3.0-py312h287a98d_1 --> 10.4.0-py312h287a98d_0
  s2n                                     1.4.16-he19d79f_0 --> 1.4.17-he19d79f_0
  snappy                                   1.2.0-hdb0a2a9_1 --> 1.2.1-ha2e4443_0
  xesmf                                  0.8.5-pyhd8ed1ab_0 --> 0.8.6-pyhd8ed1ab_0

The following packages will be DOWNGRADED:

  xcdat                                  0.7.1-pyhd8ed1ab_0 --> 0.7.0-pyhd8ed1ab_0

Proceed ([y]/n)?

What did you expect to happen? Are there are possible answers you came across?

I did not expect an xcdat downgrade!

Minimal Complete Verifiable Example (MVCE)

No response

Relevant log output

No response

Anything else we need to know?

No response

Environment

$ conda activate bezaud_env
(bezaud_env) jypmce@spiritx1:/homedata/jypmce/miniconda3_2024-03/pkgs/python-3.12.4-h194c7f8_0_cpython/bin$ python
Python 3.12.4 | packaged by conda-forge | (main, Jun 17 2024, 10:23:07) [GCC 12.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import xarray as xr
>>> xr.show_versions()

INSTALLED VERSIONS
------------------
commit: None
python: 3.12.4 | packaged by conda-forge | (main, Jun 17 2024, 10:23:07) [GCC 12.3.0]
python-bits: 64
OS: Linux
OS-release: 5.4.0-176-generic
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8
LOCALE: ('en_US', 'UTF-8')
libhdf5: 1.14.3
libnetcdf: 4.9.2

xarray: 2024.6.0
pandas: 2.2.2
numpy: 1.26.4
scipy: 1.14.0
netCDF4: 1.7.1
pydap: None
h5netcdf: None
h5py: None
zarr: None
cftime: 1.6.4
nc_time_axis: None
iris: None
bottleneck: None
dask: 2024.6.2
distributed: 2024.6.2
matplotlib: 3.8.4
cartopy: 0.23.0
seaborn: None
numbagg: None
fsspec: 2024.6.1
cupy: None
pint: None
sparse: 0.15.4
flox: None
numpy_groupies: None
setuptools: 70.1.1
pip: 24.0
conda: None
pytest: None
mypy: None
IPython: 8.25.0
sphinx: None
>>>
tomvothecoder commented 2 weeks ago

Related to #668, where xesmf=0.8.5 breaks with numpy>=2.0. We had to constrain numpy<2.0 in v0.7.1, hence the downgrade in your environment.

This issue is fixed in xESMF via https://github.com/pangeo-data/xESMF/pull/373, but a new version has not been released yet. Once a new version is released with this fix, we can remove the numpy<2.0 constraint.

jypeter commented 2 weeks ago

Thanks for the explanation, and thank libmamba for figuring out quickly a compatible set of package versions in complex environments!

Will conda update automatically trigger a numpy update once you remove the constraint? Provided no other package in the environment has a similar constraint?

tomvothecoder commented 2 weeks ago

Thanks for the explanation, and thank libmamba for figuring out quickly a compatible set of package versions in complex environments!

Will conda update automatically trigger a numpy update once you remove the constraint? Provided no other package in the environment has a similar constraint?

You're welcome @jypeter. Yes, conda update should trigger an update to numpy.