felixduvallet / ros-travis-integration

ROS package continuous integration using travis-CI
BSD 3-Clause "New" or "Revised" License
127 stars 45 forks source link

Adding support for a ROS Noetic CI job #23

Open aprotyas opened 3 years ago

aprotyas commented 3 years ago

Some package names have to change to their Python 3 equivalents because ROS Noetic has migrated from Python 2 to Python 3.

@felixduvallet the alternative to this change is a branch with only ROS Noetic CI build, which may make more sense given the migration to Python 3 might break Indigo/Kinetic CI builds. In that case, I'd need you to push a separate upstream branch I could merge into.

Resolves #22

Signed-off-by: aprotyas aprotyas@u.rochester.edu

felixduvallet commented 3 years ago

Thanks for the contribution @aprotyas . It does look like unfortunately the build for noetic didn't work: https://travis-ci.org/github/felixduvallet/ros-travis-integration/jobs/763514882

I am confused however, because audio_common_msgs is supposedly available for noetic/focal.

Any idea what could be going on? I honestly haven't worked with ROS too much recently, but would love to get this PR merged.

aprotyas commented 3 years ago

About rosdep

Yeah, I don't quite understand why that build error happened. I'm trying to deal with the low-hanging fruit before looking deeper into the problem. Having said that, if you look at the configuration info from the CI build:

Build config validation
root: deprecated key sudo (The key sudo has no effect anymore.)
root: missing dist, using the default xenial
root: missing os, using the default linux
root: key matrix is an alias for jobs, using jobs

I started by specifying os: linux before declaring the build matrix. That seems to take care of the defaulting to xenial issue.

The rosdep error may or may not have been related. Out of caution, I am also passing an extra argument to rosdep, namely --os ubuntu:$ROS_CI_DESKTOP, which should specify exactly which distribution we want dependencies for. These changes seem to resolve the issue with finding packages.


Miscellaneous changes


Outstanding issues

As is, the build will still report an error. That is because grasp_synergy - an external dependency for one of the packages - requires installation of python-sklearn, which is not a listed Debian package in Ubuntu 20.04 (Python 2 -> 3 transition on Ubuntu's end too...). grasp_synergy could be changed to a different dependency supporting ROS Noetic to see that CI builds successfully. I had success with ros-teleop/teleop_twist_keyboard. I can commit this dependency change if you deem appropriate @felixduvallet

Signed-off-by: aprotyas aprotyas@u.rochester.edu

aprotyas commented 3 years ago

@felixduvallet, any thoughts?

mappold commented 2 years ago

Hi @aprotyas @felixduvallet, is this PR for ROS Noetic and Ubuntu 20.04 still planned? I would love to use it

aprotyas commented 2 years ago

Hi @aprotyas @felixduvallet, is this PR for ROS Noetic and Ubuntu 20.04 still planned? I would love to use it

@mappold I'm still interested, although I think this specific patch needs more discussion to actually land.

In the meantime, I think I'll push a separate branch with a Noetic-only Travis CI workflow. I'll keep you posted if/when that happens.

mappold commented 2 years ago

@aprotyas great, let me know if I can help somehow

aprotyas commented 2 years ago

@mappold please check the default branch on my fork. It supports Noetic-only Travis CI workflows now: https://github.com/aprotyas/ros-travis-integration-noetic

Let me know if you end up integrating it with your own package.