fix: update foxy for Boost 1.90 compatibility and unpin macOS Boost#506
fix: update foxy for Boost 1.90 compatibility and unpin macOS Boost#506kinyoklion wants to merge 8 commits intomainfrom
Conversation
macos-13 has been deprecated and removed from GitHub Actions. Update all workflow files to use macos-15. Co-Authored-By: rlamb@launchdarkly.com <kingdewman@gmail.com>
…s CI The previous version's download URL was removed from slproweb.com, causing all Windows CI jobs to fail with 404 errors. Co-Authored-By: rlamb@launchdarkly.com <kingdewman@gmail.com>
The vendored foxy library is incompatible with Boost 1.90 (installed by default on macos-15 via Homebrew). Pin to boost@1.85 until foxy is updated to work with the newer Boost version. Co-Authored-By: rlamb@launchdarkly.com <kingdewman@gmail.com>
- sdk-release action: added mac_artifact_arch input (default x64) to
parameterize macOS artifact filenames (mac-clang-{arch}-*.zip)
- release-please.yml: use macos-15-large (x64) for existing matrix,
added separate arm64 jobs + provenance for client, server, server-redis
- manual-sdk-release-artifacts.yml: same pattern for manual releases
- Future releases will include both x64 and arm64 macOS artifacts
Co-Authored-By: rlamb@launchdarkly.com <kingdewman@gmail.com>
- Add BOOST_VERSION preprocessor guards in export_connect_fields.hpp to conditionally exclude proxy_authentication_info, proxy_features, and proxy_instruction fields removed in Boost 1.90 - Retains full support for Boost 1.8x - Remove boost@1.85 pin on macOS, reverting to latest Homebrew boost Co-Authored-By: rlamb@launchdarkly.com <kingdewman@gmail.com>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
|
Devin, update with the latest changes from main. |
…te-foxy-boost-compat
|
Done — merged latest |
The boost@1.85 pin was re-introduced when merging main (which contains PR #505's pinned version). This commit re-applies the unpin so macOS CI builds against the latest Homebrew Boost (1.90), exercising the new BOOST_VERSION >= 109000 code path in foxy. Co-Authored-By: rlamb@launchdarkly.com <kingdewman@gmail.com>
|
Devin check your Review & Testing Checklist for Human against CI and remove items covered by CI. |
|
Done — reviewed all checklist items against CI and removed the ones that are covered:
Only remaining item is the unpinning strategy question (whether to track latest Boost vs. pin to 1.90), which is a policy decision CI can't validate. |
|
aside: The brew installs of boost from homebrew are rapidly deprecated. So when we pin we have to constantly update them, and we also don't get a preview of what will soon be breaking issues. |
Summary
Updates the vendored
foxylibrary to compile against Boost 1.90 (which removed threeboost::beast::http::fieldenum values) while retaining backward compatibility with Boost 1.8x. Unpins macOS Homebrew Boost from the deprecatedboost@1.85so it installs the latest version.Foxy change: Adds a
#if BOOST_VERSION >= 109000guard inexport_connect_fields.hpparound thehop_by_hopsarray. Boost 1.90 removedproxy_authentication_info,proxy_features, andproxy_instructionfromboost::beast::http::field, so the Boost 1.90+ path uses an 8-element array without those fields. The pre-1.90 path is unchanged (11 elements).Boost unpin: Reverts
brew install boost@1.85→brew install boostininstall-boost/action.yml, so macOS CI builds against the latest Homebrew Boost (currently 1.90). This removes theboost@1.85pin introduced in PR #505, which had a Homebrew deprecation deadline of 2026-04-05.Both
#ifbranches are validated by CI: macOS builds use Boost 1.90 (#ifpath), Linux uses 1.81 and Windows uses 1.87 (#elsepath). All 36 CI checks pass.Review & Testing Checklist for Human
foxy. Confirm this is acceptable vs. pinning toboost@1.90.Test plan: CI validates both preprocessor branches across all three platforms. The macOS jobs passing confirm Boost 1.90 compatibility (including that
proxy_connectionwas not removed alongside the other three fields). Linux and Windows jobs confirm the#elsepath still compiles correctly with older Boost versions.Notes
Note
Medium Risk
CI will now track Homebrew’s latest Boost on macOS, which can introduce future build breakages. The code change is a small compile-time guard but affects HTTP header filtering behavior across Boost versions.
Overview
macOS CI now installs Homebrew’s default
boostpackage instead of the pinnedboost@1.85, so builds track the latest Boost release.The vendored
foxyheaderexport_connect_fields.hppis updated for Boost 1.90+ by conditionally excluding the removedboost::beast::http::fieldenum values (proxy_authentication_info,proxy_features,proxy_instruction) via aBOOST_VERSION >= 109000guard, preserving the previous hop-by-hop header list for older Boost versions.Written by Cursor Bugbot for commit 5442186. This will update automatically on new commits. Configure here.