Files
tines/scripts/check-ros2.sh
kyle 7be09f8e9a Task 9: tines-ros2 — pure topic_name escaping (default, tested) + optional rclrs TinesNode (feature ros2)
Adds the ninth fleet-deployment crate. Default build is ROS2-free: topic_name
hex-escapes arbitrary tines topics into valid ROS2 names under /tines/ (deterministic,
injective) and wires Node<LogStore, BtTransport>. The rclrs-backed self-contained
TinesNode lives under #[cfg(feature="ros2")] with an off-by-default ros2 feature, so
the crate builds/tests without a ROS2 toolchain. Adds scripts/check-ros2.sh (needs a
ROS2 toolchain; not run in CI), registers the crate in workspace members, and passes
sh scripts/ci.sh.
2026-10-18 14:46:57 -07:00

24 lines
848 B
Bash
Executable File

#!/usr/bin/env bash
#
# Build the rclrs-backed ROS2 node for the `tines-ros2` crate.
#
# This compiles the `ros2` feature, which pulls in `rclrs` and its dependency
# on the ROS2 C libraries. It therefore REQUIRES a ROS2 toolchain installed
# (a sourced `colcon`/`/opt/ros/<distro>/setup.bash` and `rclrs` on the
# registry); it is NOT run in CI.
#
# The default (ROS2-free) build and tests — including `topic_name` escaping —
# are exercised in CI via `cargo test --workspace` and need no ROS2 toolchain.
#
# Usage:
# source /opt/ros/<distro>/setup.bash # any ROS2 distro rclrs supports
# ./scripts/check-ros2.sh
set -euo pipefail
cd "$(dirname "$0")/.."
echo "Building tines-ros2 with the ros2 feature (requires a ROS2 toolchain)..."
cargo build -p tines-ros2 --features ros2
echo "OK: tines-ros2 (ros2 feature) built against ROS2."