Skip to content

[scripts] Use HOMEBREW_DEVELOPER mode to install asio - #509

Merged
NikitaZotov merged 5 commits into
mainfrom
fix/macos_ci
Jul 19, 2026
Merged

[scripts] Use HOMEBREW_DEVELOPER mode to install asio#509
NikitaZotov merged 5 commits into
mainfrom
fix/macos_ci

Conversation

@NikitaZotov

@NikitaZotov NikitaZotov commented Jul 19, 2026

Copy link
Copy Markdown
Member

Summary by Gitar

  • CI Configuration:
    • Simplified scripts/install_deps_macOS.sh by consolidating dependency installations into a single brew install command.
  • Documentation:
    • Updated docs/changelog.md to reflect dependency management changes for macOS builds.

This will update automatically on new commits.

@NikitaZotov NikitaZotov self-assigned this Jul 19, 2026
@NikitaZotov NikitaZotov added this to the 0.10.6 milestone Jul 19, 2026
Comment thread scripts/install_deps_macOS.sh Outdated
Comment thread docs/changelog.md Outdated
@gitar-bot

gitar-bot Bot commented Jul 19, 2026

Copy link
Copy Markdown
Code Review ⚠️ Changes requested 1 resolved / 2 findings

Consolidates macOS dependency installation into a single brew command and updates the changelog. Removing the asio version pin risks reintroducing websocketpp incompatibilities.

⚠️ Bug: Removing asio pin may reintroduce websocketpp incompatibility

📄 scripts/install_deps_macOS.sh:6

This change removes the asio 1.30.2 pinning (and its explanatory TODO) that was added because websocketpp 0.8.2 is incompatible with newer asio. The removed TODO said pinning should only be removed 'after updating websocketpp to a version including the fix from PR zaphoyd/websocketpp#1164', but this PR does not update websocketpp — it still installs whatever version brew provides. Installing the latest asio alongside an unpatched websocketpp 0.8.2 can reintroduce the macOS build failure the pin was meant to prevent. Verify that the current brew websocketpp formula includes the asio-compatibility fix (or otherwise confirm builds succeed) before dropping the pin.

✅ 1 resolved
Quality: Changelog references nonexistent install_dependencies.sh

📄 docs/changelog.md:12
The changelog entry mentions scripts/install_dependencies.sh, but the actual modified file is scripts/install_deps_macOS.sh. Update the changelog to reference the correct filename to avoid confusing readers.

🤖 Prompt for agents
Code Review: Consolidates macOS dependency installation into a single brew command and updates the changelog. Removing the asio version pin risks reintroducing websocketpp incompatibilities.

1. ⚠️ Bug: Removing asio pin may reintroduce websocketpp incompatibility
   Files: scripts/install_deps_macOS.sh:6

   This change removes the asio 1.30.2 pinning (and its explanatory TODO) that was added because websocketpp 0.8.2 is incompatible with newer asio. The removed TODO said pinning should only be removed 'after updating websocketpp to a version including the fix from PR zaphoyd/websocketpp#1164', but this PR does not update websocketpp — it still installs whatever version brew provides. Installing the latest asio alongside an unpatched websocketpp 0.8.2 can reintroduce the macOS build failure the pin was meant to prevent. Verify that the current brew websocketpp formula includes the asio-compatibility fix (or otherwise confirm builds succeed) before dropping the pin.

Options

Auto-apply is off → Gitar will not commit updates to this branch.
Display: compact → Showing less information.

Comment with these commands to change the behavior for this request:

Auto-apply Compact
gitar auto-apply:on         
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Gitar

@codecov

codecov Bot commented Jul 19, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.69%. Comparing base (6817fd2) to head (556025f).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #509   +/-   ##
=======================================
  Coverage   95.69%   95.69%           
=======================================
  Files         244      244           
  Lines       26477    26477           
  Branches     1946     1946           
=======================================
  Hits        25336    25336           
  Misses       1141     1141           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment thread scripts/install_deps_macOS.sh Outdated
@gitar-bot

gitar-bot Bot commented Jul 19, 2026

Copy link
Copy Markdown
Code Review ⚠️ Changes requested 2 resolved / 3 findings

Consolidates macOS dependency installation into a single brew command and updates the changelog. The curl command for asio requires -f and -L flags to prevent silent failure if the download redirects or returns an error.

⚠️ Bug: curl download lacks -f/-L, can save error page as formula

📄 scripts/install_deps_macOS.sh:12

curl -O without -f exits 0 even on HTTP 404/5xx, writing the error body into asio.rb; the subsequent brew install asio.rb then fails with a confusing parse error instead of pointing at the real download failure. It also won't follow redirects. Use curl -fsSL -O https://... so a failed fetch aborts the script (under set -e) with a clear error.

✅ 2 resolved
Quality: Changelog references nonexistent install_dependencies.sh

📄 docs/changelog.md:12
The changelog entry mentions scripts/install_dependencies.sh, but the actual modified file is scripts/install_deps_macOS.sh. Update the changelog to reference the correct filename to avoid confusing readers.

Bug: Removing asio pin may reintroduce websocketpp incompatibility

📄 scripts/install_deps_macOS.sh:6
This change removes the asio 1.30.2 pinning (and its explanatory TODO) that was added because websocketpp 0.8.2 is incompatible with newer asio. The removed TODO said pinning should only be removed 'after updating websocketpp to a version including the fix from PR zaphoyd/websocketpp#1164', but this PR does not update websocketpp — it still installs whatever version brew provides. Installing the latest asio alongside an unpatched websocketpp 0.8.2 can reintroduce the macOS build failure the pin was meant to prevent. Verify that the current brew websocketpp formula includes the asio-compatibility fix (or otherwise confirm builds succeed) before dropping the pin.

