Created
February 12, 2015 20:30
-
-
Save sjehutch/98f31b79495901e8e0ef to your computer and use it in GitHub Desktop.
Best practice app versioning NumVersion Struct
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Versioning that is based on the NumVersion Struct | |
Has the following revision indicators: | |
[major revision].[minor revision].[bug revision]-[stage][stage revision] | |
Major revision increments indicate significant changes and/or jumps in functionality and/or programming | |
The major revision number begins at 1 and increments from there. | |
The major revision number may not jump or skip any revisions. | |
Minor revision increments indicate minor feature changes and/or significant bug fixes. | |
The minor revision number is limited to a single digit, 0 - 9. | |
The minor revision number may jump or skip revisions if there are significant changes, | |
but not significant enough to warrant a major revision increment. As a general guide, | |
the jumping should be done in increments of 5 revisions, thus allowing only one jump per | |
major revision before the major revision must be incremented. Minor revision releases may | |
be referred to as "point releases". | |
Bug revision increments indicate minor bug fixes. | |
The bug revision number is limited to a single digit, 0 - 9. | |
The bug revision number may not jump or skip any revisions. If there are significant enough | |
fixes to warrant such a revision jump, the minor revision should be incremented instead. | |
Stage indicator: | |
Consists of a string belonging to one of "dev", "alpha", "beta", "rc", or "final", where: | |
"dev" stages are internal private releases | |
"alpha" stages are very early releases that may or may not be plublic releases | |
"beta" stages are public releases intended for early adopters and other "beta testers" | |
"rc" stages are release candidates indended for more widespread testing | |
"final" stages are stable releases and should be "production worthy" | |
Stage revision: | |
The stage revision number begins at 1 and increments from there. | |
The stage revision number may not jump or skip any revisions. | |
In the case of final stage releases, the stage and stage revision indicators are omitted. | |
Only the final release stage may increment the other revisions. | |
When a revision indicator's number increments, all lower revision indicators should roll back | |
to their starting position. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for this document, it has given me more understanding of versioning