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