Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

incompatible_disallow_ctx_resolve_tools #22249

Closed
tjgq opened this issue May 6, 2024 · 0 comments
Closed

incompatible_disallow_ctx_resolve_tools #22249

tjgq opened this issue May 6, 2024 · 0 comments
Labels
breaking-change-8.0 incompatible-change Incompatible/breaking change migration-ready Incompatible flag is ready for migration with Bazel rolling releases or Bazel@last_green

Comments

@tjgq
Copy link
Contributor

tjgq commented May 6, 2024

This flag disallows uses of the ctx.resolve_tools API, which is awkward to use and redundant with other existing APIs.

To migrate, replace this pattern:

tool_inputs, input_manifests = ctx.resolve_tools(tools = [ctx.attr._my_tool])
...
ctx.actions.run(
  inputs = tool_inputs + ...,
  input_manifests = input_manifests,
  ...
)

with one of

ctx.actions.run(executable = ctx.executable._my_tool, ...)

or

ctx.actions.run(tools = [ctx.executable._my_tool], ...)

When using ctx.actions.run_shell, the latter form is required. Otherwise, when using ctx.actions.run, prefer the former (i.e., if the tool in question is the executable for the action, there's no need to also pass it under tools).

Note that ctx.executable._my_tool refers solely to the executable file, but passing it to the executable or tools argument automatically includes its associated runfiles in the action inputs, as long as the tool is a direct dependency of the target calling ctx.actions.run/ctx.actions.run_shell. If you want to pass the tool around (e.g., in a returned provider) for other targets to use, you must obtain a FilesToRunProvider via ctx.attr._my_tool[DefaultInfo].files_to_run, and pass it around instead.

@tjgq tjgq added incompatible-change Incompatible/breaking change migration-ready Incompatible flag is ready for migration with Bazel rolling releases or Bazel@last_green labels May 6, 2024
tjgq added a commit to tjgq/rules_graalvm that referenced this issue Sep 16, 2024
tjgq added a commit to tjgq/rules_graalvm that referenced this issue Sep 16, 2024
See bazelbuild/bazel#22249 for context.

Signed-off-by: Tiago Quelhas <tjgq@google.com>
tjgq added a commit to tjgq/rules_graalvm that referenced this issue Sep 16, 2024
See bazelbuild/bazel#22249 for context.

Signed-off-by: Tiago Quelhas <tjgq@google.com>
tjgq added a commit to tjgq/rules_graalvm that referenced this issue Sep 16, 2024
See bazelbuild/bazel#22249 for context.

Signed-off-by: Tiago Quelhas <tjgq@google.com>
tjgq added a commit to tjgq/rules_graalvm that referenced this issue Sep 16, 2024
See bazelbuild/bazel#22249 for context.

Signed-off-by: Tiago Quelhas <tjgq@google.com>
sgammon pushed a commit to sgammon/rules_graalvm that referenced this issue Sep 19, 2024
See bazelbuild/bazel#22249 for context.

Signed-off-by: Tiago Quelhas <tjgq@google.com>
copybara-service bot pushed a commit that referenced this issue Sep 19, 2024
Baseline: 29f7c86

Cherry picks:

   + b637c47:
     Release 8.0.0-pre.20240909.1 (2024-09-19)
   + 5166a57:
     Release 8.0.0-pre.20240909.1 (2024-09-19)

Incompatible changes:

  - `ctx.resolve_tools` is no longer available by default, in
    preparation for complete removal. See
    #22249 for migration
    instructions. Use `--noincompatible_disallow_ctx_resolve_tools`
    to temporarily make it available again.
  - The `aquery` command now reports all potential inputs of actions
    that support input discovery, including the input headers of C++
    compilation actions and those explicitly marked as unused through
    the `unused_inputs_list` argument to `ctx.actions.run`. Set
    `--noinclude_pruned_inputs` to omit pruned inputs from `aquery`
    output when running it after action execution.
    RELNOTES[INC]: This is not a release note, but a reminder to
    remove the note for `--include_scheduling_dependencies`, which
    was introduced in the 8.x tree but won't make it into the final
    release.
  - `--zip_undeclared_test_outputs` now defaults to false, causing
    undeclared test outputs (i.e., files written to
    `$TEST_UNDECLARED_OUTPUTS_DIR` by a test) to be produced as a
    directory instead of a zip file.

Important changes:

  - A new experimental flag,
    `--experimental_build_event_output_group_mode`, allows users to
    change how a given output group's files are reported in BEP. The
    current behavior is `FILESET` which populates
    `OutputGroup.file_sets`. Users may now specify `INLINE` to
    instead report files directly in the
    `TargetComplete`/`AspectComplete` event under
    `OutputGroup.inline_files`. Users may also specify `BOTH` to
    populate `OutputGroup.file_sets` and `OutputGroup.inline_files`.
  - Bazel no longer has the android_binary, android_library,
    android_device_script_fixture and android_host_service_fixture
    rules. Use https://github.com/bazelbuild/rules_android instead.
    See #23199
  - Bazel no longer has the android_sdk_repository rule. Use
    https://github.com/bazelbuild/rules_android instead.
  - Uploading local action results to a disk or remote cache now
    occurs in the background whenever possible, potentially
    unblocking the execution of followup actions. Set
    `--noremote_cache_async` to revert to the previous behavior.
  - `--incompatible_remote_downloader_send_all_headers` is removed.
  - `--build_event_upload_max_threads` is removed.
  - `incompatible_remote_output_paths_relative_to_input_root` is
    removed.
  - The default value of
    `--experimental_remote_cache_compression_threshold` is changed to
    `100`.
  - Build without the Bytes is disabled when using HTTP cache.
  - Build without the Bytes is disabled when using HTTP cache.
  - Symlink trees are now created through direct filesystem calls by
    default, instead of delegated to a helper process. On Windows,
    this entails respecting the `--windows_enable_symlinks` flag,
    falling back to a copy when the flag is unset (the helper process
    always attempts to create symlinks, irrespective of the flag).
    Set `--noexperimental_inprocess_symlink_creation` to temporarily
    revert to the previous behavior, which will be removed in a
    future release.
  - By default, coverage artifacts will be reported inline in the
    `TargetComplete` event. To disable this behavior, pass
    `--experimental_build_event_output_group_mode=baseline.lcov=named_
    set_of_files_only`.

This release contains contributions from many people at Google, as well as Adam Azarchs, Alessandro Patti, Benjamin Peterson, Cornelius Riemenschneider, Fabian Meumertzheim, Jordan Mele, PikachuHy, Xdng Yng, xinyu.wang.
fweikert pushed a commit that referenced this issue Sep 19, 2024
Baseline: 29f7c86

Incompatible changes:

  - `ctx.resolve_tools` is no longer available by default, in
    preparation for complete removal. See
    #22249 for migration
    instructions. Use `--noincompatible_disallow_ctx_resolve_tools`
    to temporarily make it available again.
  - The `aquery` command now reports all potential inputs of actions
    that support input discovery, including the input headers of C++
    compilation actions and those explicitly marked as unused through
    the `unused_inputs_list` argument to `ctx.actions.run`. Set
    `--noinclude_pruned_inputs` to omit pruned inputs from `aquery`
    output when running it after action execution.
    RELNOTES[INC]: This is not a release note, but a reminder to
    remove the note for `--include_scheduling_dependencies`, which
    was introduced in the 8.x tree but won't make it into the final
    release.
  - `--zip_undeclared_test_outputs` now defaults to false, causing
    undeclared test outputs (i.e., files written to
    `$TEST_UNDECLARED_OUTPUTS_DIR` by a test) to be produced as a
    directory instead of a zip file.

Important changes:

  - A new experimental flag,
    `--experimental_build_event_output_group_mode`, allows users to
    change how a given output group's files are reported in BEP. The
    current behavior is `FILESET` which populates
    `OutputGroup.file_sets`. Users may now specify `INLINE` to
    instead report files directly in the
    `TargetComplete`/`AspectComplete` event under
    `OutputGroup.inline_files`. Users may also specify `BOTH` to
    populate `OutputGroup.file_sets` and `OutputGroup.inline_files`.
  - Bazel no longer has the android_binary, android_library,
    android_device_script_fixture and android_host_service_fixture
    rules. Use https://github.com/bazelbuild/rules_android instead.
    See #23199
  - Bazel no longer has the android_sdk_repository rule. Use
    https://github.com/bazelbuild/rules_android instead.
  - Uploading local action results to a disk or remote cache now
    occurs in the background whenever possible, potentially
    unblocking the execution of followup actions. Set
    `--noremote_cache_async` to revert to the previous behavior.
  - `--incompatible_remote_downloader_send_all_headers` is removed.
  - `--build_event_upload_max_threads` is removed.
  - `incompatible_remote_output_paths_relative_to_input_root` is
    removed.
  - The default value of
    `--experimental_remote_cache_compression_threshold` is changed to
    `100`.
  - Build without the Bytes is disabled when using HTTP cache.
  - Build without the Bytes is disabled when using HTTP cache.
  - Symlink trees are now created through direct filesystem calls by
    default, instead of delegated to a helper process. On Windows,
    this entails respecting the `--windows_enable_symlinks` flag,
    falling back to a copy when the flag is unset (the helper process
    always attempts to create symlinks, irrespective of the flag).
    Set `--noexperimental_inprocess_symlink_creation` to temporarily
    revert to the previous behavior, which will be removed in a
    future release.
  - By default, coverage artifacts will be reported inline in the
    `TargetComplete` event. To disable this behavior, pass
    `--experimental_build_event_output_group_mode=baseline.lcov=named_
    set_of_files_only`.

This release contains contributions from many people at Google, as well as Adam Azarchs, Alessandro Patti, Benjamin Peterson, Cornelius Riemenschneider, Fabian Meumertzheim, Jordan Mele, PikachuHy, Xdng Yng, xinyu.wang.
fweikert pushed a commit that referenced this issue Sep 19, 2024
Baseline: 29f7c86

Cherry picks:

   + b637c47:
     Release 8.0.0-pre.20240909.1 (2024-09-19)

Incompatible changes:

  - `ctx.resolve_tools` is no longer available by default, in
    preparation for complete removal. See
    #22249 for migration
    instructions. Use `--noincompatible_disallow_ctx_resolve_tools`
    to temporarily make it available again.
  - The `aquery` command now reports all potential inputs of actions
    that support input discovery, including the input headers of C++
    compilation actions and those explicitly marked as unused through
    the `unused_inputs_list` argument to `ctx.actions.run`. Set
    `--noinclude_pruned_inputs` to omit pruned inputs from `aquery`
    output when running it after action execution.
    RELNOTES[INC]: This is not a release note, but a reminder to
    remove the note for `--include_scheduling_dependencies`, which
    was introduced in the 8.x tree but won't make it into the final
    release.
  - `--zip_undeclared_test_outputs` now defaults to false, causing
    undeclared test outputs (i.e., files written to
    `$TEST_UNDECLARED_OUTPUTS_DIR` by a test) to be produced as a
    directory instead of a zip file.

Important changes:

  - A new experimental flag,
    `--experimental_build_event_output_group_mode`, allows users to
    change how a given output group's files are reported in BEP. The
    current behavior is `FILESET` which populates
    `OutputGroup.file_sets`. Users may now specify `INLINE` to
    instead report files directly in the
    `TargetComplete`/`AspectComplete` event under
    `OutputGroup.inline_files`. Users may also specify `BOTH` to
    populate `OutputGroup.file_sets` and `OutputGroup.inline_files`.
  - Bazel no longer has the android_binary, android_library,
    android_device_script_fixture and android_host_service_fixture
    rules. Use https://github.com/bazelbuild/rules_android instead.
    See #23199
  - Bazel no longer has the android_sdk_repository rule. Use
    https://github.com/bazelbuild/rules_android instead.
  - Uploading local action results to a disk or remote cache now
    occurs in the background whenever possible, potentially
    unblocking the execution of followup actions. Set
    `--noremote_cache_async` to revert to the previous behavior.
  - `--incompatible_remote_downloader_send_all_headers` is removed.
  - `--build_event_upload_max_threads` is removed.
  - `incompatible_remote_output_paths_relative_to_input_root` is
    removed.
  - The default value of
    `--experimental_remote_cache_compression_threshold` is changed to
    `100`.
  - Build without the Bytes is disabled when using HTTP cache.
  - Build without the Bytes is disabled when using HTTP cache.
  - Symlink trees are now created through direct filesystem calls by
    default, instead of delegated to a helper process. On Windows,
    this entails respecting the `--windows_enable_symlinks` flag,
    falling back to a copy when the flag is unset (the helper process
    always attempts to create symlinks, irrespective of the flag).
    Set `--noexperimental_inprocess_symlink_creation` to temporarily
    revert to the previous behavior, which will be removed in a
    future release.
  - By default, coverage artifacts will be reported inline in the
    `TargetComplete` event. To disable this behavior, pass
    `--experimental_build_event_output_group_mode=baseline.lcov=named_
    set_of_files_only`.

This release contains contributions from many people at Google, as well as Adam Azarchs, Alessandro Patti, Benjamin Peterson, Cornelius Riemenschneider, Fabian Meumertzheim, Jordan Mele, PikachuHy, Xdng Yng, xinyu.wang.
fweikert pushed a commit that referenced this issue Sep 19, 2024
Baseline: 29f7c86

Cherry picks:

   + b637c47:
     Release 8.0.0-pre.20240909.1 (2024-09-19)
   + 5166a57:
     Release 8.0.0-pre.20240909.1 (2024-09-19)

Incompatible changes:

  - `ctx.resolve_tools` is no longer available by default, in
    preparation for complete removal. See
    #22249 for migration
    instructions. Use `--noincompatible_disallow_ctx_resolve_tools`
    to temporarily make it available again.
  - The `aquery` command now reports all potential inputs of actions
    that support input discovery, including the input headers of C++
    compilation actions and those explicitly marked as unused through
    the `unused_inputs_list` argument to `ctx.actions.run`. Set
    `--noinclude_pruned_inputs` to omit pruned inputs from `aquery`
    output when running it after action execution.
    RELNOTES[INC]: This is not a release note, but a reminder to
    remove the note for `--include_scheduling_dependencies`, which
    was introduced in the 8.x tree but won't make it into the final
    release.
  - `--zip_undeclared_test_outputs` now defaults to false, causing
    undeclared test outputs (i.e., files written to
    `$TEST_UNDECLARED_OUTPUTS_DIR` by a test) to be produced as a
    directory instead of a zip file.

Important changes:

  - A new experimental flag,
    `--experimental_build_event_output_group_mode`, allows users to
    change how a given output group's files are reported in BEP. The
    current behavior is `FILESET` which populates
    `OutputGroup.file_sets`. Users may now specify `INLINE` to
    instead report files directly in the
    `TargetComplete`/`AspectComplete` event under
    `OutputGroup.inline_files`. Users may also specify `BOTH` to
    populate `OutputGroup.file_sets` and `OutputGroup.inline_files`.
  - Bazel no longer has the android_binary, android_library,
    android_device_script_fixture and android_host_service_fixture
    rules. Use https://github.com/bazelbuild/rules_android instead.
    See #23199
  - Bazel no longer has the android_sdk_repository rule. Use
    https://github.com/bazelbuild/rules_android instead.
  - Uploading local action results to a disk or remote cache now
    occurs in the background whenever possible, potentially
    unblocking the execution of followup actions. Set
    `--noremote_cache_async` to revert to the previous behavior.
  - `--incompatible_remote_downloader_send_all_headers` is removed.
  - `--build_event_upload_max_threads` is removed.
  - `incompatible_remote_output_paths_relative_to_input_root` is
    removed.
  - The default value of
    `--experimental_remote_cache_compression_threshold` is changed to
    `100`.
  - Build without the Bytes is disabled when using HTTP cache.
  - Build without the Bytes is disabled when using HTTP cache.
  - Symlink trees are now created through direct filesystem calls by
    default, instead of delegated to a helper process. On Windows,
    this entails respecting the `--windows_enable_symlinks` flag,
    falling back to a copy when the flag is unset (the helper process
    always attempts to create symlinks, irrespective of the flag).
    Set `--noexperimental_inprocess_symlink_creation` to temporarily
    revert to the previous behavior, which will be removed in a
    future release.
  - By default, coverage artifacts will be reported inline in the
    `TargetComplete` event. To disable this behavior, pass
    `--experimental_build_event_output_group_mode=baseline.lcov=named_
    set_of_files_only`.

This release contains contributions from many people at Google, as well as Adam Azarchs, Alessandro Patti, Benjamin Peterson, Cornelius Riemenschneider, Fabian Meumertzheim, Jordan Mele, PikachuHy, Xdng Yng, xinyu.wang.
iancha1992 pushed a commit that referenced this issue Sep 20, 2024
Baseline: 29f7c86

Cherry picks:

   + b637c47:
     Release 8.0.0-pre.20240909.1 (2024-09-19)
   + 5166a57:
     Release 8.0.0-pre.20240909.1 (2024-09-19)

Incompatible changes:

  - `ctx.resolve_tools` is no longer available by default, in
    preparation for complete removal. See
    #22249 for migration
    instructions. Use `--noincompatible_disallow_ctx_resolve_tools`
    to temporarily make it available again.
  - The `aquery` command now reports all potential inputs of actions
    that support input discovery, including the input headers of C++
    compilation actions and those explicitly marked as unused through
    the `unused_inputs_list` argument to `ctx.actions.run`. Set
    `--noinclude_pruned_inputs` to omit pruned inputs from `aquery`
    output when running it after action execution.
    RELNOTES[INC]: This is not a release note, but a reminder to
    remove the note for `--include_scheduling_dependencies`, which
    was introduced in the 8.x tree but won't make it into the final
    release.
  - `--zip_undeclared_test_outputs` now defaults to false, causing
    undeclared test outputs (i.e., files written to
    `$TEST_UNDECLARED_OUTPUTS_DIR` by a test) to be produced as a
    directory instead of a zip file.

Important changes:

  - A new experimental flag,
    `--experimental_build_event_output_group_mode`, allows users to
    change how a given output group's files are reported in BEP. The
    current behavior is `FILESET` which populates
    `OutputGroup.file_sets`. Users may now specify `INLINE` to
    instead report files directly in the
    `TargetComplete`/`AspectComplete` event under
    `OutputGroup.inline_files`. Users may also specify `BOTH` to
    populate `OutputGroup.file_sets` and `OutputGroup.inline_files`.
  - Bazel no longer has the android_binary, android_library,
    android_device_script_fixture and android_host_service_fixture
    rules. Use https://github.com/bazelbuild/rules_android instead.
    See #23199
  - Bazel no longer has the android_sdk_repository rule. Use
    https://github.com/bazelbuild/rules_android instead.
  - Uploading local action results to a disk or remote cache now
    occurs in the background whenever possible, potentially
    unblocking the execution of followup actions. Set
    `--noremote_cache_async` to revert to the previous behavior.
  - `--incompatible_remote_downloader_send_all_headers` is removed.
  - `--build_event_upload_max_threads` is removed.
  - `incompatible_remote_output_paths_relative_to_input_root` is
    removed.
  - The default value of
    `--experimental_remote_cache_compression_threshold` is changed to
    `100`.
  - Build without the Bytes is disabled when using HTTP cache.
  - Build without the Bytes is disabled when using HTTP cache.
  - Symlink trees are now created through direct filesystem calls by
    default, instead of delegated to a helper process. On Windows,
    this entails respecting the `--windows_enable_symlinks` flag,
    falling back to a copy when the flag is unset (the helper process
    always attempts to create symlinks, irrespective of the flag).
    Set `--noexperimental_inprocess_symlink_creation` to temporarily
    revert to the previous behavior, which will be removed in a
    future release.
  - By default, coverage artifacts will be reported inline in the
    `TargetComplete` event. To disable this behavior, pass
    `--experimental_build_event_output_group_mode=baseline.lcov=named_
    set_of_files_only`.

This release contains contributions from many people at Google, as well as Adam Azarchs, Alessandro Patti, Benjamin Peterson, Cornelius Riemenschneider, Fabian Meumertzheim, Jordan Mele, PikachuHy, Xdng Yng, xinyu.wang.
keertk pushed a commit that referenced this issue Oct 3, 2024
Baseline: f4d92d4

Cherry picks:

   + 99434b1:
     Automated rollback of commit
     4607ad4.

Incompatible changes:

  - `ctx.resolve_tools` is no longer available by default, in
    preparation for complete removal. See
    #22249 for migration
    instructions. Use `--noincompatible_disallow_ctx_resolve_tools`
    to temporarily make it available again.
  - The `aquery` command now reports all potential inputs of actions
    that support input discovery, including the input headers of C++
    compilation actions and those explicitly marked as unused through
    the `unused_inputs_list` argument to `ctx.actions.run`. Set
    `--noinclude_pruned_inputs` to omit pruned inputs from `aquery`
    output when running it after action execution.
    RELNOTES[INC]: This is not a release note, but a reminder to
    remove the note for `--include_scheduling_dependencies`, which
    was introduced in the 8.x tree but won't make it into the final
    release.
  - `--zip_undeclared_test_outputs` now defaults to false, causing
    undeclared test outputs (i.e., files written to
    `$TEST_UNDECLARED_OUTPUTS_DIR` by a test) to be produced as a
    directory instead of a zip file.
  - --legacy_important_outputs is flipped to false. See #14353 for
    details

New features:

  - Bazel can now parse .scl files, a dialect of Starlark without
    Bazel-specific symbols.
  - Dormant dependencies and materializer functions are now available
    with the --experimental_dormant_deps flag.

Important changes:

  - Deleted native Android mobile-install
  - Repository rules instantiated in the same module extensions can
    now refer to each other by their extension-specified names in
    label attributes.
  - A new experimental flag,
    `--experimental_build_event_output_group_mode`, allows users to
    change how a given output group's files are reported in BEP. The
    current behavior is `FILESET` which populates
    `OutputGroup.file_sets`. Users may now specify `INLINE` to
    instead report files directly in the
    `TargetComplete`/`AspectComplete` event under
    `OutputGroup.inline_files`. Users may also specify `BOTH` to
    populate `OutputGroup.file_sets` and `OutputGroup.inline_files`.
  - Bazel no longer has the android_binary, android_library,
    android_device_script_fixture and android_host_service_fixture
    rules. Use https://github.com/bazelbuild/rules_android instead.
    See #23199
  - Bazel no longer has the android_sdk_repository rule. Use
    https://github.com/bazelbuild/rules_android instead.
  - Uploading local action results to a disk or remote cache now
    occurs in the background whenever possible, potentially
    unblocking the execution of followup actions. Set
    `--noremote_cache_async` to revert to the previous behavior.
  - `--incompatible_remote_downloader_send_all_headers` is removed.
  - `--build_event_upload_max_threads` is removed.
  - `incompatible_remote_output_paths_relative_to_input_root` is
    removed.
  - The default value of
    `--experimental_remote_cache_compression_threshold` is changed to
    `100`.
  - Build without the Bytes is disabled when using HTTP cache.
  - Build without the Bytes is disabled when using HTTP cache.
  - Symlink trees are now created through direct filesystem calls by
    default, instead of delegated to a helper process. On Windows,
    this entails respecting the `--windows_enable_symlinks` flag,
    falling back to a copy when the flag is unset (the helper process
    always attempts to create symlinks, irrespective of the flag).
    Set `--noexperimental_inprocess_symlink_creation` to temporarily
    revert to the previous behavior, which will be removed in a
    future release.
  - By default, coverage artifacts will be reported inline in the
    `TargetComplete` event. To disable this behavior, pass
    `--experimental_build_event_output_group_mode=baseline.lcov=named_
    set_of_files_only`.
  - Uploading local action results to a disk or remote cache now
    occurs in the background whenever possible, potentially
    unblocking the execution of followup actions. Set
    `--noremote_cache_async` to revert to the previous behavior.
  - Overrides in the root MODULE.bazel file are now ignored with
    `--ignore_dev_dependency`. (Overrides in non-root modules are
    already ignored.)
  - Added support for using a remote cache that evicts blobs and
    doesn't have AC integrity check (e.g. HTTP cache).
  - Undeclared test outputs are now reported individually in the BEP,
    unless zipping is enabled via `--zip_undeclared_test_outputs`.
  - The native version of android_tools_defaults_jar is no longer in
    Bazel. Use https://github.com/bazelbuild/rules_android instead.
  - Bazel fetch and vendor command now supports --target_pattern_file
    for specifying target patterns.
  - The compact execution log now stores runfiles in a more compact
    representation that should reduce the memory overhead and log
    output size, in particular for test spawns. This change required
    breaking changes to the (experimental) log format.
  - `override_repo` and `inject_repo` can be used to override and
    inject repos in module extensions.
  - Patches to the module file in `single_version_override` are now
    effective as long as the patch file lies in the root module.
  - If `--allowed_cpu_values` is set, the `--cpu` flag value is
    validated against it.

This release contains contributions from many people at Google, as well as Adam Azarchs, Alessandro Patti, Benjamin Peterson, Cornelius Riemenschneider, dependabot[bot], Fabian Meumertzheim, Fil-Den, George Gensure, hvd, Jacob Van De Weert, James Sharpe, Javier Maestro, Jay Conrod, John Millikin, Jordan Mele, Jordan Mele, Keith Smiley, Lior Gorelik, Luis Padron, Michael Siegrist, Nils Wireklint, PikachuHy, Sangita.Nalkar, Son Luong Ngoc, Thi Doan, Xdng Yng, xinyu.wang.
copybara-service bot pushed a commit that referenced this issue Oct 3, 2024
Baseline: f4d92d4

Cherry picks:

   + 99434b1:
     Automated rollback of commit
     4607ad4.

Incompatible changes:

  - `ctx.resolve_tools` is no longer available by default, in
    preparation for complete removal. See
    #22249 for migration
    instructions. Use `--noincompatible_disallow_ctx_resolve_tools`
    to temporarily make it available again.
  - The `aquery` command now reports all potential inputs of actions
    that support input discovery, including the input headers of C++
    compilation actions and those explicitly marked as unused through
    the `unused_inputs_list` argument to `ctx.actions.run`. Set
    `--noinclude_pruned_inputs` to omit pruned inputs from `aquery`
    output when running it after action execution.
    RELNOTES[INC]: This is not a release note, but a reminder to
    remove the note for `--include_scheduling_dependencies`, which
    was introduced in the 8.x tree but won't make it into the final
    release.
  - `--zip_undeclared_test_outputs` now defaults to false, causing
    undeclared test outputs (i.e., files written to
    `$TEST_UNDECLARED_OUTPUTS_DIR` by a test) to be produced as a
    directory instead of a zip file.
  - --legacy_important_outputs is flipped to false. See #14353 for
    details

New features:

  - Bazel can now parse .scl files, a dialect of Starlark without
    Bazel-specific symbols.
  - Dormant dependencies and materializer functions are now available
    with the --experimental_dormant_deps flag.

Important changes:

  - Deleted native Android mobile-install
  - Repository rules instantiated in the same module extensions can
    now refer to each other by their extension-specified names in
    label attributes.
  - A new experimental flag,
    `--experimental_build_event_output_group_mode`, allows users to
    change how a given output group's files are reported in BEP. The
    current behavior is `FILESET` which populates
    `OutputGroup.file_sets`. Users may now specify `INLINE` to
    instead report files directly in the
    `TargetComplete`/`AspectComplete` event under
    `OutputGroup.inline_files`. Users may also specify `BOTH` to
    populate `OutputGroup.file_sets` and `OutputGroup.inline_files`.
  - Bazel no longer has the android_binary, android_library,
    android_device_script_fixture and android_host_service_fixture
    rules. Use https://github.com/bazelbuild/rules_android instead.
    See #23199
  - Bazel no longer has the android_sdk_repository rule. Use
    https://github.com/bazelbuild/rules_android instead.
  - Uploading local action results to a disk or remote cache now
    occurs in the background whenever possible, potentially
    unblocking the execution of followup actions. Set
    `--noremote_cache_async` to revert to the previous behavior.
  - `--incompatible_remote_downloader_send_all_headers` is removed.
  - `--build_event_upload_max_threads` is removed.
  - `incompatible_remote_output_paths_relative_to_input_root` is
    removed.
  - The default value of
    `--experimental_remote_cache_compression_threshold` is changed to
    `100`.
  - Build without the Bytes is disabled when using HTTP cache.
  - Build without the Bytes is disabled when using HTTP cache.
  - Symlink trees are now created through direct filesystem calls by
    default, instead of delegated to a helper process. On Windows,
    this entails respecting the `--windows_enable_symlinks` flag,
    falling back to a copy when the flag is unset (the helper process
    always attempts to create symlinks, irrespective of the flag).
    Set `--noexperimental_inprocess_symlink_creation` to temporarily
    revert to the previous behavior, which will be removed in a
    future release.
  - By default, coverage artifacts will be reported inline in the
    `TargetComplete` event. To disable this behavior, pass
    `--experimental_build_event_output_group_mode=baseline.lcov=named_
    set_of_files_only`.
  - Uploading local action results to a disk or remote cache now
    occurs in the background whenever possible, potentially
    unblocking the execution of followup actions. Set
    `--noremote_cache_async` to revert to the previous behavior.
  - Overrides in the root MODULE.bazel file are now ignored with
    `--ignore_dev_dependency`. (Overrides in non-root modules are
    already ignored.)
  - Added support for using a remote cache that evicts blobs and
    doesn't have AC integrity check (e.g. HTTP cache).
  - Undeclared test outputs are now reported individually in the BEP,
    unless zipping is enabled via `--zip_undeclared_test_outputs`.
  - The native version of android_tools_defaults_jar is no longer in
    Bazel. Use https://github.com/bazelbuild/rules_android instead.
  - Bazel fetch and vendor command now supports --target_pattern_file
    for specifying target patterns.
  - The compact execution log now stores runfiles in a more compact
    representation that should reduce the memory overhead and log
    output size, in particular for test spawns. This change required
    breaking changes to the (experimental) log format.
  - `override_repo` and `inject_repo` can be used to override and
    inject repos in module extensions.
  - Patches to the module file in `single_version_override` are now
    effective as long as the patch file lies in the root module.
  - If `--allowed_cpu_values` is set, the `--cpu` flag value is
    validated against it.

This release contains contributions from many people at Google, as well as Adam Azarchs, Alessandro Patti, Benjamin Peterson, Cornelius Riemenschneider, dependabot[bot], Fabian Meumertzheim, Fil-Den, George Gensure, hvd, Jacob Van De Weert, James Sharpe, Javier Maestro, Jay Conrod, John Millikin, Jordan Mele, Jordan Mele, Keith Smiley, Lior Gorelik, Luis Padron, Michael Siegrist, Nils Wireklint, PikachuHy, Sangita.Nalkar, Son Luong Ngoc, Thi Doan, Xdng Yng, xinyu.wang.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking-change-8.0 incompatible-change Incompatible/breaking change migration-ready Incompatible flag is ready for migration with Bazel rolling releases or Bazel@last_green
Projects
None yet
Development

No branches or pull requests

1 participant