From a6b38843feb86c4e765e63c1e44c2a69da5b285e Mon Sep 17 00:00:00 2001 From: decentral1se Date: Sun, 8 Aug 2021 17:55:59 +0200 Subject: [PATCH] Add go doc generated output --- README.md | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 78 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ba93108..714d6bd 100644 --- a/README.md +++ b/README.md @@ -18,9 +18,85 @@ implementation quite closely. [renovate]: https://github.com/renovatebot/renovate/blob/main/lib/versioning/docker/readme.md [renovate implementation]: https://github.com/renovatebot/renovate/tree/main/lib/datasource/docker -## Public API +## go doc -> TODO +``` +package tagcmp // import "coopcloud.tech/tagcmp" + +Package tagcmp provides image tag comparison operations. + +VARIABLES + +var CommitHashPattern = "^[a-f0-9]{7,40}$" + CommitHashPattern matches commit-like hash tags + +var DotPattern = "([0-9]+)\\.([0-9]+)" + DotPattern matches tags which contain multiple versions + +var EmptyPattern = "^$" + EmptyPattern matches when tags are missing + +var ParametrizedPattern = "\\${.+}" + ParametrizedPattern matches when tags are parametrized + +var StringPattern = "^[a-zA-Z]+$" + StringPattern matches when tags are only made up of alphabetic characters + + +FUNCTIONS + +func IsParseable(tag string) bool + IsParseable determines if a tag is supported by this library + + +TYPES + +type ByTag []Tag + ByTag sorts tags + +func (t ByTag) Len() int + +func (t ByTag) Less(i, j int) bool + +func (t ByTag) Swap(i, j int) + +type Tag struct { + Major string `json:",omitempty"` // major semver part + Minor string `json:",omitempty"` // minor semver part + MissingMinor bool // whether or not the minor semver part was left out + Patch string `json:",omitempty"` // patch semver part + MissingPatch bool // whether or not he patch semver part was left out + Suffix string // tag suffix (e.g. "-alpine") + UsesV bool // whether or not the tag uses the "v" prefix +} + +func Parse(tag string) (Tag, error) + Parse converts an image tag into a structured data format. It aims to to + support the general case of tags which are "semver-like" and/or stable and + parseable by heuristics. Image tags follow no formal specification and + therefore this is a best-effort implementation. Examples of tags this + function can parse are: "5", "5.2", "v4", "v5.3.6", "4-alpine", + "v3.2.1-debian". + +func (t Tag) Equals(tag Tag) bool + Equals tests Tag equality + +func (t Tag) IsCompatible(tag Tag) bool + IsCompatible determines if two tags can be compared together + +func (t Tag) IsGreaterThan(tag Tag) bool + IsGreaterThan tests if a tag is greater than another. There are some + tag-isms to take into account here, shorter is bigger (i.e. 2.1 > 2.1.1 == + true, 2 > 2.1 == true). + +func (t Tag) IsLessThan(tag Tag) bool + IsLessThan tests if a tag is less than another. There are some tag-isms to + take into account here, shorter is bigger (i.e. 2.1 < 2.1.1 == false, 2 < + 2.1 == false). + +func (t Tag) String() string + String formats a Tag correctly in string representation +``` ## Types of versions supported