From cedd5a2621c6e7e345789ac7c62e46112f34351a Mon Sep 17 00:00:00 2001 From: Kenji Brameld Date: Thu, 3 Mar 2022 23:41:09 +0900 Subject: [PATCH] remove EOL ros distros (#473) Signed-off-by: Kenji Brameld --- .github/workflows/check-ros2-distribution.sh | 2 +- README.md | 28 +++----------------- __test__/main.test.ts | 8 +++--- action.yml | 5 +--- dist/index.js | 19 +++---------- src/package_manager/apt.ts | 8 ------ src/package_manager/pip.ts | 2 +- src/setup-ros-linux.ts | 4 +-- src/setup-ros-windows.ts | 4 --- src/utils.ts | 4 --- 10 files changed, 16 insertions(+), 68 deletions(-) diff --git a/.github/workflows/check-ros2-distribution.sh b/.github/workflows/check-ros2-distribution.sh index 3069ef178..bf1bd0108 100755 --- a/.github/workflows/check-ros2-distribution.sh +++ b/.github/workflows/check-ros2-distribution.sh @@ -2,7 +2,7 @@ # # ./check-ros-distribution.sh # ROS distribution must match the directory name for this distribution -# in /opt. E.g. dashing +# in /opt. E.g. galactic readonly ROS_DISTRIBUTION="$1" diff --git a/README.md b/README.md index 9378dcf5a..ab94b79f9 100644 --- a/README.md +++ b/README.md @@ -185,7 +185,7 @@ The workflow `test` is iterating on all ROS 2 distributions, on macOS, and Windo The workflow `test_docker` is iterating on all ROS and ROS 2 distributions, for all supported Ubuntu distributions, using Docker. The test matrix associates each distribution with one Docker image. This is required to ensure that the appropriate Ubuntu container is used. -For example, Kinetic requires `xenial`, Dashing requires `bionic`, Galactic requires `focal`, etc. +For example, Melodic requires `bionic`, Galactic requires `focal`, etc. ```yaml jobs: @@ -195,8 +195,6 @@ jobs: matrix: os: [macOS-latest, windows-latest] ros_distribution: # Only include ROS 2 distributions, as ROS 1 does not support macOS and Windows. - - dashing - - eloquent - foxy - galactic steps: @@ -214,11 +212,8 @@ jobs: strategy: matrix: ros_distribution: - - kinetic - melodic - noetic - - dashing - - eloquent - foxy - galactic @@ -231,17 +226,12 @@ jobs: # https://ros.org/reps/rep-0003.html # https://ros.org/reps/rep-2000.html include: - # Kinetic Kame (May 2016 - May 2021) - - docker_image: ubuntu:xenial - ros_distribution: kinetic - # Setting ros_version is helpful to customize the workflow - # depending on whether a ROS 1, or ROS 2 is being tested. - # See 'if: ros_version ==' below for an example. - ros_version: 1 - # Melodic Morenia (May 2018 - May 2023) - docker_image: ubuntu:bionic ros_distribution: melodic + # Setting ros_version is helpful to customize the workflow + # depending on whether a ROS 1, or ROS 2 is being tested. + # See 'if: ros_version ==' below for an example. ros_version: 1 # Noetic Ninjemys (May 2020 - May 2025) @@ -249,16 +239,6 @@ jobs: ros_distribution: noetic ros_version: 1 - # Dashing Diademata (May 2019 - May 2021) - - docker_image: ubuntu:bionic - ros_distribution: dashing - ros_version: 2 - - # Eloquent Elusor (November 2019 - November 2020) - - docker_image: ubuntu:bionic - ros_distribution: eloquent - ros_version: 2 - # Foxy Fitzroy (June 2020 - May 2023) - docker_image: ubuntu:focal ros_distribution: foxy diff --git a/__test__/main.test.ts b/__test__/main.test.ts index fff2f0462..9b991f681 100644 --- a/__test__/main.test.ts +++ b/__test__/main.test.ts @@ -54,12 +54,8 @@ describe("required-ros-distributions/melodic workflow tests", () => { describe("validate distribution test", () => { it("test valid", async () => { - await expect(utils.validateDistro(["kinetic"])).toBe(true); - await expect(utils.validateDistro(["lunar"])).toBe(true); await expect(utils.validateDistro(["melodic"])).toBe(true); await expect(utils.validateDistro(["noetic"])).toBe(true); - await expect(utils.validateDistro(["dashing"])).toBe(true); - await expect(utils.validateDistro(["eloquent"])).toBe(true); await expect(utils.validateDistro(["foxy"])).toBe(true); await expect(utils.validateDistro(["galactic"])).toBe(true); await expect(utils.validateDistro(["rolling"])).toBe(true); @@ -76,10 +72,14 @@ describe("validate distribution test", () => { await expect(utils.validateDistro(["hydro"])).toBe(false); await expect(utils.validateDistro(["indigo"])).toBe(false); await expect(utils.validateDistro(["jade"])).toBe(false); + await expect(utils.validateDistro(["kinetic"])).toBe(false); + await expect(utils.validateDistro(["lunar"])).toBe(false); //ROS2 End-of-Life await expect(utils.validateDistro(["ardent"])).toBe(false); await expect(utils.validateDistro(["bouncy"])).toBe(false); await expect(utils.validateDistro(["crystal"])).toBe(false); + await expect(utils.validateDistro(["dashing"])).toBe(false); + await expect(utils.validateDistro(["eloquent"])).toBe(false); // Does not exist or not all valid await expect(utils.validateDistro(["foxy", "doesntexist"])).toBe(false); await expect(utils.validateDistro(["master"])).toBe(false); diff --git a/action.yml b/action.yml index f818a31a3..c441fa5b1 100644 --- a/action.yml +++ b/action.yml @@ -26,17 +26,14 @@ inputs: Allowed ROS distributions - "" (no value) - no ROS binary installation - - kinetic - melodic - noetic - - dashing - - eloquent - foxy - galactic - rolling Multiple values can be passed using a whitespace delimited list - "melodic dashing". + "noetic galactic". required: false default: "" runs: diff --git a/dist/index.js b/dist/index.js index 625f3717e..d2128ef6b 100644 --- a/dist/index.js +++ b/dist/index.js @@ -6004,12 +6004,8 @@ function getRequiredRosDistributions() { } //list of valid linux distributions const validDistro = [ - "kinetic", - "lunar", "melodic", "noetic", - "dashing", - "eloquent", "foxy", "galactic", "rolling", @@ -6077,13 +6073,6 @@ const distributionSpecificAptDependencies = { // The issue with ros-melodic-desktop-full is also non-applicable. "python3-rosdep", ], - xenial: [ - // OpenSplice - "libopensplice69", - // python3-rosdep is conflicting with ros-melodic-desktop-full, - // and should not be used here. See ros-tooling/setup-ros#74 - "python-rosdep", - ], }; /** * Run apt-get install on list of specified packages. @@ -6198,7 +6187,7 @@ const pip3Packages = [ "mock", "mypy", "nose", - "numpy==1.18.0", + "numpy", "pep8", "pydocstyle", "pyparsing", @@ -6371,9 +6360,9 @@ function runLinux() { // they are also installed during this stage. yield installAptDependencies(installConnext); /* Get the latest version of pip before installing dependencies, - the version from apt can be very out of date (v8.0 on xenial) + the version from apt can be very out of date (v9.0 on bionic) The latest version of pip doesn't support Python3.5 as of v21, - but pip 8 doesn't understand the metadata that states this, so we must first + but pip 9 doesn't understand the metadata that states this, so we must first make an intermediate upgrade to pip 20, which does understand that information */ yield runPython3PipInstall(["pip==20.*"]); yield runPython3PipInstall(["pip"]); @@ -6593,8 +6582,6 @@ var setup_ros_windows_awaiter = (undefined && undefined.__awaiter) || function ( const binaryReleases = { - dashing: "https://github.com/ros2/ros2/releases/download/release-dashing-20210610/ros2-dashing-20210610-windows-amd64.zip", - eloquent: "https://github.com/ros2/ros2/releases/download/release-eloquent-20200124/ros2-eloquent-20200124-windows-release-amd64.zip", foxy: "https://github.com/ros2/ros2/releases/download/release-foxy-20210902/ros2-foxy-20210902-windows-release-amd64.zip", galactic: "https://github.com/ros2/ros2/releases/download/release-galactic-20210716/ros2-galactic-20210616-windows-release-amd64.zip", }; diff --git a/src/package_manager/apt.ts b/src/package_manager/apt.ts index 2e1649a4a..fd04e50b9 100644 --- a/src/package_manager/apt.ts +++ b/src/package_manager/apt.ts @@ -47,14 +47,6 @@ const distributionSpecificAptDependencies = { // The issue with ros-melodic-desktop-full is also non-applicable. "python3-rosdep", ], - xenial: [ - // OpenSplice - "libopensplice69", - - // python3-rosdep is conflicting with ros-melodic-desktop-full, - // and should not be used here. See ros-tooling/setup-ros#74 - "python-rosdep", - ], }; /** diff --git a/src/package_manager/pip.ts b/src/package_manager/pip.ts index 2c2a2791e..2bbab8652 100644 --- a/src/package_manager/pip.ts +++ b/src/package_manager/pip.ts @@ -45,7 +45,7 @@ const pip3Packages: string[] = [ "mock", "mypy", "nose", - "numpy==1.18.0", + "numpy", "pep8", "pydocstyle", "pyparsing", diff --git a/src/setup-ros-linux.ts b/src/setup-ros-linux.ts index f186eb1e8..1c06f255f 100644 --- a/src/setup-ros-linux.ts +++ b/src/setup-ros-linux.ts @@ -123,9 +123,9 @@ export async function runLinux() { await apt.installAptDependencies(installConnext); /* Get the latest version of pip before installing dependencies, - the version from apt can be very out of date (v8.0 on xenial) + the version from apt can be very out of date (v9.0 on bionic) The latest version of pip doesn't support Python3.5 as of v21, - but pip 8 doesn't understand the metadata that states this, so we must first + but pip 9 doesn't understand the metadata that states this, so we must first make an intermediate upgrade to pip 20, which does understand that information */ await pip.runPython3PipInstall(["pip==20.*"]); await pip.runPython3PipInstall(["pip"]); diff --git a/src/setup-ros-windows.ts b/src/setup-ros-windows.ts index 1171da58e..6ad4ce8e4 100644 --- a/src/setup-ros-windows.ts +++ b/src/setup-ros-windows.ts @@ -7,10 +7,6 @@ import * as pip from "./package_manager/pip"; import * as utils from "./utils"; const binaryReleases: { [index: string]: string } = { - dashing: - "https://github.com/ros2/ros2/releases/download/release-dashing-20210610/ros2-dashing-20210610-windows-amd64.zip", - eloquent: - "https://github.com/ros2/ros2/releases/download/release-eloquent-20200124/ros2-eloquent-20200124-windows-release-amd64.zip", foxy: "https://github.com/ros2/ros2/releases/download/release-foxy-20210902/ros2-foxy-20210902-windows-release-amd64.zip", galactic: "https://github.com/ros2/ros2/releases/download/release-galactic-20210716/ros2-galactic-20210616-windows-release-amd64.zip", diff --git a/src/utils.ts b/src/utils.ts index 60de5d7ec..121659812 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -42,12 +42,8 @@ export function getRequiredRosDistributions(): string[] { //list of valid linux distributions const validDistro: string[] = [ - "kinetic", - "lunar", "melodic", "noetic", - "dashing", - "eloquent", "foxy", "galactic", "rolling",