Skip to content

refactor(build): migrate construction and qualification to native Bazel - #295

Draft
f0rr0 wants to merge 190 commits into
mainfrom
f0rr0/native-bazel-release
Draft

f0rr0 wants to merge 190 commits into
mainfrom
f0rr0/native-bazel-release

Conversation

@f0rr0

@f0rr0 f0rr0 commented Oct 11, 2026 •

Copy link
Copy Markdown
Owner

CI and release selection infer ownership through separate mechanisms, allowing builds, compatibility metadata and published packages to disagree. This migration makes configured Bazel targets declare construction inputs, shipping Files and required consumers, and makes release preparation compare qualified deliveries with completed publications.

  • Bazel owns construction and configured dependencies. GitHub Actions retains separate platform jobs. Shared WASIX construction runs on Linux; other hosts import its exact Files and perform their native SDK work and execution. No remote executor is required.
  • Conventional manifests retain independent product versions and compatibility requirements. Carriers follow their release owner's version. Delivery comparison selects necessary releases before Release Please calculates versions and changelogs; a dependency edge alone does not require a release.
  • Omitting CI work requires an authenticated full baseline. Structural changes or incomplete evidence select full qualification. Installed consumers exercise shipping packages and declared producer Files, with source, configuration, producer and byte identities retained through publication.
  • Prepare reuses qualification for the exact source, or records the request and resumes after qualification succeeds, without occupying a waiting runner. It creates a release PR for review. The default-branch handoff has fixture coverage; its live cross-workflow verification requires deployment to main.
  • Final carrier checks preserve target-specific legal inventories, canonical document envelopes and member paths. Regular declared release-input Files survive transport; source trees retain separate admission requirements. Graph indexes are reused within each cohort while test-specific checks and File lifetime guards remain intact.
  • Shipping packages must declare known supplier coverage during Bazel analysis. Composition unions all original Files for the same supplier binding, rejects conflicting declarations and preserves unknown coverage. ABI provenance stays separate from compiled version coupling and delivered payloads.

Supplier regressions use real multi-input seed composition and complete NAPI fixture records. Eleven analysis tests pass across NAPI projection, kind rejection, actual NAPI payload inputs, six resource cases and Kotlin suppliers. They check order independence, idempotence, unknown coverage, owner versions and exact original File membership. The entire 68-target portable suite also passes analysis with no build actions; that check does not execute its tests. The four real configured mobile domains pass the unchanged TypeScript validator with one binding containing three original runtime Files. Adjacent Kotlin analysis uses authenticated published Query metadata.

The preceding supplier-declaration correction passed 115 focused TypeScript tests (788 assertions), seven Bazel analysis tests and the complete Bazel conformance suite: 28 change scenarios, 34 test attempts and four real package scenarios. Conformance exercises seeded changes, independent versions, shared owners, rejected declarations and cache restoration. Completed cache-test outputs are reclaimed before later scenarios to reduce peak disk use. Earlier carrier, legal, transport and graph corrections passed 155 focused tests and the sandboxed WASIX producer regression. Pinned format/lint and independent connected-code reviews passed.

Simulator lifecycle qualification prepares its auxiliary app before the tested launch, switches applications by local bundle ID, and propagates failed commands. It retains the existing timeout, original-process liveness, ordered background/active observations and resumed SQL proof. Timestamped commands and bounded lifecycle diagnostics make delayed transitions diagnosable. Twelve local shell scenarios pass, including asynchronous readiness, failed preparation/backgrounding, premature PASS, fatal errors, dead capture/process and lifecycle timeout. The final cutover adds this existing fixture to the fast check inventory once.

This PR remains draft. The preceding full run completed fifteen jobs successfully, including release-family construction; its installed iOS lifecycle test timed out and its two dependent guards failed. The locally tested harness correction is pushed at 3a356cb4a1a865913f21626afbb22f3bcc8e5ab1. Automatic PR qualification is currently blocked by conflicts with main's new PostGIS raster/companion support; integration includes the newly required GDAL source/configuration, declared SDK projection inputs, carrier metadata and compatibility with older immutable packages.

Required's complete 27-product construction/observation/supplier audit and Source CI must succeed on the integrated source before acquiring the fourteen-slot seed-adoption anchor. Legacy retirement and the remaining reviewed cleanup then land together, followed by one complete Native-only qualification of that combined source before this PR becomes ready.

@vercel

vercel Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
oliphaunt-docs Skipped Skipped Oct 23, 2026 2:03pm UTC

@f0rr0 f0rr0 changed the title build: establish native Bazel construction and qualification refactor(build): migrate construction and qualification to native Bazel Oct 11, 2026
f0rr0 added 20 commits October 21, 2026 12:30
Share the React C++ import profile across Expo modules and final app consumers. Forward the complete compiler context when Swift rebuilds imported textual interfaces.

Add a small maintained-rule compiler regression for a Swift 5 consumer of a Swift 6 interface. The same target fails without context forwarding and passes when it is restored.

This branch was previously deployed

1 inactive deployment
Preview — 3a356cb4 Deployed Oct 23, 2026 by vercel[bot]
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