[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