napari / packaging

4 stars 8 forks source link

Update numpy<2 pins and sync deps #144

Closed jaimergp closed 3 months ago

jaimergp commented 4 months ago
jni commented 4 months ago

@jaimergp it looks like rc2 exposed other needed changes, see this Zulip message and subsequent ones (and napari/napari#6932

jaimergp commented 4 months ago

Thanks for the heads up @jni! I'll leave this on standby in the meantime.

jaimergp commented 3 months ago

Hm, now we have https://github.com/napari/packaging/issues/160, which suggests to pin numpy<2 for Python <3.10 (effectively, only Python 3.9?). I'm not sure if this is a problem that napari itself has, or is more about being protective about some dependencies. Reading https://github.com/napari/napari/pull/6998, it looks like it has to do with scikit-image? 🤔 Why constrain here if the solver will handle that? I think it's ok to leave unpinned for all Python versions in condaworld, but lmk otherwise @jni

Czaki commented 3 months ago

scikit-image does not have python 3.9 release compatible with numpy 2, but have python 3.9 releases without upper bound for numpy. That lead to pip installing numpy 2.0 and some old scikit-image.

jaimergp commented 3 months ago

Ah ok, I see, then we can repodata patch that in conda-forge, no probs!

Edit: I checked and in conda-forge there are no scikit-image releases that are compatible with py39 and do not pin numpy<2, so I think we are safe. The only ones with unpinned numpy are really old which are only available for Python <=3.6 anyway.

And here are the solver errors if you try ``` $ conda create -dnx --platform=linux-64 scikit-image numpy=2 python=3.9 Channels: - conda-forge Platform: linux-64 Collecting package metadata (repodata.json): done Solving environment: failed LibMambaUnsatisfiableError: Encountered problems while solving: - nothing provides _numpy_rc needed by numpy-2.0.0rc1-py310h515e003_0 Could not solve for environment specs The following packages are incompatible ├─ numpy 2** is installable with the potential options │ ├─ numpy [1.21.3|1.21.4|...|2.0.0] would require │ │ ├─ python >=3.10,<3.11.0a0 , which can be installed; │ │ └─ python_abi 3.10.* *_cp310, which can be installed; │ ├─ numpy [1.23.4|1.23.5|...|2.0.0] would require │ │ ├─ python >=3.11,<3.12.0a0 , which can be installed; │ │ └─ python_abi 3.11.* *_cp311, which can be installed; │ ├─ numpy [1.26.0|1.26.2|1.26.3|1.26.4|2.0.0] would require │ │ └─ python_abi 3.12.* *_cp312, which can be installed; │ ├─ numpy 2.0.0, which can be installed; │ └─ numpy [2.0.0rc1|2.0.0rc2] would require │ └─ _numpy_rc, which does not exist (perhaps a missing channel); ├─ python 3.9** is not installable because it conflicts with any installable versions previously reported; └─ scikit-image is installable with the potential options ├─ scikit-image [0.12.3|0.13.0|...|0.14.3] would require │ └─ python [2.7* |>=2.7,<2.8.0a0 ], which can be installed; ├─ scikit-image 0.12.3 would require │ └─ python 3.4* , which can be installed; ├─ scikit-image [0.12.3|0.13.0|0.13.1|0.14.0] would require │ └─ python [3.5* |>=3.5,<3.6.0a0 ], which can be installed; ├─ scikit-image [0.12.3|0.13.0|0.13.1|0.14.0] would require │ └─ python 3.6* , which can be installed; ├─ scikit-image [0.14.0|0.14.1|...|0.16.2] would require │ └─ python >=3.6,<3.7.0a0 , which can be installed; ├─ scikit-image [0.14.1|0.14.2|...|0.16.2] would require │ └─ python >=3.7,<3.8.0a0 , which can be installed; ├─ scikit-image 0.16.2 would require │ └─ python >=3.8,<3.9.0a0 , which can be installed; ├─ scikit-image [0.17.1|0.17.2] would require │ ├─ python >=3.6,<3.7.0a0 , which can be installed; │ └─ python_abi 3.6.* *_cp36m, which can be installed; ├─ scikit-image [0.17.1|0.17.2|...|0.19.3] would require │ ├─ python >=3.7,<3.8.0a0 , which can be installed; │ └─ python_abi 3.7.* *_cp37m, which can be installed; ├─ scikit-image [0.17.1|0.17.2|...|0.21.0] would require │ ├─ python >=3.8,<3.9.0a0 , which can be installed; │ └─ python_abi 3.8.* *_cp38, which can be installed; ├─ scikit-image 0.17.2 would require │ └─ python_abi 3.6 *_pypy36_pp73, which can be installed; ├─ scikit-image 0.17.2 would require │ └─ numpy >=1.19.2,<2.0a0 with the potential options │ ├─ numpy [1.19.2|1.19.4|1.19.5] would require │ │ ├─ python >=3.6,<3.7.0a0 , which can be installed; │ │ └─ python_abi 3.6.* *_cp36m, which can be installed; │ ├─ numpy [1.19.2|1.19.4|1.19.5] would require │ │ └─ python_abi 3.6 *_pypy36_pp73, which can be installed; │ ├─ numpy [1.19.2|1.19.4|...|1.21.6] would require │ │ ├─ python >=3.7,<3.8.0a0 , which can be installed; │ │ └─ python_abi 3.7.* *_cp37m, which can be installed; │ ├─ numpy [1.19.2|1.19.4|...|1.24.4] would require │ │ ├─ python >=3.8,<3.9.0a0 , which can be installed; │ │ └─ python_abi 3.8.* *_cp38, which can be installed; │ ├─ numpy 1.19.2 conflicts with any installable versions previously reported; │ ├─ numpy 1.19.4 conflicts with any installable versions previously reported; │ ├─ numpy [1.19.5|1.20.0|...|1.21.5] would require │ │ └─ python_abi 3.7 *_pypy37_pp73, which can be installed; │ ├─ numpy [1.19.5|1.20.3|...|1.24.1] would require │ │ └─ python_abi 3.8 *_pypy38_pp73, which can be installed; │ ├─ numpy [1.19.5|1.20.3|...|1.24.1] would require │ │ └─ python_abi 3.9 *_pypy39_pp73, which can be installed; │ ├─ numpy [1.19.5|1.20.0|1.20.1|1.20.2] conflicts with any installable versions previously reported; │ ├─ numpy [1.20.3|1.21.0|...|1.21.5] conflicts with any installable versions previously reported; │ ├─ numpy [1.21.3|1.21.4|...|2.0.0], which can be installed (as previously explained); │ ├─ numpy [1.21.6|1.22.0|1.22.1|1.22.2|1.22.3] conflicts with any installable versions previously reported; │ ├─ numpy [1.22.4|1.23.0|...|1.26.4] conflicts with any installable versions previously reported; │ ├─ numpy [1.23.4|1.23.5|...|2.0.0], which can be installed (as previously explained); │ ├─ numpy [1.24.2|1.24.3|1.24.4] would require │ │ └─ pypy3.8 >=7.3.11 , which can be installed; │ ├─ numpy [1.24.2|1.24.3|...|1.25.2] would require │ │ └─ pypy3.9 >=7.3.11 , which can be installed; │ ├─ numpy [1.26.0|1.26.2|1.26.3|1.26.4|2.0.0], which can be installed (as previously explained); │ ├─ numpy 1.26.0 would require │ │ └─ pypy3.9 >=7.3.12 , which can be installed; │ ├─ numpy [1.26.2|1.26.3] would require │ │ └─ pypy3.9 >=7.3.13 , which can be installed; │ └─ numpy 1.26.4 would require │ └─ pypy3.9 >=7.3.15 , which can be installed; ├─ scikit-image [0.17.2|0.18.0|0.18.1] would require │ └─ numpy >=1.19.4,<2.0a0 with the potential options │ ├─ numpy [1.19.2|1.19.4|1.19.5], which can be installed (as previously explained); │ ├─ numpy [1.19.2|1.19.4|1.19.5], which can be installed (as previously explained); │ ├─ numpy [1.19.2|1.19.4|...|1.21.6], which can be installed (as previously explained); │ ├─ numpy [1.19.2|1.19.4|...|1.24.4], which can be installed (as previously explained); │ ├─ numpy 1.19.4 conflicts with any installable versions previously reported; │ ├─ numpy [1.19.5|1.20.0|...|1.21.5], which can be installed (as previously explained); │ ├─ numpy [1.19.5|1.20.3|...|1.24.1], which can be installed (as previously explained); │ ├─ numpy [1.19.5|1.20.3|...|1.24.1], which cannot be installed (as previously explained); │ ├─ numpy [1.19.5|1.20.0|1.20.1|1.20.2] conflicts with any installable versions previously reported; │ ├─ numpy [1.20.3|1.21.0|...|1.21.5] conflicts with any installable versions previously reported; │ ├─ numpy [1.21.3|1.21.4|...|2.0.0], which can be installed (as previously explained); │ ├─ numpy [1.21.6|1.22.0|1.22.1|1.22.2|1.22.3] conflicts with any installable versions previously reported; │ ├─ numpy [1.22.4|1.23.0|...|1.26.4] conflicts with any installable versions previously reported; │ ├─ numpy [1.23.4|1.23.5|...|2.0.0], which can be installed (as previously explained); │ ├─ numpy [1.24.2|1.24.3|1.24.4], which can be installed (as previously explained); │ ├─ numpy [1.24.2|1.24.3|...|1.25.2], which cannot be installed (as previously explained); │ ├─ numpy [1.26.0|1.26.2|1.26.3|1.26.4|2.0.0], which can be installed (as previously explained); │ ├─ numpy 1.26.0, which cannot be installed (as previously explained); │ ├─ numpy [1.26.2|1.26.3], which cannot be installed (as previously explained); │ └─ numpy 1.26.4, which cannot be installed (as previously explained); ├─ scikit-image [0.18.1|0.18.2|...|0.19.3] would require │ └─ python_abi 3.7 *_pypy37_pp73, which can be installed; ├─ scikit-image [0.18.2|0.18.3|...|0.19.3] would require │ ├─ numpy >=1.19.5,<2.0a0 with the potential options │ │ ├─ numpy [1.19.2|1.19.4|1.19.5], which can be installed (as previously explained); │ │ ├─ numpy [1.19.2|1.19.4|1.19.5], which can be installed (as previously explained); │ │ ├─ numpy [1.19.2|1.19.4|...|1.21.6], which can be installed (as previously explained); │ │ ├─ numpy [1.19.2|1.19.4|...|1.24.4], which can be installed (as previously explained); │ │ ├─ numpy [1.19.5|1.20.0|...|1.21.5], which can be installed (as previously explained); │ │ ├─ numpy [1.19.5|1.20.3|...|1.24.1], which can be installed (as previously explained); │ │ ├─ numpy [1.19.5|1.20.3|...|1.24.1], which cannot be installed (as previously explained); │ │ ├─ numpy [1.19.5|1.20.0|1.20.1|1.20.2] conflicts with any installable versions previously reported; │ │ ├─ numpy [1.20.3|1.21.0|...|1.21.5] conflicts with any installable versions previously reported; │ │ ├─ numpy [1.21.3|1.21.4|...|2.0.0], which can be installed (as previously explained); │ │ ├─ numpy [1.21.6|1.22.0|1.22.1|1.22.2|1.22.3] conflicts with any installable versions previously reported; │ │ ├─ numpy [1.22.4|1.23.0|...|1.26.4] conflicts with any installable versions previously reported; │ │ ├─ numpy [1.23.4|1.23.5|...|2.0.0], which can be installed (as previously explained); │ │ ├─ numpy [1.24.2|1.24.3|1.24.4], which can be installed (as previously explained); │ │ ├─ numpy [1.24.2|1.24.3|...|1.25.2], which cannot be installed (as previously explained); │ │ ├─ numpy [1.26.0|1.26.2|1.26.3|1.26.4|2.0.0], which can be installed (as previously explained); │ │ ├─ numpy 1.26.0, which cannot be installed (as previously explained); │ │ ├─ numpy [1.26.2|1.26.3], which cannot be installed (as previously explained); │ │ └─ numpy 1.26.4, which cannot be installed (as previously explained); │ └─ python_abi 3.9 *_pypy39_pp73, which can be installed; ├─ scikit-image [0.18.3|0.19.0|...|0.24.0] would require │ ├─ python >=3.10,<3.11.0a0 , which can be installed; │ └─ python_abi 3.10.* *_cp310, which can be installed; ├─ scikit-image [0.19.3|0.20.0|...|0.24.0] would require │ ├─ python >=3.11,<3.12.0a0 , which can be installed; │ └─ python_abi 3.11.* *_cp311, which can be installed; ├─ scikit-image 0.19.3 would require │ └─ python_abi 3.8 *_pypy38_pp73, which can be installed; ├─ scikit-image 0.19.3 would require │ ├─ numpy >=1.20.3,<2.0a0 with the potential options │ │ ├─ numpy [1.19.2|1.19.4|...|1.21.6], which can be installed (as previously explained); │ │ ├─ numpy [1.19.2|1.19.4|...|1.24.4], which can be installed (as previously explained); │ │ ├─ numpy [1.19.5|1.20.0|...|1.21.5], which can be installed (as previously explained); │ │ ├─ numpy [1.19.5|1.20.3|...|1.24.1], which can be installed (as previously explained); │ │ ├─ numpy [1.19.5|1.20.3|...|1.24.1], which cannot be installed (as previously explained); │ │ ├─ numpy [1.20.3|1.21.0|...|1.21.5] conflicts with any installable versions previously reported; │ │ ├─ numpy [1.21.3|1.21.4|...|2.0.0], which can be installed (as previously explained); │ │ ├─ numpy [1.21.6|1.22.0|1.22.1|1.22.2|1.22.3] conflicts with any installable versions previously reported; │ │ ├─ numpy [1.22.4|1.23.0|...|1.26.4] conflicts with any installable versions previously reported; │ │ ├─ numpy [1.23.4|1.23.5|...|2.0.0], which can be installed (as previously explained); │ │ ├─ numpy [1.24.2|1.24.3|1.24.4], which can be installed (as previously explained); │ │ ├─ numpy [1.24.2|1.24.3|...|1.25.2], which cannot be installed (as previously explained); │ │ ├─ numpy [1.26.0|1.26.2|1.26.3|1.26.4|2.0.0], which can be installed (as previously explained); │ │ ├─ numpy 1.26.0, which cannot be installed (as previously explained); │ │ ├─ numpy [1.26.2|1.26.3], which cannot be installed (as previously explained); │ │ └─ numpy 1.26.4, which cannot be installed (as previously explained); │ └─ python_abi 3.9 *_pypy39_pp73, which can be installed; ├─ scikit-image [0.20.0|0.21.0] would require │ └─ pypy3.8 >=7.3.11 , which can be installed; ├─ scikit-image 0.20.0 would require │ ├─ numpy >=1.21.6,<2.0a0 with the potential options │ │ ├─ numpy [1.19.2|1.19.4|...|1.21.6], which can be installed (as previously explained); │ │ ├─ numpy [1.19.2|1.19.4|...|1.24.4], which can be installed (as previously explained); │ │ ├─ numpy [1.19.5|1.20.3|...|1.24.1], which can be installed (as previously explained); │ │ ├─ numpy [1.19.5|1.20.3|...|1.24.1], which cannot be installed (as previously explained); │ │ ├─ numpy [1.21.3|1.21.4|...|2.0.0], which can be installed (as previously explained); │ │ ├─ numpy [1.21.6|1.22.0|1.22.1|1.22.2|1.22.3] conflicts with any installable versions previously reported; │ │ ├─ numpy [1.22.4|1.23.0|...|1.26.4] conflicts with any installable versions previously reported; │ │ ├─ numpy [1.23.4|1.23.5|...|2.0.0], which can be installed (as previously explained); │ │ ├─ numpy [1.24.2|1.24.3|1.24.4], which can be installed (as previously explained); │ │ ├─ numpy [1.24.2|1.24.3|...|1.25.2], which cannot be installed (as previously explained); │ │ ├─ numpy [1.26.0|1.26.2|1.26.3|1.26.4|2.0.0], which can be installed (as previously explained); │ │ ├─ numpy 1.26.0, which cannot be installed (as previously explained); │ │ ├─ numpy [1.26.2|1.26.3], which cannot be installed (as previously explained); │ │ └─ numpy 1.26.4, which cannot be installed (as previously explained); │ └─ pypy3.9 >=7.3.11 , which can be installed; ├─ scikit-image [0.21.0|0.22.0|0.24.0] would require │ ├─ numpy >=1.22.4,<2.0a0 with the potential options │ │ ├─ numpy [1.19.2|1.19.4|...|1.24.4], which can be installed (as previously explained); │ │ ├─ numpy [1.19.5|1.20.3|...|1.24.1], which can be installed (as previously explained); │ │ ├─ numpy [1.19.5|1.20.3|...|1.24.1], which cannot be installed (as previously explained); │ │ ├─ numpy [1.21.3|1.21.4|...|2.0.0], which can be installed (as previously explained); │ │ ├─ numpy [1.22.4|1.23.0|...|1.26.4] conflicts with any installable versions previously reported; │ │ ├─ numpy [1.23.4|1.23.5|...|2.0.0], which can be installed (as previously explained); │ │ ├─ numpy [1.24.2|1.24.3|1.24.4], which can be installed (as previously explained); │ │ ├─ numpy [1.24.2|1.24.3|...|1.25.2], which cannot be installed (as previously explained); │ │ ├─ numpy [1.26.0|1.26.2|1.26.3|1.26.4|2.0.0], which can be installed (as previously explained); │ │ ├─ numpy 1.26.0, which cannot be installed (as previously explained); │ │ ├─ numpy [1.26.2|1.26.3], which cannot be installed (as previously explained); │ │ └─ numpy 1.26.4, which cannot be installed (as previously explained); │ └─ pypy3.9 [>=7.3.11 |>=7.3.13 |>=7.3.15 ], which can be installed; └─ scikit-image [0.22.0|0.23.2|0.24.0] would require └─ python_abi 3.12.* *_cp312, which can be installed. ```