-
Notifications
You must be signed in to change notification settings - Fork 137
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
REP 149: consolidate depends tag variations #257
Comments
The package manifest format provides only a single approach rather than multiple different alternatives. Using a single tag with attributes was considered as part of REP 127 and the alternative (separate tags) was chosen. The need to repeat tags is pretty small overhead and also something only rarely changed. So I doubt that adding an alternative second approach is justified (also considering implementation, documentation and maintenance effort).
The described |
I would like to see
I think it was a worse choice and should be reconsidered. In fact, judging by the contemporaneous discussion, consensus was building that At any rate, whether it's an element or an attribute, the scope is a property of the dependency. The two equivalent schemas to be consider should have been
It seems that the repeated tag was enough of an issue between
Implementation and maintenance are pretty simple. There definitely is already need for more documentation effort, judging by the confusion in the discussion here ros2/rmw_cyclonedds#132, so please document the current spec better, regardless of any future changes. |
The current way to specify a dependency needed for multiple build stages is with the separate tags
<build_depend>
,<exec_depend>
, etc.It seems more natural to have a way of way of specifying a package for multiple purposes in one declaration. Currently
<depend>
does this but only for a special case (<depend>
is equivalent to<build_depend>
,<build_export>
,<exec>
all at once).I propose a
for
attribute on the depends tag which is a whitespace-separated list of one or more functional purposes, chosen from “build”, “build_export”, “buildtool”, “buildtool_export”, “exec”, “doc”, “test” (and possibly arbitrarily).The default value of this attribute would be
“build build_export exec”
to preserve the semantics of existingdepend
tags. Thus the existing<build_depend>
would become a synonym of<depend for=‘build’>
.This could be used with tools like
rosdep
as a natural way of filtering dependencies (e.g.rosdep install --from_path src --for build test doc
).The text was updated successfully, but these errors were encountered: