Skip to content
Version normalizer and comparison library for go
Go
Branch: master
Clone or download
mcuadros Merge pull request #7 from CodeLingoBot/rewrite
Fix function comments based on best practices from Effective Go
Latest commit 035f676 Aug 30, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Initial commit Apr 24, 2013
.travis.yml travis Apr 24, 2013
LICENSE doc -a Apr 24, 2013
README.md
compare.go Fix based on best practices from Effective Go Mar 14, 2019
compare_test.go Add tests for snapshot Dec 11, 2018
constraint.go Fix based on best practices from Effective Go Mar 14, 2019
constraint_test.go Fix Compile Error for t.Errorf May 30, 2018
doc.go
group.go
group_test.go
normalize.go documentation Nov 21, 2013
normalize_test.go
sort.go
sort_test.go
stability.go
stability_test.go

README.md

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: true

version.Compare("1.0rc1", "1.0", ">=")
//Returns: false

version.Compare("2.3.4", "v3.1.2", "<")
//Returns: true

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

You can’t perform that action at this time.