Skip to content
31 changes: 30 additions & 1 deletion distros/lyrical/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,33 @@ full_rebuild: false
#
# Remember that dependents are not rebuilt automatically: evict them as well if
# they must pick up the change.
evict_cache: []
evict_cache:
# built against qt6-main 6.11.3, which rules out pyqt6; rebuilt with the 6.11.2 pin
- fuse-viz
- grid-map-rviz-plugin
- gz-gui-vendor
- gz-sim-vendor
- moveit-ros-visualization
- moveit-setup-assistant
- moveit-task-constructor-visualization
- mrpt-gui
- nav2-rviz-plugins
- python-qt-binding
- qt-gui-cpp
- rqt-gui-cpp
- rqt-image-view
- rqt-mocap4r2-control
- rqt-plot
- rqt-py-common
- rviz-common
- rviz-default-plugins
- rviz-imu-plugin
- rviz-rendering
- rviz-rendering-tests
- rviz-satellite
- rviz-visual-testing-framework
- rviz-visual-tools
- rviz2
- slam-toolbox
- swri-console
- turtlesim
15 changes: 9 additions & 6 deletions distros/lyrical/conda_build_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1001,9 +1001,11 @@ python:
# conda-forge supports only 3.14+ for win-arm64 and linux-riscv64
# part of a zip_keys: python, is_python_min
- 3.14.* *_cp314
- 3.12.* *_cpython
python_impl:
- cpython

# ros-lyrical specific (distros/lyrical/distro.yaml)
python_min:
# minimum supported python version per CFEP-25
# bump to next minor version when we drop python versions
Expand All @@ -1014,6 +1016,7 @@ is_freethreading:
is_python_min:
# part of a zip_keys: python, is_python_min
- false
- false
is_abi3:
- true
pytorch:
Expand All @@ -1035,12 +1038,7 @@ qt:
qt_main:
- 5.15
qt6_main:
- 6.11
# conda-forge published sip 6.16.1 on 2026-09-08, which broke ABI targeting for
# packages like qt_gui_cpp_sip that build against PyQt-sip's fixed ABI v12
# (hit this on humble/jazzy first; rolling also builds qt_gui_cpp via
# pyqt6/sip so it's equally exposed). Pin back to the last known-good line
# until upstream fixes it.
- 6.11.2
qtkeychain:
- '0.17'
rav1e:
Expand Down Expand Up @@ -1217,5 +1215,10 @@ lua:
# rebuilt for qt6-main 6.12.
pyqt6:
- 6.11
# conda-forge published sip 6.16.1 on 2026-09-08, which broke ABI targeting for
# packages like qt_gui_cpp_sip that build against PyQt-sip's fixed ABI v12
# (hit this on humble/jazzy first; rolling also builds qt_gui_cpp via
# pyqt6/sip so it's equally exposed). Pin back to the last known-good line
# until upstream fixes it.
sip:
- 6.15
10 changes: 10 additions & 0 deletions distros/lyrical/distro.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,13 @@ channel_name: robostack-lyrical
upload_to: [prefix, anaconda]
read_from: prefix
rosdistro_sync: lyrical/2026-10-05
pinning_overrides:
# build every python package for 3.14 (the shared default) and 3.12;
# is_python_min is zipped with python, so it needs one entry per version
python: [3.14.* *_cp314, 3.12.* *_cpython]
is_python_min: [false, false]
# every pyqt6 6.11.0 build on conda-forge needs qt6-main <=6.11.2, but the shared
# `6.11` pin resolves to 6.11.3, whose run export (>=6.11.3) rules pyqt6 out: the
# rqt packages then can't be installed with python_qt_binding. The published
# packages were built with 6.11.2; drop this once pyqt6 is rebuilt for 6.11.3+.
qt6_main: ['6.11.2']
83 changes: 44 additions & 39 deletions pixi.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions pixi.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ PYTHONIOENCODING = "utf-8"

[dependencies]
python = ">=3.14.0,<3.15"
rattler-build = ">=0.79.0,<0.80"
rattler-build = ">=0.80.0,<0.81"
cmake = "<4.0"
setuptools = "<82.0"
rattler-index = ">=0.27.16"
Expand All @@ -36,7 +36,7 @@ git = "*"

[pypi-dependencies]
# One vinca for all distributions.
vinca = { git = "https://github.com/RoboStack/vinca.git", rev = "d6aa28ff0477f6656865db95461001fb4ace40c7" }
vinca = { git = "https://github.com/RoboStack/vinca.git", rev = "a7041a71550b388990aa42b2b86a360d93ea6dbe" }
# For local development, temporarily use (and regenerate pixi.lock):
# vinca = { path = "../vinca", editable = true }

Expand Down
2 changes: 1 addition & 1 deletion tools/robostack.py
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,7 @@ def rattler_build(distro: str, args: list[str], skip_existing: bool = True) -> l
cmd = ["rattler-build", "build", "-m", "./conda_build_config.yaml",
*(["-c", extra] if extra else []),
"-c", channel_url(distro), "-c", CONDA_FORGE, "--channel-priority", "disabled"]
return cmd + (["--skip-existing"] if skip_existing else []) + args
return cmd + (["--skip-existing=all"] if skip_existing else []) + args


UPLOAD_HOSTS = ("prefix", "anaconda")
Expand Down