Riot Releases

Version Number Scheme

Starting with release 6.5 Riot uses a well defined release numbering scheme.

The version numbers have the form <major>.<minor>[.<micro>], for example 6.5.3. The micro number indicates that the release is a bugfix release that is 100% compatible to all previous versions with the same major and minor number, i.e. 6.5, 6.5.1 and 6.5.2.

A change of the minor version means that two releases are compatible in general, but some manual work might be required in order to upgrade a project. Here some examples that would imply a new minor version number:

  • Removal of a deprecated class
  • Changes in the configuration of a module
  • Changes in data model that can be performed automatically with Revolt
  • Renaming/removal of an element or attribute in a XML schema
  • Changes in package names

Major Version Changes

The major version is incremented whenever some fundamental changes occur. This usually means that the data model was changed in a way that makes it difficult to migrate the data of older versions. In this case difficult means that the migration can't be done with plain SQL but would require to write some custom tool in order to perform the changes.

This usually sounds quite inconvenient for new users so let me explain the reason for this. The development of Riot has been a very evolutionary process ever since. Each new project usually comes with a lot of new requirements. Some ideas implemented in a previous Riot version prove themselves and therefore are refined, others are simply discarded. Basically each new major version is a chance to overthink things from scratch. If we had tried to keep things compatible, Riot surely wouldn't be where it is today. Of course stabilization of the API and the database schema is one of our long-term goals, but it does definitively have a rather low priority.

We usually don't migrate old projects to a new version, unless of course a customer asks for it, in which case we either write a migration tool or copy theĀ  content by hand (which is usually the cheaper solution).

So please understand that we currently can't provide any migration tools. If we had them we would of course share them with all Riot users, but unfortunately such tools don't exist at the moment.

Release Tagging And Development Branches

Each release is tagged as release-<major>-<minor>[-<micro>] in the SVN repository. For each minor release a branch release-<major>-<minor>-bugfixes is created, where the micro releases are developed. The development of the next minor release takes place in the trunk, until a feature needs to be added that would cause an increment of the major version number. In this case a branch release-<major>-features is created and tagged with release-<major>-features-start. From there on the development of the next major version is done in trunk, while the development of the minor release is continued in the newly created features branch.