Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add in REP-150: updated metapackages for ROS Melodic #144

Merged
merged 12 commits into from
Mar 19, 2018
Merged

Conversation

clalancette
Copy link
Contributor

This is a REP meant to supplant REP-142, mainly to remove robot_model from the Melodic metapackages. This should essentially complete ros/robot_model#195.

Signed-off-by: Chris Lalancette [email protected]

@mikaelarguedas
Copy link
Contributor

This is a REP meant to supplant REP-142

Can you highlilght the differences compared to REP-142 to facilitate review

mainly to remove robot_model from the Melodic metapackages

Related to previous question: is this the only change in this REP or are there "non-main" changes that reviewer should be aware of ?

@clalancette
Copy link
Contributor Author

Can you highlilght the differences compared to REP-142 to facilitate review

Sure thing. I ran a diff rep-0142.rst rep-0150.rst and uploaded the results here: https://gist.github.com/clalancette/2dc40937d2db2bd31d519562e83fe05b

Taking a closer look, the differences are in the metadata at the top, changing the wording from "Indigo" to "Melodic" throughout, adding a reference that this REP replaces 0142, some minor spelling fixes, and the actual change from using robot_model to using the split-out set of packages.

Copy link
Contributor

@mikaelarguedas mikaelarguedas left a comment

Choose a reason for hiding this comment

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

One main comment to address is the fact that this PR does not remove the packages that motivated the spllit of robot_model in the first place.
The rest is mostly nitpicks

some minor spelling fixes,

Please consider opening a PR against REP-142 to fix these typos

rep-0150.rst Outdated
The `ros_core` metapackage composes the core communication protocols.
It may not contain any GUI dependencies.
In ROS Jade `ros_core` is extended to include `geneus`.
In ROS Kinetic `ros_core` is extended to include `gennodejs`.
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't think this belongs in this REP as this defines "Melodic and newer" metapackages

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah, I wasn't entirely sure here. I'll remove this language and only leave the things that reference "Melodic" (the same below).

