= Overview = This page links and hosts various quality assurance tutorials for ROS and ROS-based projects. <> ## use below section and tutorialchain as a template: ## - copy lines, then ## - remove '##' to uncomment ## - update section title, and ## - link to tutorials ##== Testing & Static Analysis == ##<> = Articles = == Best Practices == <> == Testing & Static Analysis == 1. [[Quality/Tutorials/UnitTesting|Automatic Testing with ROS]] ( {i} Originally created by [[BrianGerkey]] with contributions by others) <
> In this tutorial you will learn about the importance of automated tests, and on how to arrange them within ROS, including the pointers to concrete testing frameworks. 1. [[Quality/Tutorials/Continuous integration with the public infrastructure|Continuous integration with the public infrastructure]] <
> In this tutorial you will learn how to make use of public infrastructure to run automated tests for your ROS package. 1. [[Quality/Tutorials/Continuous integration with private repositories|Continuous integration with private repositories]] <
> In this tutorial you will learn how to make use of continuous integration for private repositories. 1. [[Quality/Tutorials/Integrate tests in catkin|Integrate tests in catkin]] <
> In this tutorial you will learn why you should integrate tests in the build when using catkin. 1. [[https://index.ros.org/doc/ros2/Contributing/Quality-Guide/#static-thread-safety-analysis-via-code-annotation|ROS2 Quality Guide: Ensuring code quality]] <
> Includes running static code analysis with ament, static thread safety analysis (with annotations), dynamic analysis of deadlock and races with sanitizers, and code coverage computation. 1. [[https://ubuntu.com/blog/linting-ros-2-packages-with-mypy|Linting ROS 2 Packages with mypy]] <
> A blog-post by Ted Kern on how to setup ament_lint to mypy check your Python 3 code. == Releasing a package == 1. [[rosdistro/Tutorials/Indexing Your ROS Repository for Documentation Generation| Index your package]] ( {i} Created by [[rosdistro|rosdistro]] ) <
> This tutorial explains how to create a ROS wiki page for your own ROS repository by adding it to the indexer. 1. [[bloom/Tutorials/FirstTimeRelease|Releasing a package for the first time]] ( {i} Created by [[bloom|bloom]] ) <
> "This guide will help you release a brand new ROS package using the tools bloom and catkin. By default, bloom releases packages to the public ROS build farm ... ." 1. [[bloom/Tutorials/ReleaseCatkinPackage|Releasing a new version of a package]] ( {i} Created by [[bloom|bloom]] ) <
> "Start with this tutorial if the packages you want to release have been released before." '''Create a new tutorial:''' <>