Repository navigation
Tags: meta/buck2
Tags
Have RE stop riot Android instrumentation tests once buck2 disconnects Summary: **What:** Android instrumentation tests set `cancel_on_client_disconnect` on executors that target `riot` lab devices. Emulator executors are unchanged. **Why:** buck2 asks RE to finish every started test. Cancelled or killed CI jobs thus hold Android devices 474 device-hours a day, worth $132K a year. **Go deeper:** - If wrong, network drops stop device tests as infra failures, expected 0.01 a day (P2578364459). Reverting this diff restores today's behavior. - Most of it is multisect and citadel-rl-test-mode CI jobs. Test results are not cached, so a stopped run loses nothing. - A buck2 without D128417985 ignores the unknown key, so an early land changes nothing. Stack: Land only after D128417985 is in at least two buck2 releases (bumps). https://docs.google.com/document/d/17p2F423T4TYJbBOdsbMaVgEe7Bv7Vofwc0LB2_GvO28/edit?tab=t.rsv5cu96698 Reviewed By: akrieger Differential Revision: D128604066 fbshipit-source-id: e644093d4fa3839777201ffc30d2e45d7be7bc25
invalidation: Drop the derived ordering on Version Summary: Only the invalidation path merge compared versions, and it did so with the derived lexicographic order, which happens to be right for two versions of one chain: branch ids are minted in creation order and a branch is younger than the one it was forked from. No behavior change here; the comparison is the same, under a name that says when it is meaningful, and the guarantee it rests on is written down on `BranchId`, which `CoreState::branches` already relied on for its parents-before-children order. ___ landed-with-radar-review Differential Revision: D128864614 fbshipit-source-id: 95026364db3b164add47b5644d682a1cd6f24550
Document exec marker preservation Summary: Transition authors can return a replacement `PlatformInfo`, but the effective exec configuration also retains the marker owned by Buck2. The existing guides did not explain this exception, leaving it unclear what happens when a transition omits the marker or sets it to `false`. Document the contract in `ExecutionPlatformRegistrationInfo.exec_marker_constraint` and the execution platform and transition guides: constructors and single/split transitions restore a missing marker, while explicitly returning a different value is an error. Transition authors can omit the marker and let Buck2 preserve it. Manually supplying the same constraint on an ordinary target does not enable restoration or conflict rejection. Clarify the registration's fallback scope and the marker's presence during idempotence validation. Link the conceptual transition guide to this behavior, including its effect on otherwise empty outputs. Reviewed By: NavidQar Differential Revision: D124812251 fbshipit-source-id: 778d5905f00f813e64ddc71af9b7844455a5cc7d
Export generated sources only for full library builds Summary: Source ABI and source-only ABI CD actions return generated-source trees that have no consumers, causing unnecessary RE directory-metadata downloads on cache hits. Make the annotation output paths optional in the protocol and keep omitted paths inside BUCK_SCRATCH_PATH. The rules declare generated-source directory outputs only for full library compilation, preserving their existing providers and subtargets. Reviewed By: siaojiecai Differential Revision: D122335997 fbshipit-source-id: 3625e69c0fc6e4e5d7ad47fece1843d1c3fa5722
Update flate2 from 1.1.9 to 1.1.10 (second attempt)
Summary: The WhatsApp crash that caused the revert in {D120009380} is resolved by {D120014105}.
Reviewed By: capickett
Differential Revision: D120031636
fbshipit-source-id: 60fe614f9b5661e3efbb189380692c841d0bd61a
Exclude the LLVM lit macros from buck2's prelude ci_hints Summary: Three `ci_hint` glob lists hint on all of `tools/build_defs/**`, which covers `tools/build_defs/llvm` -- the LLVM build macros. None of the hinted tests use them, so editing an LLVM macro pulls in every Apple rule test, every non-isolated buck2 e2e test, and the sample build jobs. Exclude to avoid unnecessary broad CI jobs and improve the chances of relevant ones getting run. Reviewed By: bcardosolopes Differential Revision: D117884846 fbshipit-source-id: 267bbe2d041bf93dedd578a3eaf467852e640a33
No-op generic typetag registration on wasm Summary: The starlark-rust OSS CI wasm job (`ci_oss_wasmtime.sh`, mirrored internally by `fbcode//buck2/scripts/oss:starlark-rust-oss`) builds `starlark` for `wasm32-wasip1`. Since the generic typetag auto-registration landed (`matchers.rs` / `function.rs` monomorphization constructors, 2026-08-13), that build dies in `__pagable_emit_generic_typetag_registration!`'s catch-all arm: ``` error: generic pagable typetag registration supports only 64-bit Linux/macOS and x86_64/aarch64 Windows --> starlark/src/values/typing/type_compiled/matchers.rs:91:1 ``` Wasm cannot use the constructor-record approach: `core::arch::asm!` is unsupported on wasm targets, and a wasm image has no loader-run constructor section for a per-monomorphization record anyway. Add a wasm arm that emits no registration — deserializing a generic typetag on wasm then fails with the registry's existing "Unknown type tag" error instead of failing the whole build at compile time. Concrete (`inventory`-based) registrations are unaffected. Reviewed By: jtbraun Differential Revision: D116564107 fbshipit-source-id: 826aec636b17a96f18afcf9101f9667c2ddec662
Layer `.bucksettings.local.toml` in home dir over repo root settings Summary: Parses `.bucksettings.local.toml` from home dir. Home-local settings are recursively merged over the repo-root `.bucksettings.toml`. The pipeline is now discover settings files -> parse into tables -> merge into one table -> deserialize into `BuckSettingsData`. Adds unit coverage for layered parsing and an e2e test verifying that a home-local value overrides the repo value. Reviewed By: Nero5023 Differential Revision: D113876491 fbshipit-source-id: d04ffa478d03070b0e4a6619140b7fc9e5dc67a5
Pin macOS OSS CI to macos-14 to unbreak Build and test Summary: The `macos-build-and-test` job in the OSS "Build and test" workflow (and the sibling `macos-build-examples` job in "Build and Examples") regressed again after GitHub's `macos-latest` label advanced to the `macos-15` runner image. On `macos-15`, `xcode-version: latest-stable` selects an Xcode/SDK that mis-targets the deployment SDK and breaks the `cargo build` step (see actions/runner-images#12758). This matches the reported "recently regressed, previously recovered" pattern: switching the pin to `latest-stable` in `Use latest stable Xcode in OSS CI` briefly recovered the job while `macos-latest` still resolved to `macos-14`, then it re-broke once the label rolled forward to `macos-15`. Pin `runs-on: macos-14` in both `build-and-test.yml` and `build-and-examples.yml`, where `latest-stable` resolves to a known-good Xcode 16.x. This is the documented remedy and is trivially reversible once the `macos-15` image is fixed upstream. This is a GitHub-hosted-runner-image regression, not a buck2 code bug — internal macOS builds use Meta's own toolchains and stayed green, which is why it was not caught by internal signal. ___ Differential Revision: D111806260 fbshipit-source-id: d827c7eb21750faff519ece8be81a81a6f16eaa6
windows-sys: enable WindowsFilteringPlatform + Authorization Summary: Enable the WFP (Windows Filtering Platform), Security Authorization, and System Rpc features on the `windows-sys` crate so the Windows sandbox (sandbox-runtime/windows-native-sandbox-rs) can install network-isolation filters. Win32_Networking_WinSock comes in transitively. Generated by `reindeer buckify` (third-party/rust/Cargo.toml + vendor/windows-sys/BUCK), then `arc autocargo` to sync the mirrored windows-sys feature set into the autocargo-enrolled consumers (arvr/apps/hzdb, fbcode/buck2, fbcode/scm/dotslash/oss/windows_shim). Reviewed By: dtolnay Differential Revision: D109989460 fbshipit-source-id: 85fa0963c6a90a93f729afb7f35aca7f2ec9adb8
PreviousNext