From 442dcc57d307d8e8570b58ccfdafc756960af3d9 Mon Sep 17 00:00:00 2001 From: Dmitry Prudnikov Date: Thu, 16 Apr 2026 10:51:59 +0300 Subject: [PATCH 1/2] ci(release): fix embedded wheel builds for Windows, macOS, and Linux aarch64 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three separate failures in the build-embedded matrix job: 1. Windows x86_64 — build.rs UNC path (\\?\) rejected by protoc. Fix is in the coordinode-rs submodule (fix/windows-protoc-unc-path). Bump submodule pointer to the fixed commit. 2. macOS aarch64 / x86_64 — macos-latest now ships Python 3.14 which PyO3 0.23.x does not yet support (max 3.13). Pin all non-Linux matrix entries to Python 3.13 via actions/setup-python. 3. Ubuntu aarch64 — maturin-action requires QEMU to cross-compile aarch64 wheels on the x86_64 runner. Add docker/setup-qemu-action before the maturin step for Linux aarch64 targets. Refs #39 --- .github/workflows/release.yml | 20 ++++++++++++++++++++ coordinode-rs | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f92fbcb..48826c3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -73,21 +73,27 @@ jobs: manylinux: manylinux_2_28 # Linux aarch64 — AWS Graviton, Raspberry Pi, etc. + # Requires QEMU (set up below) for cross-compilation on the x86_64 runner. - os: ubuntu-latest target: aarch64 manylinux: manylinux_2_28 # macOS Apple Silicon (M1/M2/M3) + # Pin to Python 3.13: macos-latest ships Python 3.14 which PyO3 0.23.x + # does not yet support (max supported is 3.13). - os: macos-latest target: aarch64 + python-version: "3.13" # macOS Intel - os: macos-13 target: x86_64 + python-version: "3.13" # Windows x86_64 - os: windows-latest target: x86_64 + python-version: "3.13" runs-on: ${{ matrix.os }} steps: @@ -102,6 +108,20 @@ jobs: - name: Verify coordinode-rs submodule tag run: git -C coordinode-rs describe --tags --exact-match HEAD || true + # Pin Python on macOS and Windows: macos-latest ships Python 3.14 which + # PyO3 0.23.x does not yet support. Remove when PyO3 >= 0.24 is adopted. + - name: Set up Python ${{ matrix.python-version }} + if: matrix.python-version != '' + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 + with: + python-version: ${{ matrix.python-version }} + + # QEMU is required for maturin-action to cross-compile Linux aarch64 wheels + # on the x86_64 ubuntu-latest runner using the manylinux container. + - name: Set up QEMU + if: runner.os == 'Linux' && matrix.target == 'aarch64' + uses: docker/setup-qemu-action@29109295f81e9208d7d86ff9f9a89f41e8f8e6f3 # v3 + - name: Install protoc (macOS / Windows) if: runner.os != 'Linux' uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3.0.0 diff --git a/coordinode-rs b/coordinode-rs index 6df09c8..21ae71c 160000 --- a/coordinode-rs +++ b/coordinode-rs @@ -1 +1 @@ -Subproject commit 6df09c87a94eebd4c63dde08df420396df480487 +Subproject commit 21ae71c381a0f1cb2bd625410fc5585a9d6d080c From b332b20a7acadd970b3416bb230856797d7e874b Mon Sep 17 00:00:00 2001 From: Dmitry Prudnikov Date: Thu, 16 Apr 2026 12:47:48 +0300 Subject: [PATCH 2/2] ci(release): fix macos-13 retired label and python-version condition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replace macos-13 (retired Dec 2025) with macos-15-intel for the macOS Intel x86_64 wheel job - Change setup-python condition from matrix.python-version check to runner.os != 'Linux' — Linux manylinux containers manage Python themselves; Linux matrix entries intentionally omit python-version --- .github/workflows/release.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 48826c3..4e15e44 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -85,8 +85,9 @@ jobs: target: aarch64 python-version: "3.13" - # macOS Intel - - os: macos-13 + # macOS Intel (macos-13 was retired December 2025; macos-15-intel is the + # current Intel label) + - os: macos-15-intel target: x86_64 python-version: "3.13" @@ -110,11 +111,12 @@ jobs: # Pin Python on macOS and Windows: macos-latest ships Python 3.14 which # PyO3 0.23.x does not yet support. Remove when PyO3 >= 0.24 is adopted. - - name: Set up Python ${{ matrix.python-version }} - if: matrix.python-version != '' + # Linux builds run inside a manylinux container that manages Python itself. + - name: Set up Python ${{ matrix.python-version || '3.13' }} + if: runner.os != 'Linux' uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 with: - python-version: ${{ matrix.python-version }} + python-version: ${{ matrix.python-version || '3.13' }} # QEMU is required for maturin-action to cross-compile Linux aarch64 wheels # on the x86_64 ubuntu-latest runner using the manylinux container.