tree c504ab569675a78de7913c0c893fd9d20216abd2
parent adea952aaf77b51493d643d47366e928691d0044
author recipe-roller <flutter-prod-builder@chops-service-accounts.iam.gserviceaccount.com> 1782178071 -0700
committer flutter-scoped@luci-project-accounts.iam.gserviceaccount.com <flutter-scoped@luci-project-accounts.iam.gserviceaccount.com> 1782178071 -0700

Roll recipe dependencies (trivial).

This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (dart, depot_tools, fuchsia, recipe_engine) into this repository.

The build that created this CL was
https://ci.chromium.org/b/8678253085737701009

dart:
https://dart.googlesource.com/recipes.git/+log/7d5d8f3df1ab04e887f78135315ae9bb5ee279e4~..9055b6c71db82df54206704e8a6b42b278c43456
  7d5d8f3 (iinozemtsev@google.com)
      Revert "Do not verify Windows provenance attestations if they d...
  5626b94 (rmacnak@google.com)
      Update the version of cpython that test shards grab from CIPD.
  999e4ba (kustermann@google.com)
      Make recipes forward `safari` dimension to triggered shards
  9bfd15c (rmacnak@google.com)
      Extend testing Debian packages to ARM64.
  5796ea5 (rmacnak@google.com)
      Make test shard tasks inherit several dimensions from the paren...
  8cd4d23 (rmacnak@google.com)
      Also filter <build-dir>/generated_compilation from testing file...
  9055b6c (athom@google.com)
      [release] Ignore chocolatey failures

depot_tools:
https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/ed3a6fdd519a74da32fb73e1d2ce9c405812cf1a~..e765d5b78dc400e57faa64a0992c4c1ce213b653
  ed3a6fd (yueshe@google.com)
      upload_to_google_storage_first_class.py: set x-goog-meta-execut...
  edcece7 (amaiorano@google.com)
      Add Microsoft-DirectX license
  f7ec270 (wyeager@google.com)
      [mac_toolchain] Roll mac_toolchain in depot_tools
  f3ce14b (wyeager@google.com)
      [mac_toolchain] roll mac_toolchain version on osx_sdk recipe mo...
  1f007aa (harringtond@google.com)
      Fix long lines exception for typescript
  f1323a9 (angdaniel@google.com)
      Add `git cl patch --reauthor`
  9b3659c (joenotcharles@google.com)
      Add file_filter argument to CheckPatchFormatted
  2f9bc10 (gavinmak@google.com)
      Heal git cache on checkout revision corruption
  4bf9218 (kiehl@google.com)
      Fix Change-Id warning string formatting in git cl
  f3f2851 (gavinmak@google.com)
      Exempt IFTTT comments in mojom files from CheckLongLines
  f4fadaf (hnakashima@chromium.org)
      Add check-test command to luci_triage.py
  4a3a6f5 (no-reply@google.com)
      repo: Update from upstream
  85f01c6 (kiehl@google.com)
      Suppress the stacktrace that prints when running git cl issue o...
  17935fc (tikuta@chromium.org)
      siso: print the name of detected AI agent environment variables
  69f64d8 (agrieve@chromium.org)
      Add tables support to "git cl format"
  9eecd66 (jdonnelly@chromium.org)
      Add interactive conflict handling to "git cl cherry-pick".
  0884625 (jdonnelly@chromium.org)
      Add new command-line flags to "git cl cherry-pick" for convenie...
  eff5fce (iannucci@google.com)
      Update CIPD from 2.7.12 -> 2.8.1
  ea19873 (gavinmak@google.com)
      Clean up stale temporary pack files during populate and bootstrap
  03420c3 (jwata@google.com)
      siso: Disable cloud trace on a physical corp Windows machine
  7bf2e11 (tikuta@google.com)
      siso: strip trailing double quotes from Windows arguments
  533321c (jdonnelly@chromium.org)
      Require explicit response during interactive "git cl cherry-pick".
  2eed415 (rop@google.com)
      [metadata] Update license validation warning to point to docume...
  0e2b3ca (ntfschr@google.com)
      presubmit: Increase alint timeout to 30s
  aa6edca (nbilling@google.com)
      setup_btrfs_loop.sh script to setup btrfs for gclient-new-workd...
  e765d5b (no-reply@google.com)
      repo: Update from upstream

