Skip to content

ci: Binding RC Linux lanes consume Bazel-built natives - #456

Merged
DecisionNerd merged 2 commits into
mainfrom
ci/450-binding-rc-bazel
Aug 7, 2026
Merged

DecisionNerd merged 2 commits into
mainfrom
ci/450-binding-rc-bazel

Conversation

@DecisionNerd

@DecisionNerd DecisionNerd commented Aug 7, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Linux Binding RC Python + Node x64 build Bazel cdylibs and assemble via binding_rc_bazel_native.py / assemble_bazel_binding_packages.py
  • Stop maturin/napi recompile on those lanes; drop their Cargo target/ sticky mounts
  • release_candidate emits index.js/index.d.ts from a retained Linux addon (emit-node-loaders) instead of napi build
  • Update bazel-migration-cutover.md; keep macOS/Windows/cross napi-maturin as follow-on

Test plan

  • python3 scripts/ci/test-binding-release-candidate.py
  • python3 scripts/ci/test-ci-storage-policy.py
  • python3 scripts/ci/test-assemble-bazel-binding-packages.py
  • CI Gate green on exact head
  • Binding RC dispatch smoke on a non-prod SHA (optional)

Closes #450

Made with Cursor


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Note

Switch Linux RC lanes to consume Bazel-built native binaries

  • Linux Python RC builds now assemble the abi3 wheel from Bazel outputs via the new binding_rc_bazel_native.py script instead of invoking maturin; macOS and Windows remain on maturin.
  • Linux Node x86_64 RC builds now stage the .node addon and loaders via Bazel instead of napi; other platforms remain on napi/napi-cross.
  • The release assembly job emits Node loaders via emit-node-loaders from the retained Linux addon rather than recompiling with napi build.
  • Cargo registry caching, sticky-disk mounts, and rustc-wrapper setup are skipped on Bazel lanes and retained only for maturin/napi lanes.
  • CI policy tests in test-binding-release-candidate.py are updated to enforce presence of Bazel build paths and absence of recompiling napi build in release assembly.

Macroscope summarized ecda605.

@coderabbitai

coderabbitai Bot commented Aug 7, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 30 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 4d1ff6a7-59f5-4659-a36b-96b203c5aee0

📥 Commits

Reviewing files that changed from the base of the PR and between 02fa574 and ecda605.

⛔ Files ignored due to path filters (2)
  • .github/workflows/binding-release-candidate.yml is excluded by !**/.github/**
  • docs/development/bazel-migration-cutover.md is excluded by !**/*.md, !**/docs/**
📒 Files selected for processing (2)
  • scripts/ci/binding_rc_bazel_native.py
  • scripts/ci/test-binding-release-candidate.py

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

@github-actions github-actions Bot added documentation Improvements or additions to documentation ci-cd CI/CD configuration changes tooling Developer tooling and automation release:none No release note or version impact labels Aug 7, 2026
@DecisionNerd
DecisionNerd force-pushed the ci/450-binding-rc-bazel branch 3 times, most recently from 27d8f88 to 5347b76 Compare August 7, 2026 17:48
DecisionNerd and others added 2 commits August 7, 2026 12:02
Wire python-ubuntu and node linux-x64 through binding_rc_bazel_native.py
+ assemble_bazel_binding_packages.py; drop Cargo sticky mounts on those
lanes. Emit release_candidate index loaders from a retained addon instead
of napi recompile. Document remaining host/cross maturin/napi follow-on.

Closes #450

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@DecisionNerd
DecisionNerd force-pushed the ci/450-binding-rc-bazel branch from 5347b76 to ecda605 Compare August 7, 2026 18:02
@DecisionNerd
DecisionNerd merged commit 16c6d3b into main Aug 7, 2026
21 checks passed
@DecisionNerd
DecisionNerd deleted the ci/450-binding-rc-bazel branch August 13, 2026 02:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-cd CI/CD configuration changes documentation Improvements or additions to documentation release:none No release note or version impact tooling Developer tooling and automation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ci: Binding RC consumes Bazel-built natives via assembler

1 participant