go-version

by mcuadros

mcuadros / go-version

Version normalizer and comparison library for go

129 Stars 25 Forks Last release: Not found MIT License 34 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

go-version Build Status GoDoc

Version normalizer and comparison library for go, heavy based on PHP version_compare function and Version comparsion libs from Composer PHP project

Installation

The recommended way to install go-version

go get github.com/mcuadros/go-version

Examples

How import the package

import (
    "github.com/mcuadros/go-version"
)

version.Normalize()
: Normalizes a version string to be able to perform comparisons on it
version.Normalize("10.4.13-b")
//Returns: 10.4.13.0-beta

version.CompareSimple()
: Compares two normalizated version number strings
version.CompareSimple("1.2", "1.0.1")
//Returns: 1

version.CompareSimple("1.0rc1", "1.0") //Returns: -1

version.Compare()
: Compares two normalizated version number strings, for a particular relationship
version.Compare("1.0-dev", "1.0", "=")
//Returns: false

version.Compare("2.3.4", "v3.1.2", "

version.ConstrainGroup.Match()
: Match a given version againts a group of constrains, read about constraint string format at Composer documentation
c := version.NewConstrainGroupFromString(">2.0,<=3.0")
c.Match("2.5.0beta")
//Returns: true

c := version.NewConstrainGroupFromString("~1.2.3") c.Match("1.2.3.5") //Returns: true

version.Sort()
: Sorts a string slice of version number strings using version.CompareSimple()
version.Sort([]string{"1.10-dev", "1.0rc1", "1.0", "1.0-dev"})
//Returns []string{"1.0-dev", "1.0rc1", "1.0", "1.10-dev"}

License

MIT, see LICENSE

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.