aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar ccalvarin <ccalvarin@google.com>2018-08-02 16:49:56 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-08-02 16:51:24 -0700
commitec83598cb6ee4136166bb562a24dc5dfa58921db (patch)
treeda003f48a11b4e3e8f56c5aea2673c49f84d3407 /src/main/java/com/google/devtools
parent1ae4fc24164a4131ac9f177f3e91170ae4e721bc (diff)
Change the list of rc files accepted.
The old list was, in order: - %workspace%/tools/bazel.rc (unless --nomaster_bazelrc) - %binary_dir%/bazel.bazelrc (unless --nomaster_bazelrc) - system rc, /etc/bazel.bazelrc or in %ProgramData% for Windows (unless --nomaster_bazelrc) - the first of the following gets called the "user" bazelrc - path passed by flag --bazelrc - %workspace%/.bazelrc - $HOME/.bazelrc The new list is hopefully a bit more consistent, as: - system rc (unless --nosystem_rc) - workspace, %workspace%/.bazelrc (unless --noworkspace_rc) - user, $HOME/.bazelrc (unless --nohome_rc) - command-line provided, passed as --bazelrc or nothing if the flag is absent. This list removes two less than useful locations, duplication in the Workspace directory, and the rc next to the bazel binary. This location made sense at Google but is generally nonsensical elsewhere so we are removing it. It also stops the user local rc file from being overriden by passing in a custom file in --bazelrc. In both old and new, --ignore_all_rc_files disables all of the above. For a transition period, any file that you would have loaded but was not read will cause a WARNING to be printed. If you want the old file to still be read without moving its location, you can always import it into one of the new standard locations, or create a symlink. Closes #4502, except for cleanup to remove the warning after a transition period of 1 Bazel version has passed. RELNOTES[INC]: New bazelrc file list. PiperOrigin-RevId: 207189212
Diffstat (limited to 'src/main/java/com/google/devtools')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/BazelStartupOptionsModule.java35
1 files changed, 33 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/BazelStartupOptionsModule.java b/src/main/java/com/google/devtools/build/lib/bazel/BazelStartupOptionsModule.java
index fa0d66ee5f..da2f9038f6 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/BazelStartupOptionsModule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/BazelStartupOptionsModule.java
@@ -23,6 +23,7 @@ import com.google.devtools.build.lib.util.AbruptExitException;
import com.google.devtools.common.options.Option;
import com.google.devtools.common.options.OptionDocumentationCategory;
import com.google.devtools.common.options.OptionEffectTag;
+import com.google.devtools.common.options.OptionMetadataTag;
import com.google.devtools.common.options.OptionsBase;
/** Provides Bazel startup flags. */
@@ -43,17 +44,47 @@ public class BazelStartupOptionsModule extends BlazeModule {
+ "release builds.")
public String blazerc;
+ // TODO(b/36168162): Remove this after the transition period is ower. This now only serves to
+ // provide accurate warnings about which old files are being missed.
@Option(
name = "master_bazelrc",
defaultValue = "true", // NOTE: purely decorative, rc files are read by the client.
- documentationCategory = OptionDocumentationCategory.BAZEL_CLIENT_OPTIONS,
- effectTags = {OptionEffectTag.CHANGES_INPUTS},
+ documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
+ effectTags = {OptionEffectTag.NO_OP},
+ metadataTags = {OptionMetadataTag.DEPRECATED},
help =
"If this option is false, the master bazelrcs are not read. Otherwise, Bazel looks for "
+ "master rcs in three locations, reading them all, in order: "
+ "$workspace/tools/bazel.rc, a .bazelrc file near the bazel binary, and the "
+ "global rc, /etc/bazel.bazelrc.")
public boolean masterBlazerc;
+
+ // For the system_rc, it can be /etc/bazel.bazelrc, or a special Windows value, or can be
+ // custom-set by the Bazel distributor. We don't list a known path in the help output in order
+ // to avoid misdocumentation here.
+ @Option(
+ name = "system_rc",
+ defaultValue = "true", // NOTE: purely decorative, rc files are read by the client.
+ documentationCategory = OptionDocumentationCategory.BAZEL_CLIENT_OPTIONS,
+ effectTags = {OptionEffectTag.CHANGES_INPUTS},
+ help = "Whether or not to look for the system-wide bazelrc.")
+ public boolean systemRc;
+
+ @Option(
+ name = "workspace_rc",
+ defaultValue = "true", // NOTE: purely decorative, rc files are read by the client.
+ documentationCategory = OptionDocumentationCategory.BAZEL_CLIENT_OPTIONS,
+ effectTags = {OptionEffectTag.CHANGES_INPUTS},
+ help = "Whether or not to look for the workspace bazelrc file at $workspace/.bazelrc")
+ public boolean workspaceRc;
+
+ @Option(
+ name = "home_rc",
+ defaultValue = "true", // NOTE: purely decorative, rc files are read by the client.
+ documentationCategory = OptionDocumentationCategory.BAZEL_CLIENT_OPTIONS,
+ effectTags = {OptionEffectTag.CHANGES_INPUTS},
+ help = "Whether or not to look for the home bazelrc file at $HOME/.bazelrc")
+ public boolean homeRc;
}
@Override