From 375b063e90697a20ca88c48417c2f47bb2df1fc3 Mon Sep 17 00:00:00 2001 From: isaacs Date: Fri, 14 Jun 2013 06:40:09 -0700 Subject: [PATCH 1/4] Add BNF Grammar for valid version strings Written in collaboration with @petermichaux Closes #110 --- semver.md | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/semver.md b/semver.md index e84a0f3..fe4ff06 100644 --- a/semver.md +++ b/semver.md @@ -127,6 +127,66 @@ 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. +Backus–Naur Form Grammar for Valid SemVer Versions +-------------------------------------------------- + + ::= "." "." + | "." "." "-" + | "." "." "+" + | "." "." "-" "+" + + ::= + + ::= + + ::= + + ::= + + ::= + + ::= + | "." + + ::= + | "." + + ::= + | + + ::= + | + + ::= + | + | + | + + ::= | "-" + + ::= | + + ::= "0" + | + + ::= + | + + ::= + | + + ::= "0" | + + ::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" + + ::= "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" + | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" + | "U" | "V" | "W" | "X" | "Y" | "Z" | "a" | "b" | "c" | "d" + | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" + | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" + | "y" | "z" + + Why Use Semantic Versioning? ---------------------------- From cb5632f1c2e4dab1aaca3904a0b4bc9744a94cf4 Mon Sep 17 00:00:00 2001 From: Eddie Garmon Date: Mon, 17 Jun 2013 19:37:23 -0300 Subject: [PATCH 2/4] Improve BNF grammar Better names, more intuitive ordering. --- semver.md | 67 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 41 insertions(+), 26 deletions(-) diff --git a/semver.md b/semver.md index fe4ff06..e93890d 100644 --- a/semver.md +++ b/semver.md @@ -130,55 +130,70 @@ Example: 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < Backus–Naur Form Grammar for Valid SemVer Versions -------------------------------------------------- - ::= "." "." - | "." "." "-" - | "." "." "+" - | "." "." "-" "+" + ::= + | "-" + | "+" + | "-" "+" - ::= + ::= "." "." - ::= + ::= - ::= + ::= - ::= + ::= + + ::= + + ::= + | "." ::= - ::= - | "." - ::= | "." - ::= - | + ::= + | - ::= - | + ::= + | - ::= - | - | - | + ::= + | + | + | + | + | + | "-" - ::= | "-" + ::= "0" + | + | - ::= | + ::= + | - ::= "0" - | + ::= + | + + ::= + | - ::= - | + ::= + | "-" ::= | - ::= "0" | + ::= "0" + | ::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" + ::= + | + ::= "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" | "a" | "b" | "c" | "d" From 9e6ab3ecdb3550e2fe66403f6da95f0cdb94eaf4 Mon Sep 17 00:00:00 2001 From: isaacs Date: Wed, 19 Jun 2013 14:12:26 -0700 Subject: [PATCH 3/4] bnf: Simplify 'alphanumeric identifier' --- semver.md | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/semver.md b/semver.md index e93890d..f3bc14e 100644 --- a/semver.md +++ b/semver.md @@ -159,13 +159,10 @@ Backus–Naur Form Grammar for Valid SemVer Versions ::= | - ::= - | - | - | - | - | - | "-" + ::= + | + | + | ::= "0" | @@ -176,7 +173,7 @@ Backus–Naur Form Grammar for Valid SemVer Versions ::= | - + ::= | @@ -186,7 +183,7 @@ Backus–Naur Form Grammar for Valid SemVer Versions ::= | - ::= "0" + ::= "0" | ::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" From 5f00f5717cf0c7bbcd1299d2b24656f58f5ce0af Mon Sep 17 00:00:00 2001 From: isaacs Date: Wed, 19 Jun 2013 16:59:46 -0700 Subject: [PATCH 4/4] bnf: Remove unused 'letters', 'non-digits' via: @EddieGarmon --- semver.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/semver.md b/semver.md index f3bc14e..4cb94ce 100644 --- a/semver.md +++ b/semver.md @@ -174,9 +174,6 @@ Backus–Naur Form Grammar for Valid SemVer Versions ::= | - ::= - | - ::= | "-" @@ -188,9 +185,6 @@ Backus–Naur Form Grammar for Valid SemVer Versions ::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" - ::= - | - ::= "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" | "a" | "b" | "c" | "d"