diff --git a/e2e/bzlmod/.aspect/bazelrc/BUILD.bazel b/e2e/bzlmod/.aspect/bazelrc/BUILD.bazel new file mode 100644 index 0000000..a3e6c28 --- /dev/null +++ b/e2e/bzlmod/.aspect/bazelrc/BUILD.bazel @@ -0,0 +1,15 @@ +"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", + presets = [ + "ci", + "convenience", + "correctness", + "debug", + "javascript", + "performance", + ], +) diff --git a/e2e/bzlmod/.aspect/bazelrc/bazel6.bazelrc b/e2e/bzlmod/.aspect/bazelrc/bazel6.bazelrc deleted file mode 120000 index eed5e30..0000000 --- a/e2e/bzlmod/.aspect/bazelrc/bazel6.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/bazel6.bazelrc \ No newline at end of file diff --git a/e2e/bzlmod/.aspect/bazelrc/ci.bazelrc b/e2e/bzlmod/.aspect/bazelrc/ci.bazelrc new file mode 100644 index 0000000..749c158 --- /dev/null +++ b/e2e/bzlmod/.aspect/bazelrc/ci.bazelrc @@ -0,0 +1,75 @@ +# We recommend enforcing a policy that keeps your CI from being slowed down +# by individual test targets that should be optimized +# or split up into multiple test targets with sharding or manually. +# Set this flag to exclude targets that have their timeout set to eternal (>15m) from running on CI. +# Docs: https://bazel.build/docs/user-manual#test-timeout-filters +build --test_timeout_filters=-eternal + +# Set this flag to enable re-tries of failed tests on CI. +# When any test target fails, try one or more times. This applies regardless of whether the "flaky" +# tag appears on the target definition. +# This is a tradeoff: legitimately failing tests will take longer to report, +# but we can paper over flaky tests that pass most of the time. +# The alternative is to mark every flaky test with the `flaky = True` attribute, but this requires +# the buildcop to make frequent code edits. +# Not recommended for local builds so that the flakiness is observed during development and thus +# is more likely to get fixed. +# Note that when passing after the first attempt, Bazel will give a special "FLAKY" status. +# Docs: https://bazel.build/docs/user-manual#flaky-test-attempts +build --flaky_test_attempts=2 + +# Announce all announces command options read from the bazelrc file(s) when starting up at the +# beginning of each Bazel invocation. This is very useful on CI to be able to inspect what Bazel rc +# settings are being applied on each run. +# Docs: https://bazel.build/docs/user-manual#announce-rc +build --announce_rc + +# Add a timestamp to each message generated by Bazel specifying the time at which the message was +# displayed. +# Docs: https://bazel.build/docs/user-manual#show-timestamps +build --show_timestamps + +# Only show progress every 60 seconds on CI. +# Docs: https://bazel.build/reference/command-line-reference#flag--progress_report_interval +build --progress_report_interval=60 + +# Only show progress every 60 seconds on CI. +# https://bazel.build/reference/command-line-reference#flag--show_progress_rate_limit +build --show_progress_rate_limit=60 + +# Don't use cursor controls in its screen output. +# Docs: https://bazel.build/docs/user-manual#curses +build --curses=no + +# Use colors to highlight its output on the screen. Set to `no` if your CI does not display colors. +# Docs: https://bazel.build/docs/user-manual#color +build --color=yes + +# The terminal width in columns. Configure this to override the default value based on what your CI system renders. +# Docs: https://github.com/bazelbuild/bazel/blob/1af61b21df99edc2fc66939cdf14449c2661f873/src/main/java/com/google/devtools/build/lib/runtime/UiOptions.java#L151 +build --terminal_columns=80 + +###################################### +# Generic remote cache configuration # +###################################### + +# Only download remote outputs of top level targets to the local machine. +# Docs: https://bazel.build/reference/command-line-reference#flag--remote_download_toplevel +build --remote_download_toplevel + +# The maximum amount of time to wait for remote execution and cache calls. +# https://bazel.build/reference/command-line-reference#flag--remote_timeout +build --remote_timeout=3600 + +# Upload locally executed action results to the remote cache. +# Docs: https://bazel.build/reference/command-line-reference#flag--remote_upload_local_results +build --remote_upload_local_results + +# Fall back to standalone local execution strategy if remote execution fails. If the grpc remote +# cache connection fails, it will fail the build, add this so it falls back to the local cache. +# Docs: https://bazel.build/reference/command-line-reference#flag--remote_local_fallback +build --remote_local_fallback + +# Fixes builds hanging on CI that get the TCP connection closed without sending RST packets. +# Docs: https://bazel.build/reference/command-line-reference#flag--grpc_keepalive_time +build --grpc_keepalive_time=30s diff --git a/e2e/bzlmod/.aspect/bazelrc/convenience.bazelrc b/e2e/bzlmod/.aspect/bazelrc/convenience.bazelrc deleted file mode 120000 index 524b51f..0000000 --- a/e2e/bzlmod/.aspect/bazelrc/convenience.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/convenience.bazelrc \ No newline at end of file diff --git a/e2e/bzlmod/.aspect/bazelrc/convenience.bazelrc b/e2e/bzlmod/.aspect/bazelrc/convenience.bazelrc new file mode 100644 index 0000000..3122d32 --- /dev/null +++ b/e2e/bzlmod/.aspect/bazelrc/convenience.bazelrc @@ -0,0 +1,29 @@ +# Attempt to build & test every target whose prerequisites were successfully built. +# Docs: https://bazel.build/docs/user-manual#keep-going +build --keep_going +test --keep_going + +# Output test errors to stderr so users don't have to `cat` or open test failure log files when test +# fail. This makes the log noiser in exchange for reducing the time-to-feedback on test failures for +# users. +# Docs: https://bazel.build/docs/user-manual#test-output +test --test_output=errors + +# Show the output files created by builds that requested more than one target. This helps users +# locate the build outputs in more cases +# Docs: https://bazel.build/docs/user-manual#show-result +build --show_result=20 + +# Bazel picks up host-OS-specific config lines from bazelrc files. For example, if the host OS is +# Linux and you run bazel build, Bazel picks up lines starting with build:linux. Supported OS +# identifiers are `linux`, `macos`, `windows`, `freebsd`, and `openbsd`. Enabling this flag is +# equivalent to using `--config=linux` on Linux, `--config=windows` on Windows, etc. +# Docs: https://bazel.build/reference/command-line-reference#flag--enable_platform_specific_config +common --enable_platform_specific_config + +# Output a heap dump if an OOM is thrown during a Bazel invocation +# (including OOMs due to `--experimental_oom_more_eagerly_threshold`). +# The dump will be written to `/.heapdump.hprof`. +# You may need to configure CI to capture this artifact and upload for later use. +# Docs: https://bazel.build/reference/command-line-reference#flag--heap_dump_on_oom +build --heap_dump_on_oom diff --git a/e2e/bzlmod/.aspect/bazelrc/correctness.bazelrc b/e2e/bzlmod/.aspect/bazelrc/correctness.bazelrc deleted file mode 120000 index f139b5d..0000000 --- a/e2e/bzlmod/.aspect/bazelrc/correctness.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/correctness.bazelrc \ No newline at end of file diff --git a/e2e/bzlmod/.aspect/bazelrc/correctness.bazelrc b/e2e/bzlmod/.aspect/bazelrc/correctness.bazelrc new file mode 100644 index 0000000..84b51c2 --- /dev/null +++ b/e2e/bzlmod/.aspect/bazelrc/correctness.bazelrc @@ -0,0 +1,68 @@ +# Do not upload locally executed action results to the remote cache. +# This should be the default for local builds so local builds cannot poison the remote cache. +# It should be flipped to `--remote_upload_local_results` on CI +# by using `--bazelrc=.aspect/bazelrc/ci.bazelrc`. +# Docs: https://bazel.build/reference/command-line-reference#flag--remote_upload_local_results +build --noremote_upload_local_results + +# Don't allow network access for build actions in the sandbox. +# Ensures that you don't accidentally make non-hermetic actions/tests which depend on remote +# services. +# Developers should tag targets with `tags=["requires-network"]` to opt-out of the enforcement. +# Docs: https://bazel.build/reference/command-line-reference#flag--sandbox_default_allow_network +build --sandbox_default_allow_network=false +test --sandbox_default_allow_network=false + +# Warn if a test's timeout is significantly longer than the test's actual execution time. +# Bazel's default for test_timeout is medium (5 min), but most tests should instead be short (1 min). +# While a test's timeout should be set such that it is not flaky, a test that has a highly +# over-generous timeout can hide real problems that crop up unexpectedly. +# For instance, a test that normally executes in a minute or two should not have a timeout of +# ETERNAL or LONG as these are much, much too generous. +# Docs: https://bazel.build/docs/user-manual#test-verbose-timeout-warnings +test --test_verbose_timeout_warnings + +# Allow the Bazel server to check directory sources for changes. Ensures that the Bazel server +# notices when a directory changes, if you have a directory listed in the srcs of some target. +# Recommended when using +# [copy_directory](https://github.com/aspect-build/bazel-lib/blob/main/docs/copy_directory.md) and +# [rules_js](https://github.com/aspect-build/rules_js) since npm package are source directories +# inputs to copy_directory actions. +# Docs: https://bazel.build/reference/command-line-reference#flag--host_jvm_args +startup --host_jvm_args=-DBAZEL_TRACK_SOURCE_DIRECTORIES=1 + +# Allow exclusive tests to run in the sandbox. Fixes a bug where Bazel doesn't enable sandboxing for +# tests with `tags=["exclusive"]`. +# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_exclusive_test_sandboxed +test --incompatible_exclusive_test_sandboxed + +# Use a static value for `PATH` and does not inherit `LD_LIBRARY_PATH`. Doesn't let environment +# variables like `PATH` sneak into the build, which can cause massive cache misses when they change. +# Use `--action_env=ENV_VARIABLE` if you want to inherit specific environment variables from the +# client, but note that doing so can prevent cross-user caching if a shared cache is used. +# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_strict_action_env +build --incompatible_strict_action_env + +# Propagate tags from a target declaration to the actions' execution requirements. +# Ensures that tags applied in your BUILD file, like `tags=["no-remote"]` +# get propagated to actions created by the rule. +# Without this option, you rely on rules authors to manually check the tags you passed +# and apply relevant ones to the actions they create. +# See https://github.com/bazelbuild/bazel/issues/8830 for details. +# Docs: https://bazel.build/reference/command-line-reference#flag--experimental_allow_tags_propagation +build --experimental_allow_tags_propagation +fetch --experimental_allow_tags_propagation +query --experimental_allow_tags_propagation + +# Checking the ctime of input files of an action before uploading it to a remote cache. Prevents +# concurrent local file modification from poisoning the build cache. +# Docs: https://bazel.build/reference/command-line-reference#flag--experimental_guard_against_concurrent_changes +build --experimental_guard_against_concurrent_changes + +# Do not automatically create `__init__.py` files in the runfiles of Python targets. Fixes the wrong +# default that comes from Google's internal monorepo by using `__init__.py` to delimit a Python +# package. Precisely, when a `py_binary` or `py_test` target has `legacy_create_init` set to `auto (the +# default), it is treated as false if and only if this flag is set. See +# https://github.com/bazelbuild/bazel/issues/10076. +# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_default_to_explicit_init_py +build --incompatible_default_to_explicit_init_py diff --git a/e2e/bzlmod/.aspect/bazelrc/debug.bazelrc b/e2e/bzlmod/.aspect/bazelrc/debug.bazelrc deleted file mode 120000 index e9fb0cf..0000000 --- a/e2e/bzlmod/.aspect/bazelrc/debug.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/debug.bazelrc \ No newline at end of file diff --git a/e2e/bzlmod/.aspect/bazelrc/debug.bazelrc b/e2e/bzlmod/.aspect/bazelrc/debug.bazelrc new file mode 100644 index 0000000..bfb0bdd --- /dev/null +++ b/e2e/bzlmod/.aspect/bazelrc/debug.bazelrc @@ -0,0 +1,19 @@ +############################################################ +# Use `bazel test --config=debug` to enable these settings # +############################################################ + +# Stream stdout/stderr output from each test in real-time. +# Docs: https://bazel.build/docs/user-manual#test-output +test:debug --test_output=streamed + +# Run one test at a time. +# Docs: https://bazel.build/reference/command-line-reference#flag--test_strategy +test:debug --test_strategy=exclusive + +# Prevent long running tests from timing out. +# Docs: https://bazel.build/docs/user-manual#test-timeout +test:debug --test_timeout=9999 + +# Always run tests even if they have cached results. +# Docs: https://bazel.build/docs/user-manual#cache-test-results +test:debug --nocache_test_results diff --git a/e2e/bzlmod/.aspect/bazelrc/javascript.bazelrc b/e2e/bzlmod/.aspect/bazelrc/javascript.bazelrc deleted file mode 120000 index 6981085..0000000 --- a/e2e/bzlmod/.aspect/bazelrc/javascript.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/javascript.bazelrc \ No newline at end of file diff --git a/e2e/bzlmod/.aspect/bazelrc/javascript.bazelrc b/e2e/bzlmod/.aspect/bazelrc/javascript.bazelrc new file mode 100644 index 0000000..dc76864 --- /dev/null +++ b/e2e/bzlmod/.aspect/bazelrc/javascript.bazelrc @@ -0,0 +1,28 @@ +# Aspect recommended Bazel flags when using Aspect's JavaScript rules: https://github.com/aspect-build/rules_js +# Docs for Node.js flags: https://nodejs.org/en/docs/guides/debugging-getting-started/#command-line-options + +# Support for debugging Node.js tests. Use bazel run with `--config=debug` to turn on the NodeJS +# inspector agent. The node process will break before user code starts and wait for the debugger to +# connect. Pass the --inspect-brk option to all tests which enables the node inspector agent. See +# https://nodejs.org/de/docs/guides/debugging-getting-started/#command-line-options for more +# details. +# Docs: https://nodejs.org/en/docs/guides/debugging-getting-started/#command-line-options +run:debug -- --node_options=--inspect-brk + +# Enable runfiles on all platforms. Runfiles are on by default on Linux and MacOS but off on +# Windows. +# +# In general, rules_js and derivate rule sets assume that runfiles are enabled and do not support no +# runfiles case because it does not scale to teach all Node.js tools to use the runfiles manifest. +# +# If you are developing on Windows, you must either run bazel with administrator privileges or +# enable developer mode. If you do not you may hit this error on Windows: +# +# Bazel needs to create symlinks to build the runfiles tree. +# Creating symlinks on Windows requires one of the following: +# 1. Bazel is run with administrator privileges. +# 2. The system version is Windows 10 Creators Update (1703) or later +# and developer mode is enabled. +# +# Docs: https://bazel.build/reference/command-line-reference#flag--enable_runfiles +build --enable_runfiles diff --git a/e2e/bzlmod/.aspect/bazelrc/performance.bazelrc b/e2e/bzlmod/.aspect/bazelrc/performance.bazelrc deleted file mode 120000 index 719484d..0000000 --- a/e2e/bzlmod/.aspect/bazelrc/performance.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/performance.bazelrc \ No newline at end of file diff --git a/e2e/bzlmod/.aspect/bazelrc/performance.bazelrc b/e2e/bzlmod/.aspect/bazelrc/performance.bazelrc new file mode 100644 index 0000000..bc11a3f --- /dev/null +++ b/e2e/bzlmod/.aspect/bazelrc/performance.bazelrc @@ -0,0 +1,54 @@ +# Merkle tree calculations will be memoized to improve the remote cache hit checking speed. The +# memory foot print of the cache is controlled by `--experimental_remote_merkle_tree_cache_size`. +# Docs: https://bazel.build/reference/command-line-reference#flag--experimental_remote_merkle_tree_cache +build --experimental_remote_merkle_tree_cache +query --experimental_remote_merkle_tree_cache + +# The number of Merkle trees to memoize to improve the remote cache hit checking speed. Even though +# the cache is automatically pruned according to Java's handling of soft references, out-of-memory +# errors can occur if set too high. If set to 0 the cache size is unlimited. Optimal value varies +# depending on project's size. +# Docs: https://bazel.build/reference/command-line-reference#flag--experimental_remote_merkle_tree_cache_size +build --experimental_remote_merkle_tree_cache_size=1000 +query --experimental_remote_merkle_tree_cache_size=1000 + +# Speed up all builds by not checking if output files have been modified. Lets you make changes to +# the output tree without triggering a build for local debugging. For example, you can modify +# [rules_js](https://github.com/aspect-build/rules_js) 3rd party npm packages in the output tree +# when local debugging. +# Docs: https://github.com/bazelbuild/bazel/blob/1af61b21df99edc2fc66939cdf14449c2661f873/src/main/java/com/google/devtools/build/lib/pkgcache/PackageOptions.java#L185 +build --noexperimental_check_output_files +fetch --noexperimental_check_output_files +query --noexperimental_check_output_files + +# Don't apply `--noremote_upload_local_results` and `--noremote_accept_cached` to the disk cache. +# If you have both `--noremote_upload_local_results` and `--disk_cache`, then this fixes a bug where +# Bazel doesn't write to the local disk cache as it treats as a remote cache. +# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_remote_results_ignore_disk +build --incompatible_remote_results_ignore_disk + +# Directories used by sandboxed non-worker execution may be reused to avoid unnecessary setup costs. +# Save time on Sandbox creation and deletion when many of the same kind of action run during the +# build. +# No longer experimental in Bazel 6: https://github.com/bazelbuild/bazel/commit/c1a95501a5611878e5cc43a3cc531f2b9e47835b +# Docs: https://bazel.build/reference/command-line-reference#flag--reuse_sandbox_directories +build --experimental_reuse_sandbox_directories + +# Do not build runfiles symlink forests for external repositories under +# `.runfiles/wsname/external/repo` (in addition to `.runfiles/repo`). This reduces runfiles & +# sandbox creation times & prevents accidentally depending on this feature which may flip to off by +# default in the future. Note, some rules may fail under this flag, please file issues with the rule +# author. +# Docs: https://bazel.build/reference/command-line-reference#flag--legacy_external_runfiles +build --nolegacy_external_runfiles +run --nolegacy_external_runfiles +test --nolegacy_external_runfiles + +# Some actions are always IO-intensive but require little compute. It's wasteful to put the output +# in the remote cache, it just saturates the network and fills the cache storage causing earlier +# evictions. It's also not worth sending them for remote execution. +# For actions like PackageTar it's usually faster to just re-run the work locally every time. +# You'll have to look at an execution log to figure out what other action mnemonics you care about. +# In some cases you may need to patch rulesets to add a mnemonic to actions that don't have one. +# https://bazel.build/reference/command-line-reference#flag--modify_execution_info +build --modify_execution_info=PackageTar=+no-remote diff --git a/e2e/bzlmod/.bazelrc b/e2e/bzlmod/.bazelrc index ddbbd92..da1c792 100644 --- a/e2e/bzlmod/.bazelrc +++ b/e2e/bzlmod/.bazelrc @@ -2,14 +2,6 @@ # Settings that apply only to CI are in .aspect/bazelrc/ci.bazelrc # Import Aspect bazelrc presets -import %workspace%/.aspect/bazelrc/convenience.bazelrc -import %workspace%/.aspect/bazelrc/correctness.bazelrc -import %workspace%/.aspect/bazelrc/performance.bazelrc -import %workspace%/.aspect/bazelrc/debug.bazelrc -import %workspace%/.aspect/bazelrc/javascript.bazelrc - -# Use a try-import for Bazel 6 settings since this repository is also tested against Bazel 5 on CI -try-import %workspace%/.aspect/bazelrc/bazel6.bazelrc ### PROJECT SPECIFIC OPTIONS ### diff --git a/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/BUILD.bazel b/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/BUILD.bazel new file mode 100644 index 0000000..a3e6c28 --- /dev/null +++ b/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/BUILD.bazel @@ -0,0 +1,15 @@ +"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", + presets = [ + "ci", + "convenience", + "correctness", + "debug", + "javascript", + "performance", + ], +) diff --git a/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/bazel6.bazelrc b/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/bazel6.bazelrc deleted file mode 120000 index eed5e30..0000000 --- a/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/bazel6.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/bazel6.bazelrc \ No newline at end of file diff --git a/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/ci.bazelrc b/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/ci.bazelrc new file mode 100644 index 0000000..749c158 --- /dev/null +++ b/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/ci.bazelrc @@ -0,0 +1,75 @@ +# We recommend enforcing a policy that keeps your CI from being slowed down +# by individual test targets that should be optimized +# or split up into multiple test targets with sharding or manually. +# Set this flag to exclude targets that have their timeout set to eternal (>15m) from running on CI. +# Docs: https://bazel.build/docs/user-manual#test-timeout-filters +build --test_timeout_filters=-eternal + +# Set this flag to enable re-tries of failed tests on CI. +# When any test target fails, try one or more times. This applies regardless of whether the "flaky" +# tag appears on the target definition. +# This is a tradeoff: legitimately failing tests will take longer to report, +# but we can paper over flaky tests that pass most of the time. +# The alternative is to mark every flaky test with the `flaky = True` attribute, but this requires +# the buildcop to make frequent code edits. +# Not recommended for local builds so that the flakiness is observed during development and thus +# is more likely to get fixed. +# Note that when passing after the first attempt, Bazel will give a special "FLAKY" status. +# Docs: https://bazel.build/docs/user-manual#flaky-test-attempts +build --flaky_test_attempts=2 + +# Announce all announces command options read from the bazelrc file(s) when starting up at the +# beginning of each Bazel invocation. This is very useful on CI to be able to inspect what Bazel rc +# settings are being applied on each run. +# Docs: https://bazel.build/docs/user-manual#announce-rc +build --announce_rc + +# Add a timestamp to each message generated by Bazel specifying the time at which the message was +# displayed. +# Docs: https://bazel.build/docs/user-manual#show-timestamps +build --show_timestamps + +# Only show progress every 60 seconds on CI. +# Docs: https://bazel.build/reference/command-line-reference#flag--progress_report_interval +build --progress_report_interval=60 + +# Only show progress every 60 seconds on CI. +# https://bazel.build/reference/command-line-reference#flag--show_progress_rate_limit +build --show_progress_rate_limit=60 + +# Don't use cursor controls in its screen output. +# Docs: https://bazel.build/docs/user-manual#curses +build --curses=no + +# Use colors to highlight its output on the screen. Set to `no` if your CI does not display colors. +# Docs: https://bazel.build/docs/user-manual#color +build --color=yes + +# The terminal width in columns. Configure this to override the default value based on what your CI system renders. +# Docs: https://github.com/bazelbuild/bazel/blob/1af61b21df99edc2fc66939cdf14449c2661f873/src/main/java/com/google/devtools/build/lib/runtime/UiOptions.java#L151 +build --terminal_columns=80 + +###################################### +# Generic remote cache configuration # +###################################### + +# Only download remote outputs of top level targets to the local machine. +# Docs: https://bazel.build/reference/command-line-reference#flag--remote_download_toplevel +build --remote_download_toplevel + +# The maximum amount of time to wait for remote execution and cache calls. +# https://bazel.build/reference/command-line-reference#flag--remote_timeout +build --remote_timeout=3600 + +# Upload locally executed action results to the remote cache. +# Docs: https://bazel.build/reference/command-line-reference#flag--remote_upload_local_results +build --remote_upload_local_results + +# Fall back to standalone local execution strategy if remote execution fails. If the grpc remote +# cache connection fails, it will fail the build, add this so it falls back to the local cache. +# Docs: https://bazel.build/reference/command-line-reference#flag--remote_local_fallback +build --remote_local_fallback + +# Fixes builds hanging on CI that get the TCP connection closed without sending RST packets. +# Docs: https://bazel.build/reference/command-line-reference#flag--grpc_keepalive_time +build --grpc_keepalive_time=30s diff --git a/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/convenience.bazelrc b/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/convenience.bazelrc deleted file mode 120000 index 524b51f..0000000 --- a/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/convenience.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/convenience.bazelrc \ No newline at end of file diff --git a/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/convenience.bazelrc b/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/convenience.bazelrc new file mode 100644 index 0000000..3122d32 --- /dev/null +++ b/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/convenience.bazelrc @@ -0,0 +1,29 @@ +# Attempt to build & test every target whose prerequisites were successfully built. +# Docs: https://bazel.build/docs/user-manual#keep-going +build --keep_going +test --keep_going + +# Output test errors to stderr so users don't have to `cat` or open test failure log files when test +# fail. This makes the log noiser in exchange for reducing the time-to-feedback on test failures for +# users. +# Docs: https://bazel.build/docs/user-manual#test-output +test --test_output=errors + +# Show the output files created by builds that requested more than one target. This helps users +# locate the build outputs in more cases +# Docs: https://bazel.build/docs/user-manual#show-result +build --show_result=20 + +# Bazel picks up host-OS-specific config lines from bazelrc files. For example, if the host OS is +# Linux and you run bazel build, Bazel picks up lines starting with build:linux. Supported OS +# identifiers are `linux`, `macos`, `windows`, `freebsd`, and `openbsd`. Enabling this flag is +# equivalent to using `--config=linux` on Linux, `--config=windows` on Windows, etc. +# Docs: https://bazel.build/reference/command-line-reference#flag--enable_platform_specific_config +common --enable_platform_specific_config + +# Output a heap dump if an OOM is thrown during a Bazel invocation +# (including OOMs due to `--experimental_oom_more_eagerly_threshold`). +# The dump will be written to `/.heapdump.hprof`. +# You may need to configure CI to capture this artifact and upload for later use. +# Docs: https://bazel.build/reference/command-line-reference#flag--heap_dump_on_oom +build --heap_dump_on_oom diff --git a/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/correctness.bazelrc b/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/correctness.bazelrc deleted file mode 120000 index f139b5d..0000000 --- a/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/correctness.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/correctness.bazelrc \ No newline at end of file diff --git a/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/correctness.bazelrc b/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/correctness.bazelrc new file mode 100644 index 0000000..84b51c2 --- /dev/null +++ b/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/correctness.bazelrc @@ -0,0 +1,68 @@ +# Do not upload locally executed action results to the remote cache. +# This should be the default for local builds so local builds cannot poison the remote cache. +# It should be flipped to `--remote_upload_local_results` on CI +# by using `--bazelrc=.aspect/bazelrc/ci.bazelrc`. +# Docs: https://bazel.build/reference/command-line-reference#flag--remote_upload_local_results +build --noremote_upload_local_results + +# Don't allow network access for build actions in the sandbox. +# Ensures that you don't accidentally make non-hermetic actions/tests which depend on remote +# services. +# Developers should tag targets with `tags=["requires-network"]` to opt-out of the enforcement. +# Docs: https://bazel.build/reference/command-line-reference#flag--sandbox_default_allow_network +build --sandbox_default_allow_network=false +test --sandbox_default_allow_network=false + +# Warn if a test's timeout is significantly longer than the test's actual execution time. +# Bazel's default for test_timeout is medium (5 min), but most tests should instead be short (1 min). +# While a test's timeout should be set such that it is not flaky, a test that has a highly +# over-generous timeout can hide real problems that crop up unexpectedly. +# For instance, a test that normally executes in a minute or two should not have a timeout of +# ETERNAL or LONG as these are much, much too generous. +# Docs: https://bazel.build/docs/user-manual#test-verbose-timeout-warnings +test --test_verbose_timeout_warnings + +# Allow the Bazel server to check directory sources for changes. Ensures that the Bazel server +# notices when a directory changes, if you have a directory listed in the srcs of some target. +# Recommended when using +# [copy_directory](https://github.com/aspect-build/bazel-lib/blob/main/docs/copy_directory.md) and +# [rules_js](https://github.com/aspect-build/rules_js) since npm package are source directories +# inputs to copy_directory actions. +# Docs: https://bazel.build/reference/command-line-reference#flag--host_jvm_args +startup --host_jvm_args=-DBAZEL_TRACK_SOURCE_DIRECTORIES=1 + +# Allow exclusive tests to run in the sandbox. Fixes a bug where Bazel doesn't enable sandboxing for +# tests with `tags=["exclusive"]`. +# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_exclusive_test_sandboxed +test --incompatible_exclusive_test_sandboxed + +# Use a static value for `PATH` and does not inherit `LD_LIBRARY_PATH`. Doesn't let environment +# variables like `PATH` sneak into the build, which can cause massive cache misses when they change. +# Use `--action_env=ENV_VARIABLE` if you want to inherit specific environment variables from the +# client, but note that doing so can prevent cross-user caching if a shared cache is used. +# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_strict_action_env +build --incompatible_strict_action_env + +# Propagate tags from a target declaration to the actions' execution requirements. +# Ensures that tags applied in your BUILD file, like `tags=["no-remote"]` +# get propagated to actions created by the rule. +# Without this option, you rely on rules authors to manually check the tags you passed +# and apply relevant ones to the actions they create. +# See https://github.com/bazelbuild/bazel/issues/8830 for details. +# Docs: https://bazel.build/reference/command-line-reference#flag--experimental_allow_tags_propagation +build --experimental_allow_tags_propagation +fetch --experimental_allow_tags_propagation +query --experimental_allow_tags_propagation + +# Checking the ctime of input files of an action before uploading it to a remote cache. Prevents +# concurrent local file modification from poisoning the build cache. +# Docs: https://bazel.build/reference/command-line-reference#flag--experimental_guard_against_concurrent_changes +build --experimental_guard_against_concurrent_changes + +# Do not automatically create `__init__.py` files in the runfiles of Python targets. Fixes the wrong +# default that comes from Google's internal monorepo by using `__init__.py` to delimit a Python +# package. Precisely, when a `py_binary` or `py_test` target has `legacy_create_init` set to `auto (the +# default), it is treated as false if and only if this flag is set. See +# https://github.com/bazelbuild/bazel/issues/10076. +# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_default_to_explicit_init_py +build --incompatible_default_to_explicit_init_py diff --git a/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/debug.bazelrc b/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/debug.bazelrc deleted file mode 120000 index e9fb0cf..0000000 --- a/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/debug.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/debug.bazelrc \ No newline at end of file diff --git a/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/debug.bazelrc b/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/debug.bazelrc new file mode 100644 index 0000000..bfb0bdd --- /dev/null +++ b/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/debug.bazelrc @@ -0,0 +1,19 @@ +############################################################ +# Use `bazel test --config=debug` to enable these settings # +############################################################ + +# Stream stdout/stderr output from each test in real-time. +# Docs: https://bazel.build/docs/user-manual#test-output +test:debug --test_output=streamed + +# Run one test at a time. +# Docs: https://bazel.build/reference/command-line-reference#flag--test_strategy +test:debug --test_strategy=exclusive + +# Prevent long running tests from timing out. +# Docs: https://bazel.build/docs/user-manual#test-timeout +test:debug --test_timeout=9999 + +# Always run tests even if they have cached results. +# Docs: https://bazel.build/docs/user-manual#cache-test-results +test:debug --nocache_test_results diff --git a/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/javascript.bazelrc b/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/javascript.bazelrc deleted file mode 120000 index 6981085..0000000 --- a/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/javascript.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/javascript.bazelrc \ No newline at end of file diff --git a/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/javascript.bazelrc b/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/javascript.bazelrc new file mode 100644 index 0000000..dc76864 --- /dev/null +++ b/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/javascript.bazelrc @@ -0,0 +1,28 @@ +# Aspect recommended Bazel flags when using Aspect's JavaScript rules: https://github.com/aspect-build/rules_js +# Docs for Node.js flags: https://nodejs.org/en/docs/guides/debugging-getting-started/#command-line-options + +# Support for debugging Node.js tests. Use bazel run with `--config=debug` to turn on the NodeJS +# inspector agent. The node process will break before user code starts and wait for the debugger to +# connect. Pass the --inspect-brk option to all tests which enables the node inspector agent. See +# https://nodejs.org/de/docs/guides/debugging-getting-started/#command-line-options for more +# details. +# Docs: https://nodejs.org/en/docs/guides/debugging-getting-started/#command-line-options +run:debug -- --node_options=--inspect-brk + +# Enable runfiles on all platforms. Runfiles are on by default on Linux and MacOS but off on +# Windows. +# +# In general, rules_js and derivate rule sets assume that runfiles are enabled and do not support no +# runfiles case because it does not scale to teach all Node.js tools to use the runfiles manifest. +# +# If you are developing on Windows, you must either run bazel with administrator privileges or +# enable developer mode. If you do not you may hit this error on Windows: +# +# Bazel needs to create symlinks to build the runfiles tree. +# Creating symlinks on Windows requires one of the following: +# 1. Bazel is run with administrator privileges. +# 2. The system version is Windows 10 Creators Update (1703) or later +# and developer mode is enabled. +# +# Docs: https://bazel.build/reference/command-line-reference#flag--enable_runfiles +build --enable_runfiles diff --git a/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/performance.bazelrc b/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/performance.bazelrc deleted file mode 120000 index 719484d..0000000 --- a/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/performance.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/performance.bazelrc \ No newline at end of file diff --git a/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/performance.bazelrc b/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/performance.bazelrc new file mode 100644 index 0000000..bc11a3f --- /dev/null +++ b/e2e/bzlmod_write_source_files_external/.aspect/bazelrc/performance.bazelrc @@ -0,0 +1,54 @@ +# Merkle tree calculations will be memoized to improve the remote cache hit checking speed. The +# memory foot print of the cache is controlled by `--experimental_remote_merkle_tree_cache_size`. +# Docs: https://bazel.build/reference/command-line-reference#flag--experimental_remote_merkle_tree_cache +build --experimental_remote_merkle_tree_cache +query --experimental_remote_merkle_tree_cache + +# The number of Merkle trees to memoize to improve the remote cache hit checking speed. Even though +# the cache is automatically pruned according to Java's handling of soft references, out-of-memory +# errors can occur if set too high. If set to 0 the cache size is unlimited. Optimal value varies +# depending on project's size. +# Docs: https://bazel.build/reference/command-line-reference#flag--experimental_remote_merkle_tree_cache_size +build --experimental_remote_merkle_tree_cache_size=1000 +query --experimental_remote_merkle_tree_cache_size=1000 + +# Speed up all builds by not checking if output files have been modified. Lets you make changes to +# the output tree without triggering a build for local debugging. For example, you can modify +# [rules_js](https://github.com/aspect-build/rules_js) 3rd party npm packages in the output tree +# when local debugging. +# Docs: https://github.com/bazelbuild/bazel/blob/1af61b21df99edc2fc66939cdf14449c2661f873/src/main/java/com/google/devtools/build/lib/pkgcache/PackageOptions.java#L185 +build --noexperimental_check_output_files +fetch --noexperimental_check_output_files +query --noexperimental_check_output_files + +# Don't apply `--noremote_upload_local_results` and `--noremote_accept_cached` to the disk cache. +# If you have both `--noremote_upload_local_results` and `--disk_cache`, then this fixes a bug where +# Bazel doesn't write to the local disk cache as it treats as a remote cache. +# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_remote_results_ignore_disk +build --incompatible_remote_results_ignore_disk + +# Directories used by sandboxed non-worker execution may be reused to avoid unnecessary setup costs. +# Save time on Sandbox creation and deletion when many of the same kind of action run during the +# build. +# No longer experimental in Bazel 6: https://github.com/bazelbuild/bazel/commit/c1a95501a5611878e5cc43a3cc531f2b9e47835b +# Docs: https://bazel.build/reference/command-line-reference#flag--reuse_sandbox_directories +build --experimental_reuse_sandbox_directories + +# Do not build runfiles symlink forests for external repositories under +# `.runfiles/wsname/external/repo` (in addition to `.runfiles/repo`). This reduces runfiles & +# sandbox creation times & prevents accidentally depending on this feature which may flip to off by +# default in the future. Note, some rules may fail under this flag, please file issues with the rule +# author. +# Docs: https://bazel.build/reference/command-line-reference#flag--legacy_external_runfiles +build --nolegacy_external_runfiles +run --nolegacy_external_runfiles +test --nolegacy_external_runfiles + +# Some actions are always IO-intensive but require little compute. It's wasteful to put the output +# in the remote cache, it just saturates the network and fills the cache storage causing earlier +# evictions. It's also not worth sending them for remote execution. +# For actions like PackageTar it's usually faster to just re-run the work locally every time. +# You'll have to look at an execution log to figure out what other action mnemonics you care about. +# In some cases you may need to patch rulesets to add a mnemonic to actions that don't have one. +# https://bazel.build/reference/command-line-reference#flag--modify_execution_info +build --modify_execution_info=PackageTar=+no-remote diff --git a/e2e/bzlmod_write_source_files_external/.bazelrc b/e2e/bzlmod_write_source_files_external/.bazelrc index a1b3c00..9a76c93 100644 --- a/e2e/bzlmod_write_source_files_external/.bazelrc +++ b/e2e/bzlmod_write_source_files_external/.bazelrc @@ -8,9 +8,6 @@ import %workspace%/.aspect/bazelrc/performance.bazelrc import %workspace%/.aspect/bazelrc/debug.bazelrc import %workspace%/.aspect/bazelrc/javascript.bazelrc -# Use a try-import for Bazel 6 settings since this repository is also tested against Bazel 5 on CI -try-import %workspace%/.aspect/bazelrc/bazel6.bazelrc - ### PROJECT SPECIFIC OPTIONS ### common --enable_bzlmod diff --git a/e2e/copy_to_directory/.aspect/bazelrc/BUILD.bazel b/e2e/copy_to_directory/.aspect/bazelrc/BUILD.bazel new file mode 100644 index 0000000..a3e6c28 --- /dev/null +++ b/e2e/copy_to_directory/.aspect/bazelrc/BUILD.bazel @@ -0,0 +1,15 @@ +"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", + presets = [ + "ci", + "convenience", + "correctness", + "debug", + "javascript", + "performance", + ], +) diff --git a/e2e/copy_to_directory/.aspect/bazelrc/bazel6.bazelrc b/e2e/copy_to_directory/.aspect/bazelrc/bazel6.bazelrc deleted file mode 120000 index eed5e30..0000000 --- a/e2e/copy_to_directory/.aspect/bazelrc/bazel6.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/bazel6.bazelrc \ No newline at end of file diff --git a/e2e/copy_to_directory/.aspect/bazelrc/ci.bazelrc b/e2e/copy_to_directory/.aspect/bazelrc/ci.bazelrc new file mode 100644 index 0000000..749c158 --- /dev/null +++ b/e2e/copy_to_directory/.aspect/bazelrc/ci.bazelrc @@ -0,0 +1,75 @@ +# We recommend enforcing a policy that keeps your CI from being slowed down +# by individual test targets that should be optimized +# or split up into multiple test targets with sharding or manually. +# Set this flag to exclude targets that have their timeout set to eternal (>15m) from running on CI. +# Docs: https://bazel.build/docs/user-manual#test-timeout-filters +build --test_timeout_filters=-eternal + +# Set this flag to enable re-tries of failed tests on CI. +# When any test target fails, try one or more times. This applies regardless of whether the "flaky" +# tag appears on the target definition. +# This is a tradeoff: legitimately failing tests will take longer to report, +# but we can paper over flaky tests that pass most of the time. +# The alternative is to mark every flaky test with the `flaky = True` attribute, but this requires +# the buildcop to make frequent code edits. +# Not recommended for local builds so that the flakiness is observed during development and thus +# is more likely to get fixed. +# Note that when passing after the first attempt, Bazel will give a special "FLAKY" status. +# Docs: https://bazel.build/docs/user-manual#flaky-test-attempts +build --flaky_test_attempts=2 + +# Announce all announces command options read from the bazelrc file(s) when starting up at the +# beginning of each Bazel invocation. This is very useful on CI to be able to inspect what Bazel rc +# settings are being applied on each run. +# Docs: https://bazel.build/docs/user-manual#announce-rc +build --announce_rc + +# Add a timestamp to each message generated by Bazel specifying the time at which the message was +# displayed. +# Docs: https://bazel.build/docs/user-manual#show-timestamps +build --show_timestamps + +# Only show progress every 60 seconds on CI. +# Docs: https://bazel.build/reference/command-line-reference#flag--progress_report_interval +build --progress_report_interval=60 + +# Only show progress every 60 seconds on CI. +# https://bazel.build/reference/command-line-reference#flag--show_progress_rate_limit +build --show_progress_rate_limit=60 + +# Don't use cursor controls in its screen output. +# Docs: https://bazel.build/docs/user-manual#curses +build --curses=no + +# Use colors to highlight its output on the screen. Set to `no` if your CI does not display colors. +# Docs: https://bazel.build/docs/user-manual#color +build --color=yes + +# The terminal width in columns. Configure this to override the default value based on what your CI system renders. +# Docs: https://github.com/bazelbuild/bazel/blob/1af61b21df99edc2fc66939cdf14449c2661f873/src/main/java/com/google/devtools/build/lib/runtime/UiOptions.java#L151 +build --terminal_columns=80 + +###################################### +# Generic remote cache configuration # +###################################### + +# Only download remote outputs of top level targets to the local machine. +# Docs: https://bazel.build/reference/command-line-reference#flag--remote_download_toplevel +build --remote_download_toplevel + +# The maximum amount of time to wait for remote execution and cache calls. +# https://bazel.build/reference/command-line-reference#flag--remote_timeout +build --remote_timeout=3600 + +# Upload locally executed action results to the remote cache. +# Docs: https://bazel.build/reference/command-line-reference#flag--remote_upload_local_results +build --remote_upload_local_results + +# Fall back to standalone local execution strategy if remote execution fails. If the grpc remote +# cache connection fails, it will fail the build, add this so it falls back to the local cache. +# Docs: https://bazel.build/reference/command-line-reference#flag--remote_local_fallback +build --remote_local_fallback + +# Fixes builds hanging on CI that get the TCP connection closed without sending RST packets. +# Docs: https://bazel.build/reference/command-line-reference#flag--grpc_keepalive_time +build --grpc_keepalive_time=30s diff --git a/e2e/copy_to_directory/.aspect/bazelrc/convenience.bazelrc b/e2e/copy_to_directory/.aspect/bazelrc/convenience.bazelrc deleted file mode 120000 index 524b51f..0000000 --- a/e2e/copy_to_directory/.aspect/bazelrc/convenience.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/convenience.bazelrc \ No newline at end of file diff --git a/e2e/copy_to_directory/.aspect/bazelrc/convenience.bazelrc b/e2e/copy_to_directory/.aspect/bazelrc/convenience.bazelrc new file mode 100644 index 0000000..3122d32 --- /dev/null +++ b/e2e/copy_to_directory/.aspect/bazelrc/convenience.bazelrc @@ -0,0 +1,29 @@ +# Attempt to build & test every target whose prerequisites were successfully built. +# Docs: https://bazel.build/docs/user-manual#keep-going +build --keep_going +test --keep_going + +# Output test errors to stderr so users don't have to `cat` or open test failure log files when test +# fail. This makes the log noiser in exchange for reducing the time-to-feedback on test failures for +# users. +# Docs: https://bazel.build/docs/user-manual#test-output +test --test_output=errors + +# Show the output files created by builds that requested more than one target. This helps users +# locate the build outputs in more cases +# Docs: https://bazel.build/docs/user-manual#show-result +build --show_result=20 + +# Bazel picks up host-OS-specific config lines from bazelrc files. For example, if the host OS is +# Linux and you run bazel build, Bazel picks up lines starting with build:linux. Supported OS +# identifiers are `linux`, `macos`, `windows`, `freebsd`, and `openbsd`. Enabling this flag is +# equivalent to using `--config=linux` on Linux, `--config=windows` on Windows, etc. +# Docs: https://bazel.build/reference/command-line-reference#flag--enable_platform_specific_config +common --enable_platform_specific_config + +# Output a heap dump if an OOM is thrown during a Bazel invocation +# (including OOMs due to `--experimental_oom_more_eagerly_threshold`). +# The dump will be written to `/.heapdump.hprof`. +# You may need to configure CI to capture this artifact and upload for later use. +# Docs: https://bazel.build/reference/command-line-reference#flag--heap_dump_on_oom +build --heap_dump_on_oom diff --git a/e2e/copy_to_directory/.aspect/bazelrc/correctness.bazelrc b/e2e/copy_to_directory/.aspect/bazelrc/correctness.bazelrc deleted file mode 120000 index f139b5d..0000000 --- a/e2e/copy_to_directory/.aspect/bazelrc/correctness.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/correctness.bazelrc \ No newline at end of file diff --git a/e2e/copy_to_directory/.aspect/bazelrc/correctness.bazelrc b/e2e/copy_to_directory/.aspect/bazelrc/correctness.bazelrc new file mode 100644 index 0000000..84b51c2 --- /dev/null +++ b/e2e/copy_to_directory/.aspect/bazelrc/correctness.bazelrc @@ -0,0 +1,68 @@ +# Do not upload locally executed action results to the remote cache. +# This should be the default for local builds so local builds cannot poison the remote cache. +# It should be flipped to `--remote_upload_local_results` on CI +# by using `--bazelrc=.aspect/bazelrc/ci.bazelrc`. +# Docs: https://bazel.build/reference/command-line-reference#flag--remote_upload_local_results +build --noremote_upload_local_results + +# Don't allow network access for build actions in the sandbox. +# Ensures that you don't accidentally make non-hermetic actions/tests which depend on remote +# services. +# Developers should tag targets with `tags=["requires-network"]` to opt-out of the enforcement. +# Docs: https://bazel.build/reference/command-line-reference#flag--sandbox_default_allow_network +build --sandbox_default_allow_network=false +test --sandbox_default_allow_network=false + +# Warn if a test's timeout is significantly longer than the test's actual execution time. +# Bazel's default for test_timeout is medium (5 min), but most tests should instead be short (1 min). +# While a test's timeout should be set such that it is not flaky, a test that has a highly +# over-generous timeout can hide real problems that crop up unexpectedly. +# For instance, a test that normally executes in a minute or two should not have a timeout of +# ETERNAL or LONG as these are much, much too generous. +# Docs: https://bazel.build/docs/user-manual#test-verbose-timeout-warnings +test --test_verbose_timeout_warnings + +# Allow the Bazel server to check directory sources for changes. Ensures that the Bazel server +# notices when a directory changes, if you have a directory listed in the srcs of some target. +# Recommended when using +# [copy_directory](https://github.com/aspect-build/bazel-lib/blob/main/docs/copy_directory.md) and +# [rules_js](https://github.com/aspect-build/rules_js) since npm package are source directories +# inputs to copy_directory actions. +# Docs: https://bazel.build/reference/command-line-reference#flag--host_jvm_args +startup --host_jvm_args=-DBAZEL_TRACK_SOURCE_DIRECTORIES=1 + +# Allow exclusive tests to run in the sandbox. Fixes a bug where Bazel doesn't enable sandboxing for +# tests with `tags=["exclusive"]`. +# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_exclusive_test_sandboxed +test --incompatible_exclusive_test_sandboxed + +# Use a static value for `PATH` and does not inherit `LD_LIBRARY_PATH`. Doesn't let environment +# variables like `PATH` sneak into the build, which can cause massive cache misses when they change. +# Use `--action_env=ENV_VARIABLE` if you want to inherit specific environment variables from the +# client, but note that doing so can prevent cross-user caching if a shared cache is used. +# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_strict_action_env +build --incompatible_strict_action_env + +# Propagate tags from a target declaration to the actions' execution requirements. +# Ensures that tags applied in your BUILD file, like `tags=["no-remote"]` +# get propagated to actions created by the rule. +# Without this option, you rely on rules authors to manually check the tags you passed +# and apply relevant ones to the actions they create. +# See https://github.com/bazelbuild/bazel/issues/8830 for details. +# Docs: https://bazel.build/reference/command-line-reference#flag--experimental_allow_tags_propagation +build --experimental_allow_tags_propagation +fetch --experimental_allow_tags_propagation +query --experimental_allow_tags_propagation + +# Checking the ctime of input files of an action before uploading it to a remote cache. Prevents +# concurrent local file modification from poisoning the build cache. +# Docs: https://bazel.build/reference/command-line-reference#flag--experimental_guard_against_concurrent_changes +build --experimental_guard_against_concurrent_changes + +# Do not automatically create `__init__.py` files in the runfiles of Python targets. Fixes the wrong +# default that comes from Google's internal monorepo by using `__init__.py` to delimit a Python +# package. Precisely, when a `py_binary` or `py_test` target has `legacy_create_init` set to `auto (the +# default), it is treated as false if and only if this flag is set. See +# https://github.com/bazelbuild/bazel/issues/10076. +# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_default_to_explicit_init_py +build --incompatible_default_to_explicit_init_py diff --git a/e2e/copy_to_directory/.aspect/bazelrc/debug.bazelrc b/e2e/copy_to_directory/.aspect/bazelrc/debug.bazelrc deleted file mode 120000 index e9fb0cf..0000000 --- a/e2e/copy_to_directory/.aspect/bazelrc/debug.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/debug.bazelrc \ No newline at end of file diff --git a/e2e/copy_to_directory/.aspect/bazelrc/debug.bazelrc b/e2e/copy_to_directory/.aspect/bazelrc/debug.bazelrc new file mode 100644 index 0000000..bfb0bdd --- /dev/null +++ b/e2e/copy_to_directory/.aspect/bazelrc/debug.bazelrc @@ -0,0 +1,19 @@ +############################################################ +# Use `bazel test --config=debug` to enable these settings # +############################################################ + +# Stream stdout/stderr output from each test in real-time. +# Docs: https://bazel.build/docs/user-manual#test-output +test:debug --test_output=streamed + +# Run one test at a time. +# Docs: https://bazel.build/reference/command-line-reference#flag--test_strategy +test:debug --test_strategy=exclusive + +# Prevent long running tests from timing out. +# Docs: https://bazel.build/docs/user-manual#test-timeout +test:debug --test_timeout=9999 + +# Always run tests even if they have cached results. +# Docs: https://bazel.build/docs/user-manual#cache-test-results +test:debug --nocache_test_results diff --git a/e2e/copy_to_directory/.aspect/bazelrc/javascript.bazelrc b/e2e/copy_to_directory/.aspect/bazelrc/javascript.bazelrc deleted file mode 120000 index 6981085..0000000 --- a/e2e/copy_to_directory/.aspect/bazelrc/javascript.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/javascript.bazelrc \ No newline at end of file diff --git a/e2e/copy_to_directory/.aspect/bazelrc/javascript.bazelrc b/e2e/copy_to_directory/.aspect/bazelrc/javascript.bazelrc new file mode 100644 index 0000000..dc76864 --- /dev/null +++ b/e2e/copy_to_directory/.aspect/bazelrc/javascript.bazelrc @@ -0,0 +1,28 @@ +# Aspect recommended Bazel flags when using Aspect's JavaScript rules: https://github.com/aspect-build/rules_js +# Docs for Node.js flags: https://nodejs.org/en/docs/guides/debugging-getting-started/#command-line-options + +# Support for debugging Node.js tests. Use bazel run with `--config=debug` to turn on the NodeJS +# inspector agent. The node process will break before user code starts and wait for the debugger to +# connect. Pass the --inspect-brk option to all tests which enables the node inspector agent. See +# https://nodejs.org/de/docs/guides/debugging-getting-started/#command-line-options for more +# details. +# Docs: https://nodejs.org/en/docs/guides/debugging-getting-started/#command-line-options +run:debug -- --node_options=--inspect-brk + +# Enable runfiles on all platforms. Runfiles are on by default on Linux and MacOS but off on +# Windows. +# +# In general, rules_js and derivate rule sets assume that runfiles are enabled and do not support no +# runfiles case because it does not scale to teach all Node.js tools to use the runfiles manifest. +# +# If you are developing on Windows, you must either run bazel with administrator privileges or +# enable developer mode. If you do not you may hit this error on Windows: +# +# Bazel needs to create symlinks to build the runfiles tree. +# Creating symlinks on Windows requires one of the following: +# 1. Bazel is run with administrator privileges. +# 2. The system version is Windows 10 Creators Update (1703) or later +# and developer mode is enabled. +# +# Docs: https://bazel.build/reference/command-line-reference#flag--enable_runfiles +build --enable_runfiles diff --git a/e2e/copy_to_directory/.aspect/bazelrc/performance.bazelrc b/e2e/copy_to_directory/.aspect/bazelrc/performance.bazelrc deleted file mode 120000 index 719484d..0000000 --- a/e2e/copy_to_directory/.aspect/bazelrc/performance.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/performance.bazelrc \ No newline at end of file diff --git a/e2e/copy_to_directory/.aspect/bazelrc/performance.bazelrc b/e2e/copy_to_directory/.aspect/bazelrc/performance.bazelrc new file mode 100644 index 0000000..bc11a3f --- /dev/null +++ b/e2e/copy_to_directory/.aspect/bazelrc/performance.bazelrc @@ -0,0 +1,54 @@ +# Merkle tree calculations will be memoized to improve the remote cache hit checking speed. The +# memory foot print of the cache is controlled by `--experimental_remote_merkle_tree_cache_size`. +# Docs: https://bazel.build/reference/command-line-reference#flag--experimental_remote_merkle_tree_cache +build --experimental_remote_merkle_tree_cache +query --experimental_remote_merkle_tree_cache + +# The number of Merkle trees to memoize to improve the remote cache hit checking speed. Even though +# the cache is automatically pruned according to Java's handling of soft references, out-of-memory +# errors can occur if set too high. If set to 0 the cache size is unlimited. Optimal value varies +# depending on project's size. +# Docs: https://bazel.build/reference/command-line-reference#flag--experimental_remote_merkle_tree_cache_size +build --experimental_remote_merkle_tree_cache_size=1000 +query --experimental_remote_merkle_tree_cache_size=1000 + +# Speed up all builds by not checking if output files have been modified. Lets you make changes to +# the output tree without triggering a build for local debugging. For example, you can modify +# [rules_js](https://github.com/aspect-build/rules_js) 3rd party npm packages in the output tree +# when local debugging. +# Docs: https://github.com/bazelbuild/bazel/blob/1af61b21df99edc2fc66939cdf14449c2661f873/src/main/java/com/google/devtools/build/lib/pkgcache/PackageOptions.java#L185 +build --noexperimental_check_output_files +fetch --noexperimental_check_output_files +query --noexperimental_check_output_files + +# Don't apply `--noremote_upload_local_results` and `--noremote_accept_cached` to the disk cache. +# If you have both `--noremote_upload_local_results` and `--disk_cache`, then this fixes a bug where +# Bazel doesn't write to the local disk cache as it treats as a remote cache. +# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_remote_results_ignore_disk +build --incompatible_remote_results_ignore_disk + +# Directories used by sandboxed non-worker execution may be reused to avoid unnecessary setup costs. +# Save time on Sandbox creation and deletion when many of the same kind of action run during the +# build. +# No longer experimental in Bazel 6: https://github.com/bazelbuild/bazel/commit/c1a95501a5611878e5cc43a3cc531f2b9e47835b +# Docs: https://bazel.build/reference/command-line-reference#flag--reuse_sandbox_directories +build --experimental_reuse_sandbox_directories + +# Do not build runfiles symlink forests for external repositories under +# `.runfiles/wsname/external/repo` (in addition to `.runfiles/repo`). This reduces runfiles & +# sandbox creation times & prevents accidentally depending on this feature which may flip to off by +# default in the future. Note, some rules may fail under this flag, please file issues with the rule +# author. +# Docs: https://bazel.build/reference/command-line-reference#flag--legacy_external_runfiles +build --nolegacy_external_runfiles +run --nolegacy_external_runfiles +test --nolegacy_external_runfiles + +# Some actions are always IO-intensive but require little compute. It's wasteful to put the output +# in the remote cache, it just saturates the network and fills the cache storage causing earlier +# evictions. It's also not worth sending them for remote execution. +# For actions like PackageTar it's usually faster to just re-run the work locally every time. +# You'll have to look at an execution log to figure out what other action mnemonics you care about. +# In some cases you may need to patch rulesets to add a mnemonic to actions that don't have one. +# https://bazel.build/reference/command-line-reference#flag--modify_execution_info +build --modify_execution_info=PackageTar=+no-remote diff --git a/e2e/copy_to_directory/.bazelrc b/e2e/copy_to_directory/.bazelrc index 11c53fe..1482aca 100644 --- a/e2e/copy_to_directory/.bazelrc +++ b/e2e/copy_to_directory/.bazelrc @@ -8,9 +8,6 @@ import %workspace%/.aspect/bazelrc/performance.bazelrc import %workspace%/.aspect/bazelrc/debug.bazelrc import %workspace%/.aspect/bazelrc/javascript.bazelrc -# Use a try-import for Bazel 6 settings since this repository is also tested against Bazel 5 on CI -try-import %workspace%/.aspect/bazelrc/bazel6.bazelrc - ### PROJECT SPECIFIC OPTIONS ### # Load any settings & overrides specific to the current user from `.aspect/bazelrc/user.bazelrc`. diff --git a/e2e/workspace/.aspect/bazelrc/BUILD.bazel b/e2e/workspace/.aspect/bazelrc/BUILD.bazel new file mode 100644 index 0000000..a3e6c28 --- /dev/null +++ b/e2e/workspace/.aspect/bazelrc/BUILD.bazel @@ -0,0 +1,15 @@ +"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", + presets = [ + "ci", + "convenience", + "correctness", + "debug", + "javascript", + "performance", + ], +) diff --git a/e2e/workspace/.aspect/bazelrc/bazel6.bazelrc b/e2e/workspace/.aspect/bazelrc/bazel6.bazelrc deleted file mode 120000 index eed5e30..0000000 --- a/e2e/workspace/.aspect/bazelrc/bazel6.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/bazel6.bazelrc \ No newline at end of file diff --git a/e2e/workspace/.aspect/bazelrc/ci.bazelrc b/e2e/workspace/.aspect/bazelrc/ci.bazelrc new file mode 100644 index 0000000..749c158 --- /dev/null +++ b/e2e/workspace/.aspect/bazelrc/ci.bazelrc @@ -0,0 +1,75 @@ +# We recommend enforcing a policy that keeps your CI from being slowed down +# by individual test targets that should be optimized +# or split up into multiple test targets with sharding or manually. +# Set this flag to exclude targets that have their timeout set to eternal (>15m) from running on CI. +# Docs: https://bazel.build/docs/user-manual#test-timeout-filters +build --test_timeout_filters=-eternal + +# Set this flag to enable re-tries of failed tests on CI. +# When any test target fails, try one or more times. This applies regardless of whether the "flaky" +# tag appears on the target definition. +# This is a tradeoff: legitimately failing tests will take longer to report, +# but we can paper over flaky tests that pass most of the time. +# The alternative is to mark every flaky test with the `flaky = True` attribute, but this requires +# the buildcop to make frequent code edits. +# Not recommended for local builds so that the flakiness is observed during development and thus +# is more likely to get fixed. +# Note that when passing after the first attempt, Bazel will give a special "FLAKY" status. +# Docs: https://bazel.build/docs/user-manual#flaky-test-attempts +build --flaky_test_attempts=2 + +# Announce all announces command options read from the bazelrc file(s) when starting up at the +# beginning of each Bazel invocation. This is very useful on CI to be able to inspect what Bazel rc +# settings are being applied on each run. +# Docs: https://bazel.build/docs/user-manual#announce-rc +build --announce_rc + +# Add a timestamp to each message generated by Bazel specifying the time at which the message was +# displayed. +# Docs: https://bazel.build/docs/user-manual#show-timestamps +build --show_timestamps + +# Only show progress every 60 seconds on CI. +# Docs: https://bazel.build/reference/command-line-reference#flag--progress_report_interval +build --progress_report_interval=60 + +# Only show progress every 60 seconds on CI. +# https://bazel.build/reference/command-line-reference#flag--show_progress_rate_limit +build --show_progress_rate_limit=60 + +# Don't use cursor controls in its screen output. +# Docs: https://bazel.build/docs/user-manual#curses +build --curses=no + +# Use colors to highlight its output on the screen. Set to `no` if your CI does not display colors. +# Docs: https://bazel.build/docs/user-manual#color +build --color=yes + +# The terminal width in columns. Configure this to override the default value based on what your CI system renders. +# Docs: https://github.com/bazelbuild/bazel/blob/1af61b21df99edc2fc66939cdf14449c2661f873/src/main/java/com/google/devtools/build/lib/runtime/UiOptions.java#L151 +build --terminal_columns=80 + +###################################### +# Generic remote cache configuration # +###################################### + +# Only download remote outputs of top level targets to the local machine. +# Docs: https://bazel.build/reference/command-line-reference#flag--remote_download_toplevel +build --remote_download_toplevel + +# The maximum amount of time to wait for remote execution and cache calls. +# https://bazel.build/reference/command-line-reference#flag--remote_timeout +build --remote_timeout=3600 + +# Upload locally executed action results to the remote cache. +# Docs: https://bazel.build/reference/command-line-reference#flag--remote_upload_local_results +build --remote_upload_local_results + +# Fall back to standalone local execution strategy if remote execution fails. If the grpc remote +# cache connection fails, it will fail the build, add this so it falls back to the local cache. +# Docs: https://bazel.build/reference/command-line-reference#flag--remote_local_fallback +build --remote_local_fallback + +# Fixes builds hanging on CI that get the TCP connection closed without sending RST packets. +# Docs: https://bazel.build/reference/command-line-reference#flag--grpc_keepalive_time +build --grpc_keepalive_time=30s diff --git a/e2e/workspace/.aspect/bazelrc/convenience.bazelrc b/e2e/workspace/.aspect/bazelrc/convenience.bazelrc deleted file mode 120000 index 524b51f..0000000 --- a/e2e/workspace/.aspect/bazelrc/convenience.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/convenience.bazelrc \ No newline at end of file diff --git a/e2e/workspace/.aspect/bazelrc/convenience.bazelrc b/e2e/workspace/.aspect/bazelrc/convenience.bazelrc new file mode 100644 index 0000000..3122d32 --- /dev/null +++ b/e2e/workspace/.aspect/bazelrc/convenience.bazelrc @@ -0,0 +1,29 @@ +# Attempt to build & test every target whose prerequisites were successfully built. +# Docs: https://bazel.build/docs/user-manual#keep-going +build --keep_going +test --keep_going + +# Output test errors to stderr so users don't have to `cat` or open test failure log files when test +# fail. This makes the log noiser in exchange for reducing the time-to-feedback on test failures for +# users. +# Docs: https://bazel.build/docs/user-manual#test-output +test --test_output=errors + +# Show the output files created by builds that requested more than one target. This helps users +# locate the build outputs in more cases +# Docs: https://bazel.build/docs/user-manual#show-result +build --show_result=20 + +# Bazel picks up host-OS-specific config lines from bazelrc files. For example, if the host OS is +# Linux and you run bazel build, Bazel picks up lines starting with build:linux. Supported OS +# identifiers are `linux`, `macos`, `windows`, `freebsd`, and `openbsd`. Enabling this flag is +# equivalent to using `--config=linux` on Linux, `--config=windows` on Windows, etc. +# Docs: https://bazel.build/reference/command-line-reference#flag--enable_platform_specific_config +common --enable_platform_specific_config + +# Output a heap dump if an OOM is thrown during a Bazel invocation +# (including OOMs due to `--experimental_oom_more_eagerly_threshold`). +# The dump will be written to `/.heapdump.hprof`. +# You may need to configure CI to capture this artifact and upload for later use. +# Docs: https://bazel.build/reference/command-line-reference#flag--heap_dump_on_oom +build --heap_dump_on_oom diff --git a/e2e/workspace/.aspect/bazelrc/correctness.bazelrc b/e2e/workspace/.aspect/bazelrc/correctness.bazelrc deleted file mode 120000 index f139b5d..0000000 --- a/e2e/workspace/.aspect/bazelrc/correctness.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/correctness.bazelrc \ No newline at end of file diff --git a/e2e/workspace/.aspect/bazelrc/correctness.bazelrc b/e2e/workspace/.aspect/bazelrc/correctness.bazelrc new file mode 100644 index 0000000..84b51c2 --- /dev/null +++ b/e2e/workspace/.aspect/bazelrc/correctness.bazelrc @@ -0,0 +1,68 @@ +# Do not upload locally executed action results to the remote cache. +# This should be the default for local builds so local builds cannot poison the remote cache. +# It should be flipped to `--remote_upload_local_results` on CI +# by using `--bazelrc=.aspect/bazelrc/ci.bazelrc`. +# Docs: https://bazel.build/reference/command-line-reference#flag--remote_upload_local_results +build --noremote_upload_local_results + +# Don't allow network access for build actions in the sandbox. +# Ensures that you don't accidentally make non-hermetic actions/tests which depend on remote +# services. +# Developers should tag targets with `tags=["requires-network"]` to opt-out of the enforcement. +# Docs: https://bazel.build/reference/command-line-reference#flag--sandbox_default_allow_network +build --sandbox_default_allow_network=false +test --sandbox_default_allow_network=false + +# Warn if a test's timeout is significantly longer than the test's actual execution time. +# Bazel's default for test_timeout is medium (5 min), but most tests should instead be short (1 min). +# While a test's timeout should be set such that it is not flaky, a test that has a highly +# over-generous timeout can hide real problems that crop up unexpectedly. +# For instance, a test that normally executes in a minute or two should not have a timeout of +# ETERNAL or LONG as these are much, much too generous. +# Docs: https://bazel.build/docs/user-manual#test-verbose-timeout-warnings +test --test_verbose_timeout_warnings + +# Allow the Bazel server to check directory sources for changes. Ensures that the Bazel server +# notices when a directory changes, if you have a directory listed in the srcs of some target. +# Recommended when using +# [copy_directory](https://github.com/aspect-build/bazel-lib/blob/main/docs/copy_directory.md) and +# [rules_js](https://github.com/aspect-build/rules_js) since npm package are source directories +# inputs to copy_directory actions. +# Docs: https://bazel.build/reference/command-line-reference#flag--host_jvm_args +startup --host_jvm_args=-DBAZEL_TRACK_SOURCE_DIRECTORIES=1 + +# Allow exclusive tests to run in the sandbox. Fixes a bug where Bazel doesn't enable sandboxing for +# tests with `tags=["exclusive"]`. +# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_exclusive_test_sandboxed +test --incompatible_exclusive_test_sandboxed + +# Use a static value for `PATH` and does not inherit `LD_LIBRARY_PATH`. Doesn't let environment +# variables like `PATH` sneak into the build, which can cause massive cache misses when they change. +# Use `--action_env=ENV_VARIABLE` if you want to inherit specific environment variables from the +# client, but note that doing so can prevent cross-user caching if a shared cache is used. +# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_strict_action_env +build --incompatible_strict_action_env + +# Propagate tags from a target declaration to the actions' execution requirements. +# Ensures that tags applied in your BUILD file, like `tags=["no-remote"]` +# get propagated to actions created by the rule. +# Without this option, you rely on rules authors to manually check the tags you passed +# and apply relevant ones to the actions they create. +# See https://github.com/bazelbuild/bazel/issues/8830 for details. +# Docs: https://bazel.build/reference/command-line-reference#flag--experimental_allow_tags_propagation +build --experimental_allow_tags_propagation +fetch --experimental_allow_tags_propagation +query --experimental_allow_tags_propagation + +# Checking the ctime of input files of an action before uploading it to a remote cache. Prevents +# concurrent local file modification from poisoning the build cache. +# Docs: https://bazel.build/reference/command-line-reference#flag--experimental_guard_against_concurrent_changes +build --experimental_guard_against_concurrent_changes + +# Do not automatically create `__init__.py` files in the runfiles of Python targets. Fixes the wrong +# default that comes from Google's internal monorepo by using `__init__.py` to delimit a Python +# package. Precisely, when a `py_binary` or `py_test` target has `legacy_create_init` set to `auto (the +# default), it is treated as false if and only if this flag is set. See +# https://github.com/bazelbuild/bazel/issues/10076. +# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_default_to_explicit_init_py +build --incompatible_default_to_explicit_init_py diff --git a/e2e/workspace/.aspect/bazelrc/debug.bazelrc b/e2e/workspace/.aspect/bazelrc/debug.bazelrc deleted file mode 120000 index e9fb0cf..0000000 --- a/e2e/workspace/.aspect/bazelrc/debug.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/debug.bazelrc \ No newline at end of file diff --git a/e2e/workspace/.aspect/bazelrc/debug.bazelrc b/e2e/workspace/.aspect/bazelrc/debug.bazelrc new file mode 100644 index 0000000..bfb0bdd --- /dev/null +++ b/e2e/workspace/.aspect/bazelrc/debug.bazelrc @@ -0,0 +1,19 @@ +############################################################ +# Use `bazel test --config=debug` to enable these settings # +############################################################ + +# Stream stdout/stderr output from each test in real-time. +# Docs: https://bazel.build/docs/user-manual#test-output +test:debug --test_output=streamed + +# Run one test at a time. +# Docs: https://bazel.build/reference/command-line-reference#flag--test_strategy +test:debug --test_strategy=exclusive + +# Prevent long running tests from timing out. +# Docs: https://bazel.build/docs/user-manual#test-timeout +test:debug --test_timeout=9999 + +# Always run tests even if they have cached results. +# Docs: https://bazel.build/docs/user-manual#cache-test-results +test:debug --nocache_test_results diff --git a/e2e/workspace/.aspect/bazelrc/javascript.bazelrc b/e2e/workspace/.aspect/bazelrc/javascript.bazelrc deleted file mode 120000 index 6981085..0000000 --- a/e2e/workspace/.aspect/bazelrc/javascript.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/javascript.bazelrc \ No newline at end of file diff --git a/e2e/workspace/.aspect/bazelrc/javascript.bazelrc b/e2e/workspace/.aspect/bazelrc/javascript.bazelrc new file mode 100644 index 0000000..dc76864 --- /dev/null +++ b/e2e/workspace/.aspect/bazelrc/javascript.bazelrc @@ -0,0 +1,28 @@ +# Aspect recommended Bazel flags when using Aspect's JavaScript rules: https://github.com/aspect-build/rules_js +# Docs for Node.js flags: https://nodejs.org/en/docs/guides/debugging-getting-started/#command-line-options + +# Support for debugging Node.js tests. Use bazel run with `--config=debug` to turn on the NodeJS +# inspector agent. The node process will break before user code starts and wait for the debugger to +# connect. Pass the --inspect-brk option to all tests which enables the node inspector agent. See +# https://nodejs.org/de/docs/guides/debugging-getting-started/#command-line-options for more +# details. +# Docs: https://nodejs.org/en/docs/guides/debugging-getting-started/#command-line-options +run:debug -- --node_options=--inspect-brk + +# Enable runfiles on all platforms. Runfiles are on by default on Linux and MacOS but off on +# Windows. +# +# In general, rules_js and derivate rule sets assume that runfiles are enabled and do not support no +# runfiles case because it does not scale to teach all Node.js tools to use the runfiles manifest. +# +# If you are developing on Windows, you must either run bazel with administrator privileges or +# enable developer mode. If you do not you may hit this error on Windows: +# +# Bazel needs to create symlinks to build the runfiles tree. +# Creating symlinks on Windows requires one of the following: +# 1. Bazel is run with administrator privileges. +# 2. The system version is Windows 10 Creators Update (1703) or later +# and developer mode is enabled. +# +# Docs: https://bazel.build/reference/command-line-reference#flag--enable_runfiles +build --enable_runfiles diff --git a/e2e/workspace/.aspect/bazelrc/performance.bazelrc b/e2e/workspace/.aspect/bazelrc/performance.bazelrc deleted file mode 120000 index 719484d..0000000 --- a/e2e/workspace/.aspect/bazelrc/performance.bazelrc +++ /dev/null @@ -1 +0,0 @@ -../../../../.aspect/bazelrc/performance.bazelrc \ No newline at end of file diff --git a/e2e/workspace/.aspect/bazelrc/performance.bazelrc b/e2e/workspace/.aspect/bazelrc/performance.bazelrc new file mode 100644 index 0000000..bc11a3f --- /dev/null +++ b/e2e/workspace/.aspect/bazelrc/performance.bazelrc @@ -0,0 +1,54 @@ +# Merkle tree calculations will be memoized to improve the remote cache hit checking speed. The +# memory foot print of the cache is controlled by `--experimental_remote_merkle_tree_cache_size`. +# Docs: https://bazel.build/reference/command-line-reference#flag--experimental_remote_merkle_tree_cache +build --experimental_remote_merkle_tree_cache +query --experimental_remote_merkle_tree_cache + +# The number of Merkle trees to memoize to improve the remote cache hit checking speed. Even though +# the cache is automatically pruned according to Java's handling of soft references, out-of-memory +# errors can occur if set too high. If set to 0 the cache size is unlimited. Optimal value varies +# depending on project's size. +# Docs: https://bazel.build/reference/command-line-reference#flag--experimental_remote_merkle_tree_cache_size +build --experimental_remote_merkle_tree_cache_size=1000 +query --experimental_remote_merkle_tree_cache_size=1000 + +# Speed up all builds by not checking if output files have been modified. Lets you make changes to +# the output tree without triggering a build for local debugging. For example, you can modify +# [rules_js](https://github.com/aspect-build/rules_js) 3rd party npm packages in the output tree +# when local debugging. +# Docs: https://github.com/bazelbuild/bazel/blob/1af61b21df99edc2fc66939cdf14449c2661f873/src/main/java/com/google/devtools/build/lib/pkgcache/PackageOptions.java#L185 +build --noexperimental_check_output_files +fetch --noexperimental_check_output_files +query --noexperimental_check_output_files + +# Don't apply `--noremote_upload_local_results` and `--noremote_accept_cached` to the disk cache. +# If you have both `--noremote_upload_local_results` and `--disk_cache`, then this fixes a bug where +# Bazel doesn't write to the local disk cache as it treats as a remote cache. +# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_remote_results_ignore_disk +build --incompatible_remote_results_ignore_disk + +# Directories used by sandboxed non-worker execution may be reused to avoid unnecessary setup costs. +# Save time on Sandbox creation and deletion when many of the same kind of action run during the +# build. +# No longer experimental in Bazel 6: https://github.com/bazelbuild/bazel/commit/c1a95501a5611878e5cc43a3cc531f2b9e47835b +# Docs: https://bazel.build/reference/command-line-reference#flag--reuse_sandbox_directories +build --experimental_reuse_sandbox_directories + +# Do not build runfiles symlink forests for external repositories under +# `.runfiles/wsname/external/repo` (in addition to `.runfiles/repo`). This reduces runfiles & +# sandbox creation times & prevents accidentally depending on this feature which may flip to off by +# default in the future. Note, some rules may fail under this flag, please file issues with the rule +# author. +# Docs: https://bazel.build/reference/command-line-reference#flag--legacy_external_runfiles +build --nolegacy_external_runfiles +run --nolegacy_external_runfiles +test --nolegacy_external_runfiles + +# Some actions are always IO-intensive but require little compute. It's wasteful to put the output +# in the remote cache, it just saturates the network and fills the cache storage causing earlier +# evictions. It's also not worth sending them for remote execution. +# For actions like PackageTar it's usually faster to just re-run the work locally every time. +# You'll have to look at an execution log to figure out what other action mnemonics you care about. +# In some cases you may need to patch rulesets to add a mnemonic to actions that don't have one. +# https://bazel.build/reference/command-line-reference#flag--modify_execution_info +build --modify_execution_info=PackageTar=+no-remote diff --git a/e2e/workspace/.bazelrc b/e2e/workspace/.bazelrc index 11c53fe..1482aca 100644 --- a/e2e/workspace/.bazelrc +++ b/e2e/workspace/.bazelrc @@ -8,9 +8,6 @@ import %workspace%/.aspect/bazelrc/performance.bazelrc import %workspace%/.aspect/bazelrc/debug.bazelrc import %workspace%/.aspect/bazelrc/javascript.bazelrc -# Use a try-import for Bazel 6 settings since this repository is also tested against Bazel 5 on CI -try-import %workspace%/.aspect/bazelrc/bazel6.bazelrc - ### PROJECT SPECIFIC OPTIONS ### # Load any settings & overrides specific to the current user from `.aspect/bazelrc/user.bazelrc`.