* Fix #567: Display package versions in sorted order * Add docs * Fix docs to focus on git tags * Refactor to use version module * Streamline docs * Refactor to make things work in nim <= 0.19.6 * Improve code readability
This commit is contained in:
parent
da82e3111e
commit
2243e3fbc2
4 changed files with 63 additions and 20 deletions
|
|
@ -93,6 +93,11 @@ proc `==`*(ver: Version, ver2: Version): bool =
|
|||
else:
|
||||
return false
|
||||
|
||||
proc cmp*(a, b: Version): int =
|
||||
if a < b: -1
|
||||
elif a > b: 1
|
||||
else: 0
|
||||
|
||||
proc `<=`*(ver: Version, ver2: Version): bool =
|
||||
return (ver == ver2) or (ver < ver2)
|
||||
|
||||
|
|
@ -272,7 +277,7 @@ proc newVREq*(ver: string): VersionRange =
|
|||
result.ver = newVersion(ver)
|
||||
|
||||
proc findLatest*(verRange: VersionRange,
|
||||
versions: Table[Version, string]): tuple[ver: Version, tag: string] =
|
||||
versions: OrderedTable[Version, string]): tuple[ver: Version, tag: string] =
|
||||
result = (newVersion(""), "")
|
||||
for ver, tag in versions:
|
||||
if not withinRange(ver, verRange): continue
|
||||
|
|
@ -309,8 +314,11 @@ when isMainModule:
|
|||
doAssert(newVersion("") < newVersion("1.0.0"))
|
||||
doAssert(newVersion("") < newVersion("0.1.0"))
|
||||
|
||||
var versions = toTable[Version, string]({newVersion("0.1.1"): "v0.1.1",
|
||||
newVersion("0.2.3"): "v0.2.3", newVersion("0.5"): "v0.5"})
|
||||
var versions = toOrderedTable[Version, string]({
|
||||
newVersion("0.1.1"): "v0.1.1",
|
||||
newVersion("0.2.3"): "v0.2.3",
|
||||
newVersion("0.5"): "v0.5"
|
||||
})
|
||||
doAssert findLatest(parseVersionRange(">= 0.1 & <= 0.4"), versions) ==
|
||||
(newVersion("0.2.3"), "v0.2.3")
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue