Skip to content

One bash build script per build type, run with brush on Windows - #225

Draft
Tobias-Fischer wants to merge 1 commit into
vinca-rs/4-package-filesfrom
vinca-rs/test-brush
Draft

Tobias-Fischer wants to merge 1 commit into
vinca-rs/4-package-filesfrom
vinca-rs/test-brush

Conversation

@Tobias-Fischer

@Tobias-Fischer Tobias-Fischer commented Nov 14, 2026 •

Copy link
Copy Markdown
Collaborator

vinca-rs with prefix-dev/pixi#7540's build scripts:

  • ament_cmake and cmake share one template: conda's ${CMAKE_ARGS}, BUILD_TESTING=OFF, and a PYTHON_INSTALL_DIR relative to the prefix for both.
  • The ROS 2 build scripts are bash scripts on every platform; Windows runs them with brush.
  • rtabmap's Windows link flags are in bash syntax ($LIBRARY_LIB instead of %LIBRARY_LIB%).

Tested: run 43573597330 rebuilt ros_workspace, ament_cmake_test, rcutils, builtin_interfaces, fastcdr, ruckig, ament_index_python and demo_nodes_py on all five platforms, together with about 25 other humble recipes. Locally on osx-arm64, the packages built with the old and the new scripts, and under bash and brush, contain the same files and have the same run dependencies.

Draft until vinca-rs 0.1.10 is released (Tobias-Fischer/vinca-rs#9); until then vinca-rs is a pixi source dependency on its branch, which CI compiles in every job.

🤖 Generated with Claude Code

@Tobias-Fischer Tobias-Fischer added the build:humble PR build: build only humble (with other build:<distro> labels: only those) label Nov 14, 2026
@github-actions

Copy link
Copy Markdown

ABI check (linux-64)

humble linux-64: 33 can be bumped on their own
33 packages can be bumped on their own (compatible: 6, no libraries: 27)
package released → PR verdict details
builtin-interfaces 1.2.3 (build 22) → 1.2.3 compatible: no ABI change headers unchanged
fastcdr 1.0.29 (build 22) → 1.0.29 compatible: no ABI change headers unchanged
plotjuggler 3.17.2 (build 22) → 3.17.2 compatible: no ABI change headers unchanged
new dependencies: lua >=5.4.8,<5.5
rcutils 5.1.10 (build 22) → 5.1.10 compatible: no ABI change headers unchanged
ruckig 0.9.2 (build 22) → 0.9.2 compatible: no ABI change headers unchanged
tracetools 4.1.2 (build 22) → 4.1.2 compatible: no ABI change headers unchanged
ament-cmake-test 1.3.14 (build 22) → 1.3.14 no libraries: nothing to compare
ament-index-python 1.4.1 (build 22) → 1.4.1 no libraries: nothing to compare
apriltag 3.4.5 (build 22) → 3.4.5 no libraries: nothing to compare dropped dependencies: libgl, libopencv, libopengl, numpy, py-opencv, python, python_abi
cartographer 2.0.0 (build 22) → 2.0.0 no libraries: nothing to compare dropped dependencies: cairo, ceres-solver, eigen, eigen-abi, glog, gtest, libabseil, libboost, libprotobuf, protobuf, python, python_abi
coal 3.0.4 (build 22) → 3.0.4 no libraries: nothing to compare dropped dependencies: assimp, eigen, eigen-abi, graphviz, libboost, libboost-python, numpy, octomap, python, python_abi
cyclonedds 0.10.5 (build 22) → 0.10.5 no libraries: nothing to compare dropped dependencies: openssl, python, python_abi
demo-nodes-py 0.20.10 (build 22) → 0.20.10 no libraries: nothing to compare
eigenpy 3.13.0 (build 22) → 3.13.0 no libraries: nothing to compare dropped dependencies: eigen, eigen-abi, graphviz, libboost, libboost-python, numpy, python, python_abi, scipy
gtsam 4.2.1 (build 22) → 4.2.1 no libraries: nothing to compare dropped dependencies: eigen, eigen-abi, libboost, libboost-python, python, python_abi, tbb
iceoryx-binding-c 2.95.8 (build 22) → 2.95.8 no libraries: nothing to compare dropped dependencies: python, python_abi
iceoryx-hoofs 2.95.8 (build 22) → 2.95.8 no libraries: nothing to compare dropped dependencies: libacl, python, python_abi
iceoryx-posh 2.95.8 (build 22) → 2.95.8 no libraries: nothing to compare dropped dependencies: python, python_abi
libcamera 0.5.0 (build 22) → 0.5.0 no libraries: nothing to compare dropped dependencies: libudev, libudev1, libusb, openssl, python, python_abi, yaml, yaml-cpp
libfranka 0.21.3 (build 22) → 0.21.3 no libraries: nothing to compare dropped dependencies: eigen-abi, fmt, poco, python, python_abi, tinyxml2
librealsense2 2.58.3 (build 22) → 2.58.3 no libraries: nothing to compare dropped dependencies: glfw, libgl, libopengl, libudev1, libusb, openssl, python, python_abi, xorg-libx11, xorg-xorgproto
mujoco-vendor 0.1.0 (build 22) → 0.1.1 no libraries: nothing to compare
octomap 1.10.0 (build 22) → 1.10.0 no libraries: nothing to compare dropped dependencies: python, python_abi
ompl 2.0.1 (build 22) → 2.0.1 no libraries: nothing to compare pins changed: ompl >=2.0.2,<2.1 → >=2.0.1,<2.1
dropped dependencies: eigen, eigen-abi, flann, libboost, libboost-python, python, python_abi
pinocchio 4.1.0 (build 22) → 4.1.0 no libraries: nothing to compare dropped dependencies: eigen, eigen-abi, graphviz, libboost, libboost-python, numpy, python, python_abi
proxsuite 0.7.3 (build 22) → 0.7.3 no libraries: nothing to compare dropped dependencies: eigen, eigen-abi, graphviz, numpy, python, python_abi, scipy, simde
py-trees 2.6.0 (build 22) → 2.6.0 no libraries: nothing to compare dropped dependencies: pydot, python, python_abi
ros-workspace 1.0.2 (build 22) → 1.0.2 no libraries: nothing to compare
toppra 0.6.10 (build 22) → 0.6.10 no libraries: nothing to compare dropped dependencies: eigen, eigen-abi, python, python_abi
urdfdom 6.0.0 (build 22) → 6.0.0 no libraries: nothing to compare dropped dependencies: console_bridge, python, python_abi, tinyxml
urdfdom-headers 3.0.0 (build 22) → 3.0.0 no libraries: nothing to compare dropped dependencies: python, python_abi
urdfdom-py 1.2.1 (build 22) → 1.2.1 no libraries: nothing to compare dropped dependencies: lxml, python, python_abi, pyyaml
visp 3.7.0 (build 22) → 3.7.0 no libraries: nothing to compare dropped dependencies: _openmp_mutex, bzip2, eigen, eigen-abi, graphviz, gsl, libblas, libgl, libgomp, libjpeg-turbo, liblapack, libopencv, libopengl, libpng, libxml2, libxml2-16, nlohmann_json, py-opencv, python, python_abi, xorg-libx11, xorg-xorgproto, zbar

Compared with the newest builds on https://conda.anaconda.org/robostack-humble/linux-64.

About this check

Each package this pull request built, compared with its newest released build (tools/abi_check.py, libabigail):

  • compatible / additions: the package can be bumped on its own;
  • soname / incompatible: the packages that depend on it need a rebuild (build number bump) in the same pull request.

Exported symbols are compared (the released packages are stripped, so struct layouts aren't); unchanged installed headers rule out layout and inline changes, changed ones are listed for review. Dependents to rebuild are the released ones linking to a changed library. A changed pin is part of the comparison.

@Tobias-Fischer Tobias-Fischer removed the build:humble PR build: build only humble (with other build:<distro> labels: only those) label Nov 14, 2026
@Tobias-Fischer Tobias-Fischer changed the title TEMPORARY test: one bash build script per build type, with brush on Windows One bash build script per build type, run with brush on Windows Nov 14, 2026
@Tobias-Fischer Tobias-Fischer added the build:none PR build: build no packages, only run the checks (tooling, CI or docs changes) label Nov 14, 2026
vinca-rs with prefix-dev/pixi#7540's build scripts: ament_cmake and cmake share
one template (with conda's ${CMAKE_ARGS}, BUILD_TESTING=OFF and a
PYTHON_INSTALL_DIR relative to the prefix for both), and the ROS 2 scripts are
bash scripts on every platform, run with brush on Windows. rtabmap's Windows link
flags are in bash syntax ($LIBRARY_LIB).

vinca-rs comes from its branch (a pixi source dependency) until 0.1.10 is released.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build:none PR build: build no packages, only run the checks (tooling, CI or docs changes)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant