dart-sdk/build
Jonas Termansen 53eabe4824 [infra] Enable RBE on Linux intel.
This change migrates the Dart linux builders from Goma to RBE via
reclient. Goma is being shut down by the end of the year and we must
migrate to the new replacement, which is much more powerful and can do
things we could never do with Goma. We should already see some mild
build time improvements from simply switching.

This change can be safely reverted if there are any problems:

- If you must revert this change, please reach out with what you
  observed, but please first read and try the below instructions.

- Cross-compilation with RBE is not implemented at this time and certain
  special builders running on Linux intel may not support RBE. The
  existing configuration support to disable Goma remains in place. The
  existence of configuration file makes the recipe switch all Linux x64
  bots use RBE rather than Goma. Try disabling Goma on any builders that
  are failing, whether using `--no-goma` in the test matrix or using
  `goma = False` on infra/config. Goma is going away soon and we will
  soon bring RBE up to feature parity and Goma isn't really working on
  the special cross builds anyway.

- Rare flakes in the remote builds have previously been observed, but I
  haven't seen them reappear yet after upgrading reclient. Look for
  build log messages mentioning the remote execution failed, or that an
  upload blob size digest mysteriously changed. Please alert me if you
  see this and I will talk to the Foundry team. If this happens, please
  try if you can fix this using `exec_strategy=remote_local_fallback` in
  the configuration file. Right now reclient only does remote executions
  to catch cases where RBE doesn't work, but if it fails, it can be
  configured to silently fall back on a slow local build.

- If RBE is used on a configuration that doesn't support RBE builds, the
  default -j 1000 may overload the bot if it falls back on a local
  build. If this happens, the bot may explode and fail with BOT_DIED. If
  this happens, disable Goma (RBE) on the builder as above and let me
  know about the problem.

- We haven't tried sending a full production load to the RBE pool yet.
  Flutter is already using the RBE pool partially. It's unclear what
  will happen once we turn this on for everyone. Keep an eye out for
  anything unusual and let me know.

- If it turns out RBE doesn't cache invalidate properly, it is possible
  outdated object files will be linked. If anything really weird
  happens, this may the case. As far as I tested, the caching is working
  correctly.

RBE is yet to be officially rolled out to our developers. Stay tuned.

Bug: b/296994239
Change-Id: I77e0025197ab98a672efbc0cb04c8ece528c3e29
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/335826
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Jonas Termansen <sortie@google.com>
2023-11-22 15:44:09 +00:00
..
config [build] Switch to Fuchsia core SDK. 2023-11-10 19:23:11 +00:00
dart [build] Use relative paths. 2023-03-08 22:10:42 +00:00
fuchsia [build] Switch to Fuchsia core SDK. 2023-11-10 19:23:11 +00:00
linux [build] Use Fuchsia-provided sysroot. 2023-11-02 14:39:10 +00:00
mac Spelling build 2023-01-23 08:56:14 +00:00
rbe [infra] Enable RBE on Linux intel. 2023-11-22 15:44:09 +00:00
rust [infra] Migrate scripts to python3 2021-04-15 10:10:20 +00:00
sanitizers Spelling build 2023-01-23 08:56:14 +00:00
secondary [build] Build the standard c++ library from source. 2023-05-22 23:38:58 +00:00
toolchain [infra] Bump reclient and don't RBE on gcc. 2023-11-15 16:47:49 +00:00
.gitignore [infra] Support for Alpine Linux Sysroot 2023-01-19 10:36:51 +00:00
detect_host_arch.py [infra] Migrate scripts to python3 2021-04-15 10:10:20 +00:00
executable_suffix.gni
find_depot_tools.py [infra] Update windows build and toolchain setup python scripts. 2022-08-03 16:30:56 +00:00
gn_helpers.py Fix gn helper script to create *valid* strings for settings containing backslashes. 2021-05-19 12:35:16 +00:00
gn_run_binary.py [build] Make app snapshot build failures copy/pastable. 2021-10-14 11:51:32 +00:00
OWNERS [infra] Give VM engineers OWNERS over tools/gn.py et al. 2022-04-25 17:47:23 +00:00
README.dart.md fix(docs): corrects common typos in project documentation 2021-05-18 15:48:18 +00:00
shim_headers.gni add tools for generating shim headers 2023-04-19 01:37:48 +00:00
vs_toolchain.py [build] Remove unused pipes import from vs_toolchain.py 2023-06-06 10:45:24 +00:00

This directory was taken from a snapshot of flutter/engine/src/build/.

The snapshot was taken with a recursive copy cp -R of the directory from the flutter repository.

The contents has now diverged significantly from Flutter, and is maintained independently by the Dart team. It is used to support the GN build system.