Repository navigation
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
f0rr0
changed the base branch from
f0rr0/macos-bazel-performance
to
f0rr0/native-bazel-release
October 19, 2026 14:34
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Superseded by #297, which contains these changes plus required Apple shipping regression checks and the current migration base. The completed Android measurement at f4fee98 is preserved in run 39257722374: the full package/device phase passed all 11 tests in 70m17s, versus 98m31s at e1b5e65 (28.7% lower elapsed time). Its authenticated artifact 12197041283 and installed-device artifact 12196462073 retain the source/tree and 39-extension ICU/lifecycle proof. The remaining superseded run was cancelled after that result to avoid duplicate construction.
Android release carriers, packaged inputs and APK native dependencies used different Bazel configurations, rebuilding the same libraries. Use the pinned upstream Android ABI split, share Linux producer configurations for packaged inputs, and carry registration plus the actual C++ library at the native compatibility floor. Raising an app's Java/Dex minimum SDK now reuses the released native libraries.
The Android reuse check compares actual selected archive Files for both ABIs at the app minimum SDK and a higher minimum. The strengthened Apple check requires every profile in both raw and framework branches. Both derive membership from existing carrier metadata; neither maintains object-file lists. Full qualifications and configured CI requests retain stock compact execution logs, including Linux diagnostic uploads.
Input capture also repeatedly sorted long shared SDK paths for each action. Rank paths once per graph and sort compact numeric ranks, then hash the same complete sorted path strings. The representative Apple projection falls from 36.5 to 16.5 seconds without profiling, with its complete serialized hash unchanged.
This stacks on #297. That PR's cold macOS measurement has completed: its 17 tests passed in 4 h 45 min with zero disk hits, and the five-hour job limit interrupted later capture. It integrates the migration branch's shared input traversal, physical/publication mode separation, authenticated retained executions, stock Merkle-tree reuse and targeted 4 GiB cache budgets for the three largest Linux/macOS cohorts. No tool/rule repins, custom cache service, removed qualification checks or shipping Xcode change.
Validation:
Exact-source Native CI 39257722374, installed Android execution and whole-job timing are pending. Mac cold compilation remains expensive on the three-CPU/7 GiB runner; the preceding run was cancelled during cache saving, and the measured run therefore started without a snapshot. A remaining host-tool configuration split differs only by the Android minimum-SDK flag; changing global Starlark propagation in pinned Bazel 8.8.1 would also affect Rust/Apple tool settings and is deliberately not bundled here. Planned action counts, construction-only benchmarks and controlled cache experiments are not whole-job timing or release admission.