semver: Index | Files | Directories

package semver

import ""


Package Files

json.go range.go semver.go sort.go sql.go


var SpecVersion = Version{
    Major: 2,
    Minor: 0,
    Patch: 0,

SpecVersion is the latest fully supported spec version of semver

func FinalizeVersion Uses

func FinalizeVersion(s string) (string, error)

FinalizeVersion returns the major, minor and patch number only and discards prerelease and build number.

func NewBuildVersion Uses

func NewBuildVersion(s string) (string, error)

NewBuildVersion creates a new valid build version

func Sort Uses

func Sort(versions []Version)

Sort sorts a slice of versions

type PRVersion Uses

type PRVersion struct {
    VersionStr string
    VersionNum uint64
    IsNum      bool

PRVersion represents a PreRelease Version

func NewPRVersion Uses

func NewPRVersion(s string) (PRVersion, error)

NewPRVersion creates a new valid prerelease version

func (PRVersion) Compare Uses

func (v PRVersion) Compare(o PRVersion) int

Compare compares two PreRelease Versions v and o: -1 == v is less than o 0 == v is equal to o 1 == v is greater than o

func (PRVersion) IsNumeric Uses

func (v PRVersion) IsNumeric() bool

IsNumeric checks if prerelease-version is numeric

func (PRVersion) String Uses

func (v PRVersion) String() string

PreRelease version to string

type Range Uses

type Range func(Version) bool

Range represents a range of versions. A Range can be used to check if a Version satisfies it:

range, err := semver.ParseRange(">1.0.0 <2.0.0")
range(semver.MustParse("1.1.1") // returns true

func MustParseRange Uses

func MustParseRange(s string) Range

MustParseRange is like ParseRange but panics if the range cannot be parsed.

func ParseRange Uses

func ParseRange(s string) (Range, error)

ParseRange parses a range and returns a Range. If the range could not be parsed an error is returned.

Valid ranges are:

- "<1.0.0"
- "<=1.0.0"
- ">1.0.0"
- ">=1.0.0"
- "1.0.0", "=1.0.0", "==1.0.0"
- "!1.0.0", "!=1.0.0"

A Range can consist of multiple ranges separated by space: Ranges can be linked by logical AND:

- ">1.0.0 <2.0.0" would match between both ranges, so "1.1.1" and "1.8.7" but not "1.0.0" or "2.0.0"
- ">1.0.0 <3.0.0 !2.0.3-beta.2" would match every version between 1.0.0 and 3.0.0 except 2.0.3-beta.2

Ranges can also be linked by logical OR:

- "<2.0.0 || >=3.0.0" would match "1.x.x" and "3.x.x" but not "2.x.x"

AND has a higher precedence than OR. It's not possible to use brackets.

Ranges can be combined by both AND and OR

- `>1.0.0 <2.0.0 || >3.0.0 !4.2.1` would match `1.2.3`, `1.9.9`, `3.1.1`, but not `4.2.1`, `2.1.1`

func (Range) AND Uses

func (rf Range) AND(f Range) Range

AND combines the existing Range with another Range using logical AND.

func (Range) OR Uses

func (rf Range) OR(f Range) Range

OR combines the existing Range with another Range using logical OR.

type Version Uses

type Version struct {
    Major uint64
    Minor uint64
    Patch uint64
    Pre   []PRVersion
    Build []string //No Precedence

Version represents a semver compatible version

func Make Uses

func Make(s string) (Version, error)

Make is an alias for Parse, parses version string and returns a validated Version or error

func MustParse Uses

func MustParse(s string) Version

MustParse is like Parse but panics if the version cannot be parsed.

func New Uses

func New(s string) (*Version, error)

New is an alias for Parse and returns a pointer, parses version string and returns a validated Version or error

func Parse Uses

func Parse(s string) (Version, error)

Parse parses version string and returns a validated Version or error

func ParseTolerant Uses

func ParseTolerant(s string) (Version, error)

ParseTolerant allows for certain version specifications that do not strictly adhere to semver specs to be parsed by this library. It does so by normalizing versions before passing them to Parse(). It currently trims spaces, removes a "v" prefix, adds a 0 patch number to versions with only major and minor components specified, and removes leading 0s.

func (Version) Compare Uses

func (v Version) Compare(o Version) int

Compare compares Versions v to o: -1 == v is less than o 0 == v is equal to o 1 == v is greater than o

func (Version) EQ Uses

func (v Version) EQ(o Version) bool

EQ checks if v is equal to o.

func (Version) Equals Uses

func (v Version) Equals(o Version) bool

Equals checks if v is equal to o.

func (Version) FinalizeVersion Uses

func (v Version) FinalizeVersion() string

FinalizeVersion discards prerelease and build number and only returns major, minor and patch number.

func (Version) GE Uses

func (v Version) GE(o Version) bool

GE checks if v is greater than or equal to o.

func (Version) GT Uses

func (v Version) GT(o Version) bool

GT checks if v is greater than o.

func (Version) GTE Uses

func (v Version) GTE(o Version) bool

GTE checks if v is greater than or equal to o.

func (*Version) IncrementMajor Uses

func (v *Version) IncrementMajor() error

IncrementMajor increments the major version

func (*Version) IncrementMinor Uses

func (v *Version) IncrementMinor() error

IncrementMinor increments the minor version

func (*Version) IncrementPatch Uses

func (v *Version) IncrementPatch() error

IncrementPatch increments the patch version

func (Version) LE Uses

func (v Version) LE(o Version) bool

LE checks if v is less than or equal to o.

func (Version) LT Uses

func (v Version) LT(o Version) bool

LT checks if v is less than o.

func (Version) LTE Uses

func (v Version) LTE(o Version) bool

LTE checks if v is less than or equal to o.

func (Version) MarshalJSON Uses

func (v Version) MarshalJSON() ([]byte, error)

MarshalJSON implements the encoding/json.Marshaler interface.

func (Version) NE Uses

func (v Version) NE(o Version) bool

NE checks if v is not equal to o.

func (*Version) Scan Uses

func (v *Version) Scan(src interface{}) (err error)

Scan implements the database/sql.Scanner interface.

func (Version) String Uses

func (v Version) String() string

Version to string

func (*Version) UnmarshalJSON Uses

func (v *Version) UnmarshalJSON(data []byte) (err error)

UnmarshalJSON implements the encoding/json.Unmarshaler interface.

func (Version) Validate Uses

func (v Version) Validate() error

Validate validates v and returns error in case

func (Version) Value Uses

func (v Version) Value() (driver.Value, error)

Value implements the database/sql/driver.Valuer interface.

type Versions Uses

type Versions []Version

Versions represents multiple versions.

func (Versions) Len Uses

func (s Versions) Len() int

Len returns length of version collection

func (Versions) Less Uses

func (s Versions) Less(i, j int) bool

Less checks if version at index i is less than version at index j

func (Versions) Swap Uses

func (s Versions) Swap(i, j int)

Swap swaps two versions inside the collection by its indices



Package semver imports 8 packages (graph) and is imported by 76 packages. Updated 2020-11-16. Refresh now. Tools for package owners.