Skip to content

Commit

Permalink
Flip --experimental_strict_action_env on by default.
Browse files Browse the repository at this point in the history
See bazelbuild#2574. For a while, many actions did not respect the --action_env command line option, but those have been fixed now. So, I think it's time to flip on this flag for greater hermeticity by default.
  • Loading branch information
benjaminp committed Sep 27, 2018
1 parent e856d82 commit 2ab5e0a
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 17 deletions.
23 changes: 8 additions & 15 deletions site/docs/remote-caching.md
Original file line number Diff line number Diff line change
Expand Up @@ -333,12 +333,6 @@ You can pass a user-specific path to the `--disk_cache` flag using the `~` alias
when enabling the disk cache for all developers of a project via the project's
checked in `.bazelrc` file.

To enable cache hits across different workspaces, use the following flag:

```
build --experimental_strict_action_env
```

## Known issues

**Input file modification during a build**
Expand All @@ -353,15 +347,14 @@ build.

**Environment variables leaking into an action**

An action definition contains environment variables. This can be a problem
for sharing remote cache hits across machines. For example, environments
with different `$PATH` variables won't share cache hits. You can specify
`--experimental_strict_action_env` to ensure that that's not the case and
that only environment variables explicitly whitelisted via `--action_env`
are included in an action definition. Bazel's Debian/Ubuntu package used
to install `/etc/bazel.bazelrc` with a whitelist of environment variables
including `$PATH`. If you are getting fewer cache hits than expected, check
that your environment doesn't have an old `/etc/bazel.bazelrc` file.
An action definition contains environment variables. This can be a problem for
sharing remote cache hits across machines. For example, environments with
different `$PATH` variables won't share cache hits. Only environment variables
explicitly whitelisted via `--action_env` are included in an action
definition. Bazel's Debian/Ubuntu package used to install `/etc/bazel.bazelrc`
with a whitelist of environment variables including `$PATH`. If you are getting
fewer cache hits than expected, check that your environment doesn't have an old
`/etc/bazel.bazelrc` file.


**Bazel does not track tools outside a workspace**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ public class BazelRuleClassProvider {
public static class StrictActionEnvOptions extends FragmentOptions {
@Option(
name = "experimental_strict_action_env",
defaultValue = "false",
defaultValue = "true",
documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
effectTags = {OptionEffectTag.LOADING_AND_ANALYSIS},
help =
Expand Down
1 change: 0 additions & 1 deletion src/test/py/bazel/windows_remote_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ def _RunRemoteBazel(self, args, env_remove=None, env_add=None):
'--define=EXECUTOR=remote',
'--remote_executor=localhost:' + str(self._worker_port),
'--remote_cache=localhost:' + str(self._worker_port),
'--experimental_strict_action_env=true',
'--remote_timeout=3600',
'--auth_enabled=false',
'--remote_accept_cached=false',
Expand Down

0 comments on commit 2ab5e0a

Please sign in to comment.