From 03557694557f6b6687e435ee3e4f583f574ffae5 Mon Sep 17 00:00:00 2001 From: Arun Sharma Date: Fri, 16 Oct 2026 15:54:40 -0700 Subject: [PATCH 1/2] fix(ci): pin macOS Node.js and Python wheel builds to OpenSSL 3 Same failure as the precompiled-bin and Java macOS jobs: the macos-26 runner image now provides Homebrew openssl@4 alongside openssl@3, and CMake's find_package(OpenSSL 3) (>= 3) resolves to 4.x, tripping the OpenSSL 3.x version guard in CMakeLists.txt: Ladybug requires OpenSSL 3.x but found 4.0.3. Fixes https://github.com/LadybugDB/ladybug/actions/runs/38963529396/job/117214998838. Add the same Install OpenSSL 3 (macOS) step (brew install openssl@3 when missing, export OPENSSL_ROOT_DIR) ahead of the CMake configure in nodejs-workflow.yml and python-wheel-workflow.yml, whose macOS cibuildwheel/CMake builds hit the identical error. --- .github/workflows/nodejs-workflow.yml | 9 +++++++++ .github/workflows/python-wheel-workflow.yml | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/.github/workflows/nodejs-workflow.yml b/.github/workflows/nodejs-workflow.yml index 3e2c46e24..9d848763f 100644 --- a/.github/workflows/nodejs-workflow.yml +++ b/.github/workflows/nodejs-workflow.yml @@ -230,6 +230,15 @@ jobs: make GEN=Ninja nodejs ccache -s + - name: Install OpenSSL 3 (macOS) + if: runner.os == 'macOS' + run: | + # Pin to OpenSSL 3: Homebrew now also ships openssl@4, which CMake + # would otherwise prefer. The top-level CMakeLists enforces OpenSSL 3 + # via a version guard, so point CMake at openssl@3 explicitly. + brew list openssl@3 >/dev/null 2>&1 || brew install openssl@3 + echo "OPENSSL_ROOT_DIR=$(brew --prefix openssl@3)" >> "$GITHUB_ENV" + - name: Build Node.js native module (non-Windows) if: ${{ matrix.platform != 'win32' }} env: diff --git a/.github/workflows/python-wheel-workflow.yml b/.github/workflows/python-wheel-workflow.yml index e56d6d01b..91da1805d 100644 --- a/.github/workflows/python-wheel-workflow.yml +++ b/.github/workflows/python-wheel-workflow.yml @@ -277,6 +277,15 @@ jobs: if: matrix.os == 'macos' run: brew install ccache + - name: Install OpenSSL 3 (macOS) + if: matrix.os == 'macos' + run: | + # Pin to OpenSSL 3: Homebrew now also ships openssl@4, which CMake + # would otherwise prefer. The top-level CMakeLists enforces OpenSSL 3 + # via a version guard, so point CMake at openssl@3 explicitly. + brew list openssl@3 >/dev/null 2>&1 || brew install openssl@3 + echo "OPENSSL_ROOT_DIR=$(brew --prefix openssl@3)" >> "$GITHUB_ENV" + - name: Cache ccache directory (Linux/macOS) if: matrix.os != 'windows' uses: actions/cache@v4 From 0aec27411f89aa50392d76943b2703f3c0e37032 Mon Sep 17 00:00:00 2001 From: Arun Sharma Date: Fri, 16 Oct 2026 15:58:09 -0700 Subject: [PATCH 2/2] Revert "pin macOS Python wheel builds to OpenSSL 3" The Python wheel build runs inside a cibuildwheel builder with its own OpenSSL, so the Homebrew openssl@3 pin is unnecessary there. Keeps the nodejs-workflow.yml pin, which is the reported failure. --- .github/workflows/python-wheel-workflow.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.github/workflows/python-wheel-workflow.yml b/.github/workflows/python-wheel-workflow.yml index 91da1805d..e56d6d01b 100644 --- a/.github/workflows/python-wheel-workflow.yml +++ b/.github/workflows/python-wheel-workflow.yml @@ -277,15 +277,6 @@ jobs: if: matrix.os == 'macos' run: brew install ccache - - name: Install OpenSSL 3 (macOS) - if: matrix.os == 'macos' - run: | - # Pin to OpenSSL 3: Homebrew now also ships openssl@4, which CMake - # would otherwise prefer. The top-level CMakeLists enforces OpenSSL 3 - # via a version guard, so point CMake at openssl@3 explicitly. - brew list openssl@3 >/dev/null 2>&1 || brew install openssl@3 - echo "OPENSSL_ROOT_DIR=$(brew --prefix openssl@3)" >> "$GITHUB_ENV" - - name: Cache ccache directory (Linux/macOS) if: matrix.os != 'windows' uses: actions/cache@v4