Skip to content

feat: macOS universal2 binary — full npm coverage incl. Intel macOS#22

Merged
DataDave-Dev merged 1 commit into
mainfrom
feat/macos-universal2
Jun 30, 2026
Merged

feat: macOS universal2 binary — full npm coverage incl. Intel macOS#22
DataDave-Dev merged 1 commit into
mainfrom
feat/macos-universal2

Conversation

@DataDave-Dev

Copy link
Copy Markdown
Owner

Why

Restores Intel macOS (darwin-x64) coverage on npm without depending on GitHub's unreliable Intel macOS runners (which blocked the v0.2.0 release). macOS is built once as a universal2 binary on the Apple Silicon runner and served for both Mac packages.

How

  • packaging/becwright.spec: target_arch from BECWRIGHT_TARGET_ARCH (universal2 on macOS, host arch elsewhere).
  • build-binaries.yml: macOS job uses the python.org universal2 framework Python and drops pyyaml's arch-specific C extension (becwright only needs yaml.safe_load/dump, served by the pure-Python loader), so PyInstaller produces a clean universal2 binary. Smoke-tests both the native (arm64) and the Rosetta (x86_64) slice.
  • release.yml: stage the one universal2 binary into both darwin-arm64 and darwin-x64 packages.
  • Re-add the @becwright/darwin-x64 package + optionalDependency; restore launcher message and docs (five packages, macOS universal2).

Verified in CI

Test build (workflow_dispatch, run 28464865781) — all 4 jobs green, including darwin-universal2:

Architectures in the fat file: dist/becwright are: x86_64 arm64

Both the native and the Rosetta x86_64 smoke tests passed. 121 unit tests pass; PyPI already covers every platform.

After merge

Create the v0.2.1 release → full npm coverage (linux x64/arm64, macOS Intel+Apple Silicon, win32-x64) + PyPI.

Restores darwin-x64 npm coverage without depending on GitHub's unreliable Intel
macOS runners. macOS is built once as a universal2 binary on the Apple Silicon
runner and served for both the darwin-arm64 and darwin-x64 packages.

- spec: target_arch from BECWRIGHT_TARGET_ARCH (universal2 on macOS, host arch
  elsewhere).
- build-binaries.yml: macOS job uses the python.org universal2 framework Python,
  drops pyyaml's arch-specific C extension (pure-Python yaml is enough), builds
  universal2, and smoke-tests both the native and the Rosetta (x86_64) slice.
- release.yml: stage the one universal2 binary into both darwin packages.
- Re-add the @becwright/darwin-x64 package and optionalDependency; restore the
  launcher's supported-platform list and the docs (five packages, macOS universal2).
@coderabbitai

coderabbitai Bot commented Jun 30, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@DataDave-Dev, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 49 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 8547b7cf-6974-426c-a867-412879e7ee2b

📥 Commits

Reviewing files that changed from the base of the PR and between ab36f58 and 9d5359e.

📒 Files selected for processing (15)
  • .github/workflows/build-binaries.yml
  • .github/workflows/release.yml
  • README.es.md
  • README.md
  • documentation/releasing.es.md
  • documentation/releasing.md
  • npm/becwright/README.md
  • npm/becwright/bin/becwright.js
  • npm/becwright/package.json
  • npm/platforms/darwin-arm64/package.json
  • npm/platforms/darwin-x64/package.json
  • npm/platforms/linux-arm64/package.json
  • npm/platforms/linux-x64/package.json
  • npm/platforms/win32-x64/package.json
  • packaging/becwright.spec
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/macos-universal2

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@DataDave-Dev DataDave-Dev merged commit 736edfc into main Jun 30, 2026
7 checks passed
@DataDave-Dev DataDave-Dev deleted the feat/macos-universal2 branch June 30, 2026 18:07
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