Continuation of Series on ROS-Industrial Development Process - Code Review
/This is the continuation of a multiple-post series detailing the ROS-Industrial software development process. The first post in the series described the process of contributing code to the project (steps 1-3 in the figure above). This post is focused on the steps involved in reviewing code up to the point where is can be submitted for release as a ROS package. Note that the starred numbers in the outline correspond to steps in the software development process illustrated above.
- When a Pull Request (PR) is issued there is the Travis Continuous Integrations (CI) step (step 4) which happens automatically in the background. The Travis CI performs several operations and if any of the steps below fail, then the PR is marked accordingly for the maintainer. Travis:
- Installs a barebones ROS distribution on a fresh Ubuntu virtual machine.
- Creates a catkin workspace and puts the repository in it.
- Uses wstool to check out any from-source dependencies (i.e. other repositories).
- Resolves package dependencies using rosdep (i.e. install packages using apt-get).
- Compiles the catkin workspace
- Runs all available unit tests
- If the PR passes Travis CI and one of the maintainers is satisfied with the changes they post a +1 as a comment on the PR (step 5). The +1 signifies that the PR is ready to be merged all PR require at least one +1 and pass Travis CI before it can be merged.
- The next step (step 6) is for the PR to be merged into the main branch. This is done through the GitHub web interface by selecting the “Merge pull request” button. After the PR is merged, all status badges are updated automatically.
- Periodically the maintainer will release the package (step 7), which then gets sent to the ROS build farm for Debian creation (more on this next time).