Skip to content

feat: add flag controlling the default for use_execroot_entry_point#2837

Open
acozzette wants to merge 4 commits into
aspect-build:mainfrom
acozzette:use-execroot-entry-point
Open

feat: add flag controlling the default for use_execroot_entry_point#2837
acozzette wants to merge 4 commits into
aspect-build:mainfrom
acozzette:use-execroot-entry-point

Conversation

@acozzette
Copy link
Copy Markdown
Contributor

@acozzette acozzette commented May 12, 2026

This change introduces the flag --@aspect_rules_js//js:use_execroot_entry_point, which controls the default behavior of the use_execroot_entry_point option on js_run_binary and js_run_devserver.

We could like to recommend moving away from enabling use_execroot_entry_point, and this flag provides an easy way to do that at a global level, while still making it possible to override that on specific targets if necessary.

I also added CI test runs with --@aspect_rules_js//js:use_execroot_entry_point=False so that we have good test coverage of both modes. This required explicitly setting use_execroot_entry_point on some targets that only work with one more or the other.


Changes are visible to end-users: yes

  • Searched for relevant documentation and updated as needed: yes
  • Breaking change (forces users to change their own code or config): no
  • Suggested release notes appear below: yes

There is now a --@aspect_rules_js//js:use_execroot_entry_point flag which can be set to True or False to determine the default use_execroot_entry_point behavior.

Test plan

  • Covered by existing test cases
  • New test cases added

@aspect-workflows
Copy link
Copy Markdown

aspect-workflows Bot commented May 12, 2026

Bazel 7 (Test)

262 test targets passed

