RFC on update of REP 153: rosdistro index format 4 - adding Python major version

tl;dr: Adding the targeted Python major version for each ROS distribution.

REP 153 introduced the rosdistro index format 4 about a year ago: see the previous thread RFC on REP 153: rosdistro index format 4 In that format version we already introduced the following to allow future iterations without requiring a new format version (https://www.ros.org/reps/rep-0153.html#specification):

As of version 4 unknown keys should be ignored (instead of resulting in an error). This will allow future additions in a backward compatible way without the need to bump the version of the file.

With ROS Noetic spinning up and targeting Python 3 (see previous announcement Planning future ROS 1 distribution(s)) we want to add a new piece of information to the index-v4.yaml file. When bloom-ing package it needs to be decided which conditional dependencies of a package to be used. Variables like ROS_DISTRO and ROS_VERSION are already available - not the ROS_PYTHON_VERSION though.

To avoid hard coding a mapping of ROS distros to their targeted Python major version (potentially in multiple places) this update of REP 153 will add the Python major version to the index-v4.yaml file for each ROS distro instead. Please see the rep#207 for the details on the proposal as well as the actual change of the added metadata in rosdistro#22484.

Due to the future proof design of REP 153 this won’t affect users using the rosdistro Python package at all. Only if you want to access the new ros_version key the upcoming version 0.7.5 of the package is needed (which will contain the following change to expose the new key through the API: python-rosdistro).

Please provide your feedback on the REP pull request or if applicable on either of the other PRs. (Please do not reply in this discourse thread since the audience is very big and not everyone might be interested in the in-depth discussion of this topic.)

Your friendly ROS team