From a521ba20a9813d753a702d11008ee584cd1941a5 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Sat, 21 Jun 2025 08:56:46 +0100 Subject: [PATCH 1/7] fix: binary mapping --- .changeset/twenty-sheep-mix.md | 5 +++++ .github/workflows/release.yml | 2 +- packages/@biomejs/cli-darwin-arm64/package.json | 3 +++ packages/@biomejs/cli-darwin-x64/package.json | 3 +++ packages/@biomejs/cli-linux-arm64-musl/package.json | 3 +++ packages/@biomejs/cli-linux-arm64/package.json | 3 +++ packages/@biomejs/cli-linux-x64-musl/package.json | 3 +++ packages/@biomejs/cli-linux-x64/package.json | 3 +++ packages/@biomejs/cli-win32-arm64/package.json | 3 +++ packages/@biomejs/cli-win32-x64/package.json | 3 +++ 10 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 .changeset/twenty-sheep-mix.md diff --git a/.changeset/twenty-sheep-mix.md b/.changeset/twenty-sheep-mix.md new file mode 100644 index 000000000000..29e033b16e71 --- /dev/null +++ b/.changeset/twenty-sheep-mix.md @@ -0,0 +1,5 @@ +--- +"@biomejs/biome": patch +--- + +Fixed an issue where the binary wasn't correctly mapped. diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3bc185a5c6b9..cf0bb74babc6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -342,7 +342,7 @@ jobs: git restore packages/@biomejs/wasm-nodejs/package.json git restore packages/@biomejs/wasm-web/package.json - - name: Copy binaries + - name: Generate packages run: node packages/@biomejs/biome/scripts/copy-binaries.mjs - name: Publish npm packages as latest diff --git a/packages/@biomejs/cli-darwin-arm64/package.json b/packages/@biomejs/cli-darwin-arm64/package.json index 875f08a29d37..fea94b655c49 100644 --- a/packages/@biomejs/cli-darwin-arm64/package.json +++ b/packages/@biomejs/cli-darwin-arm64/package.json @@ -11,6 +11,9 @@ "node": ">=14.21.3" }, "homepage": "https://biomejs.dev", + "bin": { + "biome": "bin/biome" + }, "os": [ "darwin" ], diff --git a/packages/@biomejs/cli-darwin-x64/package.json b/packages/@biomejs/cli-darwin-x64/package.json index dc37abae17e6..3af4e25fdcbd 100644 --- a/packages/@biomejs/cli-darwin-x64/package.json +++ b/packages/@biomejs/cli-darwin-x64/package.json @@ -11,6 +11,9 @@ "node": ">=14.21.3" }, "homepage": "https://biomejs.dev", + "bin": { + "biome": "bin/biome" + }, "os": [ "darwin" ], diff --git a/packages/@biomejs/cli-linux-arm64-musl/package.json b/packages/@biomejs/cli-linux-arm64-musl/package.json index 04eda399709a..5d27e1bf2c46 100644 --- a/packages/@biomejs/cli-linux-arm64-musl/package.json +++ b/packages/@biomejs/cli-linux-arm64-musl/package.json @@ -11,6 +11,9 @@ "node": ">=14.21.3" }, "homepage": "https://biomejs.dev", + "bin": { + "biome": "bin/biome" + }, "os": [ "linux" ], diff --git a/packages/@biomejs/cli-linux-arm64/package.json b/packages/@biomejs/cli-linux-arm64/package.json index 87e1716d78ee..43b17df73baf 100644 --- a/packages/@biomejs/cli-linux-arm64/package.json +++ b/packages/@biomejs/cli-linux-arm64/package.json @@ -11,6 +11,9 @@ "node": ">=14.21.3" }, "homepage": "https://biomejs.dev", + "bin": { + "biome": "bin/biome" + }, "os": [ "linux" ], diff --git a/packages/@biomejs/cli-linux-x64-musl/package.json b/packages/@biomejs/cli-linux-x64-musl/package.json index ed3fb641af79..f7c626e2bb6c 100644 --- a/packages/@biomejs/cli-linux-x64-musl/package.json +++ b/packages/@biomejs/cli-linux-x64-musl/package.json @@ -11,6 +11,9 @@ "node": ">=14.21.3" }, "homepage": "https://biomejs.dev", + "bin": { + "biome": "bin/biome" + }, "os": [ "linux" ], diff --git a/packages/@biomejs/cli-linux-x64/package.json b/packages/@biomejs/cli-linux-x64/package.json index f82467a5e665..e50db4e8308d 100644 --- a/packages/@biomejs/cli-linux-x64/package.json +++ b/packages/@biomejs/cli-linux-x64/package.json @@ -11,6 +11,9 @@ "node": ">=14.21.3" }, "homepage": "https://biomejs.dev", + "bin": { + "biome": "bin/biome" + }, "os": [ "linux" ], diff --git a/packages/@biomejs/cli-win32-arm64/package.json b/packages/@biomejs/cli-win32-arm64/package.json index 7ce8ec5edf76..0aa332f5af57 100644 --- a/packages/@biomejs/cli-win32-arm64/package.json +++ b/packages/@biomejs/cli-win32-arm64/package.json @@ -11,6 +11,9 @@ "node": ">=14.21.3" }, "homepage": "https://biomejs.dev", + "bin": { + "biome": "bin/biome" + }, "os": [ "win32" ], diff --git a/packages/@biomejs/cli-win32-x64/package.json b/packages/@biomejs/cli-win32-x64/package.json index 69188c244416..ba33d5063dc2 100644 --- a/packages/@biomejs/cli-win32-x64/package.json +++ b/packages/@biomejs/cli-win32-x64/package.json @@ -11,6 +11,9 @@ "node": ">=14.21.3" }, "homepage": "https://biomejs.dev", + "bin": { + "biome": "bin/biome" + }, "os": [ "win32" ], From b7b52742574313db820ed9c2660bc0e9c25cde0b Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Sat, 21 Jun 2025 09:16:12 +0100 Subject: [PATCH 2/7] pnpm for publishing --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index cf0bb74babc6..22803bd73f55 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -346,7 +346,7 @@ jobs: run: node packages/@biomejs/biome/scripts/copy-binaries.mjs - name: Publish npm packages as latest - run: for package in packages/@biomejs/*; do if [ $package != "packages/@biomejs/js-api" ]; then npm publish $package --tag latest --access public --provenance; fi; done + run: for package in packages/@biomejs/*; do if [ $package != "packages/@biomejs/js-api" ]; then pnpm publish $package --no-git-checks--tag latest --access public --provenance; fi; done env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} @@ -398,7 +398,7 @@ jobs: run: pnpm install --frozen-lockfile - name: Publish npm package as latest - run: npm publish packages/@biomejs/js-api --tag latest --access public --provenance + run: pnpm publish packages/@biomejs/js-api --no-git-checks --tag latest --access public --provenance env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} From 1e1fffd75464ae79a8fa37e246458ffe33c1ec8a Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Sat, 21 Jun 2025 09:17:23 +0100 Subject: [PATCH 3/7] feedback --- packages/@biomejs/biome/scripts/copy-binaries.mjs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/@biomejs/biome/scripts/copy-binaries.mjs b/packages/@biomejs/biome/scripts/copy-binaries.mjs index 62c25fd64a5b..5dfbaf75aa35 100644 --- a/packages/@biomejs/biome/scripts/copy-binaries.mjs +++ b/packages/@biomejs/biome/scripts/copy-binaries.mjs @@ -33,6 +33,9 @@ function copyBinaryToNativePackage(platform, arch) { homepage, os: [os], cpu: [arch], + bin: { + bin: "bin/biome" + }, libc: os === "linux" ? packageName.endsWith("musl") From 3a653a552c625177d25110cb342ddcac12be4cb4 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Sat, 21 Jun 2025 09:28:06 +0100 Subject: [PATCH 4/7] restore old script usage --- .github/workflows/release.yml | 4 +- .../@biomejs/biome/scripts/copy-binaries.mjs | 81 ------------------- .../@biomejs/cli-darwin-arm64/package.json | 6 -- packages/@biomejs/cli-darwin-x64/package.json | 8 +- .../cli-linux-arm64-musl/package.json | 8 +- .../@biomejs/cli-linux-arm64/package.json | 8 +- .../@biomejs/cli-linux-x64-musl/package.json | 8 +- packages/@biomejs/cli-linux-x64/package.json | 8 +- .../@biomejs/cli-win32-arm64/package.json | 5 +- packages/@biomejs/cli-win32-x64/package.json | 8 +- 10 files changed, 9 insertions(+), 135 deletions(-) delete mode 100644 packages/@biomejs/biome/scripts/copy-binaries.mjs diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 22803bd73f55..fc91badc0874 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -342,8 +342,8 @@ jobs: git restore packages/@biomejs/wasm-nodejs/package.json git restore packages/@biomejs/wasm-web/package.json - - name: Generate packages - run: node packages/@biomejs/biome/scripts/copy-binaries.mjs + - name: Generate npm packages + run: node packages/@biomejs/biome/scripts/generate-packages.mjs - name: Publish npm packages as latest run: for package in packages/@biomejs/*; do if [ $package != "packages/@biomejs/js-api" ]; then pnpm publish $package --no-git-checks--tag latest --access public --provenance; fi; done diff --git a/packages/@biomejs/biome/scripts/copy-binaries.mjs b/packages/@biomejs/biome/scripts/copy-binaries.mjs deleted file mode 100644 index 5dfbaf75aa35..000000000000 --- a/packages/@biomejs/biome/scripts/copy-binaries.mjs +++ /dev/null @@ -1,81 +0,0 @@ -import * as fs from "node:fs"; -import { resolve } from "node:path"; -import { fileURLToPath } from "node:url"; -import { format } from "node:util"; - -const CLI_ROOT = resolve(fileURLToPath(import.meta.url), "../.."); -const PACKAGES_ROOT = resolve(CLI_ROOT, ".."); -const REPO_ROOT = resolve(PACKAGES_ROOT, "../.."); -const MANIFEST_PATH = resolve(CLI_ROOT, "package.json"); - -const rootManifest = JSON.parse(fs.readFileSync(MANIFEST_PATH, "utf-8")); - -function getName(platform, arch, prefix = "cli") { - return format(`${prefix}-${platform}`, arch); -} - -function copyBinaryToNativePackage(platform, arch) { - const os = platform.split("-")[0]; - const buildName = getName(platform, arch); - const packageRoot = resolve(PACKAGES_ROOT, buildName); - const packageName = `@biomejs/${buildName}`; - - // Update the package.json manifest - const { version, license, repository, engines, homepage } = rootManifest; - - const manifest = JSON.stringify( - { - name: packageName, - version, - license, - repository, - engines, - homepage, - os: [os], - cpu: [arch], - bin: { - bin: "bin/biome" - }, - libc: - os === "linux" - ? packageName.endsWith("musl") - ? ["musl"] - : ["glibc"] - : undefined, - }, - null, - 2, - ); - - const manifestPath = resolve(packageRoot, "package.json"); - console.info(`Update manifest ${manifestPath}`); - fs.writeFileSync(manifestPath, manifest); - - // Copy the CLI binary - const ext = os === "win32" ? ".exe" : ""; - const binarySource = resolve( - REPO_ROOT, - `${getName(platform, arch, "biome")}${ext}`, - ); - const binaryTarget = resolve(packageRoot, `biome${ext}`); - - if (!fs.existsSync(binarySource)) { - console.error( - `Source for binary for ${buildName} not found at: ${binarySource}`, - ); - process.exit(1); - } - - console.info(`Copy binary ${binaryTarget}`); - fs.copyFileSync(binarySource, binaryTarget); - fs.chmodSync(binaryTarget, 0o755); -} - -const PLATFORMS = ["win32-%s", "darwin-%s", "linux-%s", "linux-%s-musl"]; -const ARCHITECTURES = ["x64", "arm64"]; - -for (const platform of PLATFORMS) { - for (const arch of ARCHITECTURES) { - copyBinaryToNativePackage(platform, arch); - } -} diff --git a/packages/@biomejs/cli-darwin-arm64/package.json b/packages/@biomejs/cli-darwin-arm64/package.json index fea94b655c49..26507fc71d47 100644 --- a/packages/@biomejs/cli-darwin-arm64/package.json +++ b/packages/@biomejs/cli-darwin-arm64/package.json @@ -11,9 +11,6 @@ "node": ">=14.21.3" }, "homepage": "https://biomejs.dev", - "bin": { - "biome": "bin/biome" - }, "os": [ "darwin" ], @@ -23,7 +20,4 @@ "publishConfig": { "provenance": true }, - "files": [ - "bin/biome" - ] } diff --git a/packages/@biomejs/cli-darwin-x64/package.json b/packages/@biomejs/cli-darwin-x64/package.json index 3af4e25fdcbd..31efe41553cf 100644 --- a/packages/@biomejs/cli-darwin-x64/package.json +++ b/packages/@biomejs/cli-darwin-x64/package.json @@ -11,9 +11,6 @@ "node": ">=14.21.3" }, "homepage": "https://biomejs.dev", - "bin": { - "biome": "bin/biome" - }, "os": [ "darwin" ], @@ -22,8 +19,5 @@ ], "publishConfig": { "provenance": true - }, - "files": [ - "bin/biome" - ] + } } diff --git a/packages/@biomejs/cli-linux-arm64-musl/package.json b/packages/@biomejs/cli-linux-arm64-musl/package.json index 5d27e1bf2c46..a2140b26ef71 100644 --- a/packages/@biomejs/cli-linux-arm64-musl/package.json +++ b/packages/@biomejs/cli-linux-arm64-musl/package.json @@ -11,9 +11,6 @@ "node": ">=14.21.3" }, "homepage": "https://biomejs.dev", - "bin": { - "biome": "bin/biome" - }, "os": [ "linux" ], @@ -25,8 +22,5 @@ ], "publishConfig": { "provenance": true - }, - "files": [ - "bin/biome" - ] + } } diff --git a/packages/@biomejs/cli-linux-arm64/package.json b/packages/@biomejs/cli-linux-arm64/package.json index 43b17df73baf..d963acbc8231 100644 --- a/packages/@biomejs/cli-linux-arm64/package.json +++ b/packages/@biomejs/cli-linux-arm64/package.json @@ -11,9 +11,6 @@ "node": ">=14.21.3" }, "homepage": "https://biomejs.dev", - "bin": { - "biome": "bin/biome" - }, "os": [ "linux" ], @@ -25,8 +22,5 @@ ], "publishConfig": { "provenance": true - }, - "files": [ - "bin/biome" - ] + } } diff --git a/packages/@biomejs/cli-linux-x64-musl/package.json b/packages/@biomejs/cli-linux-x64-musl/package.json index f7c626e2bb6c..ea22bd30c290 100644 --- a/packages/@biomejs/cli-linux-x64-musl/package.json +++ b/packages/@biomejs/cli-linux-x64-musl/package.json @@ -11,9 +11,6 @@ "node": ">=14.21.3" }, "homepage": "https://biomejs.dev", - "bin": { - "biome": "bin/biome" - }, "os": [ "linux" ], @@ -25,8 +22,5 @@ ], "publishConfig": { "provenance": true - }, - "files": [ - "bin/biome" - ] + } } diff --git a/packages/@biomejs/cli-linux-x64/package.json b/packages/@biomejs/cli-linux-x64/package.json index e50db4e8308d..9c8c36e967e1 100644 --- a/packages/@biomejs/cli-linux-x64/package.json +++ b/packages/@biomejs/cli-linux-x64/package.json @@ -11,9 +11,6 @@ "node": ">=14.21.3" }, "homepage": "https://biomejs.dev", - "bin": { - "biome": "bin/biome" - }, "os": [ "linux" ], @@ -25,8 +22,5 @@ ], "publishConfig": { "provenance": true - }, - "files": [ - "bin/biome" - ] + } } diff --git a/packages/@biomejs/cli-win32-arm64/package.json b/packages/@biomejs/cli-win32-arm64/package.json index 0aa332f5af57..54278c5fd517 100644 --- a/packages/@biomejs/cli-win32-arm64/package.json +++ b/packages/@biomejs/cli-win32-arm64/package.json @@ -22,8 +22,5 @@ ], "publishConfig": { "provenance": true - }, - "files": [ - "bin/biome" - ] + } } diff --git a/packages/@biomejs/cli-win32-x64/package.json b/packages/@biomejs/cli-win32-x64/package.json index ba33d5063dc2..909f008c4f6e 100644 --- a/packages/@biomejs/cli-win32-x64/package.json +++ b/packages/@biomejs/cli-win32-x64/package.json @@ -11,9 +11,6 @@ "node": ">=14.21.3" }, "homepage": "https://biomejs.dev", - "bin": { - "biome": "bin/biome" - }, "os": [ "win32" ], @@ -22,8 +19,5 @@ ], "publishConfig": { "provenance": true - }, - "files": [ - "bin/biome" - ] + } } From c1fd9d0c5a11c96cb8b1840c0270e169dfb5b597 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Sat, 21 Jun 2025 09:32:52 +0100 Subject: [PATCH 5/7] use npm --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fc91badc0874..79543ade1737 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -346,7 +346,7 @@ jobs: run: node packages/@biomejs/biome/scripts/generate-packages.mjs - name: Publish npm packages as latest - run: for package in packages/@biomejs/*; do if [ $package != "packages/@biomejs/js-api" ]; then pnpm publish $package --no-git-checks--tag latest --access public --provenance; fi; done + run: for package in packages/@biomejs/*; do if [ $package != "packages/@biomejs/js-api" ]; then npm publish $package --tag latest --access public --provenance; fi; done env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} @@ -398,7 +398,7 @@ jobs: run: pnpm install --frozen-lockfile - name: Publish npm package as latest - run: pnpm publish packages/@biomejs/js-api --no-git-checks --tag latest --access public --provenance + run: pnpm publish packages/@biomejs/js-api --no-git-checks --tag latest --access public env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} From 586ec3be2806ed27061aecd970902f3794d66495 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Sat, 21 Jun 2025 09:33:39 +0100 Subject: [PATCH 6/7] fix json --- packages/@biomejs/cli-darwin-arm64/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@biomejs/cli-darwin-arm64/package.json b/packages/@biomejs/cli-darwin-arm64/package.json index 26507fc71d47..6c339bbbd04e 100644 --- a/packages/@biomejs/cli-darwin-arm64/package.json +++ b/packages/@biomejs/cli-darwin-arm64/package.json @@ -19,5 +19,5 @@ ], "publishConfig": { "provenance": true - }, + } } From 68452a1f1569ec708d143491bde624d6503b9130 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Sat, 21 Jun 2025 09:38:24 +0100 Subject: [PATCH 7/7] Update packages/@biomejs/cli-win32-arm64/package.json Co-authored-by: Naoki Ikeguchi --- packages/@biomejs/cli-win32-arm64/package.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/@biomejs/cli-win32-arm64/package.json b/packages/@biomejs/cli-win32-arm64/package.json index 54278c5fd517..5f50b5ccb6fd 100644 --- a/packages/@biomejs/cli-win32-arm64/package.json +++ b/packages/@biomejs/cli-win32-arm64/package.json @@ -11,9 +11,6 @@ "node": ">=14.21.3" }, "homepage": "https://biomejs.dev", - "bin": { - "biome": "bin/biome" - }, "os": [ "win32" ],