From cf6353d16a6342e44f479c9015a3fc51e7f68c47 Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Thu, 9 Jan 2025 18:30:09 -0700 Subject: [PATCH 1/3] show short sha id's for each chosen versions --- src/nimblepkg/deps.nim | 10 +++++++--- src/nimblepkg/sha1hashes.nim | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/nimblepkg/deps.nim b/src/nimblepkg/deps.nim index cb970800..b0970e7d 100644 --- a/src/nimblepkg/deps.nim +++ b/src/nimblepkg/deps.nim @@ -1,5 +1,5 @@ import tables, strformat, sequtils, algorithm, cli -import packageinfotypes, developfile, packageinfo, version +import packageinfotypes, developfile, packageinfo, sha1hashes, version type DependencyNode = ref object of RootObj @@ -42,10 +42,11 @@ proc printDepsHumanReadable*(pkgInfo: PackageInfo, ## if levelInfos.len() == 0: displayLineReset() - displayInfo("Dependency tree format: {PackageName} {Requirements} (@{Resolved Version})") + displayInfo("Dependency tree format: {PackageName} {Requirements} (@{Resolved Version} commit {short-hash-id})") displayFormatted(Hint, "\n") displayFormatted(Message, pkgInfo.basicInfo.name, " ") displayFormatted(Success, "(@", $pkgInfo.basicInfo.version, ")") + displayFormatted(Details, " [", pkgInfo.metaData.vcsRevision.shortId(), "]") var requires: seq[(string, VersionRange, bool, PackageInfo)] for idx, (name, ver) in pkgInfo.requires.sorted(): @@ -78,6 +79,7 @@ proc printDepsHumanReadable*(pkgInfo: PackageInfo, displayFormatted(Hint, " ") if found: displayFormatted(Success, fmt"(@{depPkgInfo.basicInfo.version})") + displayFormatted(Details, " [", pkgInfo.metaData.vcsRevision.shortId(), "]") if errors.contains(packageName): let errMsg = getValidationErrorMessage(packageName, errors.getOrDefault packageName) displayFormatted(Error, fmt" - error: {errMsg}") @@ -100,11 +102,12 @@ proc printDepsHumanReadableInverted*(pkgInfo: PackageInfo, isRoot = pkgs.len() == 0 if isRoot: - displayInfo("Dependency tree format: {PackageName} (@{Resolved Version})") + displayInfo("Dependency tree format: {PackageName} (@{Resolved Version} commit {short-hash-id})") displayInfo("Dependency tree format: {Source Package} {Source Requirements}") displayFormatted(Hint, "\n") displayFormatted(Message, pkgInfo.basicInfo.name, " ") displayFormatted(Success, "(@", $pkgInfo.basicInfo.version, ")") + displayFormatted(Details, " [#", pkgInfo.metaData.vcsRevision.shortId(), "]") displayFormatted(Hint, "\n") for (name, ver) in pkgInfo.requires: @@ -130,6 +133,7 @@ proc printDepsHumanReadableInverted*(pkgInfo: PackageInfo, displayFormatted(Hint, "└── ") displayFormatted(Message, name, " ") displayFormatted(Success, "(@", $pkgInfo.basicInfo.version, ")") + displayFormatted(Details, " [", pkgInfo.metaData.vcsRevision.shortId(), "]") displayFormatted(Hint, "\n") # echo "name: ", pkg, " info: ", $info # for idx, (source, ver) in info.pairs().toSeq(): diff --git a/src/nimblepkg/sha1hashes.nim b/src/nimblepkg/sha1hashes.nim index 432097b8..1f794838 100644 --- a/src/nimblepkg/sha1hashes.nim +++ b/src/nimblepkg/sha1hashes.nim @@ -21,6 +21,7 @@ template `$`*(sha1Hash: Sha1Hash): string = sha1Hash.hashValue template `%`*(sha1Hash: Sha1Hash): JsonNode = %sha1Hash.hashValue template `==`*(lhs, rhs: Sha1Hash): bool = lhs.hashValue == rhs.hashValue template hash*(sha1Hash: Sha1Hash): Hash = sha1Hash.hashValue.hash +template shortId*(sha1Hash: Sha1Hash): string = sha1Hash.hashValue[0..8] proc invalidSha1Hash(value: string): ref InvalidSha1HashError = ## Creates a new exception object for an invalid sha1 hash value. From d33affd9b66a05ec042d73578bef52495b4c3989 Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Thu, 9 Jan 2025 20:19:55 -0700 Subject: [PATCH 2/3] adding vcs and src checksum to deps output --- src/nimblepkg/deps.nim | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/nimblepkg/deps.nim b/src/nimblepkg/deps.nim index b0970e7d..2a9ce794 100644 --- a/src/nimblepkg/deps.nim +++ b/src/nimblepkg/deps.nim @@ -46,7 +46,8 @@ proc printDepsHumanReadable*(pkgInfo: PackageInfo, displayFormatted(Hint, "\n") displayFormatted(Message, pkgInfo.basicInfo.name, " ") displayFormatted(Success, "(@", $pkgInfo.basicInfo.version, ")") - displayFormatted(Details, " [", pkgInfo.metaData.vcsRevision.shortId(), "]") + displayFormatted(Details, " [vcs: ", pkgInfo.metaData.vcsRevision.shortId(), + " checksum: ", pkgInfo.basicInfo.checksum.shortId(), "]") var requires: seq[(string, VersionRange, bool, PackageInfo)] for idx, (name, ver) in pkgInfo.requires.sorted(): @@ -79,7 +80,8 @@ proc printDepsHumanReadable*(pkgInfo: PackageInfo, displayFormatted(Hint, " ") if found: displayFormatted(Success, fmt"(@{depPkgInfo.basicInfo.version})") - displayFormatted(Details, " [", pkgInfo.metaData.vcsRevision.shortId(), "]") + displayFormatted(Details, " [vcs: ", depPkgInfo.metaData.vcsRevision.shortId(), + " checksum: ", depPkgInfo.basicInfo.checksum.shortId(), "]") if errors.contains(packageName): let errMsg = getValidationErrorMessage(packageName, errors.getOrDefault packageName) displayFormatted(Error, fmt" - error: {errMsg}") @@ -107,7 +109,8 @@ proc printDepsHumanReadableInverted*(pkgInfo: PackageInfo, displayFormatted(Hint, "\n") displayFormatted(Message, pkgInfo.basicInfo.name, " ") displayFormatted(Success, "(@", $pkgInfo.basicInfo.version, ")") - displayFormatted(Details, " [#", pkgInfo.metaData.vcsRevision.shortId(), "]") + displayFormatted(Details, " [vcs: ", pkgInfo.metaData.vcsRevision.shortId(), + " checksum: ", pkgInfo.basicInfo.checksum.shortId(), "]") displayFormatted(Hint, "\n") for (name, ver) in pkgInfo.requires: @@ -131,9 +134,7 @@ proc printDepsHumanReadableInverted*(pkgInfo: PackageInfo, displayFormatted(Hint, "├── ") else: displayFormatted(Hint, "└── ") - displayFormatted(Message, name, " ") - displayFormatted(Success, "(@", $pkgInfo.basicInfo.version, ")") - displayFormatted(Details, " [", pkgInfo.metaData.vcsRevision.shortId(), "]") + displayFormatted(Message, name) displayFormatted(Hint, "\n") # echo "name: ", pkg, " info: ", $info # for idx, (source, ver) in info.pairs().toSeq(): From 480df1d2b48209530934c2e29b3460a33209995f Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Sat, 18 Jan 2025 21:28:42 -0700 Subject: [PATCH 3/3] change tests default output --- tests/testscommon.nim | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/testscommon.nim b/tests/testscommon.nim index 09ea1d2d..0aef7ed4 100644 --- a/tests/testscommon.nim +++ b/tests/testscommon.nim @@ -6,6 +6,7 @@ import sequtils, strutils, strformat, os, osproc, sugar, unittest, macros import pkg/checksums/sha1 +import nimblepkg/cli from nimblepkg/common import cd, nimblePackagesDirName, ProcessOutput from nimblepkg/developfile import developFileVersion @@ -70,7 +71,8 @@ template verify*(res: (string, int)) = check r[1] == QuitSuccess proc processOutput*(output: string): seq[string] = - output.strip.splitLines().filter( + checkpoint(output) + result = output.strip.splitLines().filter( (x: string) => ( x.len > 0 and "Using env var NIM_LIB_PREFIX" notin x @@ -207,6 +209,9 @@ proc writeDevelopFile*(path: string, includes: seq[string], # Set env var to propagate nimble binary path putEnv("NIMBLE_TEST_BINARY_PATH", nimblePath) +setVerbosity(MediumPriority) +setShowColor(false) + # Always recompile. block: # Verbose name is used for exit code so assert is clearer