Difference between revisions of "Version number"
(→Minetest Game versioning: simplify) |
(→Stable releases: "usually") |
||
Line 10: | Line 10: | ||
* <code>ZERO</code> is the first number, which has always been 0 so far. The meaning of it is a great mystery that even well-versed scholars in Minetestology haven't uncovered yet, but it is of great importance and must not be left out … yet. However, because it's so strange (some might even say “pointless”), we have come to an agreement to destroy this number in future versions. | * <code>ZERO</code> is the first number, which has always been 0 so far. The meaning of it is a great mystery that even well-versed scholars in Minetestology haven't uncovered yet, but it is of great importance and must not be left out … yet. However, because it's so strange (some might even say “pointless”), we have come to an agreement to destroy this number in future versions. | ||
* <code>MAJOR</code> is increased by 1 for very significant and (usually gigantic) releases that change a lot of things (likely to be in a compability-breaking manner). | * <code>MAJOR</code> is increased by 1 for very significant and (usually gigantic) releases that change a lot of things (likely to be in a compability-breaking manner). | ||
− | * <code>MINOR</code> is increased by 1 for regular | + | * <code>MINOR</code> is increased by 1 for regular releases that contain features and/or bugfixes. These releases can be large or small. Developers try to keep backwards-compability, but this is not always guaranteed. |
Sometimes, a 4th number is appended: | Sometimes, a 4th number is appended: | ||
Line 16: | Line 16: | ||
ZERO.MAJOR.MINOR.PATCH | ZERO.MAJOR.MINOR.PATCH | ||
− | * <code>PATCH</code> is increased by 1 for releases that only contain bugfixes. Usually these releases only change a few things and are | + | * <code>PATCH</code> is increased by 1 for releases that only contain bugfixes. Usually these releases only change a few things and are usually very small and simple. These releases should be backwards-compatible. This number is only used when there actually has been a <code>PATCH</code> release after a <code>MINOR</code> or <code>MAJOR</code> release. Otherwise, it is not used. |
The first public version of Minetest was version 0.0.1. | The first public version of Minetest was version 0.0.1. |
Revision as of 19:09, 28 January 2019
The version number of Minetest is used to keep different versions of Minetest apart.
Stable releases
A stable release is any publicly released version of Minetest where we uploaded downloadable packages: https://www.minetest.net/downloads/
The version number of a stable release is a sequence of 3 or 4 natural numbers (usually 3), separated by dots. The leftmost number is the most significant number, denoting more and more significant changes. The full version number of Minetest is always displayed in the window title.
ZERO.MAJOR.MINOR
ZERO
is the first number, which has always been 0 so far. The meaning of it is a great mystery that even well-versed scholars in Minetestology haven't uncovered yet, but it is of great importance and must not be left out … yet. However, because it's so strange (some might even say “pointless”), we have come to an agreement to destroy this number in future versions.MAJOR
is increased by 1 for very significant and (usually gigantic) releases that change a lot of things (likely to be in a compability-breaking manner).MINOR
is increased by 1 for regular releases that contain features and/or bugfixes. These releases can be large or small. Developers try to keep backwards-compability, but this is not always guaranteed.
Sometimes, a 4th number is appended:
ZERO.MAJOR.MINOR.PATCH
PATCH
is increased by 1 for releases that only contain bugfixes. Usually these releases only change a few things and are usually very small and simple. These releases should be backwards-compatible. This number is only used when there actually has been aPATCH
release after aMINOR
orMAJOR
release. Otherwise, it is not used.
The first public version of Minetest was version 0.0.1.
When a new version is released, one of the numbers is increased, depending on the complexity of the release. The less-significant numbers are reset to 0. If it was not a PATCH
release, the PATCH
number is dropped, otherwise, only the PATCH
number is increased. For example, if the current version is 0.1.2.3, and we want to make a MAJOR
release, the next version will be 0.2.0.
Version number in the future
After version 0.4.17.1, the version number scheme will change. Basically, the mysterious ZERO
will be removed, and MAJOR
, MINOR
and PATCH
move one place to the left. Also, the PATCH
number is never dropped. The new format is this:
MAJOR.MINOR.PATCH
The meaning of MAJOR
, MINOR
and PATCH
is unchanged. The first version to use this scheme will be version 5.0.0. We'll skip right over versions 1.0.0, 2.0.0, 3.0.0 and 4.0.0.
Developer versions
A so-called “developer version” (or “unstable version” if you're pessimistic) of Minetest is any state of Minetest that has not had a public, official, tested release with a stable version number. This is the case when you downloaded a daily build, or compiled Minetest from source code.
The short (and lazy) format
Long story short: If there's a “-dev” in the version number, it's a developer version.
The easiest way to mark a particular version as a “developer version” is to take the stable version number we expect to see in future and, then we append a “-dev” to it:
<FUTURE_VERSION>-dev
<FUTURE_VERSION>
is the stable version number we expect to release in future.- “-dev” is literally the text “-dev”. “dev” stands for, you guessed it, “development”.
For example, version 5.0.0-dev refers to a “developer version” that we expect to become (after changes, possibly) version 5.0.0 eventually.
But note this “short and lazy format” is not unambigious. It could refer to ANY “developer version” that exists between version 5.0.0 and 0.4.17.1 (the previous “stable” version), and is not specific. Your version 5.0.0-dev could be entirely different from the version 5.0.0-dev of your friend.
The full format
The full developer version number is a bit longer and is written in the window title:
<FUTURE_VERSION>-dev-<COMMIT><DIRTY>
<COMMIT>
are the first 8 characters of a hash of the Git commit that Minetest was compiled with. In simpler terms: This is just a bunch of letters and digits that probably uniquely identify your development version.<DIRTY>
is “-dirty” when your Minetest is said to be “dirty”. It becomes dirty when you have fiddled with any of the relevant files of the Minetest source code without committing them with Git. If you didn't touch anything, this should be empty.
For example, the version number “5.0.0-dev-a18c310a” means that this is a developer version of Minetest, with the Git commit hash “a18c310a”, and we believe this state of Minetest will (likely after many more changes) eventually become version 5.0.0.
An example for a “dirty” version would be “5.0.0-dev-a18c310a-dirty”.
If you want to report bugs, please always give us the full version number, which you see in the window title.
Minetest Game versioning
The releases of Minetest and Minetest Game are always in sync. They both thare the same stable version numbers.