Dependencies in package.xml
In ROS dependencies are especified in two different ways: in the package.xml on in the CMakeLists.txt. The second way is for dependencies at compile time (need to find includes and link), the first way is just for specifying other ROS packages that should be compiled when the current package is compiled (no error is thrown if there is no such package). This is useful, in my opinion. For instance, in the wolf_demo package.xml, there should be wolf_ros_node and wolf_ros_laser there. This way, I just have to compile wolf_demo and I am sure that all the necessary ROS packages are being compiled.