🤖 Prompt for agents
Code Review: Consolidates macOS dependency installation into a single brew command and updates the changelog. The `curl` command for `asio` requires `-f` and `-L` flags to prevent silent failure if the download redirects or returns an error.

1. ⚠️ Bug: curl download lacks -f/-L, can save error page as formula
   Files: scripts/install_deps_macOS.sh:12

   `curl -O` without `-f` exits 0 even on HTTP 404/5xx, writing the error body into `asio.rb`; the subsequent `brew install asio.rb` then fails with a confusing parse error instead of pointing at the real download failure. It also won't follow redirects. Use `curl -fsSL -O https://...` so a failed fetch aborts the script (under `set -e`) with a clear error.

Options

Auto-apply is off → Gitar will not commit updates to this branch.
Display: compact → Showing less information.

Comment with these commands to change the behavior for this request:

Auto-apply Compact
gitar auto-apply:on         
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Gitar

@gitar-bot gitar-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gitar has auto-approved this PR (configure)

@gitar-bot gitar-bot Bot added the gitar-approved Added by Gitar label Jul 19, 2026
@gitar-bot

gitar-bot Bot commented Jul 19, 2026

Copy link
Copy Markdown
CI failed: The CI build is failing on macOS because the updated `asio` library is incompatible with the deprecated `websocketpp` dependency, causing widespread compilation errors due to removed `io_service` members. Additionally, a minor test timeout was observed that appears unrelated to these changes.

Overview

Multiple CI jobs on macOS are failing during the compilation phase due to breaking changes introduced by an updated asio library, which is incompatible with the project's unmaintained websocketpp dependency. One unrelated test timeout was also identified in the Linux test suite.

Failures

macOS Compilation Errors (confidence: high)

  • Type: build
  • Affected jobs: 88200667165, 88200667174
  • Related to change: yes
  • Root cause: The recent asio version installed via Homebrew removed io_service and related members, which websocketpp expects. As websocketpp is unmaintained, it cannot adapt to these modern C++ library changes.
  • Suggested fix: Pin the asio dependency to an older version (e.g., 1.22) in scripts/install_dependencies.sh or migrate the network layer away from the unmaintained websocketpp library.

Test Timeout (confidence: medium)

  • Type: flaky_test
  • Affected jobs: 88202916312
  • Related to change: no
  • Root cause: The test ScAgentTest.ATestEraseElement exceeded its execution time, likely due to transient environment resource contention.
  • Suggested fix: If the failure persists, investigate potential performance bottlenecks in the test or increase the timeout limit.

Summary

  • Change-related failures: 2 macOS build jobs failed due to dependency version mismatches between asio and websocketpp.
  • Infrastructure/flaky failures: 1 Linux test job experienced a transient timeout.
  • Recommended action: The developer should prioritize pinning the asio version to restore CI stability. Do not treat the flaky test as a regression unless it fails consistently.
Code Review ✅ Approved 3 resolved / 3 findings

Consolidates macOS dependency installation and adds robust curl flags to fix build failures. Addresses missing changelog references, websocketpp compatibility risks, and curl error-handling gaps.

Auto-approved: No blocking issues found.
Please see Auto-approve Docs for details on setting custom approval criteria.

✅ 3 resolved
Quality: Changelog references nonexistent install_dependencies.sh

📄 docs/changelog.md:12
The changelog entry mentions scripts/install_dependencies.sh, but the actual modified file is scripts/install_deps_macOS.sh. Update the changelog to reference the correct filename to avoid confusing readers.

Bug: Removing asio pin may reintroduce websocketpp incompatibility

📄 scripts/install_deps_macOS.sh:6
This change removes the asio 1.30.2 pinning (and its explanatory TODO) that was added because websocketpp 0.8.2 is incompatible with newer asio. The removed TODO said pinning should only be removed 'after updating websocketpp to a version including the fix from PR zaphoyd/websocketpp#1164', but this PR does not update websocketpp — it still installs whatever version brew provides. Installing the latest asio alongside an unpatched websocketpp 0.8.2 can reintroduce the macOS build failure the pin was meant to prevent. Verify that the current brew websocketpp formula includes the asio-compatibility fix (or otherwise confirm builds succeed) before dropping the pin.

Bug: curl download lacks -f/-L, can save error page as formula

📄 scripts/install_deps_macOS.sh:12
curl -O without -f exits 0 even on HTTP 404/5xx, writing the error body into asio.rb; the subsequent brew install asio.rb then fails with a confusing parse error instead of pointing at the real download failure. It also won't follow redirects. Use curl -fsSL -O https://... so a failed fetch aborts the script (under set -e) with a clear error.

Tip

Comment Gitar fix CI or enable auto-apply: gitar auto-apply:on

Options

Auto-apply is off → Gitar will not commit updates to this branch.
Display: compact → Showing less information.

Comment with these commands to change the behavior for this request:

Auto-apply Compact
gitar auto-apply:on         
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Gitar

@NikitaZotov
NikitaZotov merged commit 960b9a1 into main Jul 19, 2026
15 of 16 checks passed
@NikitaZotov NikitaZotov changed the title Update scripts/install_dependencies.sh to install asio via brew install asio [scripts] Use HOMEBREW_DEVELOPER mode to install asio Jul 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant