-
Notifications
You must be signed in to change notification settings - Fork 0
Development: Releases
Anything related with the release cycle
When tagging projects you should assume the conventions of 3 decimal versioning apply, excerpt follows:
Package versions can be abstractly referred to as X.Y.Z. For version 1.2.3, X is 1, Y is 2 and Z is 3. ... These three questions can be used to determine how to increase the version number:
- Breaking backwards compatibility? Yes = increment X, set Y = Z = 0
- Adding new features? Yes = increment Y, set Z = 0
- Fixing bugs? Yes = increment Z
In addition, there is a definite convention of how "alpha" and "beta" translate to version numbers. Specifically:
- x.5.0 <= alpha < x.9.0
- x.9.0 <= beta < (x+1).0.0
- x.0.0 <= stable < x.1.0
In a sequence this looks like:
... -> x.5.0 -> alpha(s) -> x.9.0 -> beta(s) -> (x+1).0.0 -> stable(s) -> (x+1).1.0 -> ...
Notes:
-
Since "alpha" is considered an early version of the software, it is expected to have a number of missing features and runtime errors. That's why more version numbers are distributed from alpha->beta rather than from beta->stable.
-
There is a "buffer" between x.0.0 and x.1.0 that's preserved for patches of the public release. No additional features or improvements should be included in those commits (just bug fixing).
-
The "blank" area between x.1.0 and x.5.0 is left for experimentation until the feature set for the next stable release is realised. By the time we enter a new "alpha" phase the feature set should be finalised and the alphas should be only conserved about the implementation of those features (and not adding more to the lsit).
Releases split in 3 decimals can be scheduled/produced irregularly.
By tradition, all the small releases lead up to a more significant release - thus the milestone should be tied to one of the "major" releases, preferably complete new versions (1.0, 2.0 ...) or intermediate releases (1.5, 2.5 ...)
- PEAR Manual :: Package version: http://pear.php.net/manual/en/guide.users.concepts.version.php
- Semantic versioning: http://semver.org/