Targets
//:node_modules_build_test [k8-fastbuild]                                                              46ms
//:npm_link_targets_test [k8-fastbuild]                                                                111ms
//js/private/coverage:coverage_checked_test [k8-fastbuild]                                             42ms
//js/private/test/data:chdir-source-data [k8-fastbuild]                                                97ms
//js/private/test/data:from-data [k8-fastbuild]                                                        79ms
//js/private/test/data:from-filegroup-srcs [k8-fastbuild]                                              124ms
//js/private/test/data:from-js_library-srcs [k8-fastbuild]                                             74ms
//js/private/test/data:from-js_run_binary-genrule [k8-fastbuild]                                       83ms
//js/private/test/data:from-js_run_binary-js_library-srcs [k8-fastbuild]                               78ms
//js/private/test/fixed_args:fixed_args_test [k8-fastbuild]                                            101ms
//js/private/test/image/non_ascii:assert_custom_layer_groups_test_package_store_1p_test [k8-fastbuild] 39ms
//js/private/test/image/non_ascii:assert_custom_layer_groups_test_package_store_3p_test [k8-fastbuild] 53ms
//js/private/test/image:assert_custom_layers_nomatch_test_app_test [k8-fastbuild]                      50ms
//js/private/test/image:assert_custom_layers_nomatch_test_package_store_1p_test [k8-fastbuild]         43ms
//js/private/test/image:assert_custom_owner_test_node_test [k8-fastbuild]                              43ms
//js/private/test/image:assert_custom_owner_test_package_store_3p_test [k8-fastbuild]                  52ms
//js/private/test/image:assert_default_test_node_test [k8-fastbuild]                                   48ms
//js/private/test/image:assert_regex_edge_cases_test_app_test [k8-fastbuild]                           49ms
//js/private/test/image:assert_regex_edge_cases_test_node_test [k8-fastbuild]                          74ms
//js/private/test/image:checksum_test_test_test [k8-fastbuild]                                         50ms
//js/private/test/js_binary_sh:BAZEL_BUILD_FILE_PATH_test [k8-fastbuild]                               69ms
//js/private/test/js_binary_sh:BAZEL_TARGET_NAME_test [k8-fastbuild]                                   89ms
//js/private/test/js_binary_sh:BAZEL_TARGET_test [k8-fastbuild]                                        104ms
//js/private/test/js_binary_sh:JS_BINARY__BINDIR_test [k8-fastbuild]                                   85ms
//js/private/test/js_binary_sh:JS_BINARY__PACKAGE_test [k8-fastbuild]                                  123ms
//js/private/test/js_binary_sh:env_json_encode_launcher_escaped [k8-fastbuild]                         174ms
//js/private/test/js_binary_sh:env_json_str_launcher_escaped [k8-fastbuild]                            64ms
//js/private/test/js_binary_sh:env_json_str_value [k8-fastbuild]                                       65ms
//js/private/test/js_binary_sh:regexy-args-1 [k8-fastbuild]                                            100ms
//js/private/test/js_binary_sh:regexy-args-2 [k8-fastbuild]                                            100ms
//js/private/test/js_run_binary:linux_target_platform_test [k8-fastbuild]                              93ms
//js/private/test/js_run_binary:macos_target_platform_test [k8-fastbuild]                              72ms
//js/private/test/js_run_binary:windows_target_platform_test [k8-fastbuild]                            114ms
//js/private/test/js_run_devserver:js_run_devserver_test [k8-fastbuild]                                105ms
//js/private/test/no_copy_to_bin:no_copy_to_bin_test [k8-fastbuild]                                    154ms
//js/private/test/node-patches:escape_node22_test [k8-fastbuild]                                       109ms
//js/private/test/node-patches:escape_node24_test [k8-fastbuild]                                       156ms
//js/private/test/node-patches:lstat_node20_cjs_test [k8-fastbuild]                                    158ms
//js/private/test/node-patches:lstat_node20_test [k8-fastbuild]                                        182ms
//js/private/test/node-patches:lstat_node22_test [k8-fastbuild]                                        180ms
//js/private/test/node-patches:lstat_node24_cjs_test [k8-fastbuild]                                    171ms
//js/private/test/node-patches:lstat_nodejs_cjs_test [k8-fastbuild]                                    146ms
//js/private/test/node-patches:lstat_nodejs_test [k8-fastbuild]                                        177ms
//js/private/test/node-patches:opendir_node22_test [k8-fastbuild]                                      209ms
//js/private/test/node-patches:opendir_node24_test [k8-fastbuild]                                      267ms
//js/private/test/node-patches:opendir_nodejs_test [k8-fastbuild]                                      160ms
//js/private/test/node-patches:readdir_node20_test [k8-fastbuild]                                      192ms
//js/private/test/node-patches:readdir_node24_test [k8-fastbuild]                                      260ms
//js/private/test/node-patches:readlink_node20_test [k8-fastbuild]                                     152ms
//js/private/test/node-patches:readlink_node22_cjs_test [k8-fastbuild]                                 145ms
//js/private/test/node-patches:readlink_node22_test [k8-fastbuild]                                     158ms
//js/private/test/node-patches:readlink_node24_test [k8-fastbuild]                                     254ms
//js/private/test/node-patches:readlink_nodejs_cjs_test [k8-fastbuild]                                 136ms
//js/private/test/node-patches:realpath_node20_test [k8-fastbuild]                                     230ms
//js/private/test/node-patches:realpath_node22_cjs_test [k8-fastbuild]                                 141ms
//js/private/test/node-patches:realpath_node24_cjs_test [k8-fastbuild]                                 182ms
//js/private/test/node-patches:realpath_node24_test [k8-fastbuild]                                     212ms
//js/private/test/node-patches:realpath_nodejs_test [k8-fastbuild]                                     174ms
//js/private/test/proto:proto_args_test [k8-fastbuild]                                                 27ms
//js/private/test:data_in_runfiles_test [k8-fastbuild]                                                 70ms
//js/private/test:main_toolchain_20 [k8-fastbuild]                                                     259ms
//js/private/test:run_environment_info_tests_binary_no_env_test [k8-fastbuild]                         69ms
//js/private/test:srcs_not_in_runfiles_test [k8-fastbuild]                                             76ms
//js/private/test:transitive_type_deps_test [k8-fastbuild]                                             85ms
//js/private/watch:watch_checked_0_test [k8-fastbuild]                                                 55ms
//js/private/worker:worker_checked_test [k8-fastbuild]                                                 55ms
//npm/private/test/npm_package:test_pkg_2 [k8-fastbuild]                                               64ms
//npm/private/test/npm_package:test_pkg_4 [k8-fastbuild]                                               65ms
//npm/private/test/subs:require_non-importers_test [k8-fastbuild]                                      137ms
//npm/private/test:npm_auth_tests_test_0 [k8-fastbuild]                                                45ms
//npm/private/test:npm_auth_tests_test_2 [k8-fastbuild]                                                64ms
//npm/private/test:npm_auth_tests_test_5 [k8-fastbuild]                                                72ms
//npm/private/test:npm_auth_tests_test_6 [k8-fastbuild]                                                82ms
//npm/private/test:pkg_versions_test [k8-fastbuild]                                                    58ms
//npm/private/test:test_generated_pkg_json___rollup-binary__entry_point_tagged_manual [k8-fastbuild]   40ms
//npm/private/test:test_generated_pkg_json___rollup-target__js_binary_tagged_manual [k8-fastbuild]     72ms
//npm/private/test:test_generated_pkg_json_only_expected_methods [k8-fastbuild]                        48ms
//npm/private/test:test_npmrc_test_0 [k8-fastbuild]                                                    58ms
//npm/private/test:test_npmrc_test_3 [k8-fastbuild]                                                    33ms
//npm/private/test:test_npmrc_test_4 [k8-fastbuild]                                                    102ms
//npm/private/test:test_npmrc_test_5 [k8-fastbuild]                                                    108ms
//npm/private/test:test_npmrc_test_7 [k8-fastbuild]                                                    162ms
//npm/private/test:test_parse_pnpm_lock_test_0 [k8-fastbuild]                                          62ms
//npm/private/test:test_parse_pnpm_lock_test_1 [k8-fastbuild]                                          82ms
//npm/private/test:test_parse_pnpm_lock_test_2 [k8-fastbuild]                                          67ms
//npm/private/test:test_pnpm_test_1 [k8-fastbuild]                                                     69ms
//npm/private/test:test_pnpm_test_10 [k8-fastbuild]                                                    68ms
//npm/private/test:test_pnpm_test_11 [k8-fastbuild]                                                    61ms
//npm/private/test:test_pnpm_test_4 [k8-fastbuild]                                                     73ms
//npm/private/test:test_pnpm_test_6 [k8-fastbuild]                                                     29ms
//npm/private/test:test_pnpm_test_7 [k8-fastbuild]                                                     72ms
//npm/private/test:test_translate_lock_test_0 [k8-fastbuild]                                           48ms
//npm/private/test:test_translate_lock_test_2 [k8-fastbuild]                                           89ms
//npm/private/test:test_translate_lock_test_4 [k8-fastbuild]                                           46ms
//npm/private/test:test_utils_test_0 [k8-fastbuild]                                                    90ms
//npm/private/test:test_utils_test_3 [k8-fastbuild]                                                    44ms
//npm/private/test:test_utils_test_4 [k8-fastbuild]                                                    69ms
//npm/private/test:write_npm_translate_lock_1_test [k8-fastbuild]                                      82ms
//npm/private/test:write_npm_translate_lock_3_test [k8-fastbuild]                                      92ms
//npm/private/test:write_npm_translate_lock_7_test [k8-fastbuild]                                      126ms
+ 162 other targets

