2 Commits

Author SHA1 Message Date
Paul Liverman III
c24516b129 Fix #6 Pre-1.0 upgrades should not be safe 2016-08-02 15:39:05 -07:00
kikito
35c69808f5 fixes changelong in readme 2015-10-24 10:28:48 +02:00
4 changed files with 42 additions and 2 deletions

View File

@@ -98,8 +98,9 @@ busted
* Removed global variable which was declared by mistake
* Changed spec tool from telescope to busted
* Changed README format from textile to markdown
## v.1.2.0:
* Fix error: builds were being used for comparison, but according with semver 2.0.0 they should be ignored (so v'1.0.0-build1' is equal to v'1.0.0-build2')
* Fix error: builds were being used for comparison, but according with semver 2.0.0 they should be ignored (so v'1.0.0+build1' is equal to v'1.0.0+build2')
* Fix several errors and inconsistencies in the way the comparisons where implemented.
* Added a lot more tests to cover more edge cases when comparing versions

View File

@@ -0,0 +1,25 @@
package = "semver"
version = "1.2.1-1"
source = {
url = "git://github.com/kikito/semver.lua.git",
}
description = {
summary = "An implementation of semantic versioning (semver.org 2.0.0) in Lua",
detailed = [[
See details in http://semver.org
]],
license = "MIT",
homepage = "https://github.com/kikito/semver.lua"
}
dependencies = {
"lua >= 5.1"
}
build = {
type = "none",
install = {
lua = {
"semver.lua"
},
}
}

View File

@@ -1,5 +1,5 @@
local semver = {
_VERSION = '1.2.0',
_VERSION = '1.2.1',
_DESCRIPTION = 'semver for Lua',
_URL = 'https://github.com/kikito/semver.lua',
_LICENSE = [[
@@ -173,6 +173,9 @@ end
-- if a and b are versions, a ^ b means "b is backwards-compatible with a"
-- in other words, "it's safe to upgrade from a to b"
function mt:__pow(other)
if self.major == 0 then
return self == other
end
return self.major == other.major and
self.minor <= other.minor
end

View File

@@ -254,6 +254,8 @@ describe('semver', function()
describe("^", function()
it("true for self", function()
assert.is_true(v(1,2,3) ^ v(1,2,3))
assert.is_true(v(0,1,0) ^ v(0,1,0))
assert.is_true(v("0.1.1+build0") ^ v(0,1,1))
end)
it("different major versions mean it's always unsafe", function()
assert.is_false(v(2,0,0) ^ v(3,0,0))
@@ -273,6 +275,15 @@ describe('semver', function()
it("is unsafe to downgrade to an earlier minor version", function()
assert.is_false(v(1,5,0) ^ v(1,2,0))
end)
it("is unsafe to upgrade any pre-1.0 versions", function()
assert.is_false(v("0.0.1-alpha") ^ v(0,0,1))
assert.is_false(v("0.0.1") ^ v(0,0,2))
assert.is_false(v("0.0.1+build0") ^ v(0,0,2))
assert.is_false(v(0,0,1) ^ v(0,1,0))
assert.is_false(v(0,0,1) ^ v(1,0,0))
assert.is_false(v(0,0,1) ^ v("1.0.0-alpha"))
end)
end)
describe("_VERSION", function()