mirror of
https://github.com/bazel-contrib/bazel-lib
synced 2024-11-30 01:41:21 +00:00
57 lines
2.6 KiB
Markdown
57 lines
2.6 KiB
Markdown
# 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,
|
|
|
|
```python title=".bazelrc"
|
|
# 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`:
|
|
|
|
```python title=".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](https://github.com/aspect-build/bazel-examples/blob/main/bazelrc/.aspect/bazelrc/BUILD.bazel) example
|
|
in our [bazel-examples](https://github.com/aspect-build/bazel-examples) repository for a working example.
|