aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar carmi <carmi@google.com>2018-03-29 10:36:30 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-03-29 10:37:44 -0700
commitd924fb9760fe4f87c677b94500c4d0fc1f375f99 (patch)
tree80506a38e522d1a284926056e95cdaa5e4ed06bd
parentd2f33add4d8242156828d0c146538b831cc27081 (diff)
Allow setting the value which BazelPackageLoader returns for native.bazel_version.
This allows it to work in workspaces that use https://github.com/bazelbuild/bazel-skylib/blob/a5e23fd4c0b766f38f80d5edf10073ce990b2fa1/lib/versions.bzl RELNOTES: None PiperOrigin-RevId: 190950709
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java26
2 files changed, 27 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java b/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
index f5d393585d..0c63193fea 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
@@ -337,7 +337,10 @@ public abstract class AbstractPackageLoader implements PackageLoader {
/*keepEdges=*/ false));
}
- protected abstract String getName();
+ /**
+ * Version is the string BazelPackageLoader reports in native.bazel_version to be used by Skylark.
+ */
+ protected abstract String getVersion();
protected abstract ImmutableList<EnvironmentExtension> getEnvironmentExtensions();
@@ -362,7 +365,7 @@ public abstract class AbstractPackageLoader implements PackageLoader {
ruleClassProvider,
AttributeContainer::new,
getEnvironmentExtensions(),
- getName(),
+ getVersion(),
Package.Builder.DefaultHelper.INSTANCE);
pkgFactory.setGlobbingThreads(legacyGlobbingThreads);
pkgFactory.setSyscalls(syscallCacheRef);
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java b/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java
index 1393fbf7dd..ac55f39897 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java
@@ -52,6 +52,12 @@ import java.util.concurrent.atomic.AtomicReference;
* caching or incrementality.
*/
public class BazelPackageLoader extends AbstractPackageLoader {
+
+ /**
+ * Version is the string BazelPackageLoader reports in native.bazel_version to be used by Skylark.
+ */
+ private final String version;
+
/** Returns a fresh {@link Builder} instance. */
public static Builder builder(Path workspaceDir, Path installBase, Path outputBase) {
// Prevent PackageLoader from fetching any remote repositories; these should only be fetched by
@@ -107,6 +113,8 @@ public class BazelPackageLoader extends AbstractPackageLoader {
private final AtomicBoolean isFetch;
+ private String version = "";
+
private static ConfiguredRuleClassProvider createRuleClassProvider() {
ConfiguredRuleClassProvider.Builder classProvider = new ConfiguredRuleClassProvider.Builder();
new BazelRepositoryModule().initializeRuleClasses(classProvider);
@@ -121,7 +129,7 @@ public class BazelPackageLoader extends AbstractPackageLoader {
@Override
public BazelPackageLoader buildImpl() {
- return new BazelPackageLoader(this);
+ return new BazelPackageLoader(this, version);
}
@Override
@@ -135,19 +143,29 @@ public class BazelPackageLoader extends AbstractPackageLoader {
InvocationPolicy.getDefaultInstance());
}
+ /**
+ * Version is the string BazelPackageLoader reports in native.bazel_version to be used by
+ * Skylark.
+ */
+ public Builder setVersion(String version) {
+ this.version = version;
+ return this;
+ }
+
Builder setFetchForTesting() {
this.isFetch.set(true);
return this;
}
}
- private BazelPackageLoader(Builder builder) {
+ private BazelPackageLoader(Builder builder, String version) {
super(builder);
+ this.version = version;
}
@Override
- protected String getName() {
- return "BazelPackageLoader";
+ protected String getVersion() {
+ return version;
}
@Override