Skip to content

semver #


semver is a library for processing versions, that use the semver format.


import semver

fn main() {
    ver1 := semver.from('1.2.4') or {
        println('Invalid version')
    ver2 := semver.from('2.3.4') or {
        println('Invalid version')
    println(ver1.satisfies('>=1.1.0 <2.0.0'))
    println(ver2.satisfies('>=1.1.0 <2.0.0'))
    println(ver2.satisfies('>=1.1.0 <2.0.0 || >2.2.0'))

For more details see semver.v file.

fn build #

fn build(major int, minor int, patch int) Version

build returns a Version structure with given major, minor and patch versions.

fn coerce #

fn coerce(input string) ?Version
  • Utilites.
    coerce converts the input version to a Version struct.
    coerce will strip any contents after the parsed version string:

fn from #

fn from(input string) ?Version
  • Constructor.
    from returns a Version structure parsed from input string.

fn is_valid #

fn is_valid(input string) bool

is_valid returns true if the input string can be converted to a (semantic) Version struct.

fn (EmptyInputError) msg #

fn (err EmptyInputError) msg() string

fn (InvalidVersionFormatError) msg #

fn (err InvalidVersionFormatError) msg() string

enum Increment #

enum Increment {

Increment represents the different types of version increments.

struct Version #

struct Version {
	major      int
	minor      int
	patch      int
	prerelease string
	metadata   string
  • Structures.
    Version represents a semantic version in semver format.

fn (Version) increment #

fn (ver Version) increment(typ Increment) Version
  • Transformation.
    increment returns a Version structure with incremented values.

fn (Version) satisfies #

fn (ver Version) satisfies(input string) bool
  • Comparison.
    satisfies returns true if the input expression can be validated to true when run against this Version.


assert,0,0).satisfies('<=2.0.0') == true
assert,0,0).satisfies('>=2.0.0') == false

fn (Version) eq #

fn (v1 Version) eq(v2 Version) bool

eq returns true if v1 is equal to v2.

fn (Version) gt #

fn (v1 Version) gt(v2 Version) bool

gt returns true if v1 is greater than v2.

fn (Version) lt #

fn (v1 Version) lt(v2 Version) bool

lt returns true if v1 is less than v2.

fn (Version) ge #

fn (v1 Version) ge(v2 Version) bool

ge returns true if v1 is greater than or equal to v2.

fn (Version) le #

fn (v1 Version) le(v2 Version) bool

le returns true if v1 is less than or equal to v2.

fn (Version) str #

fn (ver Version) str() string

str returns the string representation of the Version.