Bazel 8 (Test)

Buildkite build #12718 is running...


Bazel 9 (no execroot entry point) (Test)

Buildkite build #12718 is running...


Bazel 9 (Test)

Buildkite build #12718 is running...


Bazel 7 (Test)

e2e/bzlmod

7 test targets passed

Targets
//:check_styles [k8-fastbuild]                                                                         91ms
//:jasmine_test [k8-fastbuild]                                                                         121ms
//:node_modules_test [k8-fastbuild]                                                                    22ms
//:other_module_binary_test [k8-fastbuild]                                                             60ms
//:other_module_linked_packages [k8-fastbuild]                                                         29ms
//:other_module_run_binary_test [k8-fastbuild]                                                         57ms
//:test [k8-fastbuild]                                                                                 77ms

Bazel 8 (Test)

e2e/bzlmod

All tests were cache hits

7 tests (100.0%) were fully cached saving 642ms.


Bazel 9 (no execroot entry point) (Test)

e2e/bzlmod

All tests were cache hits

7 tests (100.0%) were fully cached saving 596ms.


Bazel 9 (Test)

e2e/bzlmod

All tests were cache hits

7 tests (100.0%) were fully cached saving 596ms.


Bazel 7 (Test)

e2e/git_dep_metadata

Buildkite build #12718 is running...


Bazel 8 (Test)

e2e/git_dep_metadata

All tests were cache hits

1 test (100.0%) was fully cached saving 26ms.


Bazel 9 (no execroot entry point) (Test)

e2e/git_dep_metadata

All tests were cache hits

1 test (100.0%) was fully cached saving 30ms.


Bazel 9 (Test)

e2e/git_dep_metadata

All tests were cache hits

1 test (100.0%) was fully cached saving 30ms.


Bazel 7 (Test)

e2e/gyp_no_install_script

2 test targets passed

Targets
//:test [k8-fastbuild]                                                                                 53ms
//:write_npm_translate_lock_bzlmod_test [k8-fastbuild]                                                 56ms

Bazel 8 (Test)

e2e/gyp_no_install_script

All tests were cache hits

1 test (100.0%) was fully cached saving 50ms.


Bazel 9 (no execroot entry point) (Test)

e2e/gyp_no_install_script

All tests were cache hits

1 test (100.0%) was fully cached saving 46ms.


Bazel 9 (Test)

e2e/gyp_no_install_script

All tests were cache hits

1 test (100.0%) was fully cached saving 46ms.


Bazel 7 (Test)

e2e/js_binary_workspace

4 test targets passed

Targets
//:js_run_binary_chdir_test [k8-fastbuild]                                                             61ms
//:test [k8-fastbuild]                                                                                 33ms
@@workspace~//:js_binary_chdir_test [k8-fastbuild]                                                     50ms
@@workspace~//:js_test_chdir_test [k8-fastbuild]                                                       97ms

Bazel 8 (Test)

e2e/js_binary_workspace

All tests were cache hits

4 tests (100.0%) were fully cached saving 226ms.


Bazel 9 (no execroot entry point) (Test)

e2e/js_binary_workspace

All tests were cache hits

4 tests (100.0%) were fully cached saving 252ms.


Bazel 9 (Test)

e2e/js_binary_workspace

All tests were cache hits

4 tests (100.0%) were fully cached saving 238ms.


Bazel 8 (Test)

e2e/js_image_oci

All tests were cache hits

1 test (100.0%) was fully cached saving 4s.


Bazel 9 (no execroot entry point) (Test)

e2e/js_image_oci

All tests were cache hits

1 test (100.0%) was fully cached saving 4s.


Bazel 9 (Test)

e2e/js_image_oci

All tests were cache hits

1 test (100.0%) was fully cached saving 4s.


Bazel 7 (Test)

e2e/nextjs

3 test targets passed

Targets
//v15/cjs:test [k8-fastbuild]                                                                          33ms
//v15/esm:test [k8-fastbuild]                                                                          25ms
//v15/mjs:test [k8-fastbuild]                                                                          62ms

Bazel 8 (Test)

e2e/nextjs

All tests were cache hits

3 tests (100.0%) were fully cached saving 94ms.


Bazel 9 (no execroot entry point) (Test)

