Repository navigation
Pin qt6-main and pyqt6 to 6.11; rebuild packages built against qt6-main 6.12 - #55
Conversation
…in 6.12 conda-forge released qt6-main 6.12, but its newest pyqt6 (6.11.0) still requires qt6-main <6.12. Since qt6_main was only pinned to '6', packages built in the current full rebuild picked up 6.12, so anything needing both them and python_qt_binding (pyqt6) is unsolvable, e.g. ros2-rqt-topic on linux-aarch64 and osx-arm64. Pin qt6_main and pyqt6 to 6.11 via vinca_pinning.yaml (rendered into conda_build_config.yaml) and bump the build number of the six packages that the robostack-rolling channel already has for the current mutex (0.22, build 29) with a qt6-main >=6.12 dependency, so they get rebuilt: gz_gui_vendor, gz_sim_vendor, rqt_plot, rqt_py_common, rviz_rendering, rviz_rendering_tests (published on linux-aarch64, osx-arm64, win-64). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Rolling's packages are published to prefix.dev, and vinca's skip_existing checks https://prefix.dev/robostack-rolling, so only unpublished recipes are generated. The bare `-c robostack-rolling` resolves to conda.anaconda.org/robostack-rolling, which has no ros2-* packages, so a PR that doesn't rebuild everything fails with "No candidates were found for ros2-ament-cmake". Restore the prefix.dev URLs from b01f36c, which 8a967e9 accidentally reverted when unifying testpr.yml with humble/jazzy. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
This seems to be breaking Lyrical's CI as well: https://github.com/RoboStack/ros-lyrical/actions/runs/36726682221. I did some searching, and unfortunately this looks like the only viable option we have :(
|
|
Ok for me, ut do you have any idea about the CI failures? |
|
Unfortunately I think we need to bump more package's build number:
|
|
I will also do a manual backport for ros-lyrical. I wonder if there is a way to prevent something like this from happening in the future. For example, if we are doing a full rebuild and the Qt6 version gets updated in the meantime, it seems possible that some packages could be built against the old version while others are built against the new one |
The regular pinning mechanism should help on this. Qt is a bit strange for several reasons, see conda-forge/conda-forge-pinning-feedstock#8746 . In theory, I think pyqt6.11 should work fine with pyqt6.12 , but probably there are some leftover with the strict pinning of qt6 . For the time being, just overridng qt6 pinning to 6.11 in our vinca_pinning.yaml is a sensible strategy. |
rviz2, rviz_common, rviz_default_plugins, rviz_imu_plugin, rviz_satellite, rviz_visual_testing_framework and turtlesim also have b29 builds linked against qt6-main 6.12; rebuild them against 6.11. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Summary
qt6-main6.12, but its newestpyqt6(6.11.0) still requiresqt6-main <6.12. Rolling only pinnedqt6_mainto'6', so packages in the current full rebuild picked up 6.12, and anything needing both them andpython_qt_binding(→pyqt6) became unsolvable, e.g.ros2-rqt-topicon linux-aarch64 and osx-arm64.qt6_mainandpyqt6to6.11invinca_pinning.yaml(rendered intoconda_build_config.yamlwithvinca-pinning-render). The render also moves the existinglua: 5.4into the overrides block (same value) and reshuffles some override comments.robostack-rollingalready has for the current mutex (0.22) with aqt6-main >=6.12dependency, found by scanning the channel's repodata:No package is published against 6.12 on linux-64 or osx-64.
testpr.ymlto use the prefix.dev channel URLs again (-c https://prefix.dev/conda-forge -c https://prefix.dev/robostack-rolling). The bare-c robostack-rollingresolves to anaconda.org, which has noros2-*packages, so any PR that doesn't rebuild everything failed withNo candidates were found for ros2-ament-cmake. This restores b01f36c, which 8a967e9 accidentally reverted.Test plan
pixi run sort --checkpassesros-rolling-*compatibility packages) get build number 30pyqt6=6.11+qt6-main=6.11+python=3.14solve on all five platformscheck_dependency_compat.py(osx-arm64) reports the same set of unrelated, pre-existing conflicts with and without the Qt pin, so the pin adds noneros2-rqt-topicsolvesFollow-ups (not in this PR)
pyqt6built forqt6-main6.12.🤖 Generated with Claude Code