FusionDirectory Version policy

Versioning

FusionDirectory can have 3 digits at maximum in a version : X.Y.Z

Z version increments (X.Y.Z1 –> X.Y.Z2, for example 1.2.1 to 1.2.2) are minor bug fix only releases.

Y or X version increments are major releases (X.Y1.Z -> X.Y2.Z, for exemple 1.1 to 1.2) are major releases.

Major Release

  • Can contain any type of bugfix, new features and code refactor.

  • Can remove attributes or objectclasses from the schema only if they were declared OBSOLETE in the previous major release.

  • Can put OBSOLETE attributes and classes which are no longer used by the code.

  • Two 2 major releases are needed before removing OBSOLETE attributes and objectClass.

  • Can provide migration scripts in fusiondirectory-setup if needed for those, and/or migration instructions in the documentation.

  • Have to provide migration instruction from previous major release.

Minor release

Minor release are small releases containing only bugfix to the last major release. It should be numbered with 3 digits.

Minor release cannot contain :

  • Schema changes

  • New features

  • Code refactor

  • Poorly tested code

  • Changes which may break existing plugins or themes for previous release (or scripts based on the webservice)

Minor release contain :

  • bugfix : should fix a bug observed in a previous release, something which did not work as intended.

Exceptions can be made :

  • New feature can be included if it does not require any schema change and does not interfere with existing features

  • Code refactor can be included if it leads to a significant performance gain and is thoroughly tested

  • New plugin may be added if it does not require schema change (but it can add new schemas as this is non-intrusive)

Minor release must be released as soon as possible when :

  • Security breach is found in the last stable release

  • Regression (a bug which was not there in previous releases) is found in the last stable release

  • Major bug is found in the last stable release