e2e/nextjs

All tests were cache hits

3 tests (100.0%) were fully cached saving 112ms.


Bazel 9 (Test)

e2e/nextjs

All tests were cache hits

3 tests (100.0%) were fully cached saving 112ms.


Bazel 7 (Test)

e2e/npm_link_package

4 test targets passed

Targets
//cjs/src:test [k8-fastbuild]                                                                          157ms
//cjs:package_store_targets_test [k8-fastbuild]                                                        32ms
//esm/src:test [k8-fastbuild]                                                                          167ms
//esm:package_store_targets_test [k8-fastbuild]                                                        30ms

Bazel 8 (Test)

e2e/npm_link_package

All tests were cache hits

4 tests (100.0%) were fully cached saving 363ms.


Bazel 9 (no execroot entry point) (Test)

e2e/npm_link_package

All tests were cache hits

4 tests (100.0%) were fully cached saving 415ms.


Bazel 9 (Test)

e2e/npm_link_package

All tests were cache hits

4 tests (100.0%) were fully cached saving 415ms.


Bazel 7 (Test)

e2e/npm_link_package-rerooted

2 test targets passed

Targets
//root/src:test [k8-fastbuild]                                                                         122ms
//root:package_store_targets_test [k8-fastbuild]                                                       23ms

Bazel 8 (Test)

e2e/npm_link_package-rerooted

All tests were cache hits

2 tests (100.0%) were fully cached saving 139ms.


Bazel 9 (no execroot entry point) (Test)

e2e/npm_link_package-rerooted

All tests were cache hits

2 tests (100.0%) were fully cached saving 186ms.


Bazel 9 (Test)

e2e/npm_link_package-rerooted

All tests were cache hits

2 tests (100.0%) were fully cached saving 186ms.


Bazel 7 (Test)

e2e/npm_translate_lock

3 test targets passed

Targets
//:test                                                                                                40ms
//:test_dev_filtering                                                                                  149ms
//:test_prod_filtering                                                                                 148ms

Bazel 8 (Test)

e2e/npm_translate_lock

All tests were cache hits

3 tests (100.0%) were fully cached saving 287ms.


Bazel 9 (no execroot entry point) (Test)

e2e/npm_translate_lock

All tests were cache hits

3 tests (100.0%) were fully cached saving 289ms.


Bazel 9 (Test)

e2e/npm_translate_lock

All tests were cache hits

3 tests (100.0%) were fully cached saving 289ms.


Bazel 7 (Test)

e2e/npm_translate_lock_disable_hooks

Buildkite build #12718 is running...


Bazel 8 (Test)

e2e/npm_translate_lock_disable_hooks

Buildkite build #12718 is running...


Bazel 9 (no execroot entry point) (Test)

e2e/npm_translate_lock_disable_hooks

All tests were cache hits

1 test (100.0%) was fully cached saving 32ms.


Bazel 9 (Test)

e2e/npm_translate_lock_disable_hooks

Waiting for runner...


Bazel 7 (Test)

e2e/npm_translate_lock_empty

2 test targets passed

Targets
//:test [k8-fastbuild]                                                                                 18ms
//:write_npm_translate_lock_bzlmod_test [k8-fastbuild]                                                 74ms

Bazel 8 (Test)

e2e/npm_translate_lock_empty

All tests were cache hits

2 tests (100.0%) were fully cached saving 114ms.


Bazel 9 (no execroot entry point) (Test)

e2e/npm_translate_lock_empty

All tests were cache hits

2 tests (100.0%) were fully cached saving 105ms.


Bazel 9 (Test)

e2e/npm_translate_lock_empty

All tests were cache hits

2 tests (100.0%) were fully cached saving 105ms.


Bazel 7 (Test)

e2e/npm_translate_lock_exclude_package_contents

1 test target passed

Targets
//:test_sh                                                                                             21ms

Bazel 8 (Test)

e2e/npm_translate_lock_exclude_package_contents

All tests were cache hits

1 test (100.0%) was fully cached saving 21ms.


Bazel 9 (no execroot entry point) (Test)

e2e/npm_translate_lock_exclude_package_contents

All tests were cache hits

1 test (100.0%) was fully cached saving 86ms.


Bazel 9 (Test)

e2e/npm_translate_lock_exclude_package_contents

All tests were cache hits

1 test (100.0%) was fully cached saving 86ms.


Bazel 7 (Test)

e2e/npm_translate_lock_multi

2 test targets passed

Targets
//app1:test                                                                                            27ms
//app2:test                                                                                            28ms

Bazel 8 (Test)

e2e/npm_translate_lock_multi

Buildkite build #12718 is running...


Bazel 9 (no execroot entry point) (Test)

e2e/npm_translate_lock_multi

Buildkite build #12718 is running...


Bazel 9 (Test)

e2e/npm_translate_lock_multi

Buildkite build #12718 is running...


Bazel 7 (Test)

e2e/npm_translate_lock_partial_clone

Buildkite build #12718 is running...


Bazel 8 (Test)

e2e/npm_translate_lock_partial_clone

Buildkite build #12718 is running...


Bazel 9 (no execroot entry point) (Test)

e2e/npm_translate_lock_partial_clone

Buildkite build #12718 is running...


