forked from mirrors/jj
116 lines
4.4 KiB
Text
116 lines
4.4 KiB
Text
|
[cells]
|
||
|
# 'cells' that are defined in the project. all 'jj' code should remain under
|
||
|
# 'root', while 'prelude' is the prelude, and third-party is where any vendored
|
||
|
# code should go.
|
||
|
root = .
|
||
|
mode = buck/mode
|
||
|
prelude = buck/prelude
|
||
|
toolchains = buck/toolchains
|
||
|
third-party = buck/third-party
|
||
|
none = none
|
||
|
|
||
|
[external_cells]
|
||
|
# use the built-in prelude that is packaged inside of the buck2 executable. at
|
||
|
# any time we could vendor it, or use a 'git' cell, if we needed to apply custom
|
||
|
# patches
|
||
|
prelude = bundled
|
||
|
|
||
|
[cell_aliases]
|
||
|
# these aliases are all required by the upstream buck2 prelude, with stubs for
|
||
|
# meta-specific cells. 'config//' is occasionally useful for select() calls
|
||
|
config = prelude
|
||
|
buck = none
|
||
|
fbcode = none
|
||
|
fbsource = none
|
||
|
|
||
|
[buildfile]
|
||
|
name = BUILD
|
||
|
# for the sake of future compatibility and migrations, we don't want any BUILD
|
||
|
# files in the project to use raw, un-imported symbols from the prelude like
|
||
|
# 'cxx_library()'; we instead want to make sure every rule is explicitly
|
||
|
# wrapped, load()ed and called, i.e. they should use 'jj.cxx_library()' instead.
|
||
|
# do this by loading noprelude.bzl into every BUILD file, which will stub out
|
||
|
# these bad symbols with an error message.
|
||
|
includes = root//buck/shims/noprelude.bzl
|
||
|
|
||
|
[buck2]
|
||
|
# use sha256 since everything supports it. XXX FIXME (aseipp): blake3?
|
||
|
digest_algorithms = SHA256
|
||
|
|
||
|
# enable deferred materialization. this means that intermediate outputs will
|
||
|
# never get written to disk, and instead will be stored in the remote cache for
|
||
|
# all intermediate execution steps.
|
||
|
#
|
||
|
# we don' use RE yet, but keep these enabled so we don' have to change things or
|
||
|
# find problems later. this also enables (local disk) sqlite materialization
|
||
|
# state, and defers writes to the end of actions to help improve performance.
|
||
|
materializations = deferred
|
||
|
sqlite_materializer_state = true
|
||
|
defer_write_actions = true
|
||
|
|
||
|
# hash all commands in the action graph; this helps avoid some spurious
|
||
|
# recompilations when the action graph changes, but the actual commands don't.
|
||
|
# NOTE: this requires `materializations = deferred`
|
||
|
hash_all_commands = true
|
||
|
|
||
|
# deferred materialization requires that cache outputs never expire. if they do,
|
||
|
# a command might fail if it expects a hit on an object that was supposed to be
|
||
|
# an input. in that case, the buck2d daemon needs to restart to 'purge' its
|
||
|
# knowledge of that object. this enables that.
|
||
|
restarter = true
|
||
|
|
||
|
# enable checking the peak memory in the interpreter, and also set a byte limit
|
||
|
# for the interpreter. this is useful for catching runaway memory usage in BUILD
|
||
|
# files just in case people start going crazy with them.
|
||
|
check_starlark_peak_memory = true
|
||
|
# default limit is 5MiB = 5 * 1024 * 1024 = 5242880 bytes
|
||
|
default_starlark_peak_memory = 5242880
|
||
|
# also, enforce a max callstack size to prevent ridiculous stack sizes and
|
||
|
# put a limit on how deep/abstract things can get.
|
||
|
starlark_max_callstack_size = 50
|
||
|
|
||
|
[build]
|
||
|
# set the default execution platform for builds on this machine. NOTE: this
|
||
|
# platform definition is where remote execution (optionally) is enabled via
|
||
|
# ExecutionPlatformRegistrationInfo
|
||
|
execution_platforms = root//buck/platforms:default
|
||
|
|
||
|
[parser]
|
||
|
# set the default execution platform for several target patterns. this is
|
||
|
# required; the main documentation for the format is the source code, I think...
|
||
|
target_platform_detector_spec = \
|
||
|
target:root//...->root//buck/platforms:default \
|
||
|
target:third-party//...->root//buck/platforms:default \
|
||
|
target:toolchains//...->root//buck/platforms:default
|
||
|
|
||
|
[project]
|
||
|
# things that should not be scanned by buck2 for file changes. if you notice
|
||
|
# something strange is being scanned, it might be worth adding here.
|
||
|
ignore = \
|
||
|
.jj, \
|
||
|
.git, \
|
||
|
.direnv, \
|
||
|
.watchman-cookie** \
|
||
|
target
|
||
|
|
||
|
[buck2_re_client]
|
||
|
# default address for the cas/actioncache. this should be public for users so
|
||
|
# they can always get build results. this does NOT include the 'engine_address'
|
||
|
# service, which enables actual remote execution. that must be enabled
|
||
|
# explicitly in .buckconfig.local
|
||
|
cas_address = https://builds.example.com
|
||
|
action_cache_address = https://builds.example.com
|
||
|
|
||
|
# 'instance name', which in RBE is the basic unit of isolation for projects; we
|
||
|
# always default this for simplicity
|
||
|
instance_name = jujutsu
|
||
|
|
||
|
# always use TLS for all build products
|
||
|
tls = true
|
||
|
|
||
|
# in .buckconfig.local:
|
||
|
#
|
||
|
# [buck2_re_client]
|
||
|
# engine_address = https://builds.jujutsu.dev
|
||
|
# http_headers = x-build-api-key:$BUILD_API_KEY
|