Published: 26th Februray 2004
The PEAR Group would like to take this opportunity to define the following version naming convention, which will be mandatory for all packages from now on. All developers should attempt to move to this new version naming scheme as soon as possible.
Vote Results: +1 (6), -1 (0), +0 (2)
The current status quo is that version names should follow the progression defined by the version_compare() function.
Note that the version number is not the same as the version name. The version name is the final name of a version which consists of the version number and an optional suffix. See the following for details.
To determine the version name of a release use the following rule set:
|development release||initial release||0.1.0dev1||initial version|
|development release||features added||0.2.0dev1||BC break allowed|
|alpha release||features added||0.9.0alpha1||BC break allowed - but discouraged|
|beta release||bug fixes||0.9.0beta1||BC break allowed - but discouraged|
|beta release||bug fixes||0.9.0beta2||BC break allowed - but discouraged|
|RC release||bug fixes||1.0.0RC1||BC break allowed - but heavily discouraged|
|stable release||no changes||1.0.0||BC break is not allowed|
|stable release||bug fixes||1.0.1||BC break is not allowed|
|development release||features added||1.1.0dev1||BC break is not allowed|
|beta release||bug fixes||1.1.0beta1||BC break is not allowed|
|stable release||bug fixes||1.1.0||BC break is not allowed|
|stable release||features added||1.2.0||BC break is not allowed|
|development release||major changes||2.0.0dev1||BC break is allowed|
|alpha release||major changes||2.0.0alpha1||BC break is allowed - but discouraged|
|beta release||bug fixes||2.0.0beta1||BC break is allowed - but discouraged|
|RC release||features added||2.0.0RC1||BC break is allowed - but heavily discouraged|
|RC release||bug fixes||2.0.0RC2||BC break is allowed - but heavily discouraged|
|stable release||bug fixes||2.0.0||BC break is not allowed|
|stable release||bug fixes||2.0.1||BC break is not allowed|
It should be possible to turn this rule set into a little tool which can compute the next version for you based on questions you answer (like is this the first release, did this release break BC?, what state should this release have etc.)
This should make it possible to generate correct version numbers without going through this rather lengthy list.
A sample implementation can be found at http://www.backendmedia.com/PEAR/version_generator.phps.
Please note that this implementation currently does not enforce the usage of the patch level version number and still uses the state "RC" instead of "beta" for release candidates.
Future versions of the PEAR packager will hopefully include functionality validate the version name based on relevant metadata set in the package.xml and by comparing the package API with prior versions.Back