Version Management

Roboconf Platform

This page describes the version policy for Roboconf.
It is standard with respect to the usage in other open source projects.

Roboconf’s Relatives

The version management is almost similar for projects that relative to the platform.
This implies Eclipse tools, the Maven plug-in and so on.

All the project relatives must have a three-digit version: major.minor.maintenance
The system installers are the only exception to this rule.

What really matters are the 2 first digits of the platform.
Project relatives that are associated with a given version must have the same two first digits.

Let’s see examples.

Platform version Relative Version Comment
1.0 1.0.0 The first version of the relative project that works with Roboconf 1.0.
1.0 1.0.1 The first maintenance release of the relative that works with Roboconf 1.0.
1.0 1.0.2 The second maintenance release of the relative that works with Roboconf 1.0.
1.0.1 1.0.2 The second maintenance release of the relative that works with Roboconf 1.0.x. Only bugs were fixed in the Roboconf platform.
1.0.1 1.0.3 The third maintenance release of the relative that works with Roboconf 1.0.x. Only bugs were fixed in the Roboconf platform.

It may happen that a maintenance release of the platform requires a new maintenance release of project relatives. As an example, fixing a bug in the Maven module roboconf-core may impact the Roboconf Maven plug-in and the Roboconf Eclipse plug-ins. In this case, we will simply release a new maintenance version of these projects. How the maintenance releases are linked will be done through the download pages on the web site.

If the platform version 1.0.1 needs the Maven plug-in 1.0.4, they will be mentioned on the same page on the web site.
This is also why all the releases must appear on the web site. And this is why all the download sections must be archived.

System Installers

System installers are a little bit different.
This includes RPM and Debian packages. Their version is made up three parts:

Roughly, the version of a system installer is built as the following concatenation.

${platform.version}-${package.version}${version.qualifier}

Let’s see examples.

Version Platform version Comment
0.6-1.0 0.6 The first package that deploys Roboconf 0.6.
0.6.1-1.0 0.6.1 The first package that deploys Roboconf 0.6.1.
0.6.1-1.1 0.6.1 The first maintenance package for Roboconf 0.6.1. Example: there was a bug in the package (but not in the platform).
0.6.1-1.2 0.6.1 The second maintenance package for Roboconf 0.6.1. Example: there was a bug in the package (but not in the platform).
0.6-1.0-SNAPSHOT 0.6-SNAPSHOT The first package that deploys Roboconf 0.6-SNAPSHOT.
0.6-2.0 0.6 A full-rewrite of the package for Roboconf. Not likely to happen, but we never know…

These examples illustrate some rules.