From aabf5f1ae68638e3a5a0e09de303b422bd8e1918 Mon Sep 17 00:00:00 2001 From: skovhus Date: Fri, 16 Jan 2026 10:04:27 +0100 Subject: [PATCH 1/2] Update to maintained node version --- .github/workflows/deploy.yml | 6 +++--- .github/workflows/upgrade-tree-sitter.yml | 4 ++-- .github/workflows/verify.yml | 6 +++--- .tool-versions | 3 ++- README.md | 2 +- docs/development-guide.md | 2 +- package.json | 6 +++--- server/package.json | 2 +- 8 files changed, 16 insertions(+), 15 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index b6f5f46bb..402d08aa2 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -20,11 +20,11 @@ jobs: - uses: pnpm/action-setup@v4 with: - version: 9 + version: 10 - uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 22 registry-url: https://registry.npmjs.org/ cache: "pnpm" @@ -35,7 +35,7 @@ jobs: - name: Deploy server run: bash scripts/release-server.sh - + - name: Deploy VS Code extension run: bash scripts/release-client.sh diff --git a/.github/workflows/upgrade-tree-sitter.yml b/.github/workflows/upgrade-tree-sitter.yml index 0517d89a4..625a5133e 100644 --- a/.github/workflows/upgrade-tree-sitter.yml +++ b/.github/workflows/upgrade-tree-sitter.yml @@ -13,11 +13,11 @@ jobs: - uses: pnpm/action-setup@v4 with: - version: 9 + version: 10 - uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 22 cache: "pnpm" - run: pnpm install --frozen-lockfile diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index 1d9672c23..a727a5e27 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -9,7 +9,7 @@ jobs: strategy: matrix: - node-version: [18.x, 20.x] + node-version: [20.x, 22.x] steps: - uses: actions/checkout@v4 @@ -19,7 +19,7 @@ jobs: - uses: pnpm/action-setup@v4 with: - version: 9 + version: 10 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 @@ -34,7 +34,7 @@ jobs: - name: Publish coverage to codecov.io uses: codecov/codecov-action@v5 - if: success() && matrix.node-version == '20.x' + if: success() && matrix.node-version == '22.x' with: token: ${{ secrets.CODECOV_TOKEN }} files: ./codecov.yml diff --git a/.tool-versions b/.tool-versions index 0e9804f10..830930d44 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1 +1,2 @@ -nodejs 18.20.8 +nodejs 22.16.0 +pnpm 10.12.1 diff --git a/README.md b/README.md index fa0c1f540..ee8efb9d1 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ To verify that everything is working: bash-language-server --help ``` -If you encounter installation errors, ensure you have node version 16 or newer (`node --version`). +If you encounter installation errors, ensure you have node version 20 or newer (`node --version`). ### Clients diff --git a/docs/development-guide.md b/docs/development-guide.md index 5204bd189..32540fe1a 100644 --- a/docs/development-guide.md +++ b/docs/development-guide.md @@ -16,7 +16,7 @@ convenience - it proxies to the `package.json` files in the `vscode-client` and This guide presumes you have the following dependencies installed: - [`pnpm`][pnpm]. -- [`node`][node] (v16 or newer) +- [`node`][node] (v20 or newer) ## Initial setup diff --git a/package.json b/package.json index 7930a0702..f1ebbeddd 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ }, "devDependencies": { "@types/jest": "29.5.14", - "@types/node": "18.19.130", + "@types/node": "22.15.29", "@typescript-eslint/eslint-plugin": "7.18.0", "@typescript-eslint/parser": "7.18.0", "cross-spawn": ">=7.0.5", @@ -39,8 +39,8 @@ "@types/vscode": "1.106.1" }, "engines": { - "node": ">=16", - "pnpm": ">=9.x" + "node": ">=20", + "pnpm": ">=10" }, "jest": { "preset": "ts-jest", diff --git a/server/package.json b/server/package.json index 6d5a1a2a3..43a1309b6 100644 --- a/server/package.json +++ b/server/package.json @@ -14,7 +14,7 @@ "url": "https://github.com/bash-lsp/bash-language-server" }, "engines": { - "node": ">=16" + "node": ">=20" }, "dependencies": { "editorconfig": "2.0.1", From 13a26c2e8fc5069e4bcd7faeb9701d9789c1114e Mon Sep 17 00:00:00 2001 From: skovhus Date: Fri, 16 Jan 2026 10:06:57 +0100 Subject: [PATCH 2/2] Update lock file --- pnpm-lock.yaml | 83 ++++++++++++++++++++++++++------------------------ 1 file changed, 44 insertions(+), 39 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7b9ba0712..f79da7f09 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,8 +15,8 @@ importers: specifier: 29.5.14 version: 29.5.14 '@types/node': - specifier: 18.19.130 - version: 18.19.130 + specifier: 22.15.29 + version: 22.15.29 '@typescript-eslint/eslint-plugin': specifier: 7.18.0 version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) @@ -34,7 +34,7 @@ importers: version: 9.1.2(eslint@8.57.1) eslint-plugin-jest: specifier: 28.14.0 - version: 28.14.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(jest@29.7.0(@types/node@18.19.130))(typescript@5.9.3) + version: 28.14.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(jest@29.7.0(@types/node@22.15.29))(typescript@5.9.3) eslint-plugin-prettier: specifier: 4.2.5 version: 4.2.5(eslint-config-prettier@9.1.2(eslint@8.57.1))(eslint@8.57.1)(prettier@2.8.8) @@ -46,13 +46,13 @@ importers: version: 1.21.0(eslint@8.57.1) jest: specifier: 29.7.0 - version: 29.7.0(@types/node@18.19.130) + version: 29.7.0(@types/node@22.15.29) prettier: specifier: 2.8.8 version: 2.8.8 ts-jest: specifier: 29.4.5 - version: 29.4.5(@babel/core@7.22.6)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.22.6))(jest-util@29.7.0)(jest@29.7.0(@types/node@18.19.130))(typescript@5.9.3) + version: 29.4.5(@babel/core@7.22.6)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.22.6))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.15.29))(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -505,8 +505,8 @@ packages: '@types/node@18.19.121': resolution: {integrity: sha512-bHOrbyztmyYIi4f1R0s17QsPs1uyyYnGcXeZoGEd227oZjry0q6XQBQxd82X1I57zEfwO8h9Xo+Kl5gX1d9MwQ==} - '@types/node@18.19.130': - resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==} + '@types/node@22.15.29': + resolution: {integrity: sha512-LNdjOkUDlU1RZb8e1kOIUpN1qQUlzGkEtbVNo53vbrwDg5om6oduhm4SiUaPW5ASTXhAiP0jInWG8Qx9fVlOeQ==} '@types/stack-utils@2.0.1': resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} @@ -1816,6 +1816,9 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + update-browserslist-db@1.0.11: resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} hasBin: true @@ -2189,7 +2192,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 18.19.130 + '@types/node': 22.15.29 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -2202,14 +2205,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.130 + '@types/node': 22.15.29 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.8.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@18.19.130) + jest-config: 29.7.0(@types/node@22.15.29) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -2234,7 +2237,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.130 + '@types/node': 22.15.29 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -2252,7 +2255,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 18.19.130 + '@types/node': 22.15.29 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -2274,7 +2277,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.18 - '@types/node': 18.19.130 + '@types/node': 22.15.29 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -2344,7 +2347,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.19.130 + '@types/node': 22.15.29 '@types/yargs': 17.0.24 chalk: 4.1.2 @@ -2420,7 +2423,7 @@ snapshots: '@types/graceful-fs@4.1.6': dependencies: - '@types/node': 18.19.130 + '@types/node': 22.15.29 '@types/istanbul-lib-coverage@2.0.4': {} @@ -2446,9 +2449,9 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@18.19.130': + '@types/node@22.15.29': dependencies: - undici-types: 5.26.5 + undici-types: 6.21.0 '@types/stack-utils@2.0.1': {} @@ -2737,13 +2740,13 @@ snapshots: convert-source-map@2.0.0: {} - create-jest@29.7.0(@types/node@18.19.130): + create-jest@29.7.0(@types/node@22.15.29): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@18.19.130) + jest-config: 29.7.0(@types/node@22.15.29) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -2832,13 +2835,13 @@ snapshots: dependencies: eslint: 8.57.1 - eslint-plugin-jest@28.14.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(jest@29.7.0(@types/node@18.19.130))(typescript@5.9.3): + eslint-plugin-jest@28.14.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(jest@29.7.0(@types/node@22.15.29))(typescript@5.9.3): dependencies: '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.9.3) eslint: 8.57.1 optionalDependencies: '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) - jest: 29.7.0(@types/node@18.19.130) + jest: 29.7.0(@types/node@22.15.29) transitivePeerDependencies: - supports-color - typescript @@ -3214,7 +3217,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.130 + '@types/node': 22.15.29 chalk: 4.1.2 co: 4.6.0 dedent: 1.2.0 @@ -3234,16 +3237,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@18.19.130): + jest-cli@29.7.0(@types/node@22.15.29): dependencies: '@jest/core': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@18.19.130) + create-jest: 29.7.0(@types/node@22.15.29) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@18.19.130) + jest-config: 29.7.0(@types/node@22.15.29) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -3253,7 +3256,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@18.19.130): + jest-config@29.7.0(@types/node@22.15.29): dependencies: '@babel/core': 7.22.6 '@jest/test-sequencer': 29.7.0 @@ -3278,7 +3281,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 18.19.130 + '@types/node': 22.15.29 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -3307,7 +3310,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.130 + '@types/node': 22.15.29 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -3317,7 +3320,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.6 - '@types/node': 18.19.130 + '@types/node': 22.15.29 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -3356,7 +3359,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 18.19.130 + '@types/node': 22.15.29 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -3391,7 +3394,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.130 + '@types/node': 22.15.29 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -3419,7 +3422,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.130 + '@types/node': 22.15.29 chalk: 4.1.2 cjs-module-lexer: 1.2.3 collect-v8-coverage: 1.0.1 @@ -3465,7 +3468,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 18.19.130 + '@types/node': 22.15.29 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -3484,7 +3487,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.130 + '@types/node': 22.15.29 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -3493,17 +3496,17 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 18.19.130 + '@types/node': 22.15.29 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@18.19.130): + jest@29.7.0(@types/node@22.15.29): dependencies: '@jest/core': 29.7.0 '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@18.19.130) + jest-cli: 29.7.0(@types/node@22.15.29) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -3837,12 +3840,12 @@ snapshots: dependencies: typescript: 5.9.3 - ts-jest@29.4.5(@babel/core@7.22.6)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.22.6))(jest-util@29.7.0)(jest@29.7.0(@types/node@18.19.130))(typescript@5.9.3): + ts-jest@29.4.5(@babel/core@7.22.6)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.22.6))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.15.29))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 handlebars: 4.7.8 - jest: 29.7.0(@types/node@18.19.130) + jest: 29.7.0(@types/node@22.15.29) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 @@ -3880,6 +3883,8 @@ snapshots: undici-types@5.26.5: {} + undici-types@6.21.0: {} + update-browserslist-db@1.0.11(browserslist@4.21.9): dependencies: browserslist: 4.21.9