From 216748391e27c52c46d67177e7771ddae257385c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Halber?= Date: Thu, 23 Apr 2026 11:03:47 -0700 Subject: [PATCH 1/8] feat: windows arm64 new compilation target Removing auto-updater since windows arm64 can not compile it. Not an issue since `bt self update` exists --- dist-workspace.toml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/dist-workspace.toml b/dist-workspace.toml index 91b56ba2..73f3fdb1 100644 --- a/dist-workspace.toml +++ b/dist-workspace.toml @@ -3,6 +3,8 @@ members = ["cargo:."] # Config for 'dist' [dist] +# Skip checking whether the specified configuration files are up to date +allow-dirty = ["ci"] # The preferred dist version to use in CI (Cargo.toml SemVer syntax) cargo-dist-version = "0.31.0" # CI backends to support @@ -11,21 +13,20 @@ ci = "github" create-release = true # Which actions to run on pull requests pr-run-mode = "plan" -# Skip checking whether the specified configuration files are up to date -allow-dirty = ["ci"] ssldotcom-windows-sign = "test" # The installers to generate for each app installers = ["shell", "powershell", "homebrew"] homepage = "https://github.com/braintrustdata/bt" # Target platforms to build apps for (Rust target-triple syntax) -targets = ["aarch64-apple-darwin", "aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu", "x86_64-unknown-linux-musl", "x86_64-pc-windows-msvc"] +targets = ["aarch64-apple-darwin", "aarch64-unknown-linux-gnu", "aarch64-pc-windows-msvc", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu", "x86_64-unknown-linux-musl", "x86_64-pc-windows-msvc"] +# Path that installers should place binaries in +install-path = ["$XDG_BIN_HOME/", "$XDG_DATA_HOME/../bin", "~/.local/bin"] + +[dist.github-custom-runners] +aarch64-pc-windows-msvc = "windows-11-arm" # The archive format to use for non-windows builds (defaults .tar.xz) unix-archive = ".tar.gz" # The archive format to use for windows builds (defaults .zip) windows-archive = ".zip" -# Path that installers should place binaries in -install-path = ["$XDG_BIN_HOME/", "$XDG_DATA_HOME/../bin", "~/.local/bin"] -# Whether to install an updater program -install-updater = true # Custom message to display on successful install install-success-msg = "" From fcdcae834b6a027eeb64cb1fe12221a0136f40bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Halber?= Date: Thu, 23 Apr 2026 13:32:52 -0700 Subject: [PATCH 2/8] demo for abhi, remove before merge --- dist-workspace.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dist-workspace.toml b/dist-workspace.toml index 73f3fdb1..16779491 100644 --- a/dist-workspace.toml +++ b/dist-workspace.toml @@ -4,7 +4,7 @@ members = ["cargo:."] # Config for 'dist' [dist] # Skip checking whether the specified configuration files are up to date -allow-dirty = ["ci"] +# allow-dirty = ["ci"] # The preferred dist version to use in CI (Cargo.toml SemVer syntax) cargo-dist-version = "0.31.0" # CI backends to support From fcbe7e0214f92aaea68bda29f8e0e4312d04ff6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Halber?= Date: Thu, 23 Apr 2026 13:35:29 -0700 Subject: [PATCH 3/8] Revert "demo for abhi, remove before merge" This reverts commit fcdcae834b6a027eeb64cb1fe12221a0136f40bc. --- dist-workspace.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dist-workspace.toml b/dist-workspace.toml index 16779491..73f3fdb1 100644 --- a/dist-workspace.toml +++ b/dist-workspace.toml @@ -4,7 +4,7 @@ members = ["cargo:."] # Config for 'dist' [dist] # Skip checking whether the specified configuration files are up to date -# allow-dirty = ["ci"] +allow-dirty = ["ci"] # The preferred dist version to use in CI (Cargo.toml SemVer syntax) cargo-dist-version = "0.31.0" # CI backends to support From 70e7fbfe2f3d9ccded4c0ff73b8d7c0b789cefee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Halber?= Date: Mon, 27 Apr 2026 10:54:56 -0700 Subject: [PATCH 4/8] chore: sign bt.exe only for releases we can sign 120 .exe per year (so 60 releases, 2 signing per release with aarch64 and x86-64) --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index edcf32c6..59351467 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -139,7 +139,7 @@ jobs: run: ${{ matrix.packages_install }} - name: Configure SSL.com signing env - if: ${{ runner.os == 'Windows' && env.HAS_SSLDOTCOM_SIGNING == 'true' }} + if: ${{ contains(toJSON(matrix.targets), 'windows') && env.HAS_SSLDOTCOM_SIGNING == 'true' && !fromJson(needs.plan.outputs.val).announcement_is_prerelease }} shell: bash env: SSLDOTCOM_USERNAME: ${{ secrets.SSLDOTCOM_USERNAME }} From 4e18f4c3cbcbe046d3da7919817e6792cee1ab5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Halber?= Date: Mon, 27 Apr 2026 14:21:58 -0700 Subject: [PATCH 5/8] chore: redirect sha256sum to shasum -a 256 on mac runner dist installation checks the installation with sha256sum, which does not exist on macos --- .github/workflows/release-canary.yml | 8 ++++++++ .github/workflows/release.yml | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/.github/workflows/release-canary.yml b/.github/workflows/release-canary.yml index 7f4c6d9f..9e33a45d 100644 --- a/.github/workflows/release-canary.yml +++ b/.github/workflows/release-canary.yml @@ -140,6 +140,14 @@ jobs: echo "$HOME/.cargo/bin" >> $GITHUB_PATH fi + - name: Install sha256sum (macOS ARM64) + if: ${{ runner.os == 'macOS' && runner.arch == 'ARM64' }} + shell: bash + run: | + printf '#!/bin/sh\nexec shasum -a 256 "$@"\n' > /tmp/sha256sum + chmod +x /tmp/sha256sum + echo /tmp >> "$GITHUB_PATH" + - name: Install dist run: ${{ matrix.install_dist.run }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 59351467..cdb65324 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -125,6 +125,14 @@ jobs: echo "$HOME/.cargo/bin" >> $GITHUB_PATH fi + - name: Install sha256sum (macOS ARM64) + if: ${{ runner.os == 'macOS' && runner.arch == 'ARM64' }} + shell: bash + run: | + printf '#!/bin/sh\nexec shasum -a 256 "$@"\n' > /tmp/sha256sum + chmod +x /tmp/sha256sum + echo /tmp >> "$GITHUB_PATH" + - name: Install dist run: ${{ matrix.install_dist.run }} From b6e568def9d050c7111708011a0dcdff708c6523 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Halber?= Date: Thu, 30 Apr 2026 11:38:36 -0700 Subject: [PATCH 6/8] fix: removed windows code signing from pre-release --- .github/workflows/release-canary.yml | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/.github/workflows/release-canary.yml b/.github/workflows/release-canary.yml index 9e33a45d..4a414b9f 100644 --- a/.github/workflows/release-canary.yml +++ b/.github/workflows/release-canary.yml @@ -113,7 +113,6 @@ jobs: env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} BUILD_MANIFEST_NAME: target/distrib/${{ join(matrix.targets, '-') }}-dist-manifest.json - HAS_SSLDOTCOM_SIGNING: ${{ secrets.SSLDOTCOM_USERNAME != '' && secrets.SSLDOTCOM_PASSWORD != '' && secrets.SSLDOTCOM_CREDENTIAL_ID != '' && secrets.SSLDOTCOM_TOTP_SECRET != '' }} steps: - name: Enable windows longpaths run: git config --global core.longpaths true @@ -161,31 +160,6 @@ jobs: - name: Install dependencies run: ${{ matrix.packages_install }} - - name: Configure SSL.com signing env - if: ${{ runner.os == 'Windows' && env.HAS_SSLDOTCOM_SIGNING == 'true' }} - shell: bash - env: - SSLDOTCOM_USERNAME: ${{ secrets.SSLDOTCOM_USERNAME }} - SSLDOTCOM_PASSWORD: ${{ secrets.SSLDOTCOM_PASSWORD }} - SSLDOTCOM_CREDENTIAL_ID: ${{ secrets.SSLDOTCOM_CREDENTIAL_ID }} - SSLDOTCOM_TOTP_SECRET: ${{ secrets.SSLDOTCOM_TOTP_SECRET }} - run: | - write_github_env() { - local key="$1" - local value="$2" - local delimiter="EOF_${key}_$$" - { - echo "${key}<<${delimiter}" - echo "${value}" - echo "${delimiter}" - } >> "$GITHUB_ENV" - } - - write_github_env "SSLDOTCOM_USERNAME" "$SSLDOTCOM_USERNAME" - write_github_env "SSLDOTCOM_PASSWORD" "$SSLDOTCOM_PASSWORD" - write_github_env "SSLDOTCOM_CREDENTIAL_ID" "$SSLDOTCOM_CREDENTIAL_ID" - write_github_env "SSLDOTCOM_TOTP_SECRET" "$SSLDOTCOM_TOTP_SECRET" - - name: Build artifacts shell: bash run: | From ab4a50073aa2bff2c5afcf1042d5424383d9b525 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Halber?= Date: Thu, 30 Apr 2026 11:39:37 -0700 Subject: [PATCH 7/8] chore: no need to check the target matrix for checking windows --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index cdb65324..199bf570 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -147,7 +147,7 @@ jobs: run: ${{ matrix.packages_install }} - name: Configure SSL.com signing env - if: ${{ contains(toJSON(matrix.targets), 'windows') && env.HAS_SSLDOTCOM_SIGNING == 'true' && !fromJson(needs.plan.outputs.val).announcement_is_prerelease }} + if: ${{ runner.os == 'Windows' && env.HAS_SSLDOTCOM_SIGNING == 'true' && !fromJson(needs.plan.outputs.val).announcement_is_prerelease }} shell: bash env: SSLDOTCOM_USERNAME: ${{ secrets.SSLDOTCOM_USERNAME }} From c5d0296b5f372429f593995eaaed410163248ea5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Halber?= Date: Thu, 30 Apr 2026 11:48:14 -0700 Subject: [PATCH 8/8] fix: bad field mapping --- dist-workspace.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dist-workspace.toml b/dist-workspace.toml index 73f3fdb1..81796755 100644 --- a/dist-workspace.toml +++ b/dist-workspace.toml @@ -21,12 +21,12 @@ homepage = "https://github.com/braintrustdata/bt" targets = ["aarch64-apple-darwin", "aarch64-unknown-linux-gnu", "aarch64-pc-windows-msvc", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu", "x86_64-unknown-linux-musl", "x86_64-pc-windows-msvc"] # Path that installers should place binaries in install-path = ["$XDG_BIN_HOME/", "$XDG_DATA_HOME/../bin", "~/.local/bin"] - -[dist.github-custom-runners] -aarch64-pc-windows-msvc = "windows-11-arm" # The archive format to use for non-windows builds (defaults .tar.xz) unix-archive = ".tar.gz" # The archive format to use for windows builds (defaults .zip) windows-archive = ".zip" # Custom message to display on successful install install-success-msg = "" + +[dist.github-custom-runners] +aarch64-pc-windows-msvc = "windows-11-arm"