package semver
import "github.com/blang/semver/v4"
Index ¶
- Variables
- func FinalizeVersion(s string) (string, error)
- func NewBuildVersion(s string) (string, error)
- func Sort(versions []Version)
- type PRVersion
- func NewPRVersion(s string) (PRVersion, error)
- func (v PRVersion) Compare(o PRVersion) int
- func (v PRVersion) IsNumeric() bool
- func (v PRVersion) String() string
- type Range
- func MustParseRange(s string) Range
- func ParseRange(s string) (Range, error)
- func (rf Range) AND(f Range) Range
- func (rf Range) OR(f Range) Range
- type Version
- func Make(s string) (Version, error)
- func MustParse(s string) Version
- func New(s string) (*Version, error)
- func Parse(s string) (Version, error)
- func ParseTolerant(s string) (Version, error)
- func (v Version) Compare(o Version) int
- func (v Version) EQ(o Version) bool
- func (v Version) Equals(o Version) bool
- func (v Version) FinalizeVersion() string
- func (v Version) GE(o Version) bool
- func (v Version) GT(o Version) bool
- func (v Version) GTE(o Version) bool
- func (v *Version) IncrementMajor() error
- func (v *Version) IncrementMinor() error
- func (v *Version) IncrementPatch() error
- func (v Version) LE(o Version) bool
- func (v Version) LT(o Version) bool
- func (v Version) LTE(o Version) bool
- func (v Version) MarshalJSON() ([]byte, error)
- func (v Version) NE(o Version) bool
- func (v *Version) Scan(src interface{}) (err error)
- func (v Version) String() string
- func (v *Version) UnmarshalJSON(data []byte) (err error)
- func (v Version) Validate() error
- func (v Version) Value() (driver.Value, error)
- type Versions
Variables ¶
var SpecVersion = Version{ Major: 2, Minor: 0, Patch: 0, }
SpecVersion is the latest fully supported spec version of semver
Functions ¶
func FinalizeVersion ¶
FinalizeVersion returns the major, minor and patch number only and discards prerelease and build number.
func NewBuildVersion ¶
NewBuildVersion creates a new valid build version
func Sort ¶
func Sort(versions []Version)
Sort sorts a slice of versions
Types ¶
type PRVersion ¶
PRVersion represents a PreRelease Version
func NewPRVersion ¶
NewPRVersion creates a new valid prerelease version
func (PRVersion) Compare ¶
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 ¶
IsNumeric checks if prerelease-version is numeric
func (PRVersion) String ¶
PreRelease version to string
type Range ¶
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 ¶
MustParseRange is like ParseRange but panics if the range cannot be parsed.
func ParseRange ¶
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 ¶
AND combines the existing Range with another Range using logical AND.
func (Range) OR ¶
OR combines the existing Range with another Range using logical OR.
type Version ¶
type Version struct { Major uint64 Minor uint64 Patch uint64 Pre []PRVersion Build []string //No Precedence }
Version represents a semver compatible version
func Make ¶
Make is an alias for Parse, parses version string and returns a validated Version or error
func MustParse ¶
MustParse is like Parse but panics if the version cannot be parsed.
func New ¶
New is an alias for Parse and returns a pointer, parses version string and returns a validated Version or error
func Parse ¶
Parse parses version string and returns a validated Version or error
func ParseTolerant ¶
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 ¶
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 ¶
EQ checks if v is equal to o.
func (Version) Equals ¶
Equals checks if v is equal to o.
func (Version) FinalizeVersion ¶
FinalizeVersion discards prerelease and build number and only returns major, minor and patch number.
func (Version) GE ¶
GE checks if v is greater than or equal to o.
func (Version) GT ¶
GT checks if v is greater than o.
func (Version) GTE ¶
GTE checks if v is greater than or equal to o.
func (*Version) IncrementMajor ¶
IncrementMajor increments the major version
func (*Version) IncrementMinor ¶
IncrementMinor increments the minor version
func (*Version) IncrementPatch ¶
IncrementPatch increments the patch version
func (Version) LE ¶
LE checks if v is less than or equal to o.
func (Version) LT ¶
LT checks if v is less than o.
func (Version) LTE ¶
LTE checks if v is less than or equal to o.
func (Version) MarshalJSON ¶
MarshalJSON implements the encoding/json.Marshaler interface.
func (Version) NE ¶
NE checks if v is not equal to o.
func (*Version) Scan ¶
Scan implements the database/sql.Scanner interface.
func (Version) String ¶
Version to string
func (*Version) UnmarshalJSON ¶
UnmarshalJSON implements the encoding/json.Unmarshaler interface.
func (Version) Validate ¶
Validate validates v and returns error in case
func (Version) Value ¶
Value implements the database/sql/driver.Valuer interface.
type Versions ¶
type Versions []Version
Versions represents multiple versions.
func (Versions) Len ¶
Len returns length of version collection
func (Versions) Less ¶
Less checks if version at index i is less than version at index j
func (Versions) Swap ¶
Swap swaps two versions inside the collection by its indices
Source Files ¶
json.go range.go semver.go sort.go sql.go
Directories ¶
Path | Synopsis |
---|---|
examples |
- Version
- v4.0.0 (latest)
- Published
- May 24, 2020
- Platform
- linux/amd64
- Imports
- 8 packages
- Last checked
- 4 weeks ago –
Tools for package owners.