version

package
v0.31.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 19, 2024 License: Apache-2.0 Imports: 7 Imported by: 895

Documentation

Overview

Package version provides utilities for version number comparisons

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Version

type Version struct {
	// contains filtered or unexported fields
}

Version is an opaque representation of a version number

func HighestSupportedVersion added in v0.29.0

func HighestSupportedVersion(versions []string) (*Version, error)

HighestSupportedVersion returns the highest supported version This function assumes that the highest supported version must be v1.x.

func MajorMinor added in v0.28.0

func MajorMinor(major, minor uint) *Version

MajorMinor returns a version with the provided major and minor version.

func MustParse added in v0.31.0

func MustParse(str string) *Version

MustParse is like Parse except that it panics on error

func MustParseGeneric

func MustParseGeneric(str string) *Version

MustParseGeneric is like ParseGeneric except that it panics on error

func MustParseMajorMinor added in v0.31.0

func MustParseMajorMinor(str string) *Version

MustParseMajorMinor is like ParseMajorMinor except that it panics on error

func MustParseSemantic

func MustParseSemantic(str string) *Version

MustParseSemantic is like ParseSemantic except that it panics on error

func Parse added in v0.31.0

func Parse(str string) (*Version, error)

Parse tries to do ParseSemantic first to keep more information. If ParseSemantic fails, it would just do ParseGeneric.

func ParseGeneric

func ParseGeneric(str string) (*Version, error)

ParseGeneric parses a "generic" version string. The version string must consist of two or more dot-separated numeric fields (the first of which can't have leading zeroes), followed by arbitrary uninterpreted data (which need not be separated from the final numeric field by punctuation). For convenience, leading and trailing whitespace is ignored, and the version can be preceded by the letter "v". See also ParseSemantic.

func ParseMajorMinor added in v0.31.0

func ParseMajorMinor(str string) (*Version, error)

ParseMajorMinor parses a "generic" version string and returns a version with the major and minor version.

func ParseSemantic

func ParseSemantic(str string) (*Version, error)

ParseSemantic parses a version string that exactly obeys the syntax and semantics of the "Semantic Versioning" specification (http://semver.org/) (although it ignores leading and trailing whitespace, and allows the version to be preceded by "v"). For version strings that are not guaranteed to obey the Semantic Versioning syntax, use ParseGeneric.

func (*Version) AddMinor added in v0.31.0

func (v *Version) AddMinor(diff uint) *Version

AddMinor returns the version diff minor versions forward, with the same major and no patch.

func (*Version) AtLeast

func (v *Version) AtLeast(min *Version) bool

AtLeast tests if a version is at least equal to a given minimum version. If both Versions are Semantic Versions, this will use the Semantic Version comparison algorithm. Otherwise, it will compare only the numeric components, with non-present components being considered "0" (ie, "1.4" is equal to "1.4.0").

func (*Version) BuildMetadata

func (v *Version) BuildMetadata() string

BuildMetadata returns the build metadata, if v is a Semantic Version, or ""

func (*Version) Compare

func (v *Version) Compare(other string) (int, error)

Compare compares v against a version string (which will be parsed as either Semantic or non-Semantic depending on v). On success it returns -1 if v is less than other, 1 if it is greater than other, or 0 if they are equal.

func (*Version) Components

func (v *Version) Components() []uint

Components returns the version number components

func (*Version) EqualTo added in v0.31.0

func (v *Version) EqualTo(other *Version) bool

EqualTo tests if a version is equal to a given version.

func (*Version) GreaterThan added in v0.31.0

func (v *Version) GreaterThan(other *Version) bool

GreaterThan tests if a version is greater than a given version.

func (*Version) Info added in v0.31.0

func (v *Version) Info() *apimachineryversion.Info

func (*Version) LessThan

func (v *Version) LessThan(other *Version) bool

LessThan tests if a version is less than a given version. (It is exactly the opposite of AtLeast, for situations where asking "is v too old?" makes more sense than asking "is v new enough?".)

func (*Version) Major

func (v *Version) Major() uint

Major returns the major release number

func (*Version) Minor

func (v *Version) Minor() uint

Minor returns the minor release number

func (*Version) OffsetMinor added in v0.31.0

func (v *Version) OffsetMinor(offset int) *Version

SubtractMinor returns the version with offset from the original minor, with the same major and no patch. If -offset >= current minor, the minor would be 0.

func (*Version) Patch

func (v *Version) Patch() uint

Patch returns the patch release number if v is a Semantic Version, or 0

func (*Version) PreRelease

func (v *Version) PreRelease() string

PreRelease returns the prerelease metadata, if v is a Semantic Version, or ""

func (*Version) String

func (v *Version) String() string

String converts a Version back to a string; note that for versions parsed with ParseGeneric, this will not include the trailing uninterpreted portion of the version number.

func (*Version) SubtractMinor added in v0.31.0

func (v *Version) SubtractMinor(diff uint) *Version

SubtractMinor returns the version diff minor versions back, with the same major and no patch. If diff >= current minor, the minor would be 0.

func (*Version) WithBuildMetadata added in v0.16.4

func (v *Version) WithBuildMetadata(buildMetadata string) *Version

WithBuildMetadata returns copy of the version object with requested buildMetadata

func (*Version) WithInfo added in v0.31.0

func (v *Version) WithInfo(info apimachineryversion.Info) *Version

WithInfo returns copy of the version object with requested info

func (*Version) WithMajor

func (v *Version) WithMajor(major uint) *Version

WithMajor returns copy of the version object with requested major number

func (*Version) WithMinor

func (v *Version) WithMinor(minor uint) *Version

WithMinor returns copy of the version object with requested minor number

func (*Version) WithPatch

func (v *Version) WithPatch(patch uint) *Version

WithPatch returns copy of the version object with requested patch number

func (*Version) WithPreRelease

func (v *Version) WithPreRelease(preRelease string) *Version

WithPreRelease returns copy of the version object with requested prerelease

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL