← All Modules

assay.version

Cross-scheme version comparison. Pure Lua, no I/O. Schemes: semver (default), debian, rpm, numeric.

Scheme rules:

Unknown scheme → error.

local version = require("assay.version")

assert.eq(version.compare("1.2.3", "1.2.4"), -1)
assert.eq(version.compare("v0.13.1", "0.13.2", "semver"), -1)
assert.eq(version.compare("1:1.84.3-noble1", "1.84.2", "debian"), 1)
assert.eq(version.compare("1.0~rc1", "1.0", "debian"), -1)
assert.eq(version.compare("1.10", "1.9", "numeric"), 1)
assert.eq(version.max({ "1.2", "1.10", "1.9" }, "semver"), "1.10")