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 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 wrote: > On Tue, Dec 28, 2010 at 10:59 PM, Patrick Bouffard > 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@code.ros.org > https://code.ros.org/mailman/listinfo/ros-users >