Repository navigation
Name every patch after a package of its distribution - #74
Conversation
vinca applies distros/<d>/patch/ros2-<pkg>[.<platform>].patch only when <pkg> is a package of the distribution, so 23 patch files were silently never applied. Rename the misnamed ones that are still needed (rosidl_cli in all distributions, rmw_implementation_cmake in jazzy) and delete the rest: their package isn't in the distribution, or (jazzy joint_limits, ament_cmake_vendor_package) upstream or an existing patch already has the change. The rosidl_cli patch now installs the completions like ros2cli's (#70): completions/rosidl, site-functions/_rosidl and, on lyrical and rolling, vendor_completions.d/rosidl.fish. Its test (shared/tests/ros2-rosidl.yaml) was misnamed too and moves to ros2-rosidl-cli.yaml. Bump the build numbers of the packages whose output changes. `rs check` now fails for a patch that names no package of its distribution (or, for shared/patch, of any distribution). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ABI check (linux-64)Each package this pull request built, compared with its newest released build (
humble linux-64Nothing that needs a rebuild of other packages. 1 packages can be bumped on their own (no libraries: 1)
Compared with the newest builds on https://repo.prefix.dev/tobias-fischer/robostack-distro-test/linux-64 and https://conda.anaconda.org/robostack-staging/linux-64. jazzy linux-64Nothing that needs a rebuild of other packages. 2 packages can be bumped on their own (no libraries: 2)
Compared with the newest builds on https://repo.prefix.dev/tobias-fischer/robostack-distro-test/linux-64 and https://conda.anaconda.org/robostack-jazzy/linux-64. lyrical linux-64Nothing that needs a rebuild of other packages. 1 packages can be bumped on their own (no libraries: 1)
Compared with the newest builds on https://repo.prefix.dev/tobias-fischer/robostack-distro-test/linux-64 and https://repo.prefix.dev/robostack-lyrical/linux-64. rolling linux-64Nothing that needs a rebuild of other packages. 1 packages can be bumped on their own (no libraries: 1)
Compared with the newest builds on https://repo.prefix.dev/tobias-fischer/robostack-distro-test/linux-64 and https://repo.prefix.dev/robostack-rolling/linux-64. 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. |
vinca applies
distros/<d>/patch/ros2-<pkg>[.<platform>].patchonly when<pkg>is a package of the distribution, so 23 patch files were never applied. This renames the ones that are still needed, deletes the others, and makesrs checkcatch this from now on.ros2-rosidl.patchros2-rosidl-cli.patch, rewrittenrosidl_cli. Now installs completions the same way ros2cli does since #70:share/bash-completion/completions/rosidlandshare/zsh/site-functions/_rosidl, plusshare/fish/vendor_completions.d/rosidl.fishon lyrical/rolling (the same distros where ros2cli installs fish). The upstream scripts are left alone.ros2-rwm-implementation-cmake.osx.patchros2-rmw-implementation-cmake.osx.patchros2-cmake-vendor-package.patchros2-ament-cmake-vendor-package.patch, which is applied (differs only in whitespace).ros2-joint-limits-skip.win.patchjoint_soft_limiter.cppdefines_USE_MATH_DEFINES.ros2-iceoryx-dds.win.patchiceoryx_ddsisn't in jazzy.ros2-embree-vendor.patchembree_vendorisn't in humble.ros2-mrpt2.patchmrpt2isn't in humble. It's now split intomrpt_lib*(mrpt_ros), which has a different source layout.ros2-nav2-recoveries.win.patchnav2_recoveriesisn't in humble (it becamenav2_behaviors).ros2-grid-map-pcl.osx.patch,ros2-parameter-traits.patch,ros2-turtlebot3-node.win.patchros2-grid-map-core.osx.patch,ros2-grid-map-core.patch,ros2-grid-map-pcl.osx.patch,ros2-parameter-traits.patch,ros2-rplidar-ros.patch,ros2-sbg-driver.patch,ros2-sbg-driver.win.patch,ros2-slam-toolbox.win.patch,ros2-turtlebot3-node.win.patchOther changes:
shared/tests/ros2-rosidl.yamlwas misnamed as well, so it never ran, and it checked the old file names. It is nowros2-rosidl-cli.yamland tests the new names and that bash registers the completion, like the ros2cli test.rs checknow fails for a patch indistros/<d>/patchwhose package isn't in that distro's snapshot or additional recipes. Forshared/patchit fails when the package is in none of the distros. A unit test is intools/tests/test_patch_names.py.Verified:
pixi run rs checkandpixi run testpass (15 tests).rs <d> check-patches --recipe ros2-rosidl-clipasses on all 4 distros, and so doesrs jazzy check-patches --recipe ros2-rmw-implementation-cmake.rs <d> build-one ros2-rosidl-clibuilds on osx-arm64 for all 4 distros and the new recipe tests pass.rs jazzy build-one ros2-rmw-implementation-cmakebuilds too, and itsget_default_rmw_implementation.cmakenow prefersrmw_cyclonedds_cpp.🤖 Generated with Claude Code