Documentation ¶
Overview ¶
Semantic Versions http://org
Index ¶
- Constants
- func Sort(versions []Version)
- func StringOrDefault(v *Version) string
- type Bump
- type PreRelease
- type Range
- type Version
- func (v Version) Bump(bump string) (Version, error)
- func (v Version) BumpMajor() Version
- func (v Version) BumpMinor() Version
- func (v Version) BumpPatch() Version
- func (v Version) Compare(versionB Version) int
- func (v Version) Empty() bool
- func (v Version) Equal(versionB Version) bool
- func (v *Version) EqualSafe(versionB Version) bool
- func (v Version) LessThan(versionB Version) bool
- func (v Version) MarshalJSON() ([]byte, error)
- func (v Version) MarshalYAML() (interface{}, error)
- func (v *Version) Set(version string) error
- func (v Version) Slice() []int64
- func (v Version) String() string
- func (v *Version) UnmarshalJSON(data []byte) error
- func (v *Version) UnmarshalYAML(unmarshal func(interface{}) error) error
- type Versions
Examples ¶
Constants ¶
Variables ¶
This section is empty.
Functions ¶
func StringOrDefault ¶
Types ¶
type PreRelease ¶
type PreRelease string
func (PreRelease) Slice ¶
func (p PreRelease) Slice() []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`
type Version ¶
type Version struct { Major int64 Minor int64 Patch int64 PreRelease PreRelease Metadata string }
func NewVersion ¶
func (Version) BumpMajor ¶
BumpMajor returns a copy of the version after it increments the Major field by 1 and resets all other fields to their default values
func (Version) BumpMinor ¶
BumpMinor returns a copy of the version after it increments the Minor field by 1 and resets all other fields to their default values
func (Version) BumpPatch ¶
BumpPatch returns a copy of the version after it increments the Patch field by 1 and resets all other fields to their default values
func (Version) Compare ¶
Compare tests if v is less than, equal to, or greater than versionB, returning -1, 0, or +1 respectively.
func (Version) LessThan ¶
LessThan tests if v is less than versionB.
Example ¶
vA := New("1.2.3") vB := New("3.2.1") fmt.Printf("%s < %s == %t\n", vA, vB, vA.LessThan(vB))
Output: 1.2.3 < 3.2.1 == true