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.
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!