conda-forge / vtk-feedstock

A conda-smithy repository for vtk.
BSD 3-Clause "New" or "Revised" License
13 stars 64 forks source link

TST: Try migrating some CDTs #302

Closed larsoner closed 1 year ago

larsoner commented 1 year ago

Checklist

The latest vtk on Linux appears to be incompatible with the latest qt-main on Python 3.11.4:

$ conda create --override-channels -c conda-forge -n test --dry-run "qt-main==5.15.8=h7fe3ca9_15" "python=3.11.4" "vtk==9.2.6=*_208"
Collecting package metadata (current_repodata.json): done
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: \ 
Found conflicts! Looking for incompatible packages.
This can take several minutes.  Press CTRL-C to abort.
failed                                                                                                                                                                             

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versions

Package libgcc-ng conflicts for:
python=3.11.4 -> bzip2[version='>=1.0.8,<2.0a0'] -> libgcc-ng[version='>=7.3.0|>=7.5.0|>=9.3.0|>=9.4.0']
qt-main==5.15.8=h7fe3ca9_15 -> libgcc-ng[version='>=12']
vtk==9.2.6[build=*_208] -> vtk-base==9.2.6=qt_py310h1234567_208 -> libgcc-ng[version='>=12']
qt-main==5.15.8=h7fe3ca9_15 -> dbus[version='>=1.13.6,<2.0a0'] -> libgcc-ng[version='>=10.3.0|>=7.3.0|>=7.5.0|>=9.3.0|>=9.4.0']
python=3.11.4 -> libgcc-ng[version='>=12']

Package libuuid conflicts for:
python=3.11.4 -> libuuid[version='>=2.38.1,<3.0a0']
qt-main==5.15.8=h7fe3ca9_15 -> fontconfig[version='>=2.14.2,<3.0a0'] -> libuuid[version='>=2.32.1,<3.0a0|>=2.38.1,<3.0a0']The following specifications were found to be incompatible with your system:

  - feature:/linux-64::__glibc==2.37=0
  - feature:|@/linux-64::__glibc==2.37=0
  - qt-main==5.15.8=h7fe3ca9_15 -> __glibc[version='>=2.17,<3.0.a0']

Your installed version is: 2.37

Naively I'm hoping a conda-forge rerender followed by a merge will fix this... but actually have no idea. So consider this PR more of a bug report :)

conda-forge-webservices[bot] commented 1 year ago

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

larsoner commented 1 year ago

@conda-forge-admin, please rerender

Tobias-Fischer commented 1 year ago

Have you tried creating the environment with micromamba which gives more useful conflict information?

larsoner commented 1 year ago

Same command with mamba gives:

$ mamba create --override-channels -c conda-forge -n test --dry-run "qt-main==5.15.8=h7fe3ca9_15" "python=3.11.4" "vtk==9.2.6=*_208"
...
The following packages are incompatible
├─ python 3.11.4**  is installable and it requires
│  └─ python_abi 3.11.* *_cp311, which can be installed;
├─ qt-main ==5.15.8 h7fe3ca9_15 is installable and it requires
│  └─ xorg-libice >=1.1.1,<2.0a0 , which can be installed;
└─ vtk 9.2.6 *_208 is uninstallable because there are no viable options
   ├─ vtk 9.2.6 would require
   │  └─ vtk-base 9.2.6 qt_py311h1234567_208, which requires
   │     └─ xorg-libxt >=1.3.0,<2.0a0 , which requires
   │        └─ xorg-libice 1.0.* , which conflicts with any installable versions previously reported;
   ├─ vtk 9.2.6 would require
   │  └─ vtk-base 9.2.6 qt_py310h1234567_208, which requires
   │     └─ python_abi 3.10.* *_cp310, which conflicts with any installable versions previously reported;
   └─ vtk 9.2.6 would require
      └─ vtk-base 9.2.6 qt_py39h1234567_208, which requires
         └─ python_abi 3.9.* *_cp39, which conflicts with any installable versions previously reported.

Which I assume comes back to this in the meta.yml:

        - {{ cdt('libice-devel') }}  # [linux and build_variant != "osmesa"]

So I guess has to do with https://conda-forge.org/docs/maintainer/knowledge_base.html#core-dependency-tree-packages-cdts but I'm not sure how to get

larsoner commented 1 year ago

... it to work given this information

larsoner commented 1 year ago

Possibly relevant part of qt-main-feedstock where they choose not to use CDT for libice:

https://github.com/conda-forge/qt-main-feedstock/blob/2b166b35e9e1a2d897640ac28ae4b00491d9e310/recipe/meta.yaml#L134-L148

larsoner commented 1 year ago

... and a similar problem with TensorFlow:

