| | 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. |