From 64e7af4e43f0f5a308fea549faa9389a641b485f Mon Sep 17 00:00:00 2001 From: Greg Magolan Date: Thu, 20 Jun 2019 00:05:19 -0700 Subject: [PATCH] build(bazel): add build --incompatible_list_based_execution_strategy_selection=false flag (#31325) This option is changed to true in Bazel 0.27 and exposes a possible regression in Bazel 0.27.0. Error observed is in npm_package target `//packages/common/locales:package`: ``` ERROR: /home/circleci/ng/packages/common/locales/BUILD.bazel:13:1: Assembling npm package packages/common/locales/package failed: No usable spawn strategy found for spawn with mnemonic SkylarkAction. Your --spawn_strategyor --strategy flags are probably too strict. Visit https://github.com/bazelbuild/bazel/issues/7480 for migration advises ``` Suspect is https://github.com/bazelbuild/rules_nodejs/blob/master/internal/npm_package/npm_package.bzl#L75-L82: ``` execution_requirements = { # Never schedule this action remotely because it's not computationally expensive. # It just copies files into a directory; it's not worth copying inputs and outputs to a remote worker. # Also don't run it in a sandbox, because it resolves an absolute path to the bazel-out directory # allowing the .pack and .publish runnables to work with no symlink_prefix # See https://github.com/bazelbuild/rules_nodejs/issues/187 "local": "1", }, ``` PR Close #31325 --- .bazelrc | 26 +++++++++++++++++++++++--- integration/bazel/.bazelrc | 9 +++++++++ 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/.bazelrc b/.bazelrc index 3fb4982f94..d7e732067b 100644 --- a/.bazelrc +++ b/.bazelrc @@ -152,10 +152,30 @@ build:remote --bes_results_url="https://source.cloud.google.com/results/invocati # This allows us to avoid installing a second copy of node_modules common --experimental_allow_incremental_repository_updates -# This option is changed to true in Bazel 0.27 but exposes a known worker mode bug: -# https://github.com/bazelbuild/rules_typescript/issues/449 -# While we are fixing that issue, we need to keep this breaking change disabled +# This option is changed to true in Bazel 0.27 and exposes a possible +# regression in Bazel 0.27.0. +# Error observed is in npm_package target `//packages/common/locales:package`: +# ``` +# ERROR: /home/circleci/ng/packages/common/locales/BUILD.bazel:13:1: Assembling +# npm package packages/common/locales/package failed: No usable spawn strategy found +# for spawn with mnemonic SkylarkAction. Your --spawn_strategyor --strategy flags +# are probably too strict. Visit https://github.com/bazelbuild/bazel/issues/7480 for +# migration advises +# ``` +# Suspect is https://github.com/bazelbuild/rules_nodejs/blob/master/internal/npm_package/npm_package.bzl#L75-L82: +# ``` +# execution_requirements = { +# # Never schedule this action remotely because it's not computationally expensive. +# # It just copies files into a directory; it's not worth copying inputs and outputs to a remote worker. +# # Also don't run it in a sandbox, because it resolves an absolute path to the bazel-out directory +# # allowing the .pack and .publish runnables to work with no symlink_prefix +# # See https://github.com/bazelbuild/rules_nodejs/issues/187 +# "local": "1", +# }, +# ``` build --incompatible_list_based_execution_strategy_selection=false +test --incompatible_list_based_execution_strategy_selection=false +run --incompatible_list_based_execution_strategy_selection=false #################################################### # User bazel configuration diff --git a/integration/bazel/.bazelrc b/integration/bazel/.bazelrc index 1e2c660e9c..efb76512d7 100644 --- a/integration/bazel/.bazelrc +++ b/integration/bazel/.bazelrc @@ -20,3 +20,12 @@ build --symlink_prefix=/ # Turn on managed directories feature in Bazel # This allows us to avoid installing a second copy of node_modules common --experimental_allow_incremental_repository_updates + +# This option is changed to true in Bazel 0.27 and exposes a possible +# regression in Bazel 0.27.0. +# See root /.bazelrc for more info. integration/bazel uses +# ng_package which depends on npm_package so this flag needs to be set +# her as well. +build --incompatible_list_based_execution_strategy_selection=false +test --incompatible_list_based_execution_strategy_selection=false +run --incompatible_list_based_execution_strategy_selection=false