| 1 | End users see version strings like this: |
| 2 | |
| 3 | {{{ |
| 4 | "1.0.0" |
| 5 | ^ ^ ^ |
| 6 | | | | |
| 7 | | | '- micro version number |
| 8 | | '- minor version number |
| 9 | '- major version number |
| 10 | }}} |
| 11 | |
| 12 | The first number is "major version number". The second number is the "minor |
| 13 | version number" -- it gets bumped whenever we make a new release that adds or |
| 14 | changes functionality. The third version is the "micro version number" -- it |
| 15 | gets bumped whenever we make a new release that doesn't add or change |
| 16 | functionality, but just fixes bugs (including performance issues). |
| 17 | |
| 18 | Early-adopter end users see version strings like this: |
| 19 | |
| 20 | {{{ |
| 21 | "1.0.0a1" |
| 22 | ^ ^ ^^^ |
| 23 | | | ||| |
| 24 | | | ||'- release number |
| 25 | | | |'- a=alpha, b=beta, c=release candidate, or none |
| 26 | | | '- micro version number |
| 27 | | '- minor version number |
| 28 | '- major version number |
| 29 | }}} |
| 30 | |
| 31 | The optional "a" or "b" stands for "alpha release" or "beta release" |
| 32 | respectively. The number after "a" or "b" gets bumped every time we |
| 33 | make a new alpha or beta release. This has the same form and the same |
| 34 | meaning as version numbers of releases of Python. |
| 35 | |
| 36 | Developers see "full version strings", like this: |
| 37 | |
| 38 | {{{ |
| 39 | "1.0.0a1-dev-r55" |
| 40 | ^ ^ ^^^ ^ ^ |
| 41 | | | ||| | | |
| 42 | | | ||| | '- nano version number |
| 43 | | | ||| '- "dev" if this is a development version (not a release version) |
| 44 | | | ||'- release number |
| 45 | | | |'- a=alpha, b=beta, c=release candidate or none |
| 46 | | | '- micro version number |
| 47 | | '- minor version number |
| 48 | '- major version number |
| 49 | }}} |
| 50 | |
| 51 | The presence of "-dev" means that this is a development version. There are |
| 52 | no guarantees about compatibility, etc. This version is considered to be |
| 53 | more recent than the version without this field (e.g. "1.0.0a1"). |
| 54 | |
| 55 | The next number is the "nano version number". It is meaningful only to |
| 56 | developers. It gets generated automatically from darcs revision control |
| 57 | history by "make-version-from-darcs-history.py". It is the count of patches |
| 58 | that have been applied since the last version number tag was applied. |