Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
144 commits
Select commit Hold shift + click to select a range
4fb10bc
docs: define cross-distribution sync workflow
Tobias-Fischer Aug 27, 2026
8e515e5
ci: harden shared source and build caches
Tobias-Fischer Aug 27, 2026
da373ce
build: identify the platform in gap reports
Tobias-Fischer Aug 27, 2026
d7cfa0b
vinca: sync released package seeds
Tobias-Fischer Aug 28, 2026
2040bb4
vinca: skip unreleased rolling dependency chains
Tobias-Fischer Aug 28, 2026
a7de6f9
patch: refresh async web server compatibility
Tobias-Fischer Aug 30, 2026
fe47200
Merge remote-tracking branch 'origin/main' into codex/cross-distro-sync
Tobias-Fischer Sep 2, 2026
dbc7bcf
sync: rolling config from lyrical/kilted cross-distro sync
Tobias-Fischer Sep 2, 2026
4a3838e
fix: build_gap_report ignores check_patches_clean_apply.py leftover a…
Tobias-Fischer Sep 4, 2026
a92cf0a
sync: cross-distro pinning/tooling sync (opencv5/protobuf/vtk pins, v…
Tobias-Fischer Sep 4, 2026
8244207
Merge remote-tracking branch 'origin/main' into codex/cross-distro-sync
Tobias-Fischer Sep 4, 2026
41314a9
style: sort vinca.yaml after merge
Tobias-Fischer Sep 4, 2026
5f33d50
fix: macOS build fixes across ~20 packages for opencv5/Qt6/Boost1.90/…
Tobias-Fischer Sep 4, 2026
55e65ce
fix: remaining macOS build failures (ublox-dgnss-node ODR, rclc_examp…
Tobias-Fischer Sep 4, 2026
2bf95eb
fix: switch rmf_websocket to standalone asio (Boost 1.90 dropped io_s…
Tobias-Fischer Sep 4, 2026
9d06906
feat: port missing robostack.yaml mappings and seeds from humble for …
Tobias-Fischer Sep 4, 2026
d677dff
fix: drop rqt_image_overlay seed, make two recipe hand-edits durable
Tobias-Fischer Sep 4, 2026
b79234d
fix: build_continue_on_failure used the wrong (empty) robostack-rolli…
Tobias-Fischer Sep 4, 2026
286c10d
fix: macOS build fixes for 5 packages + exclude mujoco_ros2_control o…
Tobias-Fischer Sep 4, 2026
d7d8d23
fix: bump pcl_conversions build number, disable strict channel priority
Tobias-Fischer Sep 4, 2026
fb38615
fix: cartographer_ros duplicate cartographer dependency + NodeInterfa…
Tobias-Fischer Sep 4, 2026
82bf8f4
fix: loosen 7 needlessly linux-only packages to build on macOS + syst…
Tobias-Fischer Sep 5, 2026
01b5f39
chore: port 8 remaining robostack.yaml mappings from humble/jazzy
Tobias-Fischer Sep 5, 2026
c39a289
fix: address PR #41's linux-64/linux-aarch64/win-64 CI failures
Tobias-Fischer Sep 5, 2026
969d915
fix: channel-priority in CI workflow, rmf_task cstdint, plotjuggler w…
Tobias-Fischer Sep 5, 2026
21853b1
fix: rmf_visualization_schedule websocketpp/asio, trim stale plotjugg…
Tobias-Fischer Sep 5, 2026
f72913e
fix: force fresh distro-mutex build, fix septentrio_gnss_driver tf2_r…
Tobias-Fischer Sep 5, 2026
e4bd46d
fix: webots_ros2_driver hardcoded Python 3.12 EXACT version match
Tobias-Fischer Sep 5, 2026
2cf7e6e
fix: septentrio_gnss_driver forced -std=c++17 breaks class_loader C++…
Tobias-Fischer Sep 5, 2026
247c5d2
fix: webots_ros2_control on_init override for hardware_interface >= 5.3
Tobias-Fischer Sep 5, 2026
97cbeb7
fix: mujoco_3d_lidar mjtnum.h renamed to mjtype.h upstream
Tobias-Fischer Sep 5, 2026
9226977
fix: mujoco_ros2_control_plugins missing libegl-devel host dependency
Tobias-Fischer Sep 5, 2026
c38da89
fix: force fresh libg2o build (stale mutex 0.19.* pin)
Tobias-Fischer Sep 5, 2026
f53f314
fix: drop unnecessary Qt5 host dep from libg2o, fixing rtabmap qt5/qt…
Tobias-Fischer Sep 5, 2026
1ede1f6
fix: libg2o win-64 link failure, csparse_extension exports no symbols
Tobias-Fischer Sep 5, 2026
2d68302
fix: bump libg2o build_number to 27, past stale cached qt-dependent b…
Tobias-Fischer Sep 5, 2026
10a5c12
fix: mavlink hardcoded /usr/bin/env and touch break on win-64
Tobias-Fischer Sep 5, 2026
97f5b7b
fix: libmavconn unconditional -Wcomment breaks MSVC
Tobias-Fischer Sep 5, 2026
e2d227b
fix: mavlink/libmavconn missing endian.h and pthread.h on win-64
Tobias-Fischer Sep 5, 2026
dd8712a
fix: force fresh cv_bridge build (stale mutex 0.19.* pin)
Tobias-Fischer Sep 5, 2026
9725a69
fix: skip rtabmap (OpenCV5 incompatible), bump mavlink past stale win…
Tobias-Fischer Sep 5, 2026
6bd12be
fix: mavlink msgmap.hpp also needs ssize_t on win-64, bump build_numb…
Tobias-Fischer Sep 5, 2026
6c8532a
fix: mavlink windows.h ERROR macro corrupts generated dialect enums
Tobias-Fischer Sep 5, 2026
d423631
fix: mavlink windows.h NO_ERROR macro also corrupts MAV_PARAM_ERROR enum
Tobias-Fischer Sep 5, 2026
dffc64d
fix: port rtabmap to OpenCV5, re-enable on rolling
Tobias-Fischer Sep 5, 2026
3c29603
fix: libmavconn Windows import-library export for downstream mavros
Tobias-Fischer Sep 5, 2026
5ba5388
fix: bump libmavconn build_number to bust stale win-64 CI cache
Tobias-Fischer Sep 5, 2026
6062502
fix: mavros/mavros_extras -Wcomment flag rejected by MSVC on win-64
Tobias-Fischer Sep 5, 2026
4334622
fix: undef Windows PASSTHROUGH macro before mavros's timesync_mode enum
Tobias-Fischer Sep 5, 2026
e893708
fix: mavros win-64 M_PI and fnmatch.h portability
Tobias-Fischer Sep 5, 2026
07a61d2
fix: mavros_plugins win-64 errno constants and clock_gettime
Tobias-Fischer Sep 5, 2026
c480dbb
fix: mavros win-64 missing mavros.lib import library
Tobias-Fischer Sep 5, 2026
375bcff
fix: scope mavros's win-64 WINDOWS_EXPORT_ALL_SYMBOLS to the mavros t…
Tobias-Fischer Sep 5, 2026
6f8af19
fix: explicitly export mavros's egm96_5 static data member on win-64
Tobias-Fischer Sep 5, 2026
23f0037
fix: mavros_extras win-64 M_PI undeclared identifier
Tobias-Fischer Sep 5, 2026
fd26978
fix: microstrain_inertial_driver win-64 min/max macro collision
Tobias-Fischer Sep 5, 2026
3830abf
fix: microstrain_inertial_driver win-64 unistd.h and localtime_r
Tobias-Fischer Sep 5, 2026
49877ed
fix: microstrain_inertial_driver win-64 -Wno-narrowing rejected by MSVC
Tobias-Fischer Sep 5, 2026
63aa028
fix: mocap4r2_control win-64 missing import library
Tobias-Fischer Sep 5, 2026
132cd94
fix: mocap4r2_dummy_driver win-64 missing import library
Tobias-Fischer Sep 5, 2026
aaf5540
fix: proactively export mocap4r2_marker_viz/mocap4r2_robot_gt librari…
Tobias-Fischer Sep 5, 2026
a1b8753
fix: motion_capture_tracking win-64 missing quat.lib import library
Tobias-Fischer Sep 5, 2026
f6cabe4
fix: proactively export vrpn/libmotioncapture/librigidbodytracker on …
Tobias-Fischer Sep 5, 2026
6c2c4ac
fix: qualisys_cpp_sdk win-64 missing import library
Tobias-Fischer Sep 5, 2026
83f1ea7
fix: libmotioncapture win-64 missing boost_filesystem.lib
Tobias-Fischer Sep 5, 2026
e486b17
fix: moveit_hybrid_planning win-64 __builtin_unreachable undeclared
Tobias-Fischer Sep 5, 2026
3421f83
fix: moveit_ros_perception win-64 __cplusplus and OpenCV5 pointPolygo…
Tobias-Fischer Sep 5, 2026
962b398
fix: py_binding_tools win-64 missing import library
Tobias-Fischer Sep 5, 2026
b3790fc
fix: moveit_task_constructor_core win-64 non-standard uint typedef
Tobias-Fischer Sep 5, 2026
8d87180
fix: moveit_task_constructor_core win-64 GCC-only __attribute__ usages
Tobias-Fischer Sep 5, 2026
691849b
fix: moveit_task_constructor_core win-64 missing fmt.lib
Tobias-Fischer Sep 5, 2026
70e18fb
fix: moveit_task_constructor_core win-64 missing ws2_32 for gethostname
Tobias-Fischer Sep 5, 2026
453146f
fix: moveit_task_constructor_core win-64 pybind11 header collision
Tobias-Fischer Sep 5, 2026
bcddef3
fix: moveit_task_constructor_capabilities win-64 missing fmt.lib
Tobias-Fischer Sep 5, 2026
b7e6642
fix: moveit_task_constructor_visualization win-64 missing import libs
Tobias-Fischer Sep 5, 2026
5881651
fix: mujoco_3d_lidar win-64 missing C++17 standard and M_PI
Tobias-Fischer Sep 5, 2026
5d09fcc
fix: exclude mujoco_ros2_control_plugins (and dependents) from win-64
Tobias-Fischer Sep 5, 2026
80383d0
fix: nlohmann_json_schema_validator_vendor win-64 git clone path length
Tobias-Fischer Sep 5, 2026
10cb636
fix: shorten nlohmann_json_schema_validator_vendor's ExternalProject …
Tobias-Fischer Sep 5, 2026
f687773
fix: nlohmann_json_schema_validator_vendor win-64 PATCH_COMMAND redirect
Tobias-Fischer Sep 5, 2026
50981f2
fix: nlohmann_json_schema_validator_vendor win-64 BUILD_COMMAND keywo…
Tobias-Fischer Sep 5, 2026
452aa0a
fix: nlohmann_json_schema_validator_vendor win-64 BUILD_COMMAND doubl…
Tobias-Fischer Sep 5, 2026
694edd1
fix: nlohmann_json_schema_validator_vendor win-64 BUILD_TESTS option …
Tobias-Fischer Sep 5, 2026
be78cdb
fix: ouster_ros win-64 libzip detection
Tobias-Fischer Sep 5, 2026
7cbe742
fix: ouster_ros win-64 spdlog bundled/external fmt collision
Tobias-Fischer Sep 5, 2026
36b27f6
fix: ouster_ros win-64 spdlog fmt collision via #undef, not CMake
Tobias-Fischer Sep 5, 2026
fcc99dd
fix: ouster_ros win-64 spdlog include-path priority, not macro
Tobias-Fischer Sep 5, 2026
6c2655c
fix: exclude ouster_ros from win-64 (pcl_io.lib not found)
Tobias-Fischer Sep 5, 2026
8a6f7ac
fix: plotjuggler win-64 missing Qt5::Xml link (QDomDocument)
Tobias-Fischer Sep 5, 2026
abd2268
fix: plotjuggler win-64 missing plotjuggler_base import lib
Tobias-Fischer Sep 5, 2026
44a95ad
fix: plotjuggler win-64 missing staticMetaObject exports
Tobias-Fischer Sep 5, 2026
85f9b95
fix: plotjuggler_ros win-64 fmt /utf-8 requirement
Tobias-Fischer Sep 5, 2026
5469438
fix: pointcloud_to_laserscan win-64 M_PI undeclared
Tobias-Fischer Sep 5, 2026
ad57984
fix: rclc_examples win-64 rcl_timer_t undeclared
Tobias-Fischer Sep 5, 2026
9396570
fix: exclude rclc_examples from win-64 (unresolved rcl_timer_t C2055)
Tobias-Fischer Sep 5, 2026
e2547ed
fix: realsense2_camera win-64 ambiguous stream_profile ==
Tobias-Fischer Sep 5, 2026
4e69063
fix: rmf_api_msgs win-64 eval not a Windows command
Tobias-Fischer Sep 5, 2026
47cb8a0
fix: rmf_api_msgs win-64 python3 not found
Tobias-Fischer Sep 5, 2026
576207a
fix: rmf_utils win-64 stale cached build missing CMake config
Tobias-Fischer Sep 5, 2026
52c4f63
fix: rmf_utils win-64 missing import lib (WINDOWS_EXPORT_ALL_SYMBOLS)
Tobias-Fischer Sep 5, 2026
b1592f1
fix: rmf_utils win-64 re-bump build_number, prior fix never ran
Tobias-Fischer Sep 6, 2026
470c3d4
fix: rmf_traffic win-64 M_PI undeclared
Tobias-Fischer Sep 6, 2026
1e584ca
fix: rmf_traffic win-64 out-of-line conversion operator lookup (C2833)
Tobias-Fischer Sep 6, 2026
a078e87
fix: rmf_traffic win-64 redundant static constexpr out-of-class defs
Tobias-Fischer Sep 6, 2026
4c9ecf5
fix: rmf_traffic win-64 dependent type in default-arg lambda (C3861)
Tobias-Fischer Sep 6, 2026
61465f7
ci: add build log summary/artifact and flaky git-cache retry
Tobias-Fischer Sep 6, 2026
28ebfe8
fix: rmf_traffic win-64 use injected-class-name, not explicit templat…
Tobias-Fischer Sep 6, 2026
26581c8
fix: rmf_traffic win-64 move default lambda out of default argument
Tobias-Fischer Sep 6, 2026
147f6c5
fix: rmf_traffic win-64 KeyHash/EntryHash need default constructor
Tobias-Fischer Sep 6, 2026
fa19df2
fix: rmf_traffic win-64 missing import lib (WINDOWS_EXPORT_ALL_SYMBOLS)
Tobias-Fischer Sep 6, 2026
367278a
fix: rmf_traffic win-64 bump build_number, export fix never ran
Tobias-Fischer Sep 6, 2026
687011d
fix: rmf_battery win-64 M_PI undeclared
Tobias-Fischer Sep 6, 2026
887a656
fix: rmf_battery win-64 missing import lib (WINDOWS_EXPORT_ALL_SYMBOLS)
Tobias-Fischer Sep 6, 2026
38df27b
fix: rmf_battery win-64 preemptive build_number bump
Tobias-Fischer Sep 6, 2026
6ea0b3f
fix: rmf_task win-64 M_PI and path-to-string conversion
Tobias-Fischer Sep 6, 2026
a507858
fix: rmf_task win-64 test_Log.cpp uint -> unsigned int
Tobias-Fischer Sep 6, 2026
521b6af
fix: rmf_task win-64 missing import lib + preemptive build_number bump
Tobias-Fischer Sep 6, 2026
787ffd8
fix: rmf_traffic_ros2 win-64 libuuid is Linux/macOS-only
Tobias-Fischer Sep 6, 2026
98b133f
fix: rmf_traffic_ros2 win-64 M_PI undeclared
Tobias-Fischer Sep 6, 2026
d6875d0
fix: rmf_traffic_ros2 uint typedef not standard on MSVC (Negotiation)
Tobias-Fischer Sep 6, 2026
b1f4d2e
fix: rmf_traffic_ros2 windows.h min/max/ERROR macro collision in Node…
Tobias-Fischer Sep 6, 2026
917b5fe
fix: rmf_traffic_ros2 NOGDI needed too, ERROR macro still collided
Tobias-Fischer Sep 6, 2026
ea3c1ed
fix: rmf_traffic_ros2 /bigobj for Node.cpp object section limit
Tobias-Fischer Sep 6, 2026
043f2ae
fix: rmf_traffic_ros2 win-64 LNK1170 from oversized rclcpp link line
Tobias-Fischer Sep 6, 2026
ff4fb75
fix: rmf_traffic_ros2 LNK1170 persisted, msg-package _LIBRARIES too
Tobias-Fischer Sep 6, 2026
0fd874b
fix: rmf_traffic_ros2 bare yaml-cpp name unresolvable by MSVC (LNK1181)
Tobias-Fischer Sep 6, 2026
71e7c44
fix: rmf_traffic_ros2 PkgConfig::PROJ bare name unresolvable by MSVC
Tobias-Fischer Sep 6, 2026
ed9da78
fix: rmf_traffic_ros2 missing out-of-class definition for tag statics
Tobias-Fischer Sep 6, 2026
7634a40
fix: rmf_traffic_ros2 WINDOWS_EXPORT_ALL_SYMBOLS for missing import lib
Tobias-Fischer Sep 6, 2026
a945f0c
fix: rmf_traffic_ros2 LNK1189, replace blanket export with selective
Tobias-Fischer Sep 6, 2026
12f5b91
fix: rmf_traffic_ros2 make_node/make_monitor_node never dllexported
Tobias-Fischer Sep 6, 2026
d6ba67a
fix: rmf_websocket websocketpp boost::is_same removed on Windows
Tobias-Fischer Sep 6, 2026
44fadaa
fix: rmf_websocket WINDOWS_EXPORT_ALL_SYMBOLS for missing import lib
Tobias-Fischer Sep 6, 2026
602cbf8
fix: rmf_traffic_ros2 downstream consumers missing PROJ::proj on win-64
Tobias-Fischer Sep 6, 2026
4097934
fix: rmf_traffic_ros2 make PROJ a PRIVATE dependency, not PUBLIC
Tobias-Fischer Sep 6, 2026
82741db
fix: rmf_traffic_ros2 export rmf_building_map_msgs/rmf_reservation_msgs
Tobias-Fischer Sep 6, 2026
d08a1d8
fix: rmf_task_ros2 LNK1170 from oversized rmf_task_msgs/rclcpp link line
Tobias-Fischer Sep 6, 2026
6a8f481
fix: rmf_traffic_ros2 export Time.hpp convert()/to_ros2() overloads
Tobias-Fischer Sep 6, 2026
015cbee
ci: add orphaned-platform-patch check (ported from humble/jazzy)
Tobias-Fischer Sep 6, 2026
714791c
fix: rmf_task_ros2 WINDOWS_EXPORT_ALL_SYMBOLS for missing import lib
Tobias-Fischer Sep 6, 2026
0794d45
fix: rmf_task_sequence M_PI undeclared via rmf_traffic's Interpolate.hpp
Tobias-Fischer Sep 6, 2026
af30f8c
fix: rmf_task_sequence WINDOWS_EXPORT_ALL_SYMBOLS for missing import lib
Tobias-Fischer Sep 6, 2026
d058aee
fix: bump rmf_task_sequence build_number to force fresh win-64 build
Tobias-Fischer Sep 6, 2026
b64e23e
fix: rmf_fleet_adapter M_PI undeclared across multiple sources
Tobias-Fischer Sep 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 98 additions & 0 deletions .github/scripts/summarize_rattler_build.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
#!/usr/bin/env python3
"""Write a compact rattler-build diagnostic for the GitHub job summary."""

from __future__ import annotations

import argparse
import os
import re
from pathlib import Path


ANSI_ESCAPE = re.compile(r"\x1b(?:[@-_][0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1b\\))")
TIMESTAMP = re.compile(r"^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d+Z\s*")
DIAGNOSTIC = re.compile(
r"(?:Error:\s+×|fatal error(?:\s+[A-Z]+\d+)?:|\berror(?:\s+[A-Z]+\d+)?:|"
r"CMake Error(?::|\s+at\b)|FAILED:|Patch application error|"
r"Failed to resolve dependencies|Cannot solve the request)",
re.IGNORECASE,
)
RECIPE_START = re.compile(r"Running build for recipe:|Build variant:")


def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser()
parser.add_argument("--log", type=Path, required=True)
parser.add_argument("--platform", required=True)
parser.add_argument("--outcome", required=True)
return parser.parse_args()


def clean(line: str) -> str:
cleaned = TIMESTAMP.sub("", ANSI_ESCAPE.sub("", line)).rstrip()
if len(cleaned) > 1_000:
return cleaned[:1_000] + " … [line truncated]"
return cleaned


def diagnostic_excerpt(lines: list[str]) -> list[str]:
matches = [index for index, line in enumerate(lines) if DIAGNOSTIC.search(line)]
if not matches:
return []

# Keep context around the last diagnostics. This includes multiline solver
# explanations without flooding the GitHub summary with the complete log.
selected: set[int] = set()
for index in matches[-20:]:
selected.update(range(max(0, index - 2), min(len(lines), index + 14)))

# Name the recipe that produced the final diagnostic even when dependency
# solver output has pushed its heading far outside the context window.
first_diagnostic = matches[max(0, len(matches) - 20)]
for index in range(first_diagnostic, -1, -1):
if RECIPE_START.search(lines[index]):
selected.add(index)
break

excerpt: list[str] = []
previous = -2
for index in sorted(selected):
if previous >= 0 and index > previous + 1:
excerpt.append("...")
excerpt.append(lines[index])
previous = index
return excerpt[-160:]


def main() -> None:
args = parse_args()
run_url = (
f"{os.environ.get('GITHUB_SERVER_URL', 'https://github.com')}/"
f"{os.environ.get('GITHUB_REPOSITORY', '')}/actions/runs/"
f"{os.environ.get('GITHUB_RUN_ID', '')}"
)
symbol = "✅" if args.outcome == "success" else "❌"

print(f"## {symbol} rattler-build: `{args.platform}`")
print()
print(f"Outcome: **{args.outcome}** · [Open workflow run]({run_url})")

if not args.log.is_file():
print("\nNo build log was produced.")
return

lines = [clean(line) for line in args.log.read_text(encoding="utf-8", errors="replace").splitlines()]
excerpt = diagnostic_excerpt(lines)
if not excerpt:
print("\nNo error diagnostics were found in the build log.")
return

print("\n### Final diagnostics\n")
print("```text")
print("\n".join(excerpt))
print("```")
print("\nThe complete `rattler-build.log` is available in this run's artifacts.")


if __name__ == "__main__":
main()
30 changes: 29 additions & 1 deletion .github/workflows/testpr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,11 @@ jobs:
with:
frozen: true

- name: Disable git auto-maintenance in source caches
shell: bash -l {0}
run: |
git config --global maintenance.auto false

- name: Long paths workarounds for win-64
shell: bash -l {0}
if: matrix.platform == 'win-64'
Expand Down Expand Up @@ -138,7 +143,30 @@ jobs:
id: build-recipes
shell: bash -l {0}
run: |
pixi run rattler-build build --recipe-dir recipes --target-platform ${{ matrix.platform }} -m ./conda_build_config.yaml -c https://prefix.dev/conda-forge -c https://prefix.dev/robostack-rolling --skip-existing
set +e
pixi run rattler-build build --recipe-dir recipes --target-platform ${{ matrix.platform }} -m ./conda_build_config.yaml -c https://prefix.dev/conda-forge -c https://prefix.dev/robostack-rolling --skip-existing --channel-priority disabled 2>&1 | tee rattler-build.log
build_status=${PIPESTATUS[0]}
echo "exit-code=${build_status}" >> "$GITHUB_OUTPUT"
exit "$build_status"

- name: Summarize build result
if: always()
shell: bash -l {0}
run: |
pixi run python .github/scripts/summarize_rattler_build.py \
--log rattler-build.log \
--platform "${{ matrix.platform }}" \
--outcome "${{ steps.build-recipes.outcome }}" \
>> "$GITHUB_STEP_SUMMARY"

- name: Upload build log
if: always()
uses: actions/upload-artifact@v6
with:
name: build-log-${{ matrix.platform }}-${{ github.run_id }}-${{ github.run_attempt }}
path: rattler-build.log
if-no-files-found: warn
retention-days: 7

- name: See packages that will be saved in cache
shell: bash -l {0}
Expand Down
8 changes: 8 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,14 @@ Rules:
- Run parallel lanes only for packages that do not depend on each other.
- If unsure, serialize the builds.

## Cross-distribution sync

- Work from the clean checked-out heads of rolling, lyrical, kilted, jazzy, and humble; create `codex/cross-distro-sync` in each repo and never merge their independent histories.
- Classify every candidate before editing: portable shared tooling/CI/metadata, conditional package fix requiring a compatible source and refreshed patch, or excluded distro-owned state.
- Keep rosdistro snapshots, mutex/build numbers, ABI/compiler/Python pins, channels/upload targets, package selection, generated recipes, and temporary rebuild controls distro-owned.
- Port patches only for an existing compatible package, using `patch/ros-$DISTRO-<pkg>.patch` and matching recipe wiring; do not copy a patch solely because its filename exists elsewhere.
- Validate changed patch metadata with `pixi run check-patches` and each changed package with `pixi run build-one ros-$DISTRO-<pkg>`; inspect final diffs for protected state.

## Inspect a built conda package

```bash
Expand Down
Loading
Loading