diff --git a/angular/.aspect/bazelrc/bazel6.bazelrc b/angular/.aspect/bazelrc/bazel6.bazelrc index 11a1c67f..b2ce84db 100644 --- a/angular/.aspect/bazelrc/bazel6.bazelrc +++ b/angular/.aspect/bazelrc/bazel6.bazelrc @@ -13,3 +13,34 @@ build --reuse_sandbox_directories # Avoid this flag being enabled by remote_download_minimal or remote_download_toplevel # See https://meroton.com/blog/bazel-6-errors-build-without-the-bytes/ build --noexperimental_action_cache_store_output_metadata + +# 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 +# NB: This flag is in bazel6.bazelrc as when used in Bazel 7 is has been observed to break +# "build without the bytes" --remote_download_outputs=toplevel. See https://github.com/bazel-contrib/bazel-lib/pull/711 +# for more info. +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 +# NB: This flag is in bazel6.bazelrc because it became a no-op in Bazel 7 and has been removed +# in Bazel 8. +build --incompatible_remote_results_ignore_disk + +# 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 diff --git a/angular/.aspect/bazelrc/convenience.bazelrc b/angular/.aspect/bazelrc/convenience.bazelrc index c674569f..796675ac 100644 --- a/angular/.aspect/bazelrc/convenience.bazelrc +++ b/angular/.aspect/bazelrc/convenience.bazelrc @@ -3,7 +3,7 @@ build --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 +# fail. This makes the log noisier 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 diff --git a/angular/.aspect/bazelrc/correctness.bazelrc b/angular/.aspect/bazelrc/correctness.bazelrc index 56fad5fd..e5501930 100644 --- a/angular/.aspect/bazelrc/correctness.bazelrc +++ b/angular/.aspect/bazelrc/correctness.bazelrc @@ -24,7 +24,7 @@ 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 +# [copy_directory](https://github.com/bazel-contrib/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 @@ -42,17 +42,6 @@ test --incompatible_exclusive_test_sandboxed # 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 - # 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 @@ -60,3 +49,16 @@ query --experimental_allow_tags_propagation # 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 + +# Set default value of `allow_empty` to `False` in `glob()`. This prevents a common mistake when +# attempting to use `glob()` to match files in a subdirectory that is opaque to the current package +# because it contains a BUILD file. See https://github.com/bazelbuild/bazel/issues/8195. +# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_disallow_empty_glob +common --incompatible_disallow_empty_glob + +# Always download coverage files for tests from the remote cache. By default, coverage files are not +# downloaded on test result cache hits when --remote_download_minimal is enabled, making it impossible +# to generate a full coverage report. +# Docs: https://bazel.build/reference/command-line-reference#flag--experimental_fetch_all_coverage_outputs +# detching remote cache results +test --experimental_fetch_all_coverage_outputs diff --git a/angular/.aspect/bazelrc/javascript.bazelrc b/angular/.aspect/bazelrc/javascript.bazelrc index dc768641..ace9d604 100644 --- a/angular/.aspect/bazelrc/javascript.bazelrc +++ b/angular/.aspect/bazelrc/javascript.bazelrc @@ -8,21 +8,4 @@ # 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 +test:debug --test_env=NODE_OPTIONS=--inspect-brk diff --git a/angular/.aspect/bazelrc/performance.bazelrc b/angular/.aspect/bazelrc/performance.bazelrc index fff4c7c5..fc404c2f 100644 --- a/angular/.aspect/bazelrc/performance.bazelrc +++ b/angular/.aspect/bazelrc/performance.bazelrc @@ -1,18 +1,3 @@ -# 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. @@ -28,11 +13,15 @@ build --experimental_reuse_sandbox_directories # Docs: https://bazel.build/reference/command-line-reference#flag--legacy_external_runfiles build --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 +# Avoid creating a runfiles tree for binaries or tests until it is needed. +# Docs: https://bazel.build/reference/command-line-reference#flag--build_runfile_links +# See https://github.com/bazelbuild/bazel/issues/6627 +# +# This may break local workflows that `build` a binary target, then run the resulting program +# outside of `bazel run`. In those cases, the script will need to call +# `bazel build --build_runfile_links //my/binary:target` and then execute the resulting program. +build --nobuild_runfile_links + +# Needed prior to Bazel 8; see +# https://github.com/bazelbuild/bazel/issues/20577 +coverage --build_runfile_links diff --git a/angular/.bazelrc b/angular/.bazelrc index 2c2eeb6e..8c828400 100644 --- a/angular/.bazelrc +++ b/angular/.bazelrc @@ -18,11 +18,13 @@ import %workspace%/.aspect/bazelrc/bazel6.bazelrc ### YOUR PROJECT SPECIFIC SETTINGS GO HERE ### +# Enable Bzlmod for every Bazel command +# TODO: upgrade to Bazel 8 and remove this. +common --enable_bzlmod + + # 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 - -# Enable Bzlmod for every Bazel command -common --enable_bzlmod diff --git a/angular/MODULE.bazel b/angular/MODULE.bazel index 2372cfa6..dc69ebb3 100644 --- a/angular/MODULE.bazel +++ b/angular/MODULE.bazel @@ -1,14 +1,3 @@ -############################################################################### -# Bazel now uses Bzlmod by default to manage external dependencies. -# Please consider migrating your external dependencies from WORKSPACE to MODULE.bazel. -# -# For more details, please check https://github.com/bazelbuild/bazel/issues/18958 -############################################################################### -module( - name = "angular-example", - compatibility_level = 1, -) - bazel_dep(name = "aspect_rules_js", version = "2.1.2") bazel_dep(name = "aspect_bazel_lib", version = "2.10.0") bazel_dep(name = "rules_nodejs", version = "6.3.2") diff --git a/angular/WORKSPACE.bazel b/angular/WORKSPACE.bazel index e69de29b..f93ae84a 100644 --- a/angular/WORKSPACE.bazel +++ b/angular/WORKSPACE.bazel @@ -0,0 +1 @@ +# This file is a workaround for ibazel; see https://github.com/bazelbuild/bazel-watcher/issues/646