From c897e51abbee8c718096ff07c857a14d6efdb2d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kr=C3=A6n=20Hansen?= Date: Sun, 1 Feb 2026 13:05:38 +0100 Subject: [PATCH 1/2] Install LLVM / clang-format on CI --- .github/workflows/check.yml | 28 ++++++++++++++++++++++++++++ .github/workflows/release.yml | 4 ++++ 2 files changed, 32 insertions(+) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index e117763e..99fa9365 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -28,6 +28,10 @@ jobs: - uses: actions/setup-node@v6 with: node-version: lts/krypton + - name: Setup clang-format + uses: aminya/setup-cpp@v1 + with: + clang-format: true # Set up JDK and Android SDK only because we need weak-node-api, to build ferric-example and to run the linting # TODO: Remove this once we have a way to run linting without building the native code - name: Set up JDK 17 @@ -67,6 +71,10 @@ jobs: - uses: actions/setup-node@v6 with: node-version: lts/krypton + - name: Setup clang-format + uses: aminya/setup-cpp@v1 + with: + clang-format: true - name: Set up JDK 17 uses: actions/setup-java@v4 with: @@ -96,6 +104,10 @@ jobs: - uses: actions/setup-node@v6 with: node-version: lts/krypton + - name: Setup clang-format + uses: aminya/setup-cpp@v1 + with: + clang-format: true - run: npm ci - run: npm run build - name: Prepare weak-node-api @@ -115,6 +127,10 @@ jobs: - uses: actions/setup-node@v6 with: node-version: lts/krypton + - name: Setup clang-format + uses: aminya/setup-cpp@v1 + with: + clang-format: true - name: Set up JDK 17 uses: actions/setup-java@v3 with: @@ -148,6 +164,10 @@ jobs: - uses: actions/setup-node@v6 with: node-version: lts/krypton + - name: Setup clang-format + uses: aminya/setup-cpp@v1 + with: + clang-format: true - name: Set up JDK 17 uses: actions/setup-java@v3 with: @@ -179,6 +199,10 @@ jobs: - uses: actions/setup-node@v6 with: node-version: lts/krypton + - name: Setup clang-format + uses: aminya/setup-cpp@v1 + with: + clang-format: true - name: Set up JDK 17 uses: actions/setup-java@v4 with: @@ -259,6 +283,10 @@ jobs: - uses: actions/setup-node@v6 with: node-version: lts/krypton + - name: Setup clang-format + uses: aminya/setup-cpp@v1 + with: + clang-format: true - name: Set up JDK 17 uses: actions/setup-java@v3 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e096b011..476f316b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,6 +21,10 @@ jobs: - uses: actions/setup-node@v6 with: node-version: lts/krypton + - name: Setup clang-format + uses: aminya/setup-cpp@v1 + with: + clang-format: true - name: Set up JDK 17 uses: actions/setup-java@v3 with: From 88bcc1bf4bdfb1d4a1923e1c4c7b593ed13a6f56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kr=C3=A6n=20Hansen?= Date: Sun, 1 Feb 2026 13:08:07 +0100 Subject: [PATCH 2/2] Prevent NPM from installing "clang-format" --- package-lock.json | 26 +++++--------------------- package.json | 3 +++ 2 files changed, 8 insertions(+), 21 deletions(-) diff --git a/package-lock.json b/package-lock.json index 78b36270..1042ceff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7266,13 +7266,6 @@ "node": ">=4" } }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "dev": true, - "license": "MIT" - }, "node_modules/async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", @@ -7945,21 +7938,12 @@ } }, "node_modules/clang-format": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.8.0.tgz", - "integrity": "sha512-pK8gzfu55/lHzIpQ1givIbWfn3eXnU7SfxqIwVgnn5jEM6j4ZJYjpFqFs4iSBPNedzRMmfjYjuQhu657WAXHXw==", + "name": "dry-uninstall", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/dry-uninstall/-/dry-uninstall-0.3.0.tgz", + "integrity": "sha512-b8h94RVpETWkVV59x62NsY++79bM7Si6Dxq7a4iVxRcJU3ZJJ4vaiC7wUZwM8WDK0ySRL+i+T/1SMAzbJLejYA==", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "async": "^3.2.3", - "glob": "^7.0.0", - "resolve": "^1.1.6" - }, - "bin": { - "check-clang-format": "bin/check-clang-format.js", - "clang-format": "index.js", - "git-clang-format": "bin/git-clang-format" - } + "license": "MIT" }, "node_modules/cli-cursor": { "version": "3.1.0", diff --git a/package.json b/package.json index 774e27eb..1cfefe97 100644 --- a/package.json +++ b/package.json @@ -76,6 +76,9 @@ "typescript": "^5.8.0", "typescript-eslint": "^8.38.0" }, + "overrides": { + "clang-format": "npm:dry-uninstall" + }, "devEngines": { "runtime": { "name": "node",