Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1013 commits
Select commit Hold shift + click to select a range
9992843
Make starlark_attrs!() fields visible to the typechecker
8Keep Aug 6, 2026
ef912e6
Make clean stale scan art-anon and art-bxl dirs (#1447)
bvinc Aug 6, 2026
24d8b2d
Link Rust binaries locally when the toolchain asks for it
Aug 6, 2026
0432fd1
Reproduce restored-heap recipe index corruption
Nero5023 Aug 6, 2026
c9a73f5
Reproduce cross-root heap scope collision
Nero5023 Aug 6, 2026
efad09b
Reproduce same-name heap serialization collision
Nero5023 Aug 6, 2026
aaf71a1
Reuse stored Arc keys across page-out backends
Nero5023 Aug 6, 2026
666c607
Add PartialPagableArc with canonical stored identity
Nero5023 Aug 6, 2026
7d0563a
Key serialization heap state by exact allocation
Nero5023 Aug 6, 2026
235089d
Reuse resident partial Arcs by stored key
Nero5023 Aug 6, 2026
0263cb0
Make storage-lifetime state explicit
Nero5023 Aug 6, 2026
4acedb6
Introduce root-scoped page-in identity
Nero5023 Aug 6, 2026
ce36947
Add typed root-scoped page-in state
Nero5023 Aug 6, 2026
a1bd0fd
Scope heap deserialization state by root
Nero5023 Aug 6, 2026
52c3d05
Register and validate root-scoped heap bindings
Nero5023 Aug 6, 2026
e0b2850
Resolve heap values through root-scoped bindings
Nero5023 Aug 6, 2026
b747e68
Remove the redundant resident heap index
Nero5023 Aug 6, 2026
f77d87c
Preserve recipe indices for restored heaps
Nero5023 Aug 6, 2026
0f90ef5
Refresh restored heap indices only when dirty
Nero5023 Aug 6, 2026
6d7f0bf
Allow .type on native type-constructor functions
8Keep Aug 6, 2026
33c2c16
infer_target_names: fix `attrs.source()` coercion (#1437)
lf- Aug 6, 2026
deac0a9
Gate pagable test from Cargo
Nero5023 Aug 7, 2026
2867e9f
Filter OOM records in monotonic clock domain
mattpaynemeta Aug 7, 2026
c3b42ae
Attribute OOM kills using daemon identity
mattpaynemeta Aug 7, 2026
44ce31e
Ignore redrawn prompts in completion verifier
Nero5023 Aug 7, 2026
0c76034
paths.basename(a.short_path) -> a.basename
blackm00n Aug 7, 2026
c80cde0
drop .lproj from ibtool action identifiers
blackm00n Aug 7, 2026
e637e3e
better name for wrapper script
blackm00n Aug 7, 2026
ddec9ba
Cache prepared statements and shorten the dep-file table lock hold
NavidQar Aug 7, 2026
20dd44d
Write the local dep-file cache through to the persisted store
NavidQar Aug 7, 2026
cf50841
Share the dependency maps instead of copying per target
TD5 Aug 7, 2026
63a0d20
Mark AndroidIntent's optional fields @Nullable
Aug 7, 2026
2727069
Model ErrorInterceptor UNKNOWN's absent file pattern
Aug 7, 2026
600a6af
Null-check readValue in MergeAssetsExecutableMain
Aug 7, 2026
ce2a0ae
Null-check getInputStream in D8ExecutableMain
Aug 7, 2026
50f7fe2
Mark ApkBuilder's optional ctor params @Nullable
Aug 7, 2026
2a0a338
Vet bundletool BundleModule/ZipPath constants
Aug 7, 2026
e811528
Vet apksig ApkSigner.Builder for ApkSignerUtils
Aug 7, 2026
7244ca3
Vet Guava MultimapBuilder for APKModuleGraph
Aug 7, 2026
dba957d
Vet bundletool BuildApksCommand for the apks builder
Aug 7, 2026
d1a8209
Vet R8/D8 command APIs for D8Utils
Aug 7, 2026
9d9167f
Require the always-passed MultiDex CLI options
Aug 7, 2026
4e37448
Vet sdk-common XML APIs for GenerateManifest
Aug 7, 2026
3d44892
Hoist nullable fields before lambdas in FilterResources
Aug 7, 2026
c4e9985
Do not reject int == float comparisons
8Keep Aug 7, 2026
2e0a21f
Allow cancellations in targets --streaming
8Keep Aug 7, 2026
9d9f08d
Refresh stale security overrides (22 findings -> 0)
Aug 7, 2026
150d6e2
Raise tmp floor, add linkify-it floor
Aug 7, 2026
512ec37
Add lodash-es resolution to both JS packages
Aug 7, 2026
ae8b9cd
Add 17 security floors to both manifest keys
Aug 7, 2026
ef05bf1
Give dwp its own execution preference, so Rust binary links stop pinn…
andrewjcg Aug 7, 2026
156b73e
Fix OSS RE client dropping ExecutedActionMetadata.auxiliary_metadata …
pascalkuthe Aug 7, 2026
474db3f
Enable Starlark pagable for Cargo builds
Nero5023 Aug 7, 2026
523430f
chrono_panics: Disallow panicking time APIs via clippy
JakobDegen Aug 7, 2026
398a191
jiff: Add allocative support for jiff types
JakobDegen Aug 7, 2026
189230e
jiff: Migrate display-only time formatting
JakobDegen Aug 7, 2026
1deccde
jiff: Migrate event log timestamps
JakobDegen Aug 7, 2026
ed498b9
jiff: Migrate the buck2_client time handling
JakobDegen Aug 7, 2026
aba6003
jiff: Migrate the execute cluster
JakobDegen Aug 7, 2026
b5a7fcc
jiff: Remove chrono from buck2's builds
JakobDegen Aug 7, 2026
1ecb430
jiff: Ban chrono and panicking jiff APIs
JakobDegen Aug 7, 2026
cdde8a6
Fix broken fbsource//xplat/ecos/granite:graniteCoreTests-skiaAndroid …
Aug 7, 2026
ecff4dd
fbcode/buck2/tests/e2e/configurations/cfg_constructor/conditional_mod…
Aug 7, 2026
b03ea05
Extract Windows http_archive from the real path instead of using tar -P
akrieger Aug 7, 2026
402031a
fbcode/buck2/app/buck2/BUCK
Aug 7, 2026
e53d9a5
Limit games image codecs to PNG
Nero5023 Aug 7, 2026
9608a86
Make clean stale scan gen-anon and gen-bxl dirs (#1452)
bvinc Aug 7, 2026
95a819d
json: Test deeply nested `write_json` values
JakobDegen Aug 7, 2026
2104ea5
Migrate remaining rule-layer config reads
8Keep Aug 7, 2026
3f68490
fbcode/github/standard/shim/os/linux/distro/constraints/BUCK
Aug 7, 2026
4fd2f00
Drop stale is_deployed_buck2 gates on RE-error infra failures
Aug 7, 2026
1ce4938
Track winning setting sources
juliazliu Aug 8, 2026
5418f0b
Enforce `overridable_in`
juliazliu Aug 8, 2026
4bad135
buck-infra: Buck/prelude wiring for C++ implicit codegen
ginfung Aug 8, 2026
77ac631
Revert D114746214
Aug 8, 2026
c66476d
Update pagable from 0.4.1 to 0.4.2
Aug 8, 2026
04f64ea
rules: Delete the unused deferred_link_action tool
JakobDegen Aug 8, 2026
c66414f
rules: Skip linker argsfile construction for deferred links
JakobDegen Aug 8, 2026
3689673
Rename digest 0.10.7 to digest-010
Aug 8, 2026
53d744c
Rename sha1 0.10.7 to sha1-010
Aug 8, 2026
4875f13
Define clippy_configuration macro
Aug 8, 2026
19de3e1
Add jiff dependency
Aug 8, 2026
b3e3237
Retain module heap during BXL evaluation
Nero5023 Aug 9, 2026
b7e3d91
Diagnose unresolved frozen pointers
Nero5023 Aug 9, 2026
3d421b2
Register cached Starlark heap graphs in page-in scopes
Nero5023 Aug 9, 2026
873eafc
Update ktfmt component on FBS:master
Aug 9, 2026
b81d577
Separate Arc serialization views during page-out
Nero5023 Aug 10, 2026
7dc01a1
Preserve Arc identity across typetag views
Nero5023 Aug 10, 2026
82474c9
instrumentation-tests: submit split android-emulator platforms directly
Aug 10, 2026
cda6d87
Read pre-dex class names from the DEX, not the input jar
Aug 10, 2026
57eed0e
Updating hashes
Aug 10, 2026
ae54098
Let overriding PYTEST_ADDOPTS in buck2 checks
xaionaro Aug 10, 2026
9ab4d48
Pin `base_module` for dependency-test targets
xaionaro Aug 10, 2026
23d450d
fbcode/github/standard/shim/os/linux/distro/constraints/BUCK
Aug 10, 2026
284c1f9
fbcode/buck2/examples/bootstrap/bootstrap/BUCK
Aug 10, 2026
eb5532f
fbcode/buck2/prelude/cpu/constraints/BUCK
Aug 10, 2026
1f9ba7d
update test constraint labels to fix opt-by-default test failures
Aug 10, 2026
3fb5da0
fbcode/buck2/tests/e2e/configurations/cfg_constructor/conditional_mod…
Aug 10, 2026
5921a8c
Clean recent intermediate artifacts adaptively
scottcao Aug 10, 2026
0158198
fbcode/buck2/prelude/os/constraints/BUCK
Aug 10, 2026
117652f
Fix OSS rustdoc warning: escape `Box<dyn Trait>` in doc comment
8Keep Aug 10, 2026
51d0b41
exhaustive: Add an `ExhaustivenessHash` to `DirectoryData`
JakobDegen Aug 10, 2026
c2d7324
exhaustive: Thread exhaustiveness through `DirectoryBuilder`
JakobDegen Aug 10, 2026
6f9b24f
exhaustive: Mark complete-content construction sites
JakobDegen Aug 10, 2026
8e21d2d
exhaustive: Use `MiniBoxSlice` for `DirectoryData` entries
JakobDegen Aug 10, 2026
4e98d48
Add emscripten-wasm ExtraLinkerOutput to declare the emcc .wasm sibling
elliekorn Aug 10, 2026
538f99c
json: Catch stack overflows from deeply nested values
JakobDegen Aug 10, 2026
3f32399
do not export TMPDIR
blackm00n Aug 10, 2026
21fcb08
compile watchos storyboards as directories
blackm00n Aug 10, 2026
662e5d0
put xib compilation outputs in temporary directory
blackm00n Aug 10, 2026
6a27537
fbcode/buck2/app/buck2/BUCK
Aug 10, 2026
ed7cec8
Use native multidex for preprocessed APKs
Aug 10, 2026
5564318
Fix OSS dead-code errors by making OomEvidence Linux-only
8Keep Aug 10, 2026
58c4c1a
builtin file watcher: set lost-events flag for a pathless rescan even…
Aug 10, 2026
ed6d385
Keep swiftmodule actions local when prioritized to prevent unnecessar…
AaronFarber Aug 10, 2026
27f8f37
Bump prioritized Swift object compile weight to 4x num_threads
AaronFarber Aug 10, 2026
68bdf6f
Make projection completion talk to the core state synchronously
JakobDegen Aug 10, 2026
97a0947
Fix StarlarkHashValue collisions on sequential names
jtbraun Aug 11, 2026
64a1db1
prelude/git: Expose the fetched repository as a `.git` sub-target (#1…
martinpitt Aug 11, 2026
40c0afb
Let prebuilt_python_library consume source directories
andrewjcg Aug 11, 2026
55f29b4
Report test_infra_error crashes as INFRA_FAILURE in erlang CT
TheGeorge Aug 11, 2026
c81d0f4
Fix private rustdoc link in StarlarkHasher
8Keep Aug 11, 2026
f5cb3fe
handle filegroups in mapped_srcs
Aug 11, 2026
7e46968
Align test execution policy with C++ and Python
Aug 11, 2026
a943f4d
Keep local-only tests off remote build executors
Aug 11, 2026
2d5a632
Write the persisted dep-file cache from a background thread
NavidQar Aug 11, 2026
3ea469d
Reconstruct and serve the local dep-file cache from disk
NavidQar Aug 11, 2026
20b4bc0
Probe persisted dep-file candidates by digest before fetching outputs
NavidQar Aug 11, 2026
9944684
Persist the local dep-file cache across daemon restarts
NavidQar Aug 11, 2026
e781f23
bug fix: internal_error not returned (#1455)
lf- Aug 11, 2026
d0f4fce
fbcode/buck2/examples/bootstrap/bootstrap/BUCK
Aug 11, 2026
18d26bc
lifetimes: Fork freeze and complex infrastructure for new complex val…
JakobDegen Aug 11, 2026
6ac7417
lifetimes: `'fv` on `AllocFrozenValue`
JakobDegen Aug 11, 2026
87bac5a
lifetimes: Fork macros and demonstrate new complex values
JakobDegen Aug 11, 2026
ee9630b
lifetimes: Complex branded `Partial`
JakobDegen Aug 11, 2026
7d99b7a
lifetimes: Complex branded `Tuple`
JakobDegen Aug 11, 2026
cdb6ad9
lifetimes: Make record non-special and privacy
JakobDegen Aug 11, 2026
3643652
lifetimes: Complex branded `Record`
JakobDegen Aug 11, 2026
993e99f
lifetimes: impl `FreezeBranded` for `TypeCompiled`
JakobDegen Aug 11, 2026
55f19a5
lifetimes: Complex branded record type
JakobDegen Aug 11, 2026
5cb5e84
lifetimes: Enum non-special and privacy
JakobDegen Aug 11, 2026
d616a65
lifetimes: Complex branded enum value
JakobDegen Aug 11, 2026
5c7e673
lifetimes: Support `?Sized` in `ProvidesStaticType`
JakobDegen Aug 11, 2026
bbc8ebf
lifetimes: Complex branded enum type
JakobDegen Aug 11, 2026
f03fcfd
lifetimes: Expose a better `pub(crate)` type for enums
JakobDegen Aug 11, 2026
2b5babd
lifetimes: Complex branded selector
JakobDegen Aug 11, 2026
0dc3640
lifetimes: Complex branded tset projections
JakobDegen Aug 11, 2026
d9c9122
lifetimes: Split up `any` module
JakobDegen Aug 11, 2026
0e3a3ca
lifetimes: Add `IsStaticType`
JakobDegen Aug 11, 2026
9f3d7d9
lifetimes: Remove size check on `transmute` macro
JakobDegen Aug 11, 2026
4461ba9
lifetimes: Add `OwnedFrozen`
JakobDegen Aug 11, 2026
f693865
lifetimes: `OwnedFrozen` from `OwnedFrozenValueTyped`
JakobDegen Aug 11, 2026
d883037
lifetimes: Complex branded `TransitiveSet`
JakobDegen Aug 11, 2026
a51df32
lifetimes: Complex branded `AnalysisPlugins`
JakobDegen Aug 11, 2026
f1e6e89
lifetimes: Pagable ser/de for `OwnedFrozen`
JakobDegen Aug 11, 2026
0e526de
lifetimes: `Freeze` in terms of `FreezeBranded`
JakobDegen Aug 11, 2026
9a8e8bf
lifetimes: `OwnedFrozenValueTyped` from `OwnedFrozen`
JakobDegen Aug 11, 2026
2a3f4de
lifetimes: Complex branded `ProviderCollection`
JakobDegen Aug 11, 2026
a42ca95
lifetimes: Complex branded `Dependency`
JakobDegen Aug 11, 2026
f8e4d58
lifetimes: Add `OwnedFrozenRef`
JakobDegen Aug 11, 2026
868af5f
lifetimes: Use `OwnedFrozenRef` in provider code
JakobDegen Aug 11, 2026
78e16fc
lifetimes: Return `Value` from untyped provider accessors
JakobDegen Aug 11, 2026
f2be64c
lifetimes: Add `HeapEdge`
JakobDegen Aug 11, 2026
2f2233d
lifetimes: Use `HeapEdge` in the dependency test helper
JakobDegen Aug 11, 2026
e141594
lifetimes: Reformulate `FrozenBuiltinProviderLike` around `Reinfect`
JakobDegen Aug 11, 2026
cfe9334
lifetimes: Branded mode for `internal_provider`, starting with `Const…
JakobDegen Aug 11, 2026
a8c3c3b
lifetimes: Complex branded `ConstraintValueInfo`
JakobDegen Aug 11, 2026
e0ea576
lifetimes: Complex branded `PlatformInfo`
JakobDegen Aug 11, 2026
e8a420c
lifetimes: Complex branded `ExecutionPlatformInfo`
JakobDegen Aug 11, 2026
2e4b6ba
lifetimes: Complex branded `ExecutionPlatformRegistrationInfo`
JakobDegen Aug 11, 2026
e76b083
lifetimes: Complex branded `WorkerRunInfo`
JakobDegen Aug 11, 2026
e0e65cf
lifetimes: Complex branded `InstallInfo`
JakobDegen Aug 11, 2026
ed7b188
lifetimes: Complex branded `ValidationInfo`
JakobDegen Aug 11, 2026
2f18709
lifetimes: Complex branded `LocalResourceInfo`
JakobDegen Aug 11, 2026
98cc3b9
lifetimes: Complex branded `RunInfo`
JakobDegen Aug 11, 2026
54ff7da
lifetimes: Use `OwnedFrozen` in `TransitiveValidations`
JakobDegen Aug 11, 2026
0727199
lifetimes: Complex branded `DepOnlyIncompatibleRollout`
JakobDegen Aug 11, 2026
88a6680
lifetimes: Complex branded `DepOnlyIncompatibleInfo`
JakobDegen Aug 11, 2026
ab8c6e5
lifetimes: Complex branded `WorkerInfo`
JakobDegen Aug 11, 2026
91c5942
lifetimes: Complex branded `TemplatePlaceholderInfo`
JakobDegen Aug 11, 2026
0e51751
lifetimes: Complex branded `InternalRunnerTestInfo`
JakobDegen Aug 11, 2026
eb24e45
lifetimes: Complex branded `ExternalRunnerTestInfo`
JakobDegen Aug 11, 2026
7feb4d7
lifetimes: Complex branded `ConfigurationInfo`
JakobDegen Aug 11, 2026
162b73e
lifetimes: Decouple the visitor brand in `ResolvedMacro::visit_artifa…
JakobDegen Aug 11, 2026
af5c0dc
lifetimes: Complex branded `DefaultInfo`
JakobDegen Aug 11, 2026
765438f
lifetimes: Complex branded `TransitionInfo`
JakobDegen Aug 11, 2026
45b3749
lifetimes: Delete the legacy `internal_provider` mode
JakobDegen Aug 11, 2026
49a29a0
lifetimes: Add `ValueTyped::unpack_frozen`
JakobDegen Aug 11, 2026
eb1c043
lifetimes: De-panic the `DefaultInfo` sub-target accessors
JakobDegen Aug 11, 2026
4d7d48f
lifetimes: De-panic the `ProviderCollection` builtin-provider accessors
JakobDegen Aug 11, 2026
0a94b7e
lifetimes: Brand `FrozenAnalysisValueStorage`
JakobDegen Aug 11, 2026
d967b8a
lifetimes: Bridge `OwnedRefFrozenRef` to `OwnedFrozenRef`
JakobDegen Aug 11, 2026
d2a2b1d
lifetimes: Dynamic-lambda lookup via `OwnedFrozenRef`
JakobDegen Aug 11, 2026
78ea4df
lifetimes: Store analysis storage as `OwnedFrozen`
JakobDegen Aug 11, 2026
80cc608
lifetimes: De-unsafe `provider_collection`
JakobDegen Aug 11, 2026
858de97
lifetimes: `FreezeBranded` for `FrozenValueTyped`
JakobDegen Aug 11, 2026
9f827c5
lifetimes: `FreezeBranded` plumbing for `CommandLineArg`
JakobDegen Aug 11, 2026
ce6cffe
lifetimes: Complex branded `ResolvedStringWithMacros`
JakobDegen Aug 11, 2026
2272ab4
lifetimes: Branded handles in placeholder resolution
JakobDegen Aug 11, 2026
766de13
lifetimes: Delete `FrozenCommandLineArg`
JakobDegen Aug 11, 2026
98dffd4
lifetimes: De-unsafe `get_action_data`
JakobDegen Aug 11, 2026
0b5fb27
lifetimes: Untyped `OwnedFrozen` interop with `OwnedFrozenValue`
JakobDegen Aug 11, 2026
d8709db
lifetimes: Complex branded `CmdArgsRegex`
JakobDegen Aug 11, 2026
9d894f7
lifetimes: Brand the command line options pair
JakobDegen Aug 11, 2026
1683b92
lifetimes: Complex branded `StarlarkCmdArgs`
JakobDegen Aug 11, 2026
4cdcca0
lifetimes: `OwnedFrozen` carriers for action values
JakobDegen Aug 11, 2026
b0456bd
lifetimes: De-panic `DefaultInfo::default_outputs`
JakobDegen Aug 11, 2026
cc16a9a
lifetimes: `FreezeBranded` for `StarlarkDeclaredArtifact`
JakobDegen Aug 11, 2026
758c60b
lifetimes: Brand the output artifact pair
JakobDegen Aug 11, 2026
c01d110
lifetimes: Output artifact fallout in dynamic actions
JakobDegen Aug 11, 2026
5c4ff5e
lifetimes: Complex branded tagged values and write_json arg
JakobDegen Aug 11, 2026
a758c5a
lifetimes: `OwnedFrozen` carrier for `error_handler`
JakobDegen Aug 11, 2026
b4714c8
lifetimes: Complex branded `UserProvider`
JakobDegen Aug 11, 2026
4cb22f8
lifetimes: Complex branded `StarlarkValidationSpec`
JakobDegen Aug 11, 2026
7e39cbc
lifetimes: Complex branded `TransitiveSetOperations`
JakobDegen Aug 11, 2026
ee45a59
lifetimes: Complex branded `StarlarkAssembledDirEntry`
JakobDegen Aug 11, 2026
d1387f4
lifetimes: Complex branded bxl artifact iterables
JakobDegen Aug 11, 2026
187d5b2
lifetimes: Complex branded select markers
JakobDegen Aug 11, 2026
6c37c05
lifetimes: Complex branded bxl `StarlarkResult`
JakobDegen Aug 11, 2026
6a02c49
lifetimes: Drop the vestigial `_frozen_heap` param from `BxlActions::…
JakobDegen Aug 11, 2026
a67cbf7
lifetimes: `alloc_complex` -> `heap.alloc` on branded types
JakobDegen Aug 11, 2026
a589b50
lifetimes: `ValueTypedComplex` -> `ValueTyped` at single-struct brand…
JakobDegen Aug 11, 2026
5bfc719
lifetimes: `ValueTyped` for `AnalysisValueStorage.result_value`
JakobDegen Aug 11, 2026
7c71b48
lifetimes: Tset `definition()` returns the frozen handle directly
JakobDegen Aug 11, 2026
365fd36
lifetimes: Add `StarlarkCmdArgsUnpack` for pair unpacks at the value'…
JakobDegen Aug 11, 2026
1fffb80
lifetimes: Delete the hand-written plain-`Freeze` compat impls
JakobDegen Aug 11, 2026
5b717fb
lifetimes: Delete the plain-`Freeze` emission from `starlark_complex_…
JakobDegen Aug 11, 2026
2c0b48c
lifetimes: Delete `OwnedRefFrozenRef`
JakobDegen Aug 11, 2026
192d64c
lifetimes: `ProviderCollection`'s `AllocFrozenValue` at `'v == 'fv`
JakobDegen Aug 11, 2026
6884719
lifetimes: Delete `FrozenProviderCollectionValue::value()`
JakobDegen Aug 11, 2026
9615626
lifetimes: Docs refresh for the transitional-artifact cleanup
JakobDegen Aug 11, 2026
2b513af
exhaustive: Compute mixed hashes with blake3
JakobDegen Aug 11, 2026
27c03e7
Honor link execution policy for BOLT
Aug 11, 2026
009bec0
Plumb allow_cache_upload into the inplace par actions
8Keep Aug 11, 2026
8c89460
Bound work in targets --streaming
8Keep Aug 11, 2026
f655ea9
platforms: Key ConfigurationCreated Scribe messages by configuration …
JakobDegen Aug 12, 2026
3f964da
buck2 cache upload: fix data corruption due to races (#1454)
lf- Aug 12, 2026
03721ba
Keep primary_dex_patterns working under coverage builds
Aug 12, 2026
c85a02e
Stop emitting R.custom_drawables from the Android resource toolchain
Aug 12, 2026
673183f
Back out "Align test execution policy with C++ and Python"
Aug 12, 2026
d1868a6
Invoke values returned by method attributes
8Keep Aug 12, 2026
760d209
Remove allocation-prone `StarlarkAttrs` derive
8Keep Aug 12, 2026
898ed95
Name the heap in `ConflictingHeapBinding`
Nero5023 Aug 12, 2026
5c0d24c
Link the toolchain's runtime-library files in the cxx link action
thevinster Aug 12, 2026
bd6a8a1
Make go_bootstrap_binary reproducible
podtserkovskiy Aug 12, 2026
edab829
Fix ABI-gen constructor handling for enums, default params, and inner…
AlexeySoshin Aug 12, 2026
306b82b
Report each D8 synthetic's synthesizing context from pre-dex
Aug 12, 2026
a74ae3d
Place D8 synthetics in the primary dex using D8's own synthetic-to-co…
Aug 12, 2026
7a15594
Degrade corrupt-span resolution to diagnostics instead of panicking
jtbraun Aug 12, 2026
55da223
Hand each install artifact over when it arrives
NavidQar Aug 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 4 additions & 1 deletion .buckconfig
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,10 @@ ignore = \
app_dep_graph_rules, \
examples, \
integrations/rust-project/tests, \
tests
tests, \
.jj, \
.git, \
target

[rust]
default_edition = 2024
2 changes: 1 addition & 1 deletion .envrc
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ if ! has nix_direnv_version || ! nix_direnv_version 3.0.5; then
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.5/direnvrc" "sha256-RuwIS+QKFj/T9M2TFXScjBsLR6V3A17YVoEW/Q6AZ1w="
fi

watch_file rust-toolchain
watch_file rust-toolchain.toml
use flake

source_env_if_exists .envrc.local
2 changes: 1 addition & 1 deletion .github/actions/setup_linux_env/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ runs:
- uses: SebRollen/toml-action@v1.2.0
id: read_rust_toolchain
with:
file: rust-toolchain
file: rust-toolchain.toml
field: toolchain.channel
- uses: dtolnay/rust-toolchain@v1
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/setup_macos_env/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ runs:
- uses: SebRollen/toml-action@v1.2.0
id: read_rust_toolchain
with:
file: rust-toolchain
file: rust-toolchain.toml
field: toolchain.channel
- uses: dtolnay/rust-toolchain@v1
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/setup_windows_env/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ runs:
- uses: SebRollen/toml-action@v1.2.0
id: read_rust_toolchain
with:
file: rust-toolchain
file: rust-toolchain.toml
field: toolchain.channel
- uses: dtolnay/rust-toolchain@v1
with:
Expand Down
32 changes: 32 additions & 0 deletions .github/dotslash-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,38 @@
"path": "rust-project-x86_64-unknown-linux-musl"
}
}
},
"starlark_fmt": {
"platforms": {
"macos-aarch64": {
"regex": "^starlark_fmt-aarch64-apple-darwin.zst$",
"path": "starlark_fmt-aarch64-apple-darwin"
},
"windows-aarch64": {
"regex": "^starlark_fmt-aarch64-pc-windows-msvc.exe.zst$",
"path": "starlark_fmt-aarch64-pc-windows-msvc.exe"
},
"linux-aarch64": {
"regex": "^starlark_fmt-aarch64-unknown-linux-musl.zst$",
"path": "starlark_fmt-aarch64-unknown-linux-musl"
},
"linux-riscv64": {
"regex": "^starlark_fmt-riscv64gc-unknown-linux-gnu.zst$",
"path": "starlark_fmt-riscv64gc-unknown-linux-gnu"
},
"macos-x86_64": {
"regex": "^starlark_fmt-x86_64-apple-darwin.zst$",
"path": "starlark_fmt-x86_64-apple-darwin"
},
"windows-x86_64": {
"regex": "^starlark_fmt-x86_64-pc-windows-msvc.exe.zst$",
"path": "starlark_fmt-x86_64-pc-windows-msvc.exe"
},
"linux-x86_64": {
"regex": "^starlark_fmt-x86_64-unknown-linux-musl.zst$",
"path": "starlark_fmt-x86_64-unknown-linux-musl"
}
}
}
}
}
14 changes: 10 additions & 4 deletions .github/workflows/build-and-examples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,14 @@ permissions:

jobs:
macos-build-examples:
runs-on: macos-latest
# Pinned to macos-14: on the macos-15 runner image `latest-stable` selects an
# Xcode/SDK that mis-targets the deployment SDK and breaks the `cargo build`
# step (actions/runner-images#12758). macos-14 resolves to a known-good Xcode 16.x.
runs-on: macos-14
steps:
- uses: maxim-lobanov/setup-xcode@v1.6.0
with:
xcode-version: 16.4.0
xcode-version: latest-stable
- uses: actions/checkout@v6
- uses: ./.github/actions/setup_macos_env
- uses: ./.github/actions/init_opam
Expand Down Expand Up @@ -40,7 +43,7 @@ jobs:
- uses: ./.github/actions/setup_reindeer
- uses: ./.github/actions/build_bootstrap
linux-build-examples:
runs-on: ubuntu-22.04
runs-on: ubuntu-26.04
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup_linux_env
Expand Down Expand Up @@ -76,8 +79,11 @@ jobs:
NATIVELINK_HEADER_RW_KEY_SECRET: ${{ secrets.NATIVELINK_HEADER_RW_KEY_SECRET }}
- uses: ./.github/actions/setup_reindeer
- uses: ./.github/actions/build_bootstrap
# The Meta-specific windows-8-core runner label does not exist on forks;
# fall back to the standard GitHub-hosted runner there so the job doesn't
# sit queued forever waiting for a runner that isn't available.
windows-build-examples:
runs-on: windows-8-core
runs-on: ${{ github.repository_owner == 'facebook' && 'windows-8-core' || 'windows-latest' }}
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup_windows_env
Expand Down
17 changes: 13 additions & 4 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
@@ -1,32 +1,41 @@
name: Build and test
on:
push:
branches:
- main
pull_request:
workflow_dispatch: # allows manual triggering

permissions:
contents: read

jobs:
# Runner labels are repository (owner) specific, so the Meta larger runners
# (4-core-ubuntu, windows-8-core) don't exist on forks and jobs requesting
# them would sit queued forever waiting for a runner that isn't available.
# Fall back to the standard GitHub-hosted runners there.
linux-build-and-test:
runs-on: 4-core-ubuntu
runs-on: ${{ github.repository_owner == 'facebook' && '4-core-ubuntu' || 'ubuntu-latest' }}
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup_linux_env
- uses: ./.github/actions/build_debug
- uses: ./.github/actions/run_test_py
macos-build-and-test:
runs-on: macos-latest
# Pinned to macos-14: on the macos-15 runner image `latest-stable` selects an
# Xcode/SDK that mis-targets the deployment SDK and breaks the `cargo build`
# step (actions/runner-images#12758). macos-14 resolves to a known-good Xcode 16.x.
runs-on: macos-14
steps:
- uses: maxim-lobanov/setup-xcode@v1.6.0
with:
xcode-version: 16.4.0
xcode-version: latest-stable
- uses: actions/checkout@v6
- uses: ./.github/actions/setup_macos_env
- uses: ./.github/actions/build_debug
- uses: ./.github/actions/run_test_py
windows-build-and-test:
runs-on: windows-8-core
runs-on: ${{ github.repository_owner == 'facebook' && 'windows-8-core' || 'windows-latest' }}
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup_windows_env
Expand Down
163 changes: 163 additions & 0 deletions .github/workflows/build_buck2.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
name: Build `buck2`

on:
workflow_call:
inputs:
buck2_version:
description: "Version string stamped into the binaries via BUCK2_SET_EXPLICIT_VERSION"
required: true
type: string
release_timestamp:
description: "Timestamp stamped into the binaries via BUCK2_RELEASE_TIMESTAMP"
required: true
type: string

jobs:
get_prelude_hash:
name: Get the latest prelude hash
runs-on: ubuntu-latest
outputs:
prelude_hash: ${{ steps.get_latest_prelude_hash.outputs.prelude_hash }}
steps:
- name: Shallow clone buck2-prelude
run: git clone --depth=1 https://github.com/facebook/buck2-prelude
- name: Get latest commit hash into prelude_hash
id: get_latest_prelude_hash
run: |
mkdir artifacts/
cd buck2-prelude/
git rev-parse HEAD > ../artifacts/prelude_hash
echo "prelude_hash=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"
- name: Upload prelude_hash
uses: actions/upload-artifact@v6
with:
path: artifacts/prelude_hash
name: prelude_hash

build:
needs:
- get_prelude_hash
strategy:
fail-fast: false
matrix:
target:
- os: 'ubuntu-26.04'
triple: 'aarch64-unknown-linux-gnu'
cross: true
- os: 'ubuntu-26.04'
triple: 'aarch64-unknown-linux-musl'
cross: true
- os: 'ubuntu-26.04'
triple: 'x86_64-unknown-linux-gnu'
- os: 'ubuntu-26.04'
triple: 'x86_64-unknown-linux-musl'
cross: true
- os: 'ubuntu-26.04'
triple: 'riscv64gc-unknown-linux-gnu'
cross: true
- os: 'macos-15'
triple: 'aarch64-apple-darwin'
cross: true
- os: 'macos-15'
triple: 'x86_64-apple-darwin'
- os: 'windows-2025'
triple: 'x86_64-pc-windows-msvc'
is_windows: true
- os: 'windows-11-arm'
triple: 'aarch64-pc-windows-msvc'
is_windows: true
runs-on: ${{ matrix.target.os }}

steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: SebRollen/toml-action@v1.0.2
id: read_rust_toolchain
with:
file: 'rust-toolchain.toml'
field: 'toolchain.channel'
- uses: dtolnay/rust-toolchain@v1
with:
toolchain: ${{ steps.read_rust_toolchain.outputs.value }}
targets: ${{ matrix.target.triple }}
- uses: Swatinem/rust-cache@v2
with:
prefix-key: buck2-upload
key: ${{ matrix.target.triple }}
- uses: actions-rs/install@v0.1
if: matrix.target.cross
with:
crate: cross
version: latest
- name: Set variables
id: set_variables
shell: bash
run: |
if [ -n "${{ matrix.target.is_windows }}" ]; then
echo "buck2_out=target/${{ matrix.target.triple }}/release/buck2.exe" >> "$GITHUB_OUTPUT"
echo "buck2_zst=artifacts/buck2-${{ matrix.target.triple }}.exe.zst" >> "$GITHUB_OUTPUT"
echo "buck2_rust_project_out=target/${{ matrix.target.triple }}/release/rust-project.exe" >> "$GITHUB_OUTPUT"
echo "buck2_rust_project_zst=artifacts/rust-project-${{ matrix.target.triple }}.exe.zst" >> "$GITHUB_OUTPUT"
echo "starlark_fmt_out=target/${{ matrix.target.triple }}/release/starlark_fmt.exe" >> "$GITHUB_OUTPUT"
echo "starlark_fmt_zst=artifacts/starlark_fmt-${{ matrix.target.triple }}.exe.zst" >> "$GITHUB_OUTPUT"
else
echo "buck2_out=target/${{ matrix.target.triple }}/release/buck2" >> "$GITHUB_OUTPUT"
echo "buck2_zst=artifacts/buck2-${{ matrix.target.triple }}.zst" >> "$GITHUB_OUTPUT"
echo "buck2_rust_project_out=target/${{ matrix.target.triple }}/release/rust-project" >> "$GITHUB_OUTPUT"
echo "buck2_rust_project_zst=artifacts/rust-project-${{ matrix.target.triple }}.zst" >> "$GITHUB_OUTPUT"
echo "starlark_fmt_out=target/${{ matrix.target.triple }}/release/starlark_fmt" >> "$GITHUB_OUTPUT"
echo "starlark_fmt_zst=artifacts/starlark_fmt-${{ matrix.target.triple }}.zst" >> "$GITHUB_OUTPUT"
fi
- name: Build
shell: bash
env:
# BUCK2 prefixed variables used within the build to stamp in a version information
# BUCK2_SET_EXPLICIT_VERSION will populate the buck2 --version string
BUCK2_RELEASE_TIMESTAMP: ${{ inputs.release_timestamp }}
BUCK2_SET_EXPLICIT_VERSION: ${{ inputs.buck2_version }}
RUSTFLAGS: "--cfg tokio_unstable -C strip=debuginfo -C codegen-units=1"
run: |
# aarch64-linux builds need JEMALLOC_SYS_WITH_LG_PAGE=16
# this is for e.g. linux running on apple silicon with native 16k pages
if [[ "${{ matrix.target.triple }}" == aarch64-unknown-linux* ]]; then
export JEMALLOC_SYS_WITH_LG_PAGE=16
fi

if [ -n "${{ matrix.target.cross }}" ]; then
CARGO=cross
else
CARGO=cargo
fi
$CARGO build --release --bin buck2 --bin rust-project --bin starlark_fmt --target ${{ matrix.target.triple }}
- name: Sanity check with examples/with_prelude
if: ${{ !matrix.target.cross }}
shell: bash
run: |
BUCK2="$(pwd)/${{ steps.set_variables.outputs.buck2_out }}"
cd examples/with_prelude
# TODO: rust examples don't work on windows + arm64
if [[ "${{ matrix.target.triple }}" == "aarch64-pc-windows-msvc" ]]; then
TARGETS="cpp/... python/..."
else
TARGETS="rust/... cpp/... python/..."
fi
"$BUCK2" build $TARGETS -v=2
# TODO: investigate segmentation fault on windows-11-arm
continue-on-error: ${{ matrix.target.triple == 'aarch64-pc-windows-msvc' }}
- name: Install zstd
shell: pwsh
if: ${{ matrix.target.os == 'windows-11-arm' }}
run: choco install zstandard
- name: Move binary to artifacts/
shell: bash
run: |
mkdir artifacts
zstd -z ${{ steps.set_variables.outputs.buck2_out }} -o ${{ steps.set_variables.outputs.buck2_zst }}
zstd -z ${{ steps.set_variables.outputs.buck2_rust_project_out }} -o ${{ steps.set_variables.outputs.buck2_rust_project_zst }}
zstd -z ${{ steps.set_variables.outputs.starlark_fmt_out }} -o ${{ steps.set_variables.outputs.starlark_fmt_zst }}
- name: Upload
uses: actions/upload-artifact@v6
with:
name: buck2-${{ matrix.target.triple }}
path: artifacts/
61 changes: 61 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Manually release `buck2`

on:
workflow_dispatch:

permissions:
contents: write

jobs:
set_version_info:
name: Define the version info for this release
runs-on: ubuntu-latest
outputs:
buck2_version: ${{ steps.define_version_info.outputs.buck2_version }}
release_timestamp: ${{ steps.define_version_info.outputs.release_timestamp }}
tag: ${{ steps.define_version_info.outputs.tag }}
steps:
- name: Define version info
id: define_version_info
run: |
# Git tags cannot contain ':', so use '.' between the time components
tag=$(date -u +%Y-%m-%d-%H.%M.%S)

echo "tag=$tag" >> "$GITHUB_OUTPUT"
echo "release_timestamp=$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$GITHUB_OUTPUT"
echo "buck2_version=$tag-${{ github.sha }}" >> "$GITHUB_OUTPUT"
- name: Display version info
run: |
echo "tag: ${{ steps.define_version_info.outputs.tag }}"
echo "buck2_version: ${{ steps.define_version_info.outputs.buck2_version }}"

build:
name: Build `buck2`
needs:
- set_version_info
uses: ./.github/workflows/build_buck2.yml
with:
buck2_version: ${{ needs.set_version_info.outputs.buck2_version }}
release_timestamp: ${{ needs.set_version_info.outputs.release_timestamp }}

release:
name: Release the new tag
needs:
- set_version_info
- build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
# Publish a new tag and upload all artifacts from the build
- uses: ./.github/actions/publish_tag
with:
tag: ${{ needs.set_version_info.outputs.tag }}
github_token: ${{ secrets.GITHUB_TOKEN }}
- uses: facebook/dotslash-publish-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
config: .github/dotslash-config.json
tag: ${{ needs.set_version_info.outputs.tag }}
Loading
Loading