Semantic Versioning Guidelines

Since ownCloud 10.1.0, ownCloud core uses Semantic Versioning (SemVer) 2.0.0. As a result, both ownCloud core and all ownCloud applications should follow the Semantic Versioning principles. In particular, they should apply the following guidelines:

  1. Major.Minor.Patch / Breaking.Feature.Fix.

  2. Version numbers indicate the contents and upgrade procedures of new releases.

  3. If an app only has bugfixes, only increase the patch version.

  4. If bigger changes were made, such as the addition of new minor features, database changes, or database migrations are required, the minor version component must be increased.

  5. Breaking changes will be released as a new major version.

As ownCloud now follows the Semantic Versioning guidelines, there are three key things to keep in mind:

  1. Any apps that do not currently comply with Semantic Versioning must be re-released after setting the max-version field to 10 instead of 10.0 in appinfo/info.xml. They must also increase the app’s version. This ensures ownCloud picks up the change. If this is not done, ownCloud 10.1 will consider the app as incompatible and refuse to update or enable it.

  2. Migrations no longer run for patch-level releases starting with ownCloud core platform 10.1. This makes it possible for administrators to anticipate whether an update can be applied with minimal downtime for a patch release or whether it could take much longer.

  3. Version suffixes for apps will not be supported in ownCloud 10.1 nor in the Marketplace. These will only be fully supported from ownCloud 11 onward, as it requires bigger changes to underlying APIs. There will be upcoming work on the Marketplace to make room for update channels which will pave the way for fully supporting version suffixes there.