ros-tooling / setup-ros-docker

2 stars 5 forks source link

chore: add ubuntu-jammy* images #43

Closed wep21 closed 2 years ago

wep21 commented 2 years ago

Closes https://github.com/ros-tooling/action-ros-ci/issues/722

emersonknapp commented 2 years ago

I am thinking we should just move Rolling to Jammy (and not maintain a Focal version). It's a hard switch for Rolling right, it's not trying to maintain both Focal and Jammy compatibility?

christophebedard commented 2 years ago

It's a hard switch for Rolling right, it's not trying to maintain both Focal and Jammy compatibility?

I think we should might want to have both: Rolling will target the same platform(s) as Humble, and Humble will include Focal as Tier 3: https://github.com/ros-infrastructure/rep/pull/342.

emersonknapp commented 2 years ago

Thanks for the clarification - this looks fine to me then

emersonknapp commented 2 years ago

However, I don't think I can merge this yet, as the build doesn't succeed. I know there's a lot of red there, but I'm looking at Jammy specifically, and it is unable to install ros-rolling-ros-base. I checked http://packages.ros.org/ros2/ubuntu/dists/jammy/main/binary-amd64/Packages - and I don't think that the ROS packages are yet built/uploaded for Jammy. I checked in ros-testing as well and the packages are not there yet either.

emersonknapp commented 2 years ago

Please note https://github.com/ros-tooling/setup-ros-docker/pull/44 for at least a bit of the failures. All builds will fail because they try to push to dockerhub afterwards, and the change from your fork of course doesn't have the secrets to do so. I don't have time to update it so that PRs don't try to do the push step, so when OSRF starts to provide Rolling Jammy binaries, I'll do a quick visual verification that the build works up to the point of trying to push.

nuclearsandwich commented 2 years ago

I think we ~should~ might want to have both: Rolling will target the same platform(s) as Humble, and Humble will include Focal as Tier 3: ros-infrastructure/rep#342.

This is correct, but to add further detail, once Humble is released and we update the REP to include I-turtle's platform list, Rolling will start targeting I-turtle's platforms so Rolling will not have Focal as a tier 3 platform indefinitely.

wep21 commented 2 years ago

Note: Rolling will be synced on Monday, February 21, 2022 (Los Angeles). https://discourse.ros.org/t/preparing-for-rolling-sync-2022-02-22/24399

christophebedard commented 2 years ago

I think we should add jammy here to build the base ubuntu-jammy image: https://github.com/wep21/setup-ros-docker/blob/016f1c247fa3a52aa23a51b7f689cf56229d2af7/.github/workflows/build.yml#L17.

and we'll need to make sure it doesn't try installing rti-connext-dds-6.0.1 on Bionic, since it's not available: https://github.com/ros-tooling/setup-ros-docker/runs/5296600180?check_suite_focus=true#step:3:637.

christophebedard commented 2 years ago

It's also trying to use http://packages.ros.org/ros/ubuntu jammy Release as a repository, but there are no ROS 1 packages for Jammy.

E: The repository 'http://packages.ros.org/ros/ubuntu jammy Release' does not have a Release file.

See: https://github.com/ros-tooling/setup-ros-docker/runs/5305368034?check_suite_focus=true#step:3:606

This should probably be split into ROS 1 and ROS 2 (ROS1_APT_HTTP_REPO_URLS, ROS2_APT_HTTP_REPO_URLS): https://github.com/ros-tooling/setup-ros-docker/blob/b7dd0260620ee3efac6c22070299f4caf4d152db/setup-ros.sh#L37-L39 Or have other logic to avoid trying to use ROS_APT_REPO_URLS=http://packages.ros.org/ros on Jammy.

nuclearsandwich commented 2 years ago

Dropping the ROS 1 repositories from the buildfarm configuration was one of the changes made when bringing up Jammy on the official buildfarm https://github.com/ros2/ros_buildfarm_config/pull/212/files#r809507949

The absence isn't an oversight, there is no plan to create jammy or bullseye distributions in the ROS 1 repositories.

wep21 commented 2 years ago

@emersonknapp @christophebedard Now, we can go ahead to merge?

christophebedard commented 2 years ago

The ubuntu-bionic job is failing :/ but I think we can merge this and fix it in another PR (I can do it if you prefer).

It's trying to install rti-connext-dds-6.0.1: https://github.com/ros-tooling/setup-ros-docker/runs/5308138260?check_suite_focus=true#step:3:626. This is because ROS_DISTRO is set to none so it always installs rti-connext-dds-6.0.1 and always only adds the http://packages.ros.org/ros2/ubuntu repo, and this condition in the setup-ros.sh script thinks it's a ROS 2 distro.

Since we provide base ubuntu-* images (which are not used as a base for the ubuntu-*-ros-* images), I think the APT repo step should depend on the Ubuntu distro (i.e., only add http://packages.ros.org/ros on Bionic, add both /ros and /ros2 on Focal, and only add /ros2 on Jammy). Then RTI_CONNEXT_DDS can be set depending on ROS_DISTRO, but it needs to not install it if the value is set to none.

christophebedard commented 2 years ago

Thanks @wep21!