Overview ======== There are two main concepts in the ROS packaging system: *packages* and *stacks*. *Packages* are the main unit for organizing and building software in ROS. A package may contain runtime processes (e.g. ROS nodes), a library, datasets, configuration files, or anything else that is usefully organized together. *Stacks* are collections of packages that provide aggregate functionality, such as a "navigation stack." Stacks are also how ROS software is released and have associated version numbers. So, packages are the smallest unit in which ROS software is *built*; stacks are the smallest unit in which ROS software is *released*. Packages and stacks each have associated manifests: ``manifest.xml`` for packages and ``stack.xml`` for stacks. You can continue reading the sections below to find out more about these concepts and files. .. toctree:: :maxdepth: 2 packages stacks environment manifests stack_manifests