.buckconfig

# What buck2 builds here, and what it needs told to do it. guides/buck2.md is
# the prose; this is the part buck2 reads.

[cells]
root = .
prelude = prelude
toolchains = buck/toolchains
none = none

[cell_aliases]
config = prelude
ovr_config = prelude
fbcode = none
fbsource = none
buck = none

# The prelude comes out of the buck2 binary rather than out of a submodule, so
# there is no second thing to check out and no prelude version to keep in step
# with the binary: the commit scripts/internal/common.sh pins pins both.
[external_cells]
prelude = bundled

# Linux on x86_64, whichever machine asks: buck/platforms/BUCK says why.
[parser]
target_platform_detector_spec = target:root//...->root//buck/platforms:linux_x86_64

# Where actions run: on BuildBuddy's workers. buck/platforms/BUCK is the
# platform, and buck/tools the compilers it runs.
[build]
execution_platforms = root//buck/platforms:execution_platforms

[buck2]
# The digest BuildBuddy is spoken to in. buck2 defaults to SHA1, and this is
# not something to leave to a default: it is the key space every cached action
# lives in.
digest_algorithms = SHA256

# Remember what is already on disk across daemon restarts, and skip writing a
# file whose content is already there, so the deferred materializer never
# downloads a digest twice.
defer_write_actions = true
sqlite_materializer_state = true

# BuildBuddy's executor, action cache and CAS. A mistake here looks like an empty
# cache rather than an error: the address is a bare host:port (buck2 rejects
# grpcs:// and https://), http_headers uses a colon, and there is no instance
# name. $BUILDBUDDY_API_KEY is expanded from the daemon's environment, so a new
# key needs ./scripts/buck killall.
[buck2_re_client]
action_cache_address = remote.buildbuddy.io:443
cas_address = remote.buildbuddy.io:443
engine_address = remote.buildbuddy.io:443
http_headers = x-buildbuddy-api-key:$BUILDBUDDY_API_KEY
tls = true

# What buck2 does not watch or read as part of the workspace: git's own
# directory, whose every fetch would otherwise be a file change, and the
# directories cargo, the web bundle and buck2 itself write into.
[project]
ignore = .git, target, dist, buck-out