wiki:Standards/VersionNumbering

Version Numbering

Terminology Definitions

Alpha1

Alpha software is feature-complete but sometimes only partially functional.

Alpha releases are expected to be unstable, perhaps a little unsafe, but definitely usable. They can have known bugs and kinks that have yet to be worked out. Before releasing an alpha, be sure to keep in mind that alpha releases are still releases and people are not going to be expecting a nightly build from the SVN source. An alpha should work and have minimal testing and bug fixing already finished.

Beta1

Beta software is feature-complete and functional, but is in the testing cycle and still has a few bugs left that need to be ironed out.

Beta releases are general expected to be usable and slightly unstable, although definitely not unsafe. Beta releases usually preclude a full release by under a month. They can contain small known bugs but no major ones. All major functionality should be fully implemented although the exact mechanics can still be worked out. Beta releases are great tool to whet the appetites of potential users by giving them a very realistic view of where your project is going to be in the very near future and can help keep interest by giving people something.

Release Candidate

Release candidates should be testing of the final version. Nothing should change during this phase. It is for stability testing only and to make sure that everything is worked out. The only fixes to ever be committed during release candidate phase is a blocker (i.e. something that fixes required functionality, or a security vulnerability). These should be rare since the purpose of alpha and beta phases is to find them.


Version Definitions

Version Numbering Scheme2

EventVersion
First released version1.0
First revision1.1
First bug fix to the first revision1.1.1
First major revision or rewrite2.0

Development Numbering Scheme2

EventVersionStage
First version1.0d1, 1.0d2, ...development
Product feature defined (begin testing)1.0a1, 1.0a2, ...alpha
Product is stable (begin final testing)1.0b1, 1.0b2, ...beta
Release candidate (almost ready to ship)1.0rc1, 1.0rc2, ...final
First revision shipped1.0final


Plogger Roadmap

Version 1.0

VersionTimeframeEstimated Date
Development3 monthsJuly-Sept 2008
Alpha 14-6 weeksOct 2008
Alpha 24-6 weeksNov 2008
Beta 12-4 weeksDec 2008
Beta 22-4 weeksDec 2008
Release Candidate 11-2 weeksJun 2009
Release Candidate 21-2 weeksJun 2009
FinalN/AJun 2009

This is an estimated schedule for a major revision. 3 months of development plus 3.5-5 months (14-20 weeks) of testing is a 6-8 month development cycle between major versions.

Minor Versions and Revisions

Minor versions and revisions that include bug fixes can be released on a 4-5 week schedule as necessary. They should include bug fixes, security fixes and minor feature enhancements. Version numbering should follow above standards 2.0.x for bug and security fixes, 2.x for features enhancements.

These fixes do not need alpha testing. In most cases a 1 week release candidate stage and/or an additional 1 week beta stage is sufficient.


1  http://www.tldp.org/HOWTO/Software-Proj-Mgmt-HOWTO/users.html#ALPHABETA
2  http://developer.apple.com/technotes/tn/tn1132.html