From 92d288c8648a84c8ad7088103cdc26a8aece93de Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Wed, 2 Jul 2025 14:33:32 +0200 Subject: [PATCH] nixVersions.git.tests.srcVersion: fix The version is not an exact match, and that's expected, because we can't really update .version for each commit on master. --- pkgs/tools/package-management/nix/tests.nix | 25 +++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/pkgs/tools/package-management/nix/tests.nix b/pkgs/tools/package-management/nix/tests.nix index 662cfe7d194c..c9c7ddf2f0c0 100644 --- a/pkgs/tools/package-management/nix/tests.nix +++ b/pkgs/tools/package-management/nix/tests.nix @@ -23,10 +23,27 @@ srcVersion=$(cat ${src}/.version) echo "Version in nix nix expression: $version" echo "Version in nix.src: $srcVersion" - if [ "$version" != "$srcVersion" ]; then - echo "Version mismatch!" - exit 1 - fi + ${ + if self_attribute_name == "git" then + # Major and minor must match, patch can be missing or have a suffix like a commit hash. That's all fine. + '' + majorMinor() { + echo "$1" | sed -n -e 's/\([0-9]*\.[0-9]*\).*/\1/p' + } + if (set -x; [ "$(majorMinor "$version")" != "$(majorMinor "$srcVersion")" ]); then + echo "Version mismatch!" + exit 1 + fi + '' + else + # exact match + '' + if [ "$version" != "$srcVersion" ]; then + echo "Version mismatch!" + exit 1 + fi + '' + } touch $out '';