2.6 KiB
Aspect bazelrc presets
The .bazelrc
files found here are the source-of-truth for our recommended Bazel presets.
They are mirrored on our docsite at https://docs.aspect.build/guides/bazelrc.
Using Aspect bazelrc presets in your project
The .bazelrc
file can get large, fast.
Some settings don't apply everywhere - some options are appropriate only on CI,
and some vary depending on the version of Bazel you use or languages used.
Bazel rc files can contain import
statements, which allow you to organize the content better.
To use these presets in your project, simply vendor the *.bazelrc
files from
https://github.com/aspect-build/bazel-lib/tree/main/.aspect/bazelrc into the
.aspect/bazelrc
folder in your repository and import
them in your .bazelrc
file.
For example,
# Import Aspect bazelrc presets
import %workspace%/.aspect/bazelrc/bazel6.bazelrc
import %workspace%/.aspect/bazelrc/convenience.bazelrc
import %workspace%/.aspect/bazelrc/correctness.bazelrc
import %workspace%/.aspect/bazelrc/debug.bazelrc
import %workspace%/.aspect/bazelrc/javascript.bazelrc
import %workspace%/.aspect/bazelrc/performance.bazelrc
### YOUR PROJECT SPECIFIC OPTIONS GO HERE ###
# Load any settings & overrides specific to the current user from `.aspect/bazelrc/user.bazelrc`.
# This file should appear in `.gitignore` so that settings are not shared with team members. This
# should be last statement in this config so the user configuration is able to overwrite flags from
# this file. See https://bazel.build/configure/best-practices#bazelrc-file.
try-import %workspace%/.aspect/bazelrc/user.bazelrc
Automatic updates
A convenient way to automatically keep your vendored copy up-to-date is to use the write_aspect_bazelrc_presets
rule in .aspect/bazelrc/BUILD.bazel
:
"Aspect bazelrc presets; see https://docs.aspect.build/guides/bazelrc"
load("@aspect_bazel_lib//lib:bazelrc_presets.bzl", "write_aspect_bazelrc_presets")
write_aspect_bazelrc_presets(name = "update_aspect_bazelrc_presets")
When @aspect_bazel_lib
is upgraded in your WORKSPACE.bazel
or your MODULE.bazel
file, a diff_test
stamped out by write_aspect_bazelrc_presets
will fail if your vendored copy is out-of-date and print the Bazel command
to run to update it. For example, bazel run //.aspect/bazelrc:update_aspect_bazelrc_presets
.
See the bazelrc example in our bazel-examples repository for a working example.