-
Notifications
You must be signed in to change notification settings - Fork 107
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
member of rosidl_interfaces_packages group #45
Conversation
@ros2/team Waiting for feedback |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In principle, lgtm
Just curious about the name.
actionlib_msgs/package.xml
Outdated
@@ -20,6 +20,8 @@ | |||
|
|||
<test_depend>ament_lint_common</test_depend> | |||
|
|||
<member_of_group>interface_packages</member_of_group> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this name set in a document somewhere? Or are we coming up with it for the first time here? If it's not too hard to change yet, I'd slightly prefer rosidl_interface_packages
, since there might be other kinds of interfaces in the future that might want to make use of the group mechanism.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm fine with either interface_packages
or rosidl_interface_packages
as William suggests.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this name is not used or documented anywhere yet, the goal of this PR was to get feedback on what name we think makes most sense before starting using it.
In ROS 1 we abuse the term "message package" as sometimes we refer to packages containing services or actions definitions, that's why I used interfaces
instead.
One thing to keep in mind is that ROS 1 packages migrating to format 3 may want to use something similar. The resulting question is "should the group name be the same in ROS 1 and ROS 2?" If no I agree that rosidl_interface_packages
would be better than interface_packages
, if yes we need a name that is generic enough to make sense for both ROS 1 and ROS 2 (that could be rosidl_interface_packages
or something else, not sure yet)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another question is, do we want/need different groups for packages which have messages, services, and actions?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Indeed that's another good question.
If the answer is yes, this would also raise a few more points:
- our tools should be able to support overlapping groups / duplicated dependencies (already the case I think)
- should we support metagroups? e.g. interface_packages group depending on groups message_packages + services_packages + action_packages
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As for a name that's appropriate for both ROS 1 and ROS 2, first I think rosidl
and interface
are generic enough for both, though you're right that in ROS 1 it was just as common to call them just "messages" or associate them with the "genmsg". Second, I believe the groups can use conditionals as well, so even if they needed to be different in ROS 1 and ROS 2 with the same package.xml
then you could choose which group to use in each case.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Second, I believe the groups can use conditionals as well, so even if they needed to be different in ROS 1 and ROS 2 with the same package.xml then you could choose which group to use in each case.
I was mostly wondering if we think they should be different or not. If they end up being different we can use conditions 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's the benefit of having different groups for messages, services, and actions? Is it planned to do code generation for them in separate packages?
The interface_packages
groups seems special since it will have so many members in core packages. I think it would be a good idea to adopt a prefix to names like this. It avoids name collisions with third-party groups. Also, googling ros_interface_packages
versus interface_packages
might be more likely to return a search result to a page describing what the group is.
@tfoote @dhood @sloretz @dirk-thomas would you like to pitch in here? |
the conclusion here was that there is no need or simple way to manage the granularity of the various groups at the moment and we don't want to impose to users to define membership to several groups of various granularity so we will create a single group for all the interfaces (messages, services, to-be actions). Regarding the name, |
b72d6d3
to
2660ce6
Compare
I will do a follow up PR to add the check in rosidl_cmake, I think that check should require the |
👍 hopefully that's not too hard to do, let me know if I can help you with it. |
Thanks! I'll give it a shot later this week and let you know how it goes |
changes from discussion have been applied and new review is required
After discussing in person with @mikaelarguedas and @dhood I think we concluded that |
Fine by me. I'll hold off the reviews, then. |
Sounds good, making the change now and will tag the team here when ready for reviews |
@ros2/team group renamed, back in review then |
Just re-reviewed them all, +1 to all of them. |
Every group dependency expands to a set of packages. So each group name could potentially end with |
This came from the fact that we wanted to remove potential confusion down the road. If we decide to have a different group for messages, services and actions they would be part of that "messages" and that seemed weird to us so we decided to have I'm not against revisiting as I see valid arguments for each. Using |
@ros2/team Please comment if you agree or disagree to switch from |
👍 |
+0, I don't feel very strongly one way or the other but would like to see both arguments being explored before asking for approval. I think so +0 for me |
I think +0 |
rmw implementation packages only have one rmw implementation in them, while interface packages typically have multiple interfaces, and it's the package that you want to depend on as opposed to the interface itself. That was my understanding for why there's a distinction: there isn't an interface called "std_msgs" for example. @mikaelarguedas pointed out offline that any dependencies in the package.xml are implicitly packages so I'm sure users could still handle it if we removed the +0 |
+0 |
We discussed potential other group names and based on the names we though are most reasonable for ros2/rosidl_typesupport#17 decided to keep the suffix |
Follow-up of ament/ament_tools#168.
Opening this to gather feedback as of how we should call the group containing ros IDL files.
This PR uses
interface_packages
but I'm open to alternatives