Bazel 9 (Test)

e2e/npm_translate_lock_partial_clone

Buildkite build #12718 is running...


Bazel 7 (Test)

e2e/npm_translate_lock_replace_packages

4 test targets passed

Targets
//:node_modules_test [k8-fastbuild]                                                                    18ms
//:test [k8-fastbuild]                                                                                 93ms
//:utils_test [k8-fastbuild]                                                                           62ms
//:write_npm_translate_lock_bzlmod_test [k8-fastbuild]                                                 50ms

Bazel 8 (Test)

e2e/npm_translate_lock_replace_packages

All tests were cache hits

4 tests (100.0%) were fully cached saving 249ms.


Bazel 9 (no execroot entry point) (Test)

e2e/npm_translate_lock_replace_packages

All tests were cache hits

4 tests (100.0%) were fully cached saving 320ms.


Bazel 9 (Test)

e2e/npm_translate_lock_replace_packages

All tests were cache hits

4 tests (100.0%) were fully cached saving 320ms.


Bazel 7 (Test)

e2e/npm_translate_lock_subdir_patch

Buildkite build #12718 is running...


Bazel 8 (Test)

e2e/npm_translate_lock_subdir_patch

Buildkite build #12718 is running...


Bazel 9 (no execroot entry point) (Test)

e2e/npm_translate_lock_subdir_patch

Buildkite build #12718 is running...


Bazel 9 (Test)

e2e/npm_translate_lock_subdir_patch

Buildkite build #12718 is running...


Bazel 7 (Test)

e2e/npm_translate_package_lock

1 test target passed

Targets
//:test                                                                                                24ms

Bazel 8 (Test)

e2e/npm_translate_package_lock

Waiting for runner...


Bazel 9 (no execroot entry point) (Test)

e2e/npm_translate_package_lock

Buildkite build #12718 is running...


Bazel 9 (Test)

e2e/npm_translate_package_lock

Buildkite build #12718 is running...


Bazel 7 (Test)

e2e/npm_translate_yarn_lock

Buildkite build #12718 is running...


Bazel 8 (Test)

e2e/npm_translate_yarn_lock

Waiting for runner...


Bazel 9 (no execroot entry point) (Test)

e2e/npm_translate_yarn_lock

Buildkite build #12718 is running...


Bazel 9 (Test)

e2e/npm_translate_yarn_lock

Waiting for runner...


Bazel 7 (Test)

e2e/output_paths

Buildkite build #12718 is running...


Bazel 8 (Test)

e2e/output_paths

Buildkite build #12718 is running...


Bazel 9 (no execroot entry point) (Test)

e2e/output_paths

Waiting for runner...


Bazel 9 (Test)

e2e/output_paths

Waiting for runner...


Bazel 7 (Test)

e2e/patch_from_repo

Waiting for runner...


Bazel 7 (Test)

e2e/pnpm_lockfiles

59 test targets passed

Targets
//cases/docusaurus-direct-peer-v9:docusaurus_direct_with_peers [k8-fastbuild]                          31ms
//cases/isaacs-cliui-v90:isaacs_cliui [k8-fastbuild]                                                   35ms
//cases/multi-document-v11:multi_document_v11 [k8-fastbuild]                                           53ms
//cases/nested-peer-v9:nested_peers_targets [k8-fastbuild]                                             38ms
//cases/override-with-alias-url-v9:override-with-alias-url-v9 [k8-fastbuild]                           46ms
//cases/versionless-patch-v9:versionless_patch_targets [k8-fastbuild]                                  44ms
//cases/versionless-patch-v9:versionless_patch_test [k8-fastbuild]                                     176ms
//cases/workspace-peer-v9:optional_peers_targets [k8-fastbuild]                                        48ms
//v101:aliases-test [k8-fastbuild]                                                                     128ms
//v101:patch-test [k8-fastbuild]                                                                       99ms
//v101:repos_0_test [k8-fastbuild]                                                                     115ms
//v101:repos_10_test [k8-fastbuild]                                                                    106ms
//v101:repos_11_test [k8-fastbuild]                                                                    82ms
//v101:repos_12_test [k8-fastbuild]                                                                    71ms
//v101:repos_13_test [k8-fastbuild]                                                                    64ms
//v101:repos_1_test [k8-fastbuild]                                                                     80ms
//v101:repos_2_test [k8-fastbuild]                                                                     75ms
//v101:repos_3_test [k8-fastbuild]                                                                     64ms
//v101:repos_4_test [k8-fastbuild]                                                                     94ms
//v101:repos_5_test [k8-fastbuild]                                                                     72ms
//v101:repos_6_test [k8-fastbuild]                                                                     86ms
//v101:repos_7_test [k8-fastbuild]                                                                     63ms
//v101:repos_8_test [k8-fastbuild]                                                                     94ms
//v101:repos_9_test [k8-fastbuild]                                                                     71ms
//v101:targets [k8-fastbuild]                                                                          27ms
//v110:aliases-test [k8-fastbuild]                                                                     172ms
//v110:patch-test [k8-fastbuild]                                                                       284ms
//v110:repos_0_test [k8-fastbuild]                                                                     97ms
//v110:repos_10_test [k8-fastbuild]                                                                    82ms
//v110:repos_11_test [k8-fastbuild]                                                                    74ms
//v110:repos_12_test [k8-fastbuild]                                                                    95ms
//v110:repos_13_test [k8-fastbuild]                                                                    65ms
//v110:repos_1_test [k8-fastbuild]                                                                     91ms
//v110:repos_2_test [k8-fastbuild]                                                                     82ms
//v110:repos_3_test [k8-fastbuild]                                                                     40ms
//v110:repos_4_test [k8-fastbuild]                                                                     112ms
//v110:repos_5_test [k8-fastbuild]                                                                     37ms
//v110:repos_6_test [k8-fastbuild]                                                                     52ms
//v110:repos_7_test [k8-fastbuild]                                                                     80ms
//v110:repos_8_test [k8-fastbuild]                                                                     91ms
//v110:repos_9_test [k8-fastbuild]                                                                     93ms
//v110:targets [k8-fastbuild]                                                                          26ms
//v90:aliases-test [k8-fastbuild]                                                                      186ms
//v90:patch-test [k8-fastbuild]                                                                        117ms
//v90:repos_0_test [k8-fastbuild]                                                                      76ms
//v90:repos_10_test [k8-fastbuild]                                                                     78ms
//v90:repos_11_test [k8-fastbuild]                                                                     124ms
//v90:repos_12_test [k8-fastbuild]                                                                     47ms
//v90:repos_13_test [k8-fastbuild]                                                                     70ms
//v90:repos_1_test [k8-fastbuild]                                                                      89ms
//v90:repos_2_test [k8-fastbuild]                                                                      81ms
//v90:repos_3_test [k8-fastbuild]                                                                      77ms
//v90:repos_4_test [k8-fastbuild]                                                                      84ms
//v90:repos_5_test [k8-fastbuild]                                                                      34ms
//v90:repos_6_test [k8-fastbuild]                                                                      93ms
//v90:repos_7_test [k8-fastbuild]                                                                      91ms
//v90:repos_8_test [k8-fastbuild]                                                                      126ms
//v90:repos_9_test [k8-fastbuild]                                                                      75ms
//v90:targets [k8-fastbuild]                                                                           26ms

