cherry-pick to include github tools release branch (#29533)
This PR cherry picks
[a49b777ccfc1d69bee090471ed95e76f35e1ddb2](https://github.com/bazelbuild/bazel/commit/a49b777ccfc1d69bee090471ed95e76f35e1ddb2)
into the rolling release
---------
Co-authored-by: Ted Xie <tedx@google.com>
Co-authored-by: Googler <noreply@google.com>
Co-authored-by: deepalak56 <deepalakshmib@google.com>
Co-authored-by: Chi Wang <coeuvre@gmail.com>
diff --git a/.bazelci/postsubmit.yml b/.bazelci/postsubmit.yml
index cdee71b..c3d21c8 100644
--- a/.bazelci/postsubmit.yml
+++ b/.bazelci/postsubmit.yml
@@ -238,8 +238,8 @@
- "//src:bazel_nojdk.exe"
include_json_profile:
- build
- rbe_ubuntu2004:
- platform: ubuntu2004
+ rbe_ubuntu2404:
+ platform: ubuntu2404
name: "RBE"
shell_commands:
- if [ -n "${UPDATE_BAZEL_LOCK_FILE:-}" ]; then bazel mod deps --lockfile_mode=update; fi
diff --git a/.bazelci/presubmit.yml b/.bazelci/presubmit.yml
index d1b5991..b6403c8 100644
--- a/.bazelci/presubmit.yml
+++ b/.bazelci/presubmit.yml
@@ -241,8 +241,8 @@
- "//src:bazel_nojdk.exe"
include_json_profile:
- build
- rbe_ubuntu2004:
- platform: ubuntu2004
+ rbe_ubuntu2404:
+ platform: ubuntu2404
name: "RBE"
build_flags:
- "--config=remote"
diff --git a/.bazelrc b/.bazelrc
index 9d2fb01..5f6b883 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -13,14 +13,14 @@
common:remote_shared --action_env=PATH=/bin:/usr/bin:/usr/local/bin
# Configuration to build and test Bazel on RBE on Ubuntu 20.04
-common:ubuntu2004 --extra_toolchains=@rbe_ubuntu2004//config:cc-toolchain
-common:ubuntu2004 --extra_execution_platforms=//:rbe_ubuntu2004_platform,//:rbe_ubuntu2004_highcpu_platform
-common:ubuntu2004 --host_platform=//:rbe_ubuntu2004_platform
-common:ubuntu2004 --platforms=//:rbe_ubuntu2004_platform
-common:ubuntu2004 --config=remote_shared
+common:ubuntu2404 --extra_toolchains=@rbe_ubuntu2404//config:cc-toolchain
+common:ubuntu2404 --extra_execution_platforms=//:rbe_ubuntu2404_platform,//:rbe_ubuntu2404_highcpu_platform
+common:ubuntu2404 --host_platform=//:rbe_ubuntu2404_platform
+common:ubuntu2404 --platforms=//:rbe_ubuntu2404_platform
+common:ubuntu2404 --config=remote_shared
# Alias
-common:remote --config=ubuntu2004
+common:remote --config=ubuntu2404
common:macos --host_macos_minimum_os=10.13
common:macos --macos_minimum_os=10.13
diff --git a/BUILD b/BUILD
index d84283b..33ce90d 100644
--- a/BUILD
+++ b/BUILD
@@ -291,7 +291,7 @@
],
)
-REMOTE_PLATFORMS = ("rbe_ubuntu2004",)
+REMOTE_PLATFORMS = ("rbe_ubuntu2404",)
[
platform(
diff --git a/MODULE.bazel b/MODULE.bazel
index 4e81164..50a6ed6 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -444,8 +444,8 @@
rbe_preconfig = use_repo_rule("@bazel_ci_rules//:rbe_repo.bzl", "rbe_preconfig")
rbe_preconfig(
- name = "rbe_ubuntu2004",
- toolchain = "ubuntu2004",
+ name = "rbe_ubuntu2404",
+ toolchain = "ubuntu2404",
)
list_source_repository = use_repo_rule("//src/test/shell/bazel:list_source_repository.bzl", "list_source_repository")
diff --git a/scripts/ci/build.sh b/scripts/ci/build.sh
index b87e99f..fee66d9 100755
--- a/scripts/ci/build.sh
+++ b/scripts/ci/build.sh
@@ -33,10 +33,9 @@
echo "See https://cloud.google.com/sdk/downloads for instructions."
exit 1
fi
-if ! command -v github-release &>/dev/null; then
- echo "Required tool 'github-release' not found. Download it from here:"
- echo "https://github.com/c4milo/github-release/releases"
- echo "Just extract the archive and put the binary on your PATH."
+if ! command -v gh &>/dev/null; then
+ echo "Required tool 'gh' (GitHub CLI) not found. Please install it:"
+ echo "See https://cli.github.com/ for instructions."
exit 1
fi
if ! command -v debsign &>/dev/null; then
@@ -136,8 +135,8 @@
'
}
-# Deploy a github release using a third party tool:
-# https://github.com/c4milo/github-release
+# Deploy a github release using the official GitHub CLI (gh):
+# https://cli.github.com/
# This methods expects the following arguments:
# $1..$n files generated by package_build (should not contains the README file)
# Please set GITHUB_TOKEN to talk to the Github API.
@@ -150,13 +149,55 @@
local release_branch=$(get_release_branch)
if [ -n "${release_name}" ]; then
- local github_token="$(gsutil cat gs://bazel-trusted-encrypted-secrets/github-trusted-token.enc | \
+ local github_token
+ github_token="$(gsutil cat gs://bazel-trusted-encrypted-secrets/github-trusted-token.enc | \
gcloud kms decrypt --project bazel-public --location global --keyring buildkite --key github-trusted-token --ciphertext-file - --plaintext-file -)"
- if [ -z "${rc}" ]; then
- GITHUB_TOKEN="${github_token}" github-release "bazelbuild/bazel" "${release_name}" "" "$(get_release_page)" "${artifact_dir}/*"
+
+ local latest_flag="true"
+ local prerelease_flag=""
+ local tag_to_deploy="${release_name}"
+
+ if [ -n "${rc}" ]; then
+ tag_to_deploy="${full_release_name}"
+ prerelease_flag="--prerelease"
+ latest_flag="false"
else
- GITHUB_TOKEN="${github_token}" github-release -prerelease "bazelbuild/bazel" "${full_release_name}" "${release_branch}" "$(get_release_page)" "${artifact_dir}/*"
+ echo "+++ Checking if ${release_name} should be marked as Latest"
+ # Query the current GitHub "latest" release to compare versions.
+ local current_latest_tag
+ if current_latest_tag=$(GH_TOKEN="${github_token}" gh release view --repo "bazelbuild/bazel" --json tagName --jq .tagName 2>/dev/null); then
+ if [[ -n "${current_latest_tag}" ]]; then
+ local highest
+ highest=$(printf '%s\n%s' "${current_latest_tag}" "${release_name}" | sort -V | tail -n 1)
+ if [[ "${release_name}" != "${highest}" ]]; then
+ echo "+++ Version ${release_name} is older than ${current_latest_tag}. Will NOT mark as latest."
+ latest_flag="false"
+ fi
+ fi
+ else
+ echo "+++ Warning: Could not determine current latest release tag. Will NOT mark as latest to be safe."
+ latest_flag="false"
+ fi
fi
+
+ # Use a subshell so that the EXIT trap for temp file cleanup does not
+ # affect the outer script's traps.
+ (
+ notes_file="$(mktemp)"
+ trap 'rm -f "$notes_file"' EXIT
+ get_release_page > "$notes_file"
+
+ echo "+++ Deploying to GitHub (Tag: ${tag_to_deploy}, Latest: ${latest_flag})"
+
+ GH_TOKEN="${github_token}" gh release create "${tag_to_deploy}" \
+ "${artifact_dir}"/* \
+ --repo "bazelbuild/bazel" \
+ --target "${release_branch}" \
+ --title "${tag_to_deploy}" \
+ --notes-file "$notes_file" \
+ ${prerelease_flag} \
+ --latest="${latest_flag}"
+ )
fi
}
@@ -457,4 +498,3 @@
cp "${artifact_dir}"/* "${gcs_working_dir}"
release_to_gcs "${gcs_working_dir}"
}
-
diff --git a/src/main/java/com/google/devtools/build/lib/query2/QueryEnvironmentFactory.java b/src/main/java/com/google/devtools/build/lib/query2/QueryEnvironmentFactory.java
index 7d29547..4316f76 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/QueryEnvironmentFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/QueryEnvironmentFactory.java
@@ -53,6 +53,7 @@
boolean orderedResults,
UniverseScope universeScope,
int loadingPhaseThreads,
+ boolean trackIncrementalState,
Predicate<Label> labelFilter,
ExtendedEventHandler eventHandler,
Set<Setting> settings,
@@ -65,6 +66,7 @@
return new SkyQueryEnvironment(
keepGoing,
loadingPhaseThreads,
+ trackIncrementalState,
eventHandler,
settings,
extraFunctions,
diff --git a/src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java
index 2e66066..468a68e 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java
@@ -74,6 +74,7 @@
import com.google.devtools.build.lib.query2.common.UniverseScope;
import com.google.devtools.build.lib.query2.common.UniverseSkyKey;
import com.google.devtools.build.lib.query2.compat.FakeLoadTarget;
+import com.google.devtools.build.lib.query2.engine.AggregatingQueryExpressionVisitor.RequiresEdgesQueryExpressionVisitor;
import com.google.devtools.build.lib.query2.engine.AllRdepsFunction;
import com.google.devtools.build.lib.query2.engine.Callback;
import com.google.devtools.build.lib.query2.engine.KeyExtractor;
@@ -156,6 +157,7 @@
private final BlazeTargetAccessor accessor = new BlazeTargetAccessor(this);
protected final int loadingPhaseThreads;
+ protected final boolean trackIncrementalState;
protected final WalkableGraphFactory graphFactory;
protected final UniverseScope universeScope;
protected final TargetPattern.Parser mainRepoTargetParser;
@@ -175,6 +177,7 @@
public SkyQueryEnvironment(
boolean keepGoing,
int loadingPhaseThreads,
+ boolean trackIncrementalState,
ExtendedEventHandler eventHandler,
Set<Setting> settings,
Iterable<QueryFunction> extraFunctions,
@@ -187,6 +190,7 @@
this(
keepGoing,
loadingPhaseThreads,
+ trackIncrementalState,
// SkyQueryEnvironment operates on a prepopulated Skyframe graph. Therefore, query
// evaluation is completely CPU-bound.
/* queryEvaluationParallelismLevel= */ DEFAULT_THREAD_COUNT,
@@ -204,6 +208,7 @@
protected SkyQueryEnvironment(
boolean keepGoing,
int loadingPhaseThreads,
+ boolean trackIncrementalState,
int queryEvaluationParallelismLevel,
ExtendedEventHandler eventHandler,
Set<Setting> settings,
@@ -223,6 +228,7 @@
extraFunctions,
labelPrinter);
this.loadingPhaseThreads = loadingPhaseThreads;
+ this.trackIncrementalState = trackIncrementalState;
this.graphFactory = graphFactory;
this.pkgPath = pkgPath;
this.universeScope = universeScope;
@@ -262,6 +268,15 @@
protected void beforeEvaluateQuery(
QueryExpression expr, ThreadSafeOutputFormatterCallback<Target> callback)
throws QueryException, InterruptedException {
+ if (!trackIncrementalState) {
+ RequiresEdgesQueryExpressionVisitor visitor = new RequiresEdgesQueryExpressionVisitor();
+ if (expr.accept(visitor)) {
+ throw new QueryException(
+ expr,
+ "Queries requiring edge traversal are not supported with --notrack_incremental_state",
+ Code.ILLEGAL_FLAG_COMBINATION);
+ }
+ }
UniverseSkyKey universeKey = universeScope.getUniverseKey(expr, parserPrefix);
ImmutableList<String> universeScopeListToUse = universeKey.getPatterns();
logger.atInfo().log("Using a --universe_scope value of %s", universeScopeListToUse);
diff --git a/src/main/java/com/google/devtools/build/lib/query2/engine/AggregatingQueryExpressionVisitor.java b/src/main/java/com/google/devtools/build/lib/query2/engine/AggregatingQueryExpressionVisitor.java
index f4b2487..5892a56 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/engine/AggregatingQueryExpressionVisitor.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/engine/AggregatingQueryExpressionVisitor.java
@@ -114,4 +114,36 @@
return Booleans.contains(Booleans.toArray(resultMap.values()), true);
}
}
+
+ /** Returns true when the query expression contains at least one function that requires edges. */
+ public static class RequiresEdgesQueryExpressionVisitor
+ extends AggregatingQueryExpressionVisitor<Boolean, Void>
+ implements QueryExpressionVisitor<Boolean, Void> {
+
+ public RequiresEdgesQueryExpressionVisitor() {}
+
+ @Override
+ public Boolean visit(TargetLiteral targetLiteral, Void context) {
+ return false;
+ }
+
+ @Override
+ public Boolean visit(SetExpression setExpression, Void context) {
+ return false;
+ }
+
+ @Override
+ public Boolean visit(FunctionExpression functionExpression, Void context) {
+ if (functionExpression.getFunction().requiresEdges()) {
+ return true;
+ } else {
+ return super.visit(functionExpression, context);
+ }
+ }
+
+ @Override
+ protected Boolean aggregate(ImmutableMap<QueryExpression, Boolean> resultMap) {
+ return Booleans.contains(Booleans.toArray(resultMap.values()), true);
+ }
+ }
}
diff --git a/src/main/java/com/google/devtools/build/lib/query2/engine/AllPathsFunction.java b/src/main/java/com/google/devtools/build/lib/query2/engine/AllPathsFunction.java
index 3ae52d7..1a78d79 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/engine/AllPathsFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/engine/AllPathsFunction.java
@@ -33,8 +33,7 @@
* Implementation of the <code>allpaths()</code> function.
*/
public class AllPathsFunction implements QueryFunction {
- AllPathsFunction() {
- }
+ public AllPathsFunction() {}
@Override
public String getName() {
@@ -52,6 +51,11 @@
}
@Override
+ public boolean requiresEdges() {
+ return true;
+ }
+
+ @Override
public <T> QueryTaskFuture<Void> eval(
final QueryEnvironment<T> env,
QueryExpressionContext<T> context,
diff --git a/src/main/java/com/google/devtools/build/lib/query2/engine/AllRdepsFunction.java b/src/main/java/com/google/devtools/build/lib/query2/engine/AllRdepsFunction.java
index 14196cb..6740680 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/engine/AllRdepsFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/engine/AllRdepsFunction.java
@@ -42,6 +42,11 @@
}
@Override
+ public boolean requiresEdges() {
+ return true;
+ }
+
+ @Override
public int getMandatoryArguments() {
return 1; // last argument is optional
}
diff --git a/src/main/java/com/google/devtools/build/lib/query2/engine/DepsFunction.java b/src/main/java/com/google/devtools/build/lib/query2/engine/DepsFunction.java
index c70453a..7bccb8d 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/engine/DepsFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/engine/DepsFunction.java
@@ -52,6 +52,11 @@
return ImmutableList.of(ArgumentType.EXPRESSION, ArgumentType.INTEGER);
}
+ @Override
+ public boolean requiresEdges() {
+ return true;
+ }
+
/** Breadth-first search from the arguments. */
@SuppressWarnings("unchecked")
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/query2/engine/QueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/engine/QueryEnvironment.java
index da7aebe..c372a39 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/engine/QueryEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/engine/QueryEnvironment.java
@@ -146,6 +146,11 @@
default FilteringQueryFunction asFilteringFunction() {
return null;
}
+
+ /** Returns true if this function requires traversing edges in the graph. */
+ default boolean requiresEdges() {
+ return false;
+ }
}
/** A {@link QueryFunction} whose output is a subset of some input argument expression. */
diff --git a/src/main/java/com/google/devtools/build/lib/query2/engine/RdepsFunction.java b/src/main/java/com/google/devtools/build/lib/query2/engine/RdepsFunction.java
index 7a54073..841e653 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/engine/RdepsFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/engine/RdepsFunction.java
@@ -42,6 +42,11 @@
}
@Override
+ public boolean requiresEdges() {
+ return true;
+ }
+
+ @Override
public int getMandatoryArguments() {
return super.getMandatoryArguments() + 1; // +1 for the universe.
}
diff --git a/src/main/java/com/google/devtools/build/lib/query2/engine/SamePkgDirectRdepsFunction.java b/src/main/java/com/google/devtools/build/lib/query2/engine/SamePkgDirectRdepsFunction.java
index ede3031..17c31e1 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/engine/SamePkgDirectRdepsFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/engine/SamePkgDirectRdepsFunction.java
@@ -41,6 +41,11 @@
}
@Override
+ public boolean requiresEdges() {
+ return true;
+ }
+
+ @Override
public int getMandatoryArguments() {
return 1;
}
diff --git a/src/main/java/com/google/devtools/build/lib/query2/engine/SiblingsFunction.java b/src/main/java/com/google/devtools/build/lib/query2/engine/SiblingsFunction.java
index 4a8ea7f..d50d7a8 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/engine/SiblingsFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/engine/SiblingsFunction.java
@@ -36,6 +36,11 @@
}
@Override
+ public boolean requiresEdges() {
+ return true;
+ }
+
+ @Override
public int getMandatoryArguments() {
return 1;
}
diff --git a/src/main/java/com/google/devtools/build/lib/query2/engine/SomePathFunction.java b/src/main/java/com/google/devtools/build/lib/query2/engine/SomePathFunction.java
index 07889a4..f2a7863 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/engine/SomePathFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/engine/SomePathFunction.java
@@ -34,8 +34,7 @@
* <pre>expr ::= SOMEPATH '(' expr ',' expr ')'</pre>
*/
public class SomePathFunction implements QueryFunction {
- SomePathFunction() {
- }
+ public SomePathFunction() {}
@Override
public String getName() {
@@ -53,6 +52,11 @@
}
@Override
+ public boolean requiresEdges() {
+ return true;
+ }
+
+ @Override
public <T> QueryTaskFuture<Void> eval(
final QueryEnvironment<T> env,
QueryExpressionContext<T> context,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java b/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java
index d50f687..f925c95 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java
@@ -306,6 +306,8 @@
// (b/127644784). All the packages are already loaded at this point, so there is
// no need to start up multiple threads anyway.
/* loadingPhaseThreads= */ 1,
+ // Passing true is safe because GenQuery passes UniverseScope.EMPTY.
+ /* trackIncrementalState= */ true,
packageProvider.getValidTargetPredicate(),
getEventHandler(ruleContext),
settings,
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/BUILD b/src/main/java/com/google/devtools/build/lib/runtime/commands/BUILD
index bfbe0fe..aa2e7d3 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/BUILD
@@ -84,6 +84,7 @@
"//src/main/java/com/google/devtools/build/lib/runtime:blaze_command_cluster",
"//src/main/java/com/google/devtools/build/lib/runtime:blaze_command_result",
"//src/main/java/com/google/devtools/build/lib/runtime:blaze_server_startup_options",
+ "//src/main/java/com/google/devtools/build/lib/runtime:common_command_options",
"//src/main/java/com/google/devtools/build/lib/runtime:instrumentation_output",
"//src/main/java/com/google/devtools/build/lib/runtime:keep_going_option",
"//src/main/java/com/google/devtools/build/lib/runtime:loading_phase_threads_option",
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryEnvironmentBasedCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryEnvironmentBasedCommand.java
index 497a995..570bf3e 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryEnvironmentBasedCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryEnvironmentBasedCommand.java
@@ -43,6 +43,7 @@
import com.google.devtools.build.lib.runtime.BlazeCommandResult;
import com.google.devtools.build.lib.runtime.BlazeRuntime;
import com.google.devtools.build.lib.runtime.CommandEnvironment;
+import com.google.devtools.build.lib.runtime.CommonCommandOptions;
import com.google.devtools.build.lib.runtime.KeepGoingOption;
import com.google.devtools.build.lib.runtime.LoadingPhaseThreadsOption;
import com.google.devtools.build.lib.runtime.QueryRuntimeHelper;
@@ -263,6 +264,9 @@
env.getReporter().post(new LoadingPhaseStartedEvent(progressReceiver));
}
+ boolean trackIncrementalState =
+ env.getOptions().getOptions(CommonCommandOptions.class).getTrackIncrementalState();
+
return env.getRuntime()
.getQueryEnvironmentFactory()
.create(
@@ -278,6 +282,7 @@
orderedResults,
universeScope,
loadingPhaseThreads,
+ trackIncrementalState,
/* labelFilter= */ ALL_LABELS,
env.getReporter(),
settings,
diff --git a/src/test/java/com/google/devtools/build/lib/query2/engine/GraphlessQueryTest.java b/src/test/java/com/google/devtools/build/lib/query2/engine/GraphlessQueryTest.java
index 040984b..1d3f360 100644
--- a/src/test/java/com/google/devtools/build/lib/query2/engine/GraphlessQueryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/query2/engine/GraphlessQueryTest.java
@@ -115,6 +115,7 @@
boolean orderedResults,
UniverseScope universeScope,
int loadingPhaseThreads,
+ boolean trackIncrementalState,
Predicate<Label> labelFilter,
ExtendedEventHandler eventHandler,
Set<Setting> settings,
diff --git a/src/test/java/com/google/devtools/build/lib/query2/engine/TotalWeightQueryExpressionVisitorTest.java b/src/test/java/com/google/devtools/build/lib/query2/engine/TotalWeightQueryExpressionVisitorTest.java
index 7568348..4efdb7b 100644
--- a/src/test/java/com/google/devtools/build/lib/query2/engine/TotalWeightQueryExpressionVisitorTest.java
+++ b/src/test/java/com/google/devtools/build/lib/query2/engine/TotalWeightQueryExpressionVisitorTest.java
@@ -86,6 +86,7 @@
return new SkyQueryEnvironment(
/* keepGoing= */ false,
/* loadingPhaseThreads= */ 1,
+ /* trackIncrementalState= */ true,
/* eventHandler= */ NullEventHandler.INSTANCE,
/* settings= */ ImmutableSet.of(),
/* extraFunctions= */ ImmutableList.of(),
diff --git a/src/test/java/com/google/devtools/build/lib/query2/testutil/SkyframeQueryHelper.java b/src/test/java/com/google/devtools/build/lib/query2/testutil/SkyframeQueryHelper.java
index 5db6fda..4b03d9a 100644
--- a/src/test/java/com/google/devtools/build/lib/query2/testutil/SkyframeQueryHelper.java
+++ b/src/test/java/com/google/devtools/build/lib/query2/testutil/SkyframeQueryHelper.java
@@ -237,6 +237,7 @@
orderedResults,
universeScope,
/* loadingPhaseThreads= */ 1,
+ /* trackIncrementalState= */ true,
/* labelFilter= */ ALL_LABELS,
getReporter(),
this.settings,