REP3 proposal for Melodic Morenia

Hello everyone,
ROS Melodic promises to be a big release. Because of that, we’re starting the process for the release a bit early this time.

A proposal for the minimum requirements and targeted architectures (aka REP3) is available here. This release will potentially have some larger changes in it (move to OpenCV 3.4, the use of C++11 and newer in public APIs, etc). We welcome feedback on that draft proposal from developers, maintainers, and any other interested parties.

Your friendly ROS release team

use of C++11 and newer in public APIs

Since this might be misleading: this does not imply that existing API in ROS code packages changes to use C++11 types (isntead of e.g. boost types) since that would break compatibility and require every package to update.

To clarify: this was already possible in Kinetic and Lunar. The restriction so far was the possibility to use C++11 features and types in the packages part of desktop-full. The proposal in this REP is to lift that restriction.

I think that’s the part open to discussion on this REP. It doesnt imply a change of API to use C++11 types but doesn’t prevent it as far as I understand. My reading is that people could change their API as long as they make sure to provide a way for downstream packages to migrate (typedef or PR for packages impacted)

The REP only speaks about C++11, there is no mention of newer standards. @clalancette could you clarify which newer standards are considered ? should this be reflected on the REP proposal ?

Sorry, I guess this should only be for C++11 for now.

What is the current plan for required adoption of Python 3? The support period for Melodic is ~3 years past the end-of-life for Python 2.

3 Likes

As of March, Python devs didn’t know if 2.7 would be part of the main, supported Ubuntu 18.04 distribution. Software in this category is supported for the life of the distribution, even if upstream devs stop maintaining it. It looks like the python2.7 package for bionic is in main, so theoretically Ubuntu is responsible for continued maintenence until 2023.

Ubuntu is being proactive by shipping only Python 3 by default in 18.04, and I expect this will be the last Ubuntu LTS that officially supports Python 2.7.

I haven’t read up on the Debian or Fedora Python situations, but I would be surprised if there weren’t at least community-supported packages for those distros for the life of Melodic Morenia.

To maybe better answer your question, the migration wiki mentions that ROS2 only supports Python 3.

We’ve iterated over REP-3 for Melodic quite a bit, and are getting ready to ratify and merge it. If there are any lingering issues that need addressing, please bring them up on the PR soon. Thanks!