Bazel 8 (Test)

e2e/pnpm_lockfiles

Buildkite build #12718 is running...


Bazel 9 (no execroot entry point) (Test)

e2e/pnpm_lockfiles

All tests were cache hits

17 tests (100.0%) were fully cached saving 1s.


Bazel 9 (Test)

e2e/pnpm_lockfiles

All tests were cache hits

17 tests (100.0%) were fully cached saving 1s.


Bazel 7 (Test)

e2e/pnpm_repo_install

4 test targets passed

Targets
//:pnpm_install_test                                                                                   1s
//:pnpm_install_test_v10                                                                               1s
//:pnpm_install_test_v11                                                                               2s
//:pnpm_patch_test                                                                                     56ms

Bazel 8 (Test)

e2e/pnpm_repo_install

Waiting for runner...


Bazel 9 (no execroot entry point) (Test)

e2e/pnpm_repo_install

Buildkite build #12718 is running...


Bazel 9 (Test)

e2e/pnpm_repo_install

Buildkite build #12718 is running...


Bazel 7 (Test)

e2e/pnpm_workspace

Buildkite build #12718 is running...


Bazel 8 (Test)

e2e/pnpm_workspace

Buildkite build #12718 is running...


Bazel 9 (no execroot entry point) (Test)

e2e/pnpm_workspace

Buildkite build #12718 is running...


Bazel 9 (Test)

e2e/pnpm_workspace

Buildkite build #12718 is running...


Bazel 7 (Test)

e2e/pnpm_workspace_deps

Waiting for runner...


Bazel 8 (Test)

e2e/pnpm_workspace_deps

Waiting for runner...


Bazel 9 (no execroot entry point) (Test)

e2e/pnpm_workspace_deps

Waiting for runner...


Bazel 9 (Test)

e2e/pnpm_workspace_deps

Waiting for runner...


Bazel 7 (Test)

e2e/pnpm_workspace_rerooted

Buildkite build #12718 is running...


Bazel 8 (Test)

e2e/pnpm_workspace_rerooted

All tests were cache hits

14 tests (100.0%) were fully cached saving 1s.


Bazel 9 (no execroot entry point) (Test)

e2e/pnpm_workspace_rerooted

Buildkite build #12718 is running...


Bazel 9 (Test)

e2e/pnpm_workspace_rerooted

Buildkite build #12718 is running...


Bazel 7 (Test)

e2e/protobuf-es

Buildkite build #12718 is running...


Bazel 8 (Test)

e2e/protobuf-es

Waiting for runner...


Bazel 9 (no execroot entry point) (Test)

e2e/protobuf-es

Buildkite build #12718 is running...


Bazel 9 (Test)

e2e/protobuf-es

All tests were cache hits

3 tests (100.0%) were fully cached saving 752ms.


Bazel 7 (Test)

e2e/protobuf-google

Buildkite build #12718 is running...


Bazel 8 (Test)

e2e/protobuf-google

Buildkite build #12718 is running...


Bazel 9 (no execroot entry point) (Test)

e2e/protobuf-google

