From 90d558abd83cd02103ca8e7c1f1973e9e0f90f50 Mon Sep 17 00:00:00 2001 From: Kenichi Kamiya Date: Mon, 21 Apr 2025 23:27:15 +0900 Subject: [PATCH 1/3] crystalline: add updateScript --- .../language-servers/crystalline/default.nix | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/pkgs/development/tools/language-servers/crystalline/default.nix b/pkgs/development/tools/language-servers/crystalline/default.nix index ee347a86788ce..314520bea4cf5 100644 --- a/pkgs/development/tools/language-servers/crystalline/default.nix +++ b/pkgs/development/tools/language-servers/crystalline/default.nix @@ -5,12 +5,17 @@ llvmPackages, openssl, makeWrapper, + _experimental-update-script-combinators, + crystal2nix, + runCommand, + writeShellScript, + gitUpdater, }: let version = "0.15.0"; in -crystal.buildCrystalPackage { +crystal.buildCrystalPackage rec { pname = "crystalline"; inherit version; @@ -47,6 +52,30 @@ crystal.buildCrystalPackage { wrapProgram "$out/bin/crystalline" --prefix PATH : '${lib.makeBinPath [ llvmPackages.llvm.dev ]}' ''; + passthru = { + updateScript = _experimental-update-script-combinators.sequence [ + (gitUpdater { rev-prefix = "v"; }) + (_experimental-update-script-combinators.copyAttrOutputToFile "crystalline.shardLock" "${builtins.toString ./.}/shard.lock") + { + command = [ + (writeShellScript "update-lock" "cd $1; ${lib.getExe crystal2nix}") + ./. + ]; + supportedFeatures = [ "silent" ]; + } + { + command = [ + "rm" + "${builtins.toString ./.}/shard.lock" + ]; + supportedFeatures = [ "silent" ]; + } + ]; + shardLock = runCommand "shard.lock" { inherit src; } '' + cp $src/shard.lock $out + ''; + }; + meta = { description = "Language Server Protocol implementation for Crystal"; mainProgram = "crystalline"; From 3a7541cf1eaee3453bc5bbaa88e8d4a87e02adcd Mon Sep 17 00:00:00 2001 From: Kenichi Kamiya Date: Mon, 21 Apr 2025 23:35:51 +0900 Subject: [PATCH 2/3] crystalline: 0.15.0 -> 0.17.1 Diff: https://github.com/elbywan/crystalline/compare/v0.15.0...v0.17.1 --- .../tools/language-servers/crystalline/default.nix | 6 ++++-- .../tools/language-servers/crystalline/shards.nix | 5 ----- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/pkgs/development/tools/language-servers/crystalline/default.nix b/pkgs/development/tools/language-servers/crystalline/default.nix index 314520bea4cf5..da09b48bf735e 100644 --- a/pkgs/development/tools/language-servers/crystalline/default.nix +++ b/pkgs/development/tools/language-servers/crystalline/default.nix @@ -4,6 +4,7 @@ fetchFromGitHub, llvmPackages, openssl, + shards, makeWrapper, _experimental-update-script-combinators, crystal2nix, @@ -13,7 +14,7 @@ }: let - version = "0.15.0"; + version = "0.17.1"; in crystal.buildCrystalPackage rec { pname = "crystalline"; @@ -23,7 +24,7 @@ crystal.buildCrystalPackage rec { owner = "elbywan"; repo = "crystalline"; rev = "v${version}"; - hash = "sha256-6ZAogEuOJH1QQ6NSJ+8KZUSFSgQAcvd4U9vWNAGix/M="; + hash = "sha256-SIfInDY6KhEwEPZckgobOrpKXBDDd0KhQt/IjdGBhWo="; }; format = "crystal"; @@ -33,6 +34,7 @@ crystal.buildCrystalPackage rec { llvmPackages.llvm openssl makeWrapper + shards ]; doCheck = false; diff --git a/pkgs/development/tools/language-servers/crystalline/shards.nix b/pkgs/development/tools/language-servers/crystalline/shards.nix index 2e53527fd0b86..562ce68701015 100644 --- a/pkgs/development/tools/language-servers/crystalline/shards.nix +++ b/pkgs/development/tools/language-servers/crystalline/shards.nix @@ -19,9 +19,4 @@ rev = "e448ce83486f99ef016c311e10ec0cac805cded3"; sha256 = "13yp7805xpd605jpfpb3srqb0psy25w7n6x9mpkcyvzhqmpnpfyq"; }; - version_from_shard = { - url = "https://github.com/hugopl/version_from_shard.git"; - rev = "v1.2.5"; - sha256 = "0xizj0q4rd541rwjbx04cjifc2gfx4l5v6q2y7gmd0ndjmkgb8ik"; - }; } From 3c3ff53fbcd76d089031c9b7ec325be049ca8f7d Mon Sep 17 00:00:00 2001 From: Kenichi Kamiya Date: Tue, 22 Apr 2025 00:03:33 +0900 Subject: [PATCH 3/3] crystalline: add version test When enabled doInstallCheck, it causes following error ``` stdenv-linux/setup: line 1763 "unary operator expected" ``` --- .../tools/language-servers/crystalline/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/development/tools/language-servers/crystalline/default.nix b/pkgs/development/tools/language-servers/crystalline/default.nix index da09b48bf735e..dee3a3f7de2af 100644 --- a/pkgs/development/tools/language-servers/crystalline/default.nix +++ b/pkgs/development/tools/language-servers/crystalline/default.nix @@ -11,6 +11,8 @@ runCommand, writeShellScript, gitUpdater, + testers, + crystalline, }: let @@ -76,6 +78,11 @@ crystal.buildCrystalPackage rec { shardLock = runCommand "shard.lock" { inherit src; } '' cp $src/shard.lock $out ''; + + # Since doInstallCheck causes another test error, versionCheckHook is avoided. + tests.version = testers.testVersion { + package = crystalline; + }; }; meta = {