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
| Event | Version |
| First released version | 1.0 |
| First revision | 1.1 |
| First bug fix to the first revision | 1.1.1 |
| First major revision or rewrite | 2.0 |
Development Numbering Scheme2
| Event | Version | Stage |
| First version | 1.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 shipped | 1.0 | final |
Plogger Roadmap
Version 1.0
| Version | Timeframe | Estimated Date |
| Development | 3 months | July-Sept 2008 |
| Alpha 1 | 4-6 weeks | Oct 2008 |
| Alpha 2 | 4-6 weeks | Nov 2008 |
| Beta 1 | 2-4 weeks | Dec 2008 |
| Beta 2 | 2-4 weeks | Dec 2008 |
| Release Candidate 1 | 1-2 weeks | Jun 2009 |
| Release Candidate 2 | 1-2 weeks | Jun 2009 |
| Final | N/A | Jun 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
