From abdf40e7b52b7eb8f50f347dcbdff8842e1df464 Mon Sep 17 00:00:00 2001 From: Phil Haack Date: Jun 10 2013 16:27:09 +0000 Subject: Merge pull request #108 from mojombo/clarify-version-comparisons Clarify version comparisons --- diff --git a/semver.md b/semver.md index 281cb76..f49c477 100644 --- a/semver.md +++ b/semver.md @@ -92,14 +92,22 @@ packages with the same version, but different build metadata are considered to be the same version. Examples: 1.0.0-alpha+001, 1.0.0+20130313144700, 1.0.0-beta+exp.sha.5114f85. -1. Precedence MUST be calculated by separating the version into major, minor, -patch and pre-release identifiers in that order (Build metadata does not figure -into precedence). Major, minor, and patch versions are always compared -numerically. Pre-release precedence MUST be determined by comparing each dot -separated identifier as follows: identifiers consisting of only digits are -compared numerically and identifiers with letters or hyphens are compared +1. Precedence refers to how versions are compared to each other when ordered. +Precedence MUST be calculated by separating the version into major, minor, patch +and pre-release identifiers in that order (Build metadata does not figure +into precedence). Precedence is determined by the first difference when +comparing each of these identifiers from left to right as follows: Major, minor, +and patch versions are always compared numerically. Example: 1.0.0 < 2.0.0 < +2.1.0 < 2.1.1. When major, minor, and patch are equal, a pre-release version has +lower precedence than a normal version. Example: 1.0.0-alpha < 1.0.0. Precedence +for two pre-release versions with the same major, minor, and patch version MUST +be determined by comparing each dot separated identifier from left to right +until a difference is found as follows: identifiers consisting of only digits +are compared numerically and identifiers with letters or hyphens are compared lexically in ASCII sort order. Numeric identifiers always have lower precedence -than non-numeric identifiers. Example: 1.0.0-alpha < 1.0.0-alpha.1 < +than non-numeric identifiers. A larger set of pre-release fields has a higher +precedence than a smaller set, if all of the preceding identifiers are equal. +Example: 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0. Why Use Semantic Versioning?