Public API
Macros and Functions
default_timeout
Provide a sane default for *_test timeout attribute.
The test-encyclopedia says
Tests may return arbitrarily fast regardless of timeout. A test is not penalized for an overgenerous timeout, although a warning may be issued: you should generally set your timeout as tight as you can without incurring any flakiness.
However Bazel's default for timeout is medium, which is dumb given this guidance.
It also says:
Tests which do not explicitly specify a timeout have one implied based on the test's size as follows Therefore if size is specified, we should allow timeout to take its implied default. If neither is set, then we can fix Bazel's wrong default here to avoid warnings under
--test_verbose_timeout_warnings
.
This function can be used in a macro which wraps a testing rule.
Example usage (generated)
load("@aspect_bazel_lib//lib:utils.bzl", "default_timeout")
default_timeout(
# the size attribute of a test target
size = "",
# the timeout attribute of a test target
timeout = "",
)
size
the size attribute of a test target
timeout
the timeout attribute of a test target
file_exists
Check whether a file exists.
Useful in macros to set defaults for a configuration file if it is present. This can only be called during the loading phase, not from a rule implementation.
Example usage (generated)
load("@aspect_bazel_lib//lib:utils.bzl", "file_exists")
file_exists(
# a label, or a string which is a path relative to this package
path = None,
)
path
a label, or a string which is a path relative to this package
glob_directories
Example usage (generated)
load("@aspect_bazel_lib//lib:utils.bzl", "glob_directories")
glob_directories(
include = [],
)
include
kwargs
is_external_label
Returns True if the given Label (or stringy version of a label) represents a target outside of the workspace
Example usage (generated)
load("@aspect_bazel_lib//lib:utils.bzl", "is_external_label")
is_external_label(
# a string or label
param = "",
)
param
a string or label
path_to_workspace_root
Returns the path to the workspace root under bazel
Example usage (generated)
load("@aspect_bazel_lib//lib:utils.bzl", "path_to_workspace_root")
path_to_workspace_root(
)
propagate_well_known_tags
Returns a list of tags filtered from the input set that only contains the ones that are considered "well known"
These are listed in Bazel's documentation: https://docs.bazel.build/versions/main/test-encyclopedia.html#tag-conventions https://docs.bazel.build/versions/main/be/common-definitions.html#common-attributes
Example usage (generated)
load("@aspect_bazel_lib//lib:utils.bzl", "propagate_well_known_tags")
propagate_well_known_tags(
)
tags
List of tags to filter
to_label
Converts a string to a Label. If Label is supplied, the same label is returned.
Example usage (generated)
load("@aspect_bazel_lib//lib:utils.bzl", "to_label")
to_label(
# a string representing a label or a Label
param = "",
)
param
a string representing a label or a Label