rep-0150.rst Outdated
- ros_core:
extends: [ros, ros_comm]
packages: [catkin, cmake_modules, common_msgs, console_bridge,
gencpp, geneus(Jade and newer), gennodejs(Kinetic and newer),
Copy link
Contributor

Choose a reason for hiding this comment

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

Same here, this targets Melodic and newer, so when the generators have been added before Melodic isn't relevant IMO

rep-0150.rst Outdated

- robot:
extends: [ros_base]
packages: [collada_parser, collada_urdf, control_msgs, diagnostics,
Copy link
Contributor

Choose a reason for hiding this comment

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

Looking at the original issue, the goal of splitting the robot_model repository was to remove collada_urdf and collada_parser completely from desktop_full. So I think they shouldn't be in this list.

rep-0150.rst Outdated
packages: [common_tutorials, geometry_tutorials, ros_tutorials,
roslint, visualization_tutorials]
- desktop_full:
extends: [desktop, perception, simulators, urdf_tutorials]
Copy link
Contributor

Choose a reason for hiding this comment

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

urdf_tutorials is not a variant defined in this document so it cannot be extended.
Maybe you meant the packages urdf_tutorial and urdf_tutorial_sim?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is a copy of what is in REP-142; I didn't modify it. That being said, you are correct, and urdf_tutorials not only isn't in this document, it's not a package. Further, urdf_tutorial and urdf_tutorial_sim are both packages, but they aren't meta-packages, so they aren't really available to be extended anyway. Looking at https://github.com/ros/metapackages/blob/kinetic-devel/desktop_full/package.xml, it looks like urdf_tutorial is a dependency of desktop-full, but it is a package, so not for extension. I'm going to change this to put urdf_tutorials in a package section for desktop-full.

Copy link
Contributor

Choose a reason for hiding this comment

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

As per previous comment, I think that both urdf_tutorial_sim and urdf_tutorial should be added to desktop_full.
In lunar urdf_tutorial introduced a dependency on gazebo that forced us to move it from desktop to desktop_full. It has since been split into 2 packages urdf_tutorial and urdf_tutorial_sim to remove the dependency on the simulator from urdf_tutorial. As they are still located in the same repository they have to be released together, so we should put both in desktop_full IMO. See (ros/metapackages#13 and ros/urdf_tutorial#24 for context

rep-0150.rst Outdated
@@ -0,0 +1,212 @@
REP: 150
Title: ROS Melodic and Newer Metapackages
Author: Chris Lalancette <[email protected]>
Copy link
Contributor

Choose a reason for hiding this comment

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

As this is mostly a copy-n-paste of an existing REP, my guess is that the original author should be mentioned (not sure how it works for REPs)?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah, I'm not entirely sure how it works. Looking at REP-133, for instance, it has multiple authors, so I think I'll add multiple authors here.

@mikaelarguedas
Copy link
Contributor

Sure thing. I ran a diff rep-0142.rst rep-0150.rst and uploaded the results here: https://gist.github.com/clalancette/2dc40937d2db2bd31d519562e83fe05b

Thanks for that, I didnt think there was so few differences :/ I should have ran the diff before asking...

@clalancette
Copy link
Contributor Author

One main comment to address is the fact that this PR does not remove the packages that motivated the spllit of robot_model in the first place.

Right, good call. I'll definitely fix this (and the nitpicks).

@clalancette
Copy link
Contributor Author

Please consider opening a PR against REP-142 to fix these typos

Done in #145

@mikaelarguedas mikaelarguedas dismissed their stale review November 27, 2017 18:45

comments addressed

rep-0150.rst Outdated
The `desktop` variant is more minimal and only provides the stacks in
the `robot` variant, plus visualization and debugging tools.
Both of these variants contain tutorials for the stacks they provide.
`urdf_tutorials` are only in `desktop_full` because they depend on the simulator.
Copy link
Contributor

Choose a reason for hiding this comment

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

urdf_tutorials << this is still not an existing package or variant. maybe use urdf_sim_tutorial here? or a non-quoted name like "the urdf tutorials are in desktop_full ..."

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah, good point. Will change to the latter without quotes.

@mikaelarguedas
Copy link
Contributor

Please update this to highlight the differences from the previous REP as discussed in #144 (comment) and offline.

rep-0150.rst Outdated
@@ -0,0 +1,210 @@
REP: 150
Title: ROS Melodic and Newer Metapackages
Author: Tully Foote <[email protected]>, Chris Lalancette <[email protected]>
Copy link
Member

Choose a reason for hiding this comment

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

Willow Garage email.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah, I wasn't quite sure what to do about that. This file is largely a copy of REP-142, with some small differences, so I ended up keeping this email address the same. @tfoote , should I just change this to your @openrobotics.org address?

Copy link
Member

Choose a reason for hiding this comment

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

Yes please. The willowgarage address doesn't get delivered anymore.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sure. Done in 7a5191e

@clalancette
Copy link
Contributor Author

Please update this to highlight the differences from the previous REP as discussed in #144 (comment) and offline.

I think that is more-or-less done here: https://github.com/ros-infrastructure/rep/pull/144/files#diff-27a07c0481f895e29401386cc298c67dR95 . There are no other major changes to this document other than spelling fixes and metadata updates.

@mikaelarguedas
Copy link
Contributor

I think that is more-or-less done here: https://github.com/ros-infrastructure/rep/pull/144/files#diff-27a07c0481f895e29401386cc298c67dR95 . There are no other major changes to this document other than spelling fixes and metadata updates.

Maybe it would be clearer if this was stated at the beginning of the REP (motivation section?) rather than halfway through ?

@clalancette
Copy link
Contributor Author

Maybe it would be clearer if this was stated at the beginning of the REP (motivation section?) rather than halfway through ?

Sure, that makes sense. Done in b000ad1.

@mikaelarguedas
Copy link
Contributor

The last commit makes CI fail. I think Tully's address needs to be updated in all REPs for CI to pass again

@clalancette
Copy link
Contributor Author

The last commit makes CI fail. I think Tully's address needs to be updated in all REPs for CI to pass again

Does that test even make sense? Why can't authors have more than one email address?

@mikaelarguedas
Copy link
Contributor

Does that test even make sense? Why can't authors have more than one email address?

I think it's mostly to make sure that people update all their email addresses and don't keep invalid email addresses in places they forgot to update. I'm not sure in what situation you would want emails for some REPs coming to one address and emails for other REPs sent to another email address...

@tfoote
Copy link
Member

tfoote commented Feb 14, 2018

CI passing with my email updated everywhere.

@clalancette
Copy link
Contributor Author

Great, thanks. If there are no further comments, I'll merge this by the end of the day.

@mikaelarguedas
Copy link
Contributor

I'll merge this by the end of the day.

The urdf_tutorial vs urdf_tutorial_sim has not been finalized so this should be concluded before merging (as this will change what is in desktop vs desktop-full).

The repo has been created https://github.com/ros/urdf_sim_tutorial but the migration has not been done yet. @clalancette and @DLu have access to the repository to perform the change

@clalancette
Copy link
Contributor Author

The repo has been created https://github.com/ros/urdf_sim_tutorial but the migration has not been done yet. @clalancette and @DLu have access to the repository to perform the change

All right, this migration is now done. We took the tactic of leaving the older distributions as they are, so we'll just have to release urdf_tutorial and urdf_sim_tutorial into Melodic from separate repositories. I also did a slight update to remove the sentence about urdf_*tutorial (since it is no longer special). With that, I think this is probably ready for another review and merging.

@mikaelarguedas mikaelarguedas changed the title Add in REP-150 Add in REP-150: updated metapackages for ROS Melodic Mar 15, 2018
Copy link
Contributor

@mikaelarguedas mikaelarguedas left a comment

Choose a reason for hiding this comment

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

finally found the time to do another pass on this, see comments below

rep-0150.rst Outdated
- ros_core:
extends: [ros, ros_comm]
packages: [catkin, cmake_modules, common_msgs, console_bridge,
gencpp, geneus, gennodejs, genlisp, genmsg, genpy,
Copy link
Contributor

Choose a reason for hiding this comment

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

Nit: this is out of alphabetical order

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Fixed.

rep-0150.rst Outdated

- ros_core:
extends: [ros, ros_comm]
packages: [catkin, cmake_modules, common_msgs, console_bridge,
Copy link
Contributor

Choose a reason for hiding this comment

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

console_bridge is not a released package anymore as it's available upstream Ubuntu (as libconsole-bridge-dev) since Trusty

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Removed.

rep-0150.rst Outdated
packages: [catkin, cmake_modules, common_msgs, console_bridge,
gencpp, geneus, gennodejs, genlisp, genmsg, genpy,
message_generation, message_runtime, rosbag_migration_rule,
rosconsole_bridge, roscpp_core, rosgraph_msgs, roslisp,
Copy link
Contributor

Choose a reason for hiding this comment

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

rosgraph_msgs is part of ros_comm so doesn't need to be listed here

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Removed.

Copy link
Member

Choose a reason for hiding this comment

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

rosgraph_msgs is part of ros_comm so doesn't need to be listed here

That is incorrect. rosgraph_msgs as well as std_srvs are not part of the ros_comm repo. Therefore they should be listed explicitly. Possible they could be combined into a single entry to be consistent with the rest: ros_comm_msgs.

Copy link
Contributor

Choose a reason for hiding this comment

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

I guess information I am missing here is: does extends refers to variants/packages or repositories?

rep-0150.rst Outdated
gencpp, geneus, gennodejs, genlisp, genmsg, genpy,
message_generation, message_runtime, rosbag_migration_rule,
rosconsole_bridge, roscpp_core, rosgraph_msgs, roslisp,
rospack, std_msgs, std_srvs]
Copy link
Contributor

Choose a reason for hiding this comment

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

std_srvs is also part of ros_comm

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Removed.

rep-0150.rst Outdated

- ros_base:
extends: [ros_core]
packages: [actionlib, angles, bond_core, class_loader,
Copy link
Contributor

Choose a reason for hiding this comment

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

while being part of the previous rep, angles is not part of ros_base on any distro according to the history of the metapackages

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Removed.

Copy link
Contributor

Choose a reason for hiding this comment

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

Not sure if the it's REP or the metapackage that should be modified. Maybe @tfoote or @dirk-thomas have some feedback?

Copy link
Member

Choose a reason for hiding this comment

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

I'd keep angles out of the ros_base. It's certainly low level, but it's really a library that is a build and exec dependency with no user entry points so it will be brought in by any dependencies necessary but isn't actually useful on its own.

Copy link
Member

Choose a reason for hiding this comment

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

angles should not just be removed. It needs to be moved to the variant which it is actually included in instead. Since it is a dependency of turtle_actionlib which is part of common_tutorials it should go into the same variant.

rep-0150.rst Outdated

- robot:
extends: [ros_base]
packages: [collada_parser, control_msgs, diagnostics, executive_smach,
Copy link
Contributor

Choose a reason for hiding this comment

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

collada_urdf has been removed from that list but not collada_parser. According to this the original review we should have removed both

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Removed.

rep-0150.rst Outdated
stage_ros]

- viz:
extends: [robot]
Copy link
Contributor

Choose a reason for hiding this comment

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

the metapackage viz currently extends ros_base and not robot

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Fixed.

Copy link
Contributor

Choose a reason for hiding this comment

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

same here, not sure if the it's REP or the metapackage that should be modified. Maybe @tfoote or @dirk-thomas have some feedback?

Copy link
Member

Choose a reason for hiding this comment

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

The robot target was to think what you'd want on the robot, whereas viz is for the developer interface so I think that it makes sense to stick with the ros_base.

Signed-off-by: Chris Lalancette <[email protected]>
1.  Add Tully back as one of the authors.
2.  Remove collada_urdf from the packages for robot.
3.  Remove all language prior to Melodic.
4.  Fix the desktop_full variant to make urdf_tutorial a package.

Signed-off-by: Chris Lalancette <[email protected]>
@dirk-thomas
Copy link
Member

Can you please post a diff how the variants have changed between the previous REP and this version to ease the review.

Signed-off-by: Chris Lalancette <[email protected]>
@clalancette
Copy link
Contributor Author

Can you please post a diff how the variants have changed between the previous REP and this version to ease the review.

Full diff is here (diff -u rep-0142.rst rep-0150.rst): https://gist.github.com/clalancette/2dc40937d2db2bd31d519562e83fe05b

Summary is:

  • Remove console_bridge, rosgraph_msgs, std_srvs from ros_core
  • Remove angles from ros_base
  • Remove robot_model, add joint_state_publisher, kdl_parser, kdl_parser_py, urdf, urdf_parser_plugin to robot
  • Change viz to extend from ros_base
  • Add urdf_tutorial to desktop
  • Remove urdf_tutorial, add urdf_sim_tutorial to desktop_full

@dirk-thomas
Copy link
Member

dirk-thomas commented Mar 16, 2018

Summary is:

Please elaborate on each of these change why they are being made. Just looking at the first bullet they seem incorrect since these are even dependencies of the other packages in ros_core.

@clalancette
Copy link
Contributor Author

Please elaborate on each of these change why they are being made. Just looking at the first bullet they seem incorrect since these are even dependencies of the other packages in ros_core.

The original goal of this PR was to update the metapackages for Melodic, specifically to:

  1. Remove robot_model and split it into individual packages (kdl_parser, urdf, etc), and
  2. Split urdf_tutorials into urdf_tutorial and urdf_sim_tutorial so that we can have the former in desktop and the latter in desktop_full.

The other changes came during review; @mikaelarguedas gave some feedback on why he thought those should be made in the reviews above.

rep-0150.rst Outdated
::

- ros_core:
extends: [ros, ros_comm]
Copy link
Member

@dirk-thomas dirk-thomas Mar 16, 2018

Choose a reason for hiding this comment

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

does extends refers to variants/packages or repositories?

This line doesn't make any sense and needs to be removed. Probably from REP 142 too.

Copy link
Contributor

Choose a reason for hiding this comment

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

So the answer is "it applies to packages/variants and not repositories" ?

What you are suggesting is to remove that line and to add ros_comm and ros to the list of packages? is that correct?

Copy link
Member

Choose a reason for hiding this comment

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

So the answer is "it applies to packages/variants and not repositories" ?

All other variants list variant names in the extends.

What you are suggesting is to remove that line and to add ros_comm and ros to the list of packages? is that correct?

Yes.

Copy link
Contributor

Choose a reason for hiding this comment

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

So now that ros and ros_comm are listed as packages (and not repositories). Do we need to keep std_srvs and rosgraph_msgs listed given that they are dependencies of ros_comm?

Copy link
Member

Choose a reason for hiding this comment

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

Do we need to keep std_srvs and rosgraph_msgs listed given that they are dependencies of ros_comm?

With the same argument you could remove almost everything from the list, e.g. catkin since everything else depends on it. The goal is to have a complete list which answers the question what is in a variant. This needs to be obvious without starting a dependency traversal for packages / repos which are not listed here explicitly.

Copy link
Contributor

Choose a reason for hiding this comment

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

Ok so the idea is that we should list all packages in a variant, and if there is a metapackage in their source repository, there is no need to list the dependencies of that metapackage, as long as they are hosted in the same repository.
Is that a good summary?

Copy link
Member

Choose a reason for hiding this comment

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

I would say the list enumerates ROS packages / repositories.

1.  Make ros and ros_comm packages as part of ros_core
2.  Restore rosgraph_msgs and std_srvs as part of ros_core
3.  Add angles to desktop

Signed-off-by: Chris Lalancette <[email protected]>
@clalancette
Copy link
Contributor Author

The latest commit should address @dirk-thomas comments. Now the differences between REP-142 and REP-150 are:

  1. Remove "extends" from ros_core completely, since it doesn't make sense (this needs to go back into REP-142)
  2. Add ros and ros_comm, remove console_bridge from ros_core package list (this needs to go back into REP-142)
  3. Remove angles from ros_base
  4. Remove robot_model, add joint_state_publisher, kdl_parser, kdl_parser_py, urdf, urdf_parser_plugin to robot
  5. Change viz to extend from ros_base
  6. Add angles and urdf_tutorial to desktop
  7. Remove urdf_tutorial from extends, add urdf_sim_tutorial to packages for desktop_full

Does this look better now?

@dirk-thomas
Copy link
Member

Add ros and ros_comm, remove console_bridge from ros_core package list (this needs to go back into REP-142)

Why should the console_bridge change be backported to REP 142?

@mikaelarguedas
Copy link
Contributor

Change viz to extend from ros_base

this should be backported to REP-142 as well

Add angles and urdf_tutorial to desktop

the move of angles from ros_base to desktop should be backported to REP-142 as well

@mikaelarguedas
Copy link
Contributor

Why should the console_bridge change be backported to REP 142?

Because there is no package called console_bridge in Indigo and later (we use upstream #144 (comment))

@dirk-thomas
Copy link
Member

Because there is no package called console_bridge in Indigo and later

I thought we used upstream only later. Sounds good then.

Copy link
Contributor

@mikaelarguedas mikaelarguedas left a comment

Choose a reason for hiding this comment

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

lgtm, with follow-up PR on REP-142

@clalancette
Copy link
Contributor Author

Thanks for the reviews. I've now opened #165 to deal with the follow-up for REP-142. I'm going to merge this now.

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.

5 participants