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 options in fusiondirectory-migration-manager 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