[ros-users] stack manifest.xml dependencies
Patrick Bouffard
bouffard at eecs.berkeley.edu
Wed Dec 29 07:19:16 UTC 2010
Thanks Ken. I wasn't aware of that usage of roscreate-stack. BTW, I
noticed what I guess is a bug in unstable when the --show-deps flag is
used:
$ roscreate-stack --show-deps .
Traceback (most recent call last):
File "/opt/ros/unstable/ros/bin/roscreate-stack", line 35, in <module>
roscreate.roscreatestack.roscreatestack_main()
File "/opt/ros/unstable/ros/tools/roscreate/src/roscreate/roscreatestack.py",
line 219, in roscreatestack_main
create_stack(stack, stack_dir, stack_manifest, author, depends,
licenses, options.show_deps)
UnboundLocalError: local variable 'stack_manifest' referenced before assignment
Regarding extraneous (package) dependencies, thinking about it some
more I guess there's no real way to find that out for sure aside from
systematically removing one at a time from package's manifest and
trying to rebuild that package. Does that make sense?
Cheers,
Pat
On Tue, Dec 28, 2010 at 11:06 PM, Ken Conley <kwc at willowgarage.com> wrote:
> On Tue, Dec 28, 2010 at 10:59 PM, Patrick Bouffard
> <bouffard at eecs.berkeley.edu> wrote:
>> Is declaring stack dependencies in the stack manifest.xml optional?
>
> If you release a stack [1], the stack dependencies are used to
> generate the correct debian dependencies. We are also working on
> rosinstall/roslocate-based solutions that will generate a correct
> source tree. So, you should try to specify dependencies correctly.
> More on that below...
>
>> What is the best practice--should a stack ideally declare dependencies
>> on all stacks that contain a package that is depended upon in one of
>> its own packages' manifests (wow, that was a convoluted sentence)?
>
> You can re-run "roscd mystack; roscreate-stack ." to generate the
> stack dependencies. This will look at the package dependencies and
> compute the stacks they are contained within.
>
> One FAQ is, "why not always dynamically generate the dependencies?"
> The reason is that we want a mechanism for specifying what a stack's
> dependencies *should* be. As stack dependencies generate install
> dependencies, you frequently want to minimize them and protect against
> dependency expansion. For example, we don't want to accidentally
> introduce a low-level dependency on opencv, which is quite large. Our
> release scripts automatically run the roscreate logic to determine if
> new dependencies have snuck in and report the error.
>
>> If so can I easily test whether all the right dependencies have been
>> declared? Will 'rosstack depends mystack' do that? How about any
>> extraneous dependencies, is there a way to find those?
>
> rosstack reads the stack.xml dependencies. The rest is answered above.
>
> HTH,
> Ken
>
> [1]: http://www.ros.org/wiki/release
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>
More information about the ros-users
mailing list