You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Let Starlark executable rules specify their environment (bazelbuild#15766)
* Specify fixedEnv/inheritedEnv interaction in ActionEnvironment
Previously, ActionEnvironment did not publicly document how fixed and
inherited environment variables interact, but still cautioned users to
keep the two sets disjoint without enforcing this. As a result, neither
could users rely on the interaction nor could ActionEnvironment benefit
from the additional freedom of not specifying the behavior.
With this commit, ActionEnvironment explicitly specifies that the values
of environment variable inherited from the client environment take
precedence over fixed values and codifies this behavior in a test.
This has been the effective behavior all along and has the advantage
that users can provide overrideable defaults for environment variables.
Closesbazelbuild#15170.
PiperOrigin-RevId: 439315634
* Intern trivial ActionEnvironment and EnvironmentVariables instances
When an ActionEnvironment is constructed out of an existing one, the
ActionEnvironment and EnvironmentVariables instances, which are
immutable, can be reused if no variables are added.
Also renames addVariables and addFixedVariables to better reflect that
they are operating on an immutable type.
Closesbazelbuild#15171.
PiperOrigin-RevId: 440312159
* Let Starlark executable rules specify their environment
The new RunEnvironmentInfo provider allows any executable or test
Starlark rule to specify the environment for when it is executed, either
as part of a test action or via the run command.
Refactors testing.TestEnvironment to construct a RunEnvironmentInfo and
adds a warning (but not an error) if the provider constructed in this
way is returned from a non-executable non-test rule. If a
RunEnvironmentInfo is constructed directly via the Starlark constructor,
this warning becomes an error.
Fixesbazelbuild#7364Fixesbazelbuild#15224Fixesbazelbuild#15225Closesbazelbuild#15232.
PiperOrigin-RevId: 448185352
* Fix strict deps violation
```
src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java:990: error: [strict] Using type com.google.devtools.build.lib.cmdline.LabelValidator from an indirect dependency (TOOL_INFO: "//src/main/java/com/google/devtools/build/lib/cmdline:LabelValidator"). See command below **
LabelValidator.parseAbsoluteLabel(labelString);
^
```
0 commit comments