(!) Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags.

Choose your branching strategy

Description: Choosing whether to support Melodic and Noetic in the same branch is the first decision to make when Transitioning a package to Python 3.

Tutorial Level: INTERMEDIATE

Next Tutorial: Identify dependencies using Python

This tutorial is part of a series about transitioning a ROS 1 package to Python 3.

Choose your branching strategy

The first decision to make is whether you want your packages to support Melodic and Noetic on the same branch. If so, your package must support Python 2 and Python 3 at the same time.


  • Others can test changes to your package sooner
  • Packages that depend on yours can also choose to support both Python versions


  • It is slightly more work to support both
  • Making changes in Melodic always adds a risk for regressions

If you would like to use a separate branch for Noetic, then create a new branch for Noetic before continuing to the next tutorial.

Next Tutorial: Identify dependencies using Python

Wiki: UsingPython3/BranchingStrategy (last edited 2019-08-23 17:46:42 by MaryaBelanger)