$ mamba create --override-channels -c conda-forge -n test --dry-run "python=3.11.4" "vtk-base==9.2.6=qt_py311*_208" "tensorflow =2.12.1=cpu_py311*"
...
The following packages are incompatible
├─ tensorflow 2.12.1 cpu_py311* is installable and it requires
│  └─ tensorflow-base 2.12.1 cpu_py311h743e7a3_0, which requires
│     └─ libcurl >=8.2.0,<9.0a0 , which requires
│        └─ krb5 >=1.21.1,<1.22.0a0 , which can be installed;
└─ vtk-base 9.2.6 qt_py311*_208 is uninstallable because it requires
   ├─ libjpeg-turbo >=2.1.5.1,<3.0a0 , which requires
   │  └─ jpeg <0.0.0a , which can be installed;
   ├─ libxml2 >=2.11.4,<2.12.0a0 , which can be installed;
   ├─ qt-main >=5.15.8,<5.16.0a0  with the potential options
   │  ├─ qt-main 5.15.8 would require
   │  │  └─ xorg-libice >=1.1.1,<2.0a0 , which can be installed;
   │  ├─ qt-main 5.15.8 would require
   │  │  └─ krb5 >=1.20.1,<1.21.0a0 , which conflicts with any installable versions previously reported;
   │  ├─ qt-main 5.15.8 would require
   │  │  └─ libxml2 >=2.10.4,<2.11.0a0 , which conflicts with any installable versions previously reported;
   │  ├─ qt-main 5.15.8 would require
   │  │  └─ libxml2 >=2.10.3,<2.11.0a0 , which conflicts with any installable versions previously reported;
   │  └─ qt-main 5.15.8 would require
   │     └─ jpeg >=9e,<10a , which conflicts with any installable versions previously reported;
   └─ xorg-libxt >=1.3.0,<2.0a0 , which requires
      └─ xorg-libice 1.0.* , which conflicts with any installable versions previously reported.

So I guess the TL;DR is that the cdt-based packages here appear incompatible with recent builds of other packages.

And I don't think the rerender here helps as it appears to install the 1.0.* variant of libice as well.

larsoner commented 1 year ago

@conda-forge-admin, please rerender

larsoner commented 1 year ago

@conda-forge-admin, please rerender

github-actions[bot] commented 1 year ago

Hi! This is the friendly automated conda-forge-webservice.

I tried to rerender for you, but it looks like there was nothing to do.

This message was generated by GitHub actions workflow run https://github.com/conda-forge/vtk-feedstock/actions/runs/5649579210.

larsoner commented 1 year ago

... actually I think this might all come down to the vtk dep on xorg-libxt which has this line requiring libice 1.0.* / https://github.com/conda-forge/xorg-libxt-feedstock/issues/14 :

https://github.com/conda-forge/xorg-libxt-feedstock/blob/ee8fbc68aeb1210ab8c0d84db709e66d3edc9ab8/recipe/meta.yaml#L41

Tobias-Fischer commented 1 year ago

Good debugging! It indeed seems like https://github.com/conda-forge/xorg-libxt-feedstock/issues/14 is the underlying issue.

larsoner commented 1 year ago

@Tobias-Fischer in the meantime I changed this PR to transition to what I hope is the minimal set of cdt packages. The list now mirrors much more closely what qt-main does. It seems like both vtk-base and qt-main should be doing the same thing if possible here. But maybe there are subtleties about how the two libraries are compiled and/or used that justifies having them be different. Or maybe the approach here is better.

In any case, feel free to close or push additional changes as you see fit! Or ask for changes, but I'm out of my depth a bit here so I might be of limited additional use :)

Tobias-Fischer commented 1 year ago

I think @hmaarrfk is the best person to review this PR, he pushed the move from CDTs to "normal" conda packages for qt-main.

Tobias-Fischer commented 1 year ago

So this now works as expected (new xorg-libxt landed):

mamba create --override-channels -c conda-forge -n test --dry-run "qt-main==5.15.8=h7fe3ca9_15" "python=3.11.4" "vtk==9.2.6=*_208"

I'm not sure about the CDTs - hopefully @hmaarrfk can have a look :)

larsoner commented 1 year ago

@conda-forge-admin, please rerender

github-actions[bot] commented 1 year ago

Hi! This is the friendly automated conda-forge-webservice.

I tried to rerender for you, but it looks like there was nothing to do.

This message was generated by GitHub actions workflow run https://github.com/conda-forge/vtk-feedstock/actions/runs/5663467848.

larsoner commented 1 year ago

All green, feel free to merge if this is indeed (expected to be) helpful @hmaarrfk ! No idea why the rerender deleted a bunch of jobs based on ffmpeg... I didn't touch that part of the recipe but maybe it's some version conditional/pinning that was removed separately so no longer needs to be there :shrug:

basnijholt commented 1 year ago

Great job and initiative!

However, like you noticed, something is off. There used to be 65 jobs in CI (e.g., https://github.com/conda-forge/vtk-feedstock/pull/301/checks).

Tobias-Fischer commented 1 year ago

Thanks @larsoner :)!

The ffmpeg migration to version 6 was closed, thus removing the dual builds (see https://github.com/conda-forge/conda-forge-pinning-feedstock/pull/4605). So all good with the "missing" CI jobs, they are deliberately removed.

hmaarrfk commented 1 year ago

I infact closed the FFMPEG migration which in effect stopped the dual builds. Good job!

Tobias-Fischer commented 1 year ago

Will merge this weekend unless there are objections