fuchsia:
https://fuchsia.googlesource.com/infra/recipes.git/+log/a0088fa11eecd65d79ce0ed27527253775af43db~..21a6235cd96021a81bd0b666191afaf44a392b40
  a0088fa (paulkirth@google.com)
      [contrib] Update OWNERS file for the stable toolchain recipe
  5b74d95 (chcl@google.com)
      [checkout] Query Gerrit without branch filter for Depends-on
  7a5f216 (paulkirth@google.com)
      [contrib] Fix typo in OWNERS file
  d28c6b5 (paulkirth@google.com)
      [clang] Use the recipe module in the release builder recipe
  a1093c8 (olivernewman@google.com)
      [git_checkout] Handle deep clones with shallow caches
  187757f (paulkirth@google.com)
      [clang] Use the toolchain module in the llvm library build
  4906e44 (paulkirth@google.com)
      [clang] Remove duplicate flag from toolchain api
  73403fe (paulkirth@google.com)
      [clang] Consolidate build flag settings in the recipe module
  92471b0 (mcgrathr@google.com)
      [gcc_toolchain] Update default ref to gcc-16 branch
  4954252 (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update coverage pinned tools
  2374f07 (paulkirth@google.com)
      [recipe_modules][platform_util] Add normalized_platform_name pr...
  be6a363 (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update coverage pinned tools
  887214e (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update pinned tools
  18facbd (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update coverage pinned tools
  e051ab0 (ihuh@google.com)
      [validate_lucicfg] Ignore builders defined in other projects.
  9192f07 (ihuh@google.com)
      [cherry_pick] Support cherry-picks of repos that roll into fuch...
  34f29c1 (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update pinned tools
  0cc60ba (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update pinned tools
  f2915a6 (annizhang@google.com)
      [recipes] Add support for CAS archives
  5214462 (paulkirth@google.com)
      [clang] Use recipe module for ml training configuration
  dd8a281 (paulkirth@google.com)
      [clang] Support linking flags in the toolchain recipe module
  e76c87a (paulkirth@google.com)
      [clang] Move sysroot config into toolchain recipe module
  3db37f6 (paulkirth@google.com)
      [clang] Unify LTO options in toolchain api.py
  49a5d33 (phosek@google.com)
      [qemu] Drop the glusterfs option
  75f47c9 (phosek@google.com)
      [qemu] Add libpng support to Fuchsia's QEMU
  df30aae (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update coverage pinned tools
  447353d (mcgrathr@google.com)
      [clang_toolchain] Add use_sanitizer property
  d6abfd5 (etryzelaar@google.com)
      [llvm] Sort the components
  4c763d2 (ihuh@google.com)
      [checkout] Account for jiri project names that differ from repo...
  d1ef032 (haowei@google.com)
      [clang_toolchain] Add step to collect cmake logs from sub steps
  69c264a (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update coverage pinned tools
  0d2867f (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update coverage pinned tools
  6286627 (haowei@google.com)
      [rust_stage0_trigger] Increase the chain length limit to 20
  dd3293e (haowei@google.com)
      [rust_toolchain] Stop emitting windows_rc overrides in certain...
  8b26194 (etryzelaar@google.com)
      [rust] Update patch to remove rustc-perf
  c81146b (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update pinned tools
  b7fa002 (haowei@google.com)
      [rust_toolchain] Mitigate hot patch issue
  cdd01e2 (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update coverage pinned tools
  6685e15 (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update pinned tools
  44a9695 (zijunwan@google.com)
      [test_filterer] Forward targeted tests property to test filtere...
  bb6aba6 (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update pinned tools
  6491fca (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update coverage pinned tools
  a12641e (etryzelaar@google.com)
      [rust] Remove stdlib vendored dependencies
  ebeb103 (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update pinned tools
  6402523 (etryzelaar@google.com)
      [rust] Optionally enable compiling rust's llvm with assertions
  2bb34d5 (ihuh@google.com)
      [bisector] Don't launch new builds if there's already a trigger...
  1794a3b (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update pinned tools
  6c5fac1 (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update pinned tools
  de6a459 (olivernewman@google.com)
      [fuchsia] Respect Build-Only commit message footer
  abf757d (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update coverage pinned tools
  209f38c (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update pinned tools
  32cf306 (paulkirth@google.com)
      [clang] Use toolchain module in clang_pgo_training recipe
  a209963 (ihuh@google.com)
      [bundle_fetcher][sdk] Support specifying product bundles to fetch.
  b185ad2 (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update pinned tools
  92366fd (haowei@google.com)
      [rust_stage0_trigger] Change the revision sent to the next stag...
  7187af6 (mseaborn@google.com)
      [checkout] Fix checkout failure for multiple cherry-pick builds...
  f242730 (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update pinned tools
  592086d (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update pinned tools
  b8465fc (gulfem@google.com)
      [toolchain_3p_libs] Update cpp-httplib to v0.22.0
  5fb07ad (etryzelaar@google.com)
      [bindgen] Add a bindgen recipe
  826c214 (phosek@google.com)
      [macos_sdk] Update the macOS SDK
  a2f5241 (olivernewman@google.com)
      [nsjail] Generalize git subcommand binary mounting
  0a5f736 (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update pinned tools
  2843de5 (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update pinned tools
  9a23da3 (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update coverage pinned tools
  9a8eca0 (olivernewman@google.com)
      [fuchsia_roller] Enable partial clones
  13013f2 (ihuh@google.com)
      [cherry-pick] Add comment on CLs if cherry-pick fails.
  2b000ba (etryzelaar@google.com)
      [rust] Filter out vendored deps from cipd package
  d4f8800 (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update pinned tools
  53559c6 (phosek@google.com)
      [clang22_toolchain] Use the short version
  c2b8b4e (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update pinned tools
  85a0b1a (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update pinned tools
  609993b (danikay@google.com)
      [recipes] Add flapjack static analysis recipe
  55b81d5 (gulfem@google.com)
      [toolchain_3p_libs] Add OpenCSD library support
  21a6235 (danikay@google.com)
      [recipes] Fail build if findings are discovered by flapjack recipe

recipe_engine:
https://chromium.googlesource.com/infra/luci/recipes-py.git/+log/bcfd53ec15a653d0e3ba4040ab5b50d0a677ed34~..be3934a84a3e24d8921d92fb6aea2ec9d2463025
  bcfd53e (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from 109770fb42cd to 7257396558bc
  5372b26 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from 9b7184de3cca to ec87456d811b
  be3934a (iannucci@google.com)
      Key recipe engine turboci client enablement on experiment.

Please check the following references for more information:
- autoroller, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#autoroller
- rollback, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#rollback
- cross-repo dependencies, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/cross_repo.md

Use https://goo.gl/noib3a to file a bug.

R=flutter-infra-notify+luci-recipes@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Ignore-Freeze: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ib41252564e3685fcf18869ce4337f90eadd26c7e
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/79700
Bot-Commit: flutter-prod-builder@chops-service-accounts.iam.gserviceaccount.com <flutter-prod-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: flutter-prod-builder@chops-service-accounts.iam.gserviceaccount.com <flutter-prod-builder@chops-service-accounts.iam.gserviceaccount.com>
