From ac8dacb4f63a4b4c9712207a9ca59d3c2218e74a Mon Sep 17 00:00:00 2001 From: Thibault Gagnaux Date: Sat, 15 Mar 2025 11:32:28 +0100 Subject: [PATCH] sonarlint-ls: update 3.14.1 -> 3.17.0 and fix test Co-authored-by: Arne Keller --- pkgs/by-name/so/sonarlint-ls/package.nix | 100 ++++++++---------- .../sonar-analyzers-versions.patch | 17 --- 2 files changed, 44 insertions(+), 73 deletions(-) delete mode 100644 pkgs/by-name/so/sonarlint-ls/sonar-analyzers-versions.patch diff --git a/pkgs/by-name/so/sonarlint-ls/package.nix b/pkgs/by-name/so/sonarlint-ls/package.nix index 50319f1d8e78..eb3699fa50d6 100644 --- a/pkgs/by-name/so/sonarlint-ls/package.nix +++ b/pkgs/by-name/so/sonarlint-ls/package.nix @@ -6,34 +6,27 @@ jdk17, makeWrapper, writeShellApplication, - runCommand, - sonarlint-ls, curl, pcre, common-updater-scripts, jq, gnused, + versionCheckHook, }: maven.buildMavenPackage rec { pname = "sonarlint-ls"; - version = "3.14.1.75775"; + version = "3.17.0.75948"; src = fetchFromGitHub { owner = "SonarSource"; repo = "sonarlint-language-server"; rev = version; - hash = "sha256-QXBSdXpkhqcvfjihcWwy4oCjTMmbAJRZG1T66sa8T4U="; + hash = "sha256-9ZZPAkfYnHYaPFGo/WfOhUIZ+Aq7SNsVmyXgDwe68gk="; }; - # Replaces unavailable versions with available ones in maven central. Can be - # removed again if - # https://github.com/SonarSource/sonarlint-language-server/pull/427 is - # merged. - patches = [ ./sonar-analyzers-versions.patch ]; - mvnJdk = jdk17; - mvnHash = "sha256-SKkOf3f9Ze3Rm6i2uYbFkvSnnEySARvaoiAS1e2kFi0="; + mvnHash = "sha256-tsYkp6Zr9gCgb0l6vQViSB7zcbf6JX+JwO4ZYqeG52c="; # Disables failing tests which either need network access or are flaky. mvnParameters = lib.escapeShellArgs [ @@ -56,7 +49,6 @@ maven.buildMavenPackage rec { makeWrapper ${jre_headless}/bin/java $out/bin/sonarlint-ls \ --add-flags "-jar $out/share/sonarlint-ls.jar" \ - --add-flags "-stdio" \ --add-flags "-analyzers $(ls -1 $out/share/plugins | tr '\n' ' ')" runHook postInstall @@ -64,51 +56,47 @@ maven.buildMavenPackage rec { nativeBuildInputs = [ makeWrapper ]; - passthru = { - tests = { - sonarlint-ls-starts-successfully = runCommand "${pname}-test" { } '' - ${sonarlint-ls}/bin/sonarlint-ls > $out - cat $out | grep "SonarLint backend started" + nativeInstallCheckInputs = [ versionCheckHook ]; + doInstallCheck = true; + preVersionCheck = "export version=${lib.versions.majorMinor version}"; + versionCheckProgramArg = "-V"; + + passthru.updateScript = + let + pkgFile = builtins.toString ./package.nix; + in + lib.getExe (writeShellApplication { + name = "update-${pname}"; + runtimeInputs = [ + curl + pcre + common-updater-scripts + jq + gnused + ]; + text = '' + if [ -z "''${GITHUB_TOKEN:-}" ]; then + echo "no GITHUB_TOKEN provided - you could meet API request limiting" >&2 + fi + + LATEST_TAG=$(curl -H "Accept: application/vnd.github+json" \ + ''${GITHUB_TOKEN:+-H "Authorization: bearer $GITHUB_TOKEN"} \ + -Lsf https://api.github.com/repos/${src.owner}/${src.repo}/tags | \ + jq -r '[.[] | select(.name | test("^[0-9]"))] | sort_by(.name | split(".") | + map(tonumber)) | reverse | .[0].name') + update-source-version ${pname} "$LATEST_TAG" + sed -i '0,/mvnHash *= *"[^"]*"/{s/mvnHash = "[^"]*"/mvnHash = ""/}' ${pkgFile} + + echo -e "\nFetching all mvn dependencies to calculate the mvnHash. This may take a while ..." + nix-build -A ${pname}.fetchedMavenDeps 2> ${pname}-stderr.log || true + + NEW_MVN_HASH=$(grep "got:" ${pname}-stderr.log | awk '{print ''$2}') + rm ${pname}-stderr.log + # escaping double quotes looks ugly but is needed for variable substitution + # use # instead of / as separator because the sha256 might contain the / character + sed -i "0,/mvnHash *= *\"[^\"]*\"/{s#mvnHash = \"[^\"]*\"#mvnHash = \"$NEW_MVN_HASH\"#}" ${pkgFile} ''; - }; - - updateScript = - let - pkgFile = builtins.toString ./package.nix; - in - lib.getExe (writeShellApplication { - name = "update-${pname}"; - runtimeInputs = [ - curl - pcre - common-updater-scripts - jq - gnused - ]; - text = '' - if [ -z "''${GITHUB_TOKEN:-}" ]; then - echo "no GITHUB_TOKEN provided - you could meet API request limiting" >&2 - fi - - LATEST_TAG=$(curl -H "Accept: application/vnd.github+json" \ - ''${GITHUB_TOKEN:+-H "Authorization: bearer $GITHUB_TOKEN"} \ - -Lsf https://api.github.com/repos/${src.owner}/${src.repo}/tags | \ - jq -r '[.[] | select(.name | test("^[0-9]"))] | sort_by(.name | split(".") | - map(tonumber)) | reverse | .[0].name') - update-source-version ${pname} "$LATEST_TAG" - sed -i '0,/mvnHash *= *"[^"]*"/{s/mvnHash = "[^"]*"/mvnHash = ""/}' ${pkgFile} - - echo -e "\nFetching all mvn dependencies to calculate the mvnHash. This may take a while ..." - nix-build -A ${pname}.fetchedMavenDeps 2> ${pname}-stderr.log || true - - NEW_MVN_HASH=$(grep "got:" ${pname}-stderr.log | awk '{print ''$2}') - rm ${pname}-stderr.log - # escaping double quotes looks ugly but is needed for variable substitution - # use # instead of / as separator because the sha256 might contain the / character - sed -i "0,/mvnHash *= *\"[^\"]*\"/{s#mvnHash = \"[^\"]*\"#mvnHash = \"$NEW_MVN_HASH\"#}" ${pkgFile} - ''; - }); - }; + }); meta = { description = "Sonarlint language server"; diff --git a/pkgs/by-name/so/sonarlint-ls/sonar-analyzers-versions.patch b/pkgs/by-name/so/sonarlint-ls/sonar-analyzers-versions.patch deleted file mode 100644 index 75eb412f44d6..000000000000 --- a/pkgs/by-name/so/sonarlint-ls/sonar-analyzers-versions.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/pom.xml b/pom.xml -index c020fd1..fd4146b 100644 ---- a/pom.xml -+++ b/pom.xml -@@ -34,10 +34,10 @@ - 4.17.0.14845 - 3.16.0.5274 - 2.10.0.4108 -- 2.18.0.4812 -+ 2.18.0.4866 - 1.15.0.4655 - 1.27.0.9518 -- 10.2.0.103721 -+ 10.2.0.105762 - 1.25.0.100242 - sonarlint-language-server -