Version formats

Each edition and development phase of Minecraft uses a different versioning system.

Pre-Classic
During pre-Classic, versions were not numbered, and instead labelled with the initials of the game followed by the day of month, hour, and minute the version was released. For example, rd-160052 was released on May 13 at 00:52 (12:52 am). The temporary name RubyDung (rd) was used in these versions; RubyDung was a game Notch previously worked on.

Classic
During mc-161648, user fartron requested that Notch add a build count, which was added in the next version, 0.0.2a. This started the phase of what is now called Classic, and versions were labelled using three numbers followed by the latter "a", and bug fix patches were denoted by an underscore followed by a revision number (e.g., 0.0.18a_02 is the second bug fix patch for 0.0.18a). The "a" stands for "alpha", which is what this development phase was originally called before Notch realised the game would need more development to produce what he wanted. During Classic version 0.0.23a_01, Notch announced that he was going to be changing the versioning system, removing one of the zeroes as well as the "a". This coincided with the development of Survival Test, so versions during this time had were appended with the word "SURVIVAL TEST" (which sometimes contained underscores, such as in version 0.24_SURVIVAL_TEST). After 0.27 SURVIVAL TEST, the survival testing phase was complete, and the version format now had two numbers, the first of which was a zero, followed by an optional underscored bug fix patch (e.g., 0.28_01).

Indev and Infdev
During Indev, the version number remained at 0.31 for many versions. Midway through the development of Indev, Notch changed the version number from "0.31" to just "Minecraft Indev" ("Indev" is a portmanteau of "in development"). When Infdev started, the version was just changed to "Minecraft Infdev" ("Infdev" is a portmanteau of "infinite development", as Notch added infinite world generation).

Alpha
Version numbers were re-added during Alpha starting from version v1.0.1. The version format now was a "v" followed by three numbers in the order phase, major, minor. Minecraft was now in somewhat of a complete state, as it had left the "development" stages of Indev and Infdev, and as such the "phase" counter was changed to "1". An optional underscored bug fix patch was also used in this development phase. For example, Alpha v1.2.3_02 is the second bug fix patch ("_02") for the third minor revision (".3") of the second major version (".2") of Alpha.

Beta
Beta reset the version number back to 1.0 after Alpha v1.2.6, and Beta version numbers now only had two numbers followed by an optional underscored bug fix patch (e.g., Beta 1.1_01 was released to fix a major bug in Beta 1.1). This format was inconsistent later in the Beta stage of development: for example, Beta 1.7 was followed by Beta 1.7_01 which was then followed by Beta 1.7.2. Beta also started releasing preview versions of major releases in the form of "pre-releases". These pre-releases took the form of the major version number followed by the word "Pre-release" and then a revision number. For example, Beta 1.8 Pre-release 2 was the second pre-release for Beta 1.8. Pre-releases for release 1.0.0, which was then called Beta 1.9, omitted the hyphen from the word "Pre-release".

Release
The full release of Java Edition, then known as just Minecraft, reset the version number to 1.0.0. This version is the only release version to not omit the final ".0" for a major release (such as in version 1.1).

After the full release of Minecraft, public development versions called "snapshots" have been published most weeks showing the development of that version at the time. Snapshots use a very different format to other releases: the format is the two-digit year, followed by the letter "w", the two-digit week of the year, and then a revision letter for the amount of snapshots released in that week. For example, 18w10d was the fourth snapshot ("d") released in the 10th week of 2018.

Pre-release versions between 1.2.1 and 1.7.4 took the form of full releases, which then incremented the minor version number for a new version. For example, 1.7 was a pre-release for 1.7.2. From 1.7.6 until 1.13.2, pre-releases were named as their full release counterparts followed by "-pre" and a revision counter. For example, 1.12-pre7 is the seventh pre-release for 1.12. From 1.14, the word "pre-release" was spelt out in full: 1.14 Pre-Release 3 was the third pre-release for 1.14.