cmake-language-server: fix and cleanup (#437665)

authored by Kira Bruneau and committed by GitHub 4eda23ac 909eac5a

+25 -41
+25 -19
pkgs/development/tools/misc/cmake-language-server/default.nix
··· 1 { 2 lib, 3 buildPythonApplication, 4 - pythonOlder, 5 fetchFromGitHub, 6 pdm-backend, 7 cmake-format, 8 pygls, 9 cmake, 10 pytest-datadir, 11 pytestCheckHook, 12 }: 13 14 buildPythonApplication rec { 15 pname = "cmake-language-server"; 16 version = "0.1.11"; 17 - format = "pyproject"; 18 - 19 - disabled = pythonOlder "3.8"; 20 21 src = fetchFromGitHub { 22 owner = "regen100"; ··· 25 hash = "sha256-QxknG5NFYky6ZSjiIugLfHT4gXsyTBVbMMeULhQsmdk="; 26 }; 27 28 - patches = [ 29 - # Test timeouts occasionally cause the build to fail 30 - ./disable-test-timeouts.patch 31 - ]; 32 33 - nativeBuildInputs = [ 34 pdm-backend 35 ]; 36 37 - propagatedBuildInputs = [ 38 cmake-format 39 pygls 40 ]; 41 42 nativeCheckInputs = [ 43 cmake 44 cmake-format 45 pytest-datadir 46 pytestCheckHook 47 ]; 48 49 # version.py generated by pdm, no idea why it's not present in test phase 50 # https://github.com/regen100/cmake-language-server/blob/v0.1.11/pyproject.toml#L35-L36 ··· 52 echo "__version__ = \"$PDM_BUILD_SCM_VERSION\"" > cmake_language_server/version.py 53 ''; 54 55 - dontUseCmakeConfigure = true; 56 - 57 - pythonImportsCheck = [ 58 - "cmake_language_server" 59 - ]; 60 - 61 - meta = with lib; { 62 description = "CMake LSP Implementation"; 63 homepage = "https://github.com/regen100/cmake-language-server"; 64 changelog = "https://github.com/regen100/cmake-language-server/releases/tag/${src.tag}"; 65 - license = licenses.mit; 66 - maintainers = with maintainers; [ kira-bruneau ]; 67 mainProgram = "cmake-language-server"; 68 }; 69 }
··· 1 { 2 lib, 3 buildPythonApplication, 4 fetchFromGitHub, 5 + 6 + # build-system 7 pdm-backend, 8 + 9 + # dependencies 10 cmake-format, 11 pygls, 12 + 13 + # tests 14 cmake, 15 pytest-datadir, 16 pytestCheckHook, 17 + versionCheckHook, 18 }: 19 20 buildPythonApplication rec { 21 pname = "cmake-language-server"; 22 version = "0.1.11"; 23 + pyproject = true; 24 25 src = fetchFromGitHub { 26 owner = "regen100"; ··· 29 hash = "sha256-QxknG5NFYky6ZSjiIugLfHT4gXsyTBVbMMeULhQsmdk="; 30 }; 31 32 + # Test timeouts occasionally cause the build to fail 33 + postPatch = '' 34 + substituteInPlace tests/test_server.py \ 35 + --replace-fail \ 36 + "CALL_TIMEOUT = 2" \ 37 + "CALL_TIMEOUT = 10" 38 + ''; 39 40 + build-system = [ 41 pdm-backend 42 ]; 43 + dontUseCmakeConfigure = true; 44 45 + dependencies = [ 46 cmake-format 47 pygls 48 ]; 49 50 + pythonImportsCheck = [ "cmake_language_server" ]; 51 + 52 nativeCheckInputs = [ 53 cmake 54 cmake-format 55 pytest-datadir 56 pytestCheckHook 57 + versionCheckHook 58 ]; 59 + versionCheckProgramArg = "--version"; 60 61 # version.py generated by pdm, no idea why it's not present in test phase 62 # https://github.com/regen100/cmake-language-server/blob/v0.1.11/pyproject.toml#L35-L36 ··· 64 echo "__version__ = \"$PDM_BUILD_SCM_VERSION\"" > cmake_language_server/version.py 65 ''; 66 67 + meta = { 68 description = "CMake LSP Implementation"; 69 homepage = "https://github.com/regen100/cmake-language-server"; 70 changelog = "https://github.com/regen100/cmake-language-server/releases/tag/${src.tag}"; 71 + license = lib.licenses.mit; 72 + maintainers = with lib.maintainers; [ kira-bruneau ]; 73 mainProgram = "cmake-language-server"; 74 }; 75 }
-22
pkgs/development/tools/misc/cmake-language-server/disable-test-timeouts.patch
··· 1 - diff --git a/tests/test_server.py b/tests/test_server.py 2 - index e6cfe6e..3a3ee6a 100644 3 - --- a/tests/test_server.py 4 - +++ b/tests/test_server.py 5 - @@ -31,7 +31,7 @@ from pygls.server import LanguageServer 6 - 7 - from cmake_language_server.server import CMakeLanguageServer 8 - 9 - -CALL_TIMEOUT = 2 10 - +CALL_TIMEOUT = None 11 - 12 - 13 - def _init(client: LanguageServer, root: Path) -> None: 14 - @@ -115,7 +115,7 @@ def test_workspace_did_change_configuration( 15 - ) 16 - 17 - start = time.monotonic() 18 - - while server._api is old_api and (time.monotonic() - start) < CALL_TIMEOUT: 19 - + while server._api is old_api: 20 - time.sleep(0.1) 21 - 22 - assert server._api is not None
···