All tests were cache hits

2 tests (100.0%) were fully cached saving 245ms.


Bazel 9 (Test)

e2e/protobuf-google

Waiting for runner...


Bazel 7 (Test)

e2e/repo_mapping

Waiting for runner...


Bazel 8 (Test)

e2e/repo_mapping

All tests were cache hits

3 tests (100.0%) were fully cached saving 154ms.


Bazel 9 (Test)

e2e/repo_mapping

All tests were cache hits

3 tests (100.0%) were fully cached saving 308ms.


Bazel 7 (Test)

e2e/vendored_node

Buildkite build #12718 is running...


Bazel 8 (Test)

e2e/vendored_node

Waiting for runner...


Bazel 9 (no execroot entry point) (Test)

e2e/vendored_node

Buildkite build #12718 is running...


Bazel 9 (Test)

e2e/vendored_node

Buildkite build #12718 is running...


Bazel 7 (Test)

e2e/vendored_tarfile

Waiting for runner...


Bazel 8 (Test)

e2e/vendored_tarfile

All tests were cache hits

1 test (100.0%) was fully cached saving 62ms.


Bazel 9 (no execroot entry point) (Test)

e2e/vendored_tarfile

Waiting for runner...


Bazel 9 (Test)

e2e/vendored_tarfile

Waiting for runner...


Bazel 7 (Test)

e2e/verify_patches

Waiting for runner...


Bazel 8 (Test)

e2e/verify_patches

Waiting for runner...


Bazel 9 (no execroot entry point) (Test)

e2e/verify_patches

Waiting for runner...


Bazel 9 (Test)

e2e/verify_patches

Waiting for runner...


Bazel 7 (Test)

examples

83 test targets passed

Targets
//:linked_packages_build_test [k8-fastbuild]                                                           29ms
//coverage:coverage [k8-fastbuild]                                                                     127ms
//genrule:test_acorn [k8-fastbuild]                                                                    57ms
//genrule:test_require_acorn [k8-fastbuild]                                                            68ms
//js_binary:aspect_bin_a_test [k8-fastbuild]                                                           132ms
//js_binary:case7_test [k8-fastbuild]                                                                  210ms
//js_binary:npm_version_test [k8-fastbuild]                                                            400ms
//js_binary:test13-1_cjs [k8-fastbuild]                                                                62ms
//js_binary:test13-1_mjs [k8-fastbuild]                                                                49ms
//js_binary:test13-2_cjs [k8-fastbuild]                                                                40ms
//js_binary:test13-2_mjs [k8-fastbuild]                                                                37ms
//js_binary:test4-b_cjs [k8-fastbuild]                                                                 40ms
//js_binary:test4-b_mjs [k8-fastbuild]                                                                 42ms
//js_binary:test4-cjs-a [k8-fastbuild]                                                                 40ms
//js_binary:test4-mjs-a [k8-fastbuild]                                                                 41ms
//js_binary:test5_cjs [k8-fastbuild]                                                                   82ms
//js_binary:test5_mjs [k8-fastbuild]                                                                   56ms
//js_binary:test6 [k8-fastbuild]                                                                       54ms
//js_binary:test6_alt [k8-fastbuild]                                                                   48ms
//js_binary:test8 [k8-fastbuild]                                                                       74ms
//js_binary:test_cjs [k8-fastbuild]                                                                    162ms
//js_binary:test_exitcode [k8-fastbuild]                                                               81ms
//js_binary:test_js_binary_under_custom_rule [k8-fastbuild]                                            54ms
//js_binary:test_js_binary_under_custom_rule_local [k8-fastbuild]                                      71ms
//js_binary:test_js_binary_under_genrule_cjs [k8-fastbuild]                                            49ms
//js_binary:test_js_binary_under_genrule_mjs [k8-fastbuild]                                            72ms
//js_binary:test_js_binary_under_js_run_binary_cjs [k8-fastbuild]                                      65ms
//js_binary:test_js_binary_under_js_run_binary_local_cjs [k8-fastbuild]                                43ms
//js_binary:test_js_binary_under_js_run_binary_local_mjs [k8-fastbuild]                                53ms
//js_binary:test_js_binary_under_js_run_binary_mjs [k8-fastbuild]                                      69ms
//js_binary:test_js_binary_under_js_run_binary_no_copy_data_to_bin [k8-fastbuild]                      66ms
//js_binary:test_mjs [k8-fastbuild]                                                                    111ms
//js_binary:test_stderr [k8-fastbuild]                                                                 59ms
//js_binary:test_stdout [k8-fastbuild]                                                                 83ms
//js_lib_pkg/b:test_each_target [k8-fastbuild]                                                         111ms
//js_lib_pkg/b:test_parent_target [k8-fastbuild]                                                       112ms
//js_library/two:two_test [k8-fastbuild]                                                               100ms
//linked_consumer:direct [k8-fastbuild]                                                                118ms
//linked_consumer:pkg [k8-fastbuild]                                                                   96ms
//linked_consumer:sources_test [k8-fastbuild]                                                          60ms
//linked_consumer:types_test [k8-fastbuild]                                                            66ms
//linked_empty_node_modules:test [k8-fastbuild]                                                        36ms
//macro:test_all [k8-fastbuild]                                                                        492ms
//macro:test_cjs [k8-fastbuild]                                                                        572ms
//macro:test_esm [k8-fastbuild]                                                                        441ms
//macro:test_js [k8-fastbuild]                                                                         501ms
//nextjs:next_build_test [k8-fastbuild]                                                                29ms
//nextjs:write_next_links_defs_test [k8-fastbuild]                                                     81ms
//npm_deps/patches:patches_update_test [k8-fastbuild]                                                  71ms
//npm_deps:circular_deps_build_test [k8-fastbuild]                                                     37ms
//npm_deps:rollup_version_test [k8-fastbuild]                                                          265ms
//npm_deps:test1 [k8-fastbuild]                                                                        46ms
//npm_deps:test10_cjs [k8-fastbuild]                                                                   156ms
//npm_deps:test10_mjs [k8-fastbuild]                                                                   169ms
//npm_deps:test11_cjs [k8-fastbuild]                                                                   146ms
//npm_deps:test11_mjs [k8-fastbuild]                                                                   166ms
//npm_deps:test3 [k8-fastbuild]                                                                        101ms
//npm_deps:test4 [k8-fastbuild]                                                                        104ms
//npm_deps:test5 [k8-fastbuild]                                                                        65ms
//npm_deps:test5_alt [k8-fastbuild]                                                                    55ms
//npm_deps:test6 [k8-fastbuild]                                                                        154ms
//npm_deps:test7_a [k8-fastbuild]                                                                      156ms
//npm_deps:test7_b_cjs [k8-fastbuild]                                                                  174ms
//npm_deps:test7_b_mjs [k8-fastbuild]                                                                  159ms
//npm_deps:test8 [k8-fastbuild]                                                                        96ms
//npm_deps:test9_cjs [k8-fastbuild]                                                                    233ms
//npm_deps:test9_mjs [k8-fastbuild]                                                                    187ms
//npm_deps:test_peer [k8-fastbuild]                                                                    132ms
//npm_deps:test_uvu_version [k8-fastbuild]                                                             202ms
//package_json_module:test [k8-fastbuild]                                                              375ms
//runfiles:module_name_runfiles [k8-fastbuild]                                                         112ms
//runfiles:outer_runfiles [k8-fastbuild]                                                               213ms
//runfiles:run_outer_binary_asserts__direct_srcs [k8-fastbuild]                                        95ms
//runfiles:run_outer_binary_asserts__transitive_data [k8-fastbuild]                                    94ms
//runfiles:run_test_binary_asserts__direct_srcs [k8-fastbuild]                                         93ms
//runfiles:run_test_binary_asserts__transitive_data [k8-fastbuild]                                     121ms
//runfiles:runfiles [k8-fastbuild]                                                                     126ms
//stack_traces:stack_traces [k8-fastbuild]                                                             187ms
//stamped_package_json:stamp_test [k8-fastbuild]                                                       73ms
//vite3:build_test [k8-fastbuild]                                                                      67ms
//vite6:build_test [k8-fastbuild]                                                                      37ms
//webpack_cli:test [k8-fastbuild]                                                                      447ms
//worker:test_pi [k8-fastbuild]                                                                        96ms

