Skip to content

ci: enable macOS-15 build#304

Open
gmarzot wants to merge 1 commit into
mainfrom
feature/macos-ci
Open

ci: enable macOS-15 build#304
gmarzot wants to merge 1 commit into
mainfrom
feature/macos-ci

Conversation

@gmarzot
Copy link
Copy Markdown
Contributor

@gmarzot gmarzot commented May 8, 2026

WIP — do not merge yet. Depends on facebookexperimental/moxygen#162 syncing into openmoq/moxygen main.

What this does

Enables the macOS-15 (Apple Silicon) build job in both `ci-pr.yml` and `ci-main.yml`. The matrix entry was previously commented out with the comment "moxygen tarball bakes brew Cellar versioned paths that break when the runner has different brew package versions" — that's the issue addressed by facebookexperimental/moxygen#162.

Bumps `deps/moxygen` submodule to `2540d9e9` on branch `fix/macos-openssl-stable-path-omoq` (a temporary openmoq-side carry of the same patch). CI's three-mode setup detects the off-main SHA and auto-falls back to source build, so the macOS job builds moxygen from the patched branch rather than the (broken) snapshot tarball.

Testing so far

Verified end-to-end on argo (macOS Apple Silicon, M-series):

  • `bash scripts/build.sh setup` — auto-detects off-main submodule SHA, prints actionable error, falls back to source build:
    ```
    ==> Moxygen submodule SHA: 2540d9e
    ==> Snapshot release SHA: 9f6bee4
    Error: snapshot-latest does not match the moxygen submodule pin.
    Release artifacts not available — falling back to source build...
    ```
  • moxygen builds from source against the patched submodule
  • Install tree contains stable opt-symlink paths only — no openssl@3 Cellar references:
    ```
    $ grep -rE 'Cellar/openssl@3' .scratch/moxygen-install/lib/cmake/
    (empty)
    $ grep -rE 'opt/openssl@3' .scratch/moxygen-install/lib/cmake/ | head
    fizz/fizz-targets.cmake: .../opt/openssl@3/lib/libssl.dylib...
    folly/folly-targets.cmake: .../opt/openssl@3/include...
    ```
  • moqx builds successfully against this install tree

Scope

  • `build` job only (matrix entry on macOS-15)
  • Conformance for macOS: deferred to follow-up (matrix is currently linux-only; refactor needed)
  • Publish for macOS: deferred to follow-up (Docker doesn't make sense; need to decide standalone-tarball strategy)

Path to merge

  1. standalone: steer OpenSSL through brew opt-symlink on macOS facebookexperimental/moxygen#162 reviewed and merged
  2. openmoq/moxygen daily upstream-sync workflow brings the patch into main
  3. Drop the submodule bump in this PR (revert to a current-main SHA)
  4. Drop `WIP:` prefix
  5. Merge

```
Closes openmoq/moxygen carry branch 'fix/macos-openssl-stable-path-omoq'.
```


This change is Reviewable

@gmarzot gmarzot force-pushed the feature/macos-ci branch 2 times, most recently from bb64e51 to 9638c53 Compare May 13, 2026 14:51
@gmarzot gmarzot force-pushed the feature/macos-ci branch from 9638c53 to 69bd017 Compare May 21, 2026 15:55
@gmarzot gmarzot changed the title WIP: ci: enable macOS-15 build ci: enable macOS-15 build May 22, 2026
@gmarzot gmarzot force-pushed the feature/macos-ci branch from 69bd017 to 7d44200 Compare May 22, 2026 00:28
Bumps the moxygen submodule to fix/macos-openssl-stable-path-omoq
(2540d9e9), which carries the cmake fix steering find_package(OpenSSL)
through brew's stable opt-symlink instead of versioned Cellar paths.
Mirrors facebookexperimental/moxygen#162; will revert the submodule
bump once that lands and syncs into openmoq/moxygen main.

CI's three-mode setup auto-detects the off-main submodule SHA and
falls back to source build, so the macOS job builds moxygen from the
patched branch rather than the snapshot tarball.

Conformance and publish for macOS deferred to follow-up PRs.
@gmarzot gmarzot force-pushed the feature/macos-ci branch from 7d44200 to 6d15d2a Compare May 23, 2026 21:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant