Skip to content

Unify master and ros2 branches (merge ros2 into master)#158

Merged
clalancette merged 64 commits intoros:masterfrom
j-rivero:jrivero/ros2-merge
Sep 24, 2021
Merged

Unify master and ros2 branches (merge ros2 into master)#158
clalancette merged 64 commits intoros:masterfrom
j-rivero:jrivero/ros2-merge

Conversation

@j-rivero
Copy link
Copy Markdown

@j-rivero j-rivero commented Sep 15, 2021

This PR is a continuation of the work done by @clalancette in #157 (please read all details in the description), after the proposal of modifying the way of merging (merge and not rebase) both branches #157 (comment).

I've made a merge in the master branch of ros2 branch in ae6b61d and solve/import some missing pieces in 5a729c1.

Some details I changed on top of Chris work:

  • A bit of Cmake trickery to keep old platforms (mainly Bionic) working using old CMake style. See 203a1b2 for TinyXML and
    e577e81 for the lack of components in CMake.
  • Add the CI in github actions for the different options of building mentioned by Chris:
    • System (mainly cmake, make) on Bionic and Focal: 4213a41
    • ROS1 using catkin_make for Melodic 682ddd7
    • ROS2 using colcon for Galactic 557b007

Testing is not enabled yet in this repo, can be checked out in my fork https://github.com/j-rivero/urdfdom/actions

CI can be easily extended to all the existing platforms and with a bit more of effort to Mac and Windows. The option of including more or change ROS1/ROS2 distributions could go into this PR, for new operative system I would prefer to do it in different PRs.

Karsten1987 and others added 30 commits March 7, 2017 08:52
This reverts commit 2884900.
* find debug libraries correctly

* cleanup cmake file. remove messages

* set optimized/debug keywords correctly in place

* style
We're shadowing this key for r2b2 since upstream is out of date but we should
use the rosdep key so we can eventually target upstream.

ros2/robot_model#1
* skip test directory when building tests is not requested

* include CTest
Port upstream PRs 111 and 112 addressing linker warning
* Change debug / optimized for generator expressions

Signed-off-by: Luca Della Vedova <luca@openrobotics.org>

* Fixed brackets and variable name

Signed-off-by: Luca Della Vedova <luca@openrobotics.org>
Signed-off-by: Dirk Thomas <dirk-thomas@users.noreply.github.com>
@j-rivero
Copy link
Copy Markdown
Author

Thanks for taking this over Jose. Really good work so far on this. Here's what I think needs to happen for us to complete this:

1. Finish updating the CMakeLists.txt in response to the TODO comments that are in there.

Before doing that, I did a refactor since all libraries were repeating a good bunch of code. bab00d9

On top of that:

2. The removal of the tests in urdf_unit_test.cpp is unfortunate.  What I really think we should do there is to change `urdf_unit_test.cpp` back to using gtest, and reinstate the tests that were there.

Ouch, my bad. Reverted d6d0303

3. Fix the issues I have inline.

I think all them are fixed. CI seems happy https://github.com/j-rivero/urdfdom/actions

Thanks Chris for the review.

Copy link
Copy Markdown
Contributor

@clalancette clalancette left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've left a few more comments. This is getting pretty close now.

target_compile_features(${add_urdfdom_library_LIBNAME} PUBLIC cxx_std_14)
endif()
set_target_properties(${add_urdfdom_library_LIBNAME} PROPERTIES
DEFINE_SYMBOL URDFDOM_EXPORTS
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm OK with making this change, but we need to make sure that this still compiles on Windows in both Release and Debug mode, and that downstream packages can still call it.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Umm. I was playing with Windows and indeed found some problems. Lack of M_PI in e90a6e3, missing API functions f556790 and missing a link c81dd7d. Long CI test run is ongoing in ROS2 Build Status

Jose Luis Rivero and others added 6 commits September 17, 2021 20:29
Signed-off-by: Jose Luis Rivero <jrivero@osrfoundation.org>
Signed-off-by: Jose Luis Rivero <jrivero@osrfoundation.org>
Signed-off-by: Jose Luis Rivero <jrivero@osrfoundation.org>
Signed-off-by: Jose Luis Rivero <jrivero@osrfoundation.org>
Signed-off-by: Jose Luis Rivero <jrivero@osrfoundation.org>
Signed-off-by: Chris Lalancette <clalancette@openrobotics.org>
Copy link
Copy Markdown
Contributor

@clalancette clalancette left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I left one nit inline, and it looks like @traversaro did as well. Other than those two things, this looks good to me, so I'm going to approve. Once the nits are fixed, we should definitely run CI on this full change in the context of ROS 2.

Jose Luis Rivero and others added 3 commits September 20, 2021 20:01
Co-authored-by: Silvio Traversaro <silvio.traversaro@iit.it>
Signed-off-by: Jose Luis Rivero <jrivero@osrfoundation.org>
@j-rivero
Copy link
Copy Markdown
Author

A full CI test on ROS2 (only running test on urdfdom):

  • Linux Build Status
  • Linux-aarch64 Build Status
  • macOS Build Status
  • Windows Build Status

@clalancette
Copy link
Copy Markdown
Contributor

clalancette commented Sep 21, 2021

A full CI test on ROS2 (only running test on urdfdom):

This is fine for a first pass, but before we merge I'll suggest we run another CI run with testing --packages-above urdfdom, just to make sure everything downstream is happy. Also we should run Windows Debug as well, as it can be more picky.

@j-rivero
Copy link
Copy Markdown
Author

This is fine for a first pass, but before we merge I'll suggest we run another CI run with testing --packages-above urdfdom, just to make sure everything downstream is happy. Also we should run Windows Debug as well, as it can be more picky.

We have green light on Windows/Debug:
Build Status

CI for --packages-above urdfdom

  • Linux Build Status
  • Linux-aarch64 Build Status
  • macOS Build Status
  • Windows Build Status

Copy link
Copy Markdown
Contributor

@clalancette clalancette left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI looks good here, and Windows Debug was happy as well, so this looks good to me.

The failures on macOS are because the vendored version of gtest in urdfdom is way out of date (1.7.0 vs 1.10.0 that we use in ament). In order to keep the size of this PR down, I discussed with @j-rivero offline about opening a separate PR that just updates gtest to 1.10.0. I'll suggest we hold off on merging this PR until that one is ready to go; once that one is ready, we can merge this, then quickly merge that one, and keep CI green.

@clalancette
Copy link
Copy Markdown
Contributor

OK, I'm going to go ahead and merge this one, then rebase #161 on top to get CI going green. Thanks @j-rivero for all of the work here!

@clalancette clalancette merged commit 36be7f8 into ros:master Sep 24, 2021
clalancette added a commit to ros2/ros2 that referenced this pull request Sep 24, 2021
In ros/urdfdom#158 and ros/urdfdom#161,
we merged the ros2 branch onto the master branch so there would be single,
unified release branch for all of urdfdom.  Now that that is done, we should switch
to using the master branch of urdfdom.
clalancette added a commit to ros2/ros2 that referenced this pull request Sep 27, 2021
In ros/urdfdom#158 and ros/urdfdom#161,
we merged the ros2 branch onto the master branch so there would be single,
unified release branch for all of urdfdom.  Now that that is done, we should switch
to using the master branch of urdfdom.
Jiusi-pys pushed a commit to Jiusi-pys/ros2 that referenced this pull request Jan 17, 2026
In ros/urdfdom#158 and ros/urdfdom#161,
we merged the ros2 branch onto the master branch so there would be single,
unified release branch for all of urdfdom.  Now that that is done, we should switch
to using the master branch of urdfdom.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.