Bazel 8 (Test)

examples

All tests were cache hits

81 tests (100.0%) were fully cached saving 11s.


Bazel 9 (no execroot entry point) (Test)

examples

All tests were cache hits

81 tests (100.0%) were fully cached saving 12s.


Bazel 9 (Test)

examples

All tests were cache hits

81 tests (100.0%) were fully cached saving 12s.


Buildifier      Format

@acozzette acozzette force-pushed the use-execroot-entry-point branch 2 times, most recently from 62b523a to 810e38d Compare May 13, 2026 22:40
@acozzette acozzette marked this pull request as ready for review May 13, 2026 22:58
@acozzette acozzette marked this pull request as draft May 13, 2026 22:59
@acozzette acozzette force-pushed the use-execroot-entry-point branch 2 times, most recently from 20bcf8b to b0bcf10 Compare May 15, 2026 19:20
This change introduces the flag
`--@aspect_rules_js//js:use_execroot_entry_point`, which controls the default
behavior of the `use_execroot_entry_point` option on `js_run_binary` and
`js_run_devserver`.

We could like to recommend moving away from enabling
`use_execroot_entry_point`, and this flag provides an easy way to do that at a
global level, while still making it possible to override that on specific
targets if necessary.

I also added CI test runs with
`--@aspect_rules_js//js:use_execroot_entry_point=False` so that we have good
test coverage of both modes. This required explicitly setting
`use_execroot_entry_point` on some targets that only work with one more or the
other.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@acozzette acozzette force-pushed the use-execroot-entry-point branch from b0bcf10 to 50ba91b Compare May 15, 2026 19:20
@acozzette acozzette marked this pull request as ready for review May 15, 2026 20:55
@acozzette acozzette requested a review from jbedard May 15, 2026 20:55
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e6ed12806e

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread contrib/nextjs/defs.bzl Outdated
"no-remote-exec",
],
tool = ":jasmine",
use_execroot_entry_point = True,
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this an example where the tool should be updated to support False instead? Maybe just leave a TODO here for now and come back to it later?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants