Each edition and development phase of Minecraft uses a different versioning system.
During pre-Classic, versions were not numbered, and instead labeled 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 16 at 00:52 (12:52 am Sweden time). The temporary name RubyDung (rd) was used in these versions; RubyDung was a game Notch previously worked on.
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 labeled using three numbers followed by the letter "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. (This "0.0.xa" versioning system was also used by Notch in a few years earlier in his game Wurm Online.) Notch mused simplifying the format to remove the redundant "0.0." repetition, using the example of changing "0.0.13a_03" to "0.13.3a", but did not do so. 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 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 only 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).
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 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". When it was decided that Beta 1.9 would be released as full version 1.0, future development versions were classified as release candidates, with RC1 and RC2 being the only ones.
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. For example, 1.14 Pre-Release 3 is the third pre-release for 1.14. Release candidates were reintroduced during 1.16 with 1.16 Release Candidate 1.
Originally subtitled Pocket Edition, versions in this development phase took the form of a "v" followed by three numbers: phase, major, and minor, followed by the word "alpha". The phase number during Alpha was 0, and the major and minor numbers incremented each release (when the major version number was incremented, the minor version was reset to 0). Development builds in this phase were labeled as their parent version followed by "build" and the build counter. For example, v0.14.0 alpha build 1 was the first build for Alpha version 0.14.0.
Release versions kept the same format as in Alpha, but incremented the phase number to 1. Development versions in this time were known as "alpha" versions (not to be confused with the development phase called "alpha") and took the form of the word "alpha" followed by a four-digit version number (major.minor.patch.revision). The first three digits are the parent version (alpha 18.104.22.168 was a development build for 1.0.0) and the fourth number is the build revision, which is not necessarily incremented by 1 each release.
In 1.2.0, the "Pocket Edition' " was dropped, and development versions were renamed from "alpha" to "beta"; the version number format did not change (e.g., beta 22.214.171.124 was a development build for 1.8.0).
From 1.16.0, Bedrock Edition major version numbers match Java Edition. Before this, Bedrock Edition updates changed the major version number for content updates and the minor version number for patches. So in order to keep the major version the same as Java Edition, large minor version numbers like 100 or 200 are now used for supplementary minor content updates. This allows space for platform-specific patches to be released while content updates are in development.
Legacy Console Edition
The many different console versions use entirely different versioning formats. Xbox 360 Edition versions used "title updates": the letters "TU" followed by a number. Xbox One Edition updates were called "content updates" and use the same format as Xbox 360 but with the letters "CU" instead of "TU". As mandated by PlayStation software, PlayStation Editions used a decimal three-digit version number (an integer followed by a two-digit number from 00–99, starting from 1.00; version 1.99 must be followed by 2.00), which may sometimes skip numbers. Wii U Edition versions are known as "Patches", and used the word "Patch" followed by a number. Nintendo Switch Edition versions used a full three-digit version number starting from 1.0.1, but only incremented the minor version each release.
- "TigIRC logs" (archived) – Archive.org, May 16, 2009, UTC–4. "(12:49:34) fartron: put in a build count or something so i can tell if it loaded the new one
(12:49:56) notch: good idea. I'll add from the next version and up. =)"
- "Minecraft (alpha)" by Notch – TigSource, May 17, 2009.
- File:Wurm Online 0.0.19a.jpg
- IRC logs, #minecraft.20090527.log: "(15:21:10) <@Notch> I just realized I'm abusing the version system I have", "(15:21:48) <@Notch> 0.0.13a_03 should be 0.13.3a" (May 27, 2009)
- Changing the version system – The Word of Notch, July 15, 2009
- As stated in options.txt.
- "We are skipping 1.15 so the next release will be 1.16." (archived) – @Chupacaubrey, March 16, 2020
- Replying to "are version numbers finally going to be the same across both bedrock and java then?": "That is the plan! 👇 So that it’s not so confusing anymore." (archived) – @Chupacaubrey, March 16, 2020
- "Thanks for the feedback - don't get too hung up on the version numbers though - because Bedrock goes out on many different platforms, the version numbers need to be spaced out so they don't overlap with hotfixes etc. (I'm reassured that there's a method to the madness! 😁)" – @Mega_Spud, October 23, 2020