bazelbuild/bazel

Better docs around environment variables

Open

#14.692 aperta il 2 feb 2022

Vedi su GitHub
 (3 commenti) (0 reazioni) (0 assegnatari)Java (4465 fork)batch import
P2help wantedteam-Documentationteam-Remote-Exectype: documentation (cleanup)

Metriche repository

Star
 (25.384 star)
Metriche merge PR
 (Merge medio 22g 20h) (77 PR mergiate in 30 g)

Descrizione

Description of the problem / feature request:

Environment variable handling is under-documented.

After trial-and-error, this is my understanding;

  1. If --incompatible_strict_action_env (enabled by default) is disabled, then Bazel automatically passes PATH, LD_LIBRARY_PATH, and TMPDIR to actions that use use_default_shell_env.
  2. --action_env passes environment variables to actions for the target configuration that use use_default_shell_env.
  3. --host_action_env passes environment variables to actions for the exec configuration that use use_default_shell_env.
  4. If env and use_default_shell_env of ctx.actions are both used, the former is ignored.

Assuming these statements are correct, they ought to be documented.

In particular, the following facts are missing from current docs:

(a) use_default_shell_env is required to pass any CLI-configured vars to actions. (b) use_default_shell_env causes env to be ignored.


P.S. use_default_shell_env is an awkward name, because it actually has nothing to do with shells.

Guida contributor