Skip to content

Commit afd9298

Browse files
authored
Fetch only tags within the range (#1349)
1 parent 7e7be88 commit afd9298

File tree

3 files changed

+14
-7
lines changed

3 files changed

+14
-7
lines changed

src/nimblepkg/nimblesat.nim

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -537,9 +537,10 @@ proc saveTaggedVersions*(repoDir, pkgName: string, taggedVersions: TaggedPackage
537537
except CatchableError as e:
538538
displayWarning(&"Error saving tagged versions: {e.msg}", HighPriority)
539539

540-
proc getPackageMinimalVersionsFromRepo*(repoDir: string, name: string, version: Version, downloadMethod: DownloadMethod, options: Options): seq[PackageMinimalInfo] =
540+
proc getPackageMinimalVersionsFromRepo*(repoDir: string, pkg: PkgTuple, version: Version, downloadMethod: DownloadMethod, options: Options): seq[PackageMinimalInfo] =
541541
result = newSeq[PackageMinimalInfo]()
542542

543+
let name = pkg[0]
543544
let taggedVersions = getTaggedVersions(repoDir, name, options)
544545
if taggedVersions.isSome:
545546
return taggedVersions.get.versions
@@ -568,6 +569,12 @@ proc getPackageMinimalVersionsFromRepo*(repoDir: string, name: string, version:
568569
inc checkedTags
569570

570571
try:
572+
let tagVersion = newVersion($ver)
573+
574+
if not tagVersion.withinRange(pkg[1]):
575+
displayInfo(&"Ignoring {tagVersion} because out of range {pkg[1]}")
576+
break
577+
571578
doCheckout(downloadMethod, tempDir, tag)
572579
let nimbleFile = findNimbleFile(tempDir, true, options)
573580
if options.useDeclarativeParser:
@@ -598,7 +605,7 @@ proc downloadMinimalPackage*(pv: PkgTuple, options: Options): seq[PackageMinimal
598605
result = @[downloadPkInfoForPv(pv, options).getMinimalInfo(options)]
599606
else:
600607
let (downloadRes, downloadMeth) = downloadPkgFromUrl(pv, options)
601-
result = getPackageMinimalVersionsFromRepo(downloadRes.dir, pv.name, downloadRes.version, downloadMeth, options)
608+
result = getPackageMinimalVersionsFromRepo(downloadRes.dir, pv, downloadRes.version, downloadMeth, options)
602609
# echo "Downloading minimal package for ", pv.name, " ", $pv.ver, result
603610

604611
proc fillPackageTableFromPreferred*(packages: var Table[string, PackageVersions], preferredPackages: seq[PackageMinimalInfo]) =

tests/tdeclarativeparser.nim

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ suite "Declarative parsing":
5656
let repoDir = downloadRes.dir
5757
let downloadMethod = DownloadMethod git
5858
let packageVersions = getPackageMinimalVersionsFromRepo(
59-
repoDir, pv[0], downloadRes.version, downloadMethod, options
59+
repoDir, pv, downloadRes.version, downloadMethod, options
6060
)
6161

6262
#we know these versions are available

tests/tsat.nim

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ suite "SAT solver":
305305
let downloadRes = pv.downloadPkgFromUrl(options)[0] #This is just to setup the test. We need a git dir to work on
306306
let repoDir = downloadRes.dir
307307
let downloadMethod = DownloadMethod git
308-
let packageVersions = getPackageMinimalVersionsFromRepo(repoDir, pv[0], downloadRes.version, downloadMethod, options)
308+
let packageVersions = getPackageMinimalVersionsFromRepo(repoDir, pv, downloadRes.version, downloadMethod, options)
309309

310310
#we know these versions are available
311311
let availableVersions = @["0.3.4", "0.3.5", "0.3.6", "0.4.5", "0.4.4"].mapIt(newVersion(it))
@@ -329,15 +329,15 @@ suite "SAT solver":
329329
let pvPrev = parseRequires("nimfp >= 0.3.4")
330330
let downloadResPrev = pvPrev.downloadPkgFromUrl(options)[0]
331331
let repoDirPrev = downloadResPrev.dir
332-
discard getPackageMinimalVersionsFromRepo(repoDirPrev, pvPrev[0], downloadResPrev.version, DownloadMethod.git, options)
332+
discard getPackageMinimalVersionsFromRepo(repoDirPrev, pvPrev, downloadResPrev.version, DownloadMethod.git, options)
333333
check fileExists(repoDirPrev / TaggedVersionsFileName)
334334

335335
let pv = parseRequires("nimfp >= 0.4.4")
336336
let downloadRes = pv.downloadPkgFromUrl(options)[0]
337337
let repoDir = downloadRes.dir
338338
check not fileExists(repoDir / TaggedVersionsFileName)
339339

340-
let packageVersions = getPackageMinimalVersionsFromRepo(repoDir, pv[0], downloadRes.version, DownloadMethod.git, options)
340+
let packageVersions = getPackageMinimalVersionsFromRepo(repoDir, pv, downloadRes.version, DownloadMethod.git, options)
341341
#we know these versions are available
342342
let availableVersions = @["0.4.5", "0.4.4"].mapIt(newVersion(it))
343343
for version in availableVersions:
@@ -363,7 +363,7 @@ suite "SAT solver":
363363
let pvPrev = parseRequires("nimfp >= 0.3.4")
364364
let downloadResPrev = pvPrev.downloadPkgFromUrl(options)[0]
365365
let repoDirPrev = downloadResPrev.dir
366-
discard getPackageMinimalVersionsFromRepo(repoDirPrev, pvPrev[0], downloadResPrev.version, DownloadMethod.git, options)
366+
discard getPackageMinimalVersionsFromRepo(repoDirPrev, pvPrev, downloadResPrev.version, DownloadMethod.git, options)
367367
check not fileExists(repoDirPrev / TaggedVersionsFileName)
368368

369369
check fileExists("nimbledeps" / "pkgcache" / "tagged" / "nimfp.json")

0 commit comments

Comments
 (0)