diff --git a/.github/workflows/debian-packages.yml b/.github/workflows/debian-packages.yml index 186d2cc..be90238 100644 --- a/.github/workflows/debian-packages.yml +++ b/.github/workflows/debian-packages.yml @@ -24,7 +24,7 @@ on: workflow_dispatch: # Manual trigger inputs: ros_distros: - description: 'ROS distributions to build (comma-separated: humble,iron,jazzy,kilted,rolling)' + description: 'ROS distributions to build (comma-separated: humble,iron,jazzy,lyrical,kilted,rolling)' required: false schedule: - cron: '0 2 * * *' # Nightly at 2 AM UTC @@ -44,10 +44,10 @@ jobs: run: | if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then # Manual trigger - use input or default - DISTROS="${{ github.event.inputs.ros_distros || 'humble,iron,jazzy,kilted,rolling' }}" + DISTROS="${{ github.event.inputs.ros_distros || 'humble,iron,jazzy,lyrical,kilted,rolling' }}" else # Always build all distributions - DISTROS="humble,iron,jazzy,kilted,rolling" + DISTROS="humble,iron,jazzy,lyrical,kilted,rolling" fi echo "Building for distributions: $DISTROS" # Convert to JSON array for matrix @@ -72,6 +72,8 @@ jobs: ubuntu_distro: jammy - ros_distro: jazzy ubuntu_distro: noble + - ros_distro: lyrical + ubuntu_distro: resolute - ros_distro: kilted ubuntu_distro: noble - ros_distro: rolling @@ -114,6 +116,8 @@ jobs: ubuntu_distro: jammy - ros_distro: jazzy ubuntu_distro: noble + - ros_distro: lyrical + ubuntu_distro: resolute - ros_distro: kilted ubuntu_distro: noble - ros_distro: rolling @@ -232,6 +236,7 @@ jobs: # Install Python dependencies if [[ "${{ matrix.ros_distro }}" == "jazzy" || \ + "${{ matrix.ros_distro }}" == "lyrical" || \ "${{ matrix.ros_distro }}" == "kilted" || \ "${{ matrix.ros_distro }}" == "rolling" ]]; then pip3 install --break-system-packages --ignore-installed pygments textual diff --git a/.github/workflows/ros-tests.yml b/.github/workflows/ros-tests.yml index 0997336..2c46df1 100644 --- a/.github/workflows/ros-tests.yml +++ b/.github/workflows/ros-tests.yml @@ -54,6 +54,8 @@ jobs: ubuntu_distro: jammy - ros_distro: jazzy ubuntu_distro: noble + - ros_distro: lyrical + ubuntu_distro: resolute - ros_distro: kilted ubuntu_distro: noble - ros_distro: rolling @@ -122,6 +124,7 @@ jobs: source /opt/ros/${{ matrix.ros_distro }}/setup.bash source install/setup.bash if [[ "${{ matrix.ros_distro }}" == "jazzy" || \ + "${{ matrix.ros_distro }}" == "lyrical" || \ "${{ matrix.ros_distro }}" == "kilted" || \ "${{ matrix.ros_distro }}" == "rolling" ]]; then pip3 install --break-system-packages --ignore-installed pygments -r r2s_gw/requirements.txt diff --git a/README.md b/README.md index e6a5a57..e0f1160 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ For implementation details and inline integration guidance, see ## Compatibility -Greenwave monitor is a standalone package tested on Humble, Iron, Jazzy, Kilted, and Rolling ROS 2 releases, under Ubuntu 22.04 and Ubuntu 24.04. It does not depend on Isaac ROS. It does however play nicely with Isaac ROS NITROS diagnostics, see [`docs/DESIGN_AND_IMPLEMENTATION.md`](docs/DESIGN_AND_IMPLEMENTATION.md) for more. +Greenwave monitor is a standalone package tested on Humble, Iron, Jazzy, Lyrical, Kilted, and Rolling ROS 2 releases, under Ubuntu 22.04, Ubuntu 24.04, and Ubuntu 26.04. It does not depend on Isaac ROS. It does however play nicely with Isaac ROS NITROS diagnostics, see [`docs/DESIGN_AND_IMPLEMENTATION.md`](docs/DESIGN_AND_IMPLEMENTATION.md) for more. ## Installation diff --git a/scripts/build_debian_packages.sh b/scripts/build_debian_packages.sh index f1942a9..8bd81b6 100755 --- a/scripts/build_debian_packages.sh +++ b/scripts/build_debian_packages.sh @@ -23,17 +23,18 @@ # # Usage: ./scripts/build_debian_packages.sh [ROS_DISTRO] [UBUNTU_DISTRO] # Examples: -# ./scripts/build_debian_packages.sh # Uses defaults (humble/jammy) +# ./scripts/build_debian_packages.sh # Uses defaults (lyrical/resolute) # ./scripts/build_debian_packages.sh humble jammy # ROS Humble on Ubuntu 22.04 # ./scripts/build_debian_packages.sh jazzy noble # ROS Jazzy on Ubuntu 24.04 +# ./scripts/build_debian_packages.sh lyrical resolute # ROS Lyrical on Ubuntu 26.04 # ./scripts/build_debian_packages.sh rolling resolute # ROS Rolling on Ubuntu 26.04 # # Docker Usage (Recommended): # docker run -it --rm -v $(pwd):/workspace -w /workspace \ -# ubuntu:jammy ./scripts/build_debian_packages.sh humble jammy +# ubuntu:resolute ./scripts/build_debian_packages.sh lyrical resolute # # Supported combinations: -# humble/jammy, iron/jammy, jazzy/noble, kilted/noble, rolling/resolute +# humble/jammy, iron/jammy, jazzy/noble, lyrical/resolute, kilted/noble, rolling/resolute # # Output: Debian packages will be created in debian_packages/[ROS_DISTRO]/ # Install: sudo apt install ./debian_packages/[ROS_DISTRO]/*.deb @@ -41,8 +42,8 @@ set -eo pipefail # Default values -DEFAULT_ROS_DISTRO="humble" -DEFAULT_UBUNTU_DISTRO="jammy" +DEFAULT_ROS_DISTRO="lyrical" +DEFAULT_UBUNTU_DISTRO="resolute" # Parse arguments ROS_DISTRO="${1:-$DEFAULT_ROS_DISTRO}" @@ -50,10 +51,10 @@ UBUNTU_DISTRO="${2:-$DEFAULT_UBUNTU_DISTRO}" # Validate ROS distro case "$ROS_DISTRO" in -humble | iron | jazzy | kilted | rolling) ;; +humble | iron | jazzy | lyrical | kilted | rolling) ;; *) echo "Error: Unsupported ROS distro: $ROS_DISTRO" - echo "Supported distros: humble, iron, jazzy, kilted, rolling" + echo "Supported distros: humble, iron, jazzy, lyrical, kilted, rolling" exit 1 ;; esac @@ -110,7 +111,7 @@ echo "Installing build dependencies..." # Check if we need --break-system-packages for pip USE_BREAK_SYSTEM_PACKAGES="" -if [[ "$ROS_DISTRO" == "jazzy" || "$ROS_DISTRO" == "kilted" || "$ROS_DISTRO" == "rolling" ]]; then +if [[ "$ROS_DISTRO" == "jazzy" || "$ROS_DISTRO" == "lyrical" || "$ROS_DISTRO" == "kilted" || "$ROS_DISTRO" == "rolling" ]]; then USE_BREAK_SYSTEM_PACKAGES="--break-system-packages" fi diff --git a/scripts/docker-test.sh b/scripts/docker-test.sh index ee8e3ce..dc1b213 100755 --- a/scripts/docker-test.sh +++ b/scripts/docker-test.sh @@ -22,8 +22,8 @@ set -e -# Default to Humble if no distro specified -DISTRO=${1:-humble} +# Default to Lyrical if no distro specified +DISTRO=${1:-lyrical} # Image mapping based on ROS distro case $DISTRO in @@ -36,6 +36,9 @@ iron) jazzy) IMAGE="ros:jazzy-ros-base-noble" ;; +lyrical) + IMAGE="ros:lyrical-ros-base-resolute" + ;; kilted) IMAGE="ros:kilted-ros-base-noble" ;; @@ -44,7 +47,7 @@ rolling) ;; *) echo "Unsupported ROS 2 distribution: $DISTRO" - echo "Supported: humble, iron, jazzy, kilted, rolling" + echo "Supported: humble, iron, jazzy, lyrical, kilted, rolling" exit 1 ;; esac @@ -72,7 +75,7 @@ docker run -it --rm \ apt-get update -qq && apt-get install -y build-essential python3-pip # Install Python requirements based on ROS distro - if [[ '${DISTRO}' == 'jazzy' || '${DISTRO}' == 'kilted' || '${DISTRO}' == 'rolling' ]]; then + if [[ '${DISTRO}' == 'jazzy' || '${DISTRO}' == 'lyrical' || '${DISTRO}' == 'kilted' || '${DISTRO}' == 'rolling' ]]; then pip3 install --break-system-packages -I pygments -r /workspace/src/greenwave_monitor/r2s_gw/requirements.txt else pip3 install -r /workspace/src/greenwave_monitor/r2s_gw/requirements.txt