Versioning Roadmap: MoveIt! 1.0 Release Plan

tldr; we’re targeting to release MoveIt! 1.0 on March 1st, 2019, then future major version releases whenever API changes.

MoveIt! has been in beta since 2013 (6 years), yet we have been planning the ROS 2.0 version for the past couple years. It’s important to actually use major release versions so we can break API in a structured, transparent way. See Open Letter To MoveIt! Community for more reasoning.

Version Numbers and ROS Distros

Up until now we haven’t used major version numbers with MoveIt! due to lack of leadership direction, resources, and ambiguous role of ROS distros vs major software versions. We can no longer rely on ROS distros as our only versioning strategy as there will not be a 2019 ROS release, and we wish to accelerate MoveIt! development going forward. Conflating this discussion is the ROS 2.0 conversion effort that will be taking off soon.

In the following table we show MoveIt!'s past git branching / versioning / and ROS distro strategy and propose future strategy as well:

MoveIt! Version ROS Version Branch Name Beta Release API Freeze Ubuntu Targets
0.3.x ROS Fuerte fuerte-devel Apr 2012
0.4.x ROS Groovy groovy-devel Dec 2012
0.5.x ROS Hydro hydro-devel Sep 2013
0.7.x ROS Indigo indigo-devel Jul 2014 May 2016 14.04 LTS
0.8.x ROS Jade jade-devel May 2015 May 2016 14.04, 15.04
0.9.x ROS Kinetic kinetic-devel May 2016 May 2018 16.04 LTS
0.9.x ROS Lunar kinetic-devel May 2017 May 2018 16.04, 17.04
1.0.x ROS Melodic melodic-devel May 2018 1 March 2019 18.04, 16.04
1.1.x ROS Noetic master 1 March 2019 May 2020 18.04, 16.04
2.x ROS2 Dashing dashing-devel May 2019 Dec 2019 18.04
3.x ROS2 E e*-devel Nov 2019 May 2020 20.04

For footnotes and color coding, see the GDoc version of this table.

Steps to Release MoveIt! 1.0

The following is necessary to consider 1.0 released:

  • Tag all the package.xml files with the new major release number and release to bloom
  • Update website and other documentation with version number and status
  • Create a master branch for development beyond melodic-devel

Switching to a Master Branch

At the same time as the 1.0 release we will implement our desire to have a master branch where future development will take place. Once switching to the master branch approach, there will not be regular debian releases until we figure out how to do releases outside of the ROS buildfarm. This is necessary because OSRF is not making a 2019 ROS1 release.

Will MoveIt! 2.0 be the same as ROS 2.0?

It would make the most sense from a marketing perspective if MoveIt! version 2.0 was the release that included support for ROS 2.0. However, this would mean that after the 1.0 release, we can’t release another version of MoveIt! for ROS 1.0 that breaks API. This would stagnate development once again, so it may make sense to have MoveIt! 3.0 be the version that includes ROS 2.0 support. This decision depends on how long it takes to get ROS2 support and how many core MoveIt! maintainers are willing to make the switch soon.

ROS 2.0 Branch

Once funding / resources has been secured for ROS 2 development, a new branch will be created off master called "dashing-devel". This branch will be dedicated to the ROS2 port of MoveIt!, but changes to the master branch (ROS1) will be cherry picked as much as possible. Eventually the dashing-devel ROS2 branch will become the master branch of MoveIt!, but when that occurs is an open question for the future based on a lot of factors.

Feedback

This roadmap has already been discussed in the most recent MoveIt! maintainer meeting as well as various email exchanges, but there is still room for debate and modifications as necessary. Let us know if you see issues with this proposal, but baring that we are hoping to proceed with the MoveIt! 1.0 release in the next month!

8 Likes

I’m happy to share that Acutronic Robotics will be supporting the MoveIt! transition to ROS 2.0.

During the following weeks, we’ll formally allocate resources to commit our developer’s time and start porting MoveIt! to ROS 2.0. While we don’t promise we’ll port the complete MoveIt! framework, we hope to contribute with the community and put together the first stones to have some basic form of native MoveIt! support in ROS 2.0.

For those that care, our contributions are justified by our current work in modularity and will be funded to ensure that our MARA modular robot, based in ROS 2.0, can interface with the motion planning framework natively. Currently, we’re in conversations with PickNick to ensure our efforts contribute in the most productive way with the community. Input on this regard is more than welcome.

We hope and invite other manufacturers to contribute in a similar manner.

12 Likes

I couple of comments regarding the information in the above table:

  • ROS Jade / Lunar are also targeting the same Ubuntu LTS as the previous ROS distro
  • ROS Melodic is targeting Ubuntu 18.04 LTS (not 16.04).
  • A beta release of ROS Noetic won’t be available before the end of 2019 since it will target Ubuntu 20.04 (and Python 3) and neither Ubuntu 18.04 not 16.04
  • ROS 2 Dashing is scheduled to be released end of May 2019
  • ROS 2 E-turtle is scheduled to be released end of November 2019
  • (just as an outlook) ROS 2 F-turtle is scheduled to be released in May 2019 (together with ROS Noetic) also targeting Ubuntu 20.04

Thanks @dirk-thomas for the feedback, I’ve updated the orignal table where appropriate.

  • ROS Melodic is targeting Ubuntu 18.04 LTS (not 16.04).

Our MoveIt! Melodic branch builds for 16.04 also, so I’ve included both in the table

  • A beta release of ROS Noetic won’t be available before the end of 2019 since it will target Ubuntu 20.04 (and Python 3) and neither Ubuntu 18.04 not 16.04

We’re calling our next version of MoveIt! “Noetic” now even though the main ROS distro won’t be out until end of 2019. We can’t let ROS’ slowing down of releases slow down MoveIt! development.

After further debating versioning numbers internally and with Acutronic Robotics (@vmayoral), I believe it is best if we reserve “MoveIt! 2.0” version to coincide with ROS 2.0 support. In my original post above I had said:

This decision depends on how long it takes to get ROS2 support and how many core MoveIt! maintainers are willing to make the switch soon.

Because Acutronic Robotics and PickNik are now beginning development on ROS 2.0 support (full announcement pending), the timing does not make sense to call it instead MoveIt! 3.0. This would be a confusing break from the standard being used by the rest of the ROS community e.g. rviz2

3 Likes

It might be worth pointing out that rviz2 is the package name not the version. As of this writing rviz2 is at version 5.1.0 since the project is following a SemVer style and thus bumping the major with API breaking changes.

2 Likes

@davetcolemanGreat to know ROS 2.0 support is kicking off and coincide with MoveIt! 2.0 development.

Is there a project page to get more details on this (schedule, task list, etc) and how to contribute?

1 Like

@hyang5,

There will probably be an official repository in ros-planning org and code will end up there but for now, for dev. purposes, our group is working at https://github.com/acutronicrobotics/moveit2.

There are tons of TODO items there so feel free to pick any (let us know that you’ll be working on it). Wish we get your contributions!

I’ve just created the moveit2 repo here: https://github.com/ros-planning/moveit2

I’ve also created a project board and a May milestone for the ROS2 Dashing release:

There are currently no issues or cards yet, but I think that should be the hub for collaboration on ROS 2 development.

5 Likes

I’ve just created two milestones for the moveit2 release, see https://github.com/ros-planning/moveit2/milestones

2 Likes

This is great news! Please keep us posted.

The master branch for the ROS 1.0 release has just been created, the first PR to the master branch:

1 Like

@davetcoleman Is it going to be a MoveIt 2.0 release for ROS 2 Crystal?

We’re targeting ROS2 Dashing for MoveIt 2, see the progress bars under “Current and Future Versions” at the bottom of the homepage: https://moveit.ros.org/

1 Like

@davetcoleman Thanks for clarifying this. I think I have read some info before that MoveIt 2.0 is for ROS 2 Crystal and MoveIt 2.1.0 is for ROS 2 Dashing.