)]}'
{
  "commit": "f3c588271884d3904c21349705e896031f459528",
  "tree": "bc2eea827339b1436b058e80fa4f1d5bb9dc55d5",
  "parents": [
    "c7c3941624839d5456ca775d2283dd3d10faddb5"
  ],
  "author": {
    "name": "Fabian Meumertzheim",
    "email": "fabian@meumertzhe.im",
    "time": "Tue Nov 03 10:26:25 2026 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Nov 03 10:27:19 2026 -0800"
  },
  "message": "Don\u0027t resolve cc_configure template labels to paths (#944)\n\n`cc_configure` resolved all of its labels with `repository_ctx.path` up front (`resolve_labels`) to avoid expensive restarts of the repo rule. Since Bazel 7.1, repo rules run on worker threads by default (`--experimental_worker_for_repo_fetching\u003dauto`), so missing dependencies no longer restart them.\n\nResolving a label to a path makes the repo containing the file available on disk. With Bazel\u0027s `--experimental_remote_repo_contents_cache`, `rules_cc` is otherwise only kept in memory, so this downloads all of its files before the C++ toolchain can be configured (bazelbuild/bazel#31005). In Bazel\u0027s own CI with the cache enabled (bazelbuild/bazel#31755), this took 0.8 s per job on Linux and 2.1 s on Windows arm64, on the critical path of every build.\n\nThis change:\n* passes templates to `repository_ctx.template` by label, which only reads the template itself with bazelbuild/bazel#31493,\n* copies the toolchain config `.bzl` files (and the BSD `BUILD` file and the MSYS error script) into the generated repo instead of symlinking them, so that they keep their names (e.g. `@local_config_cc//:cc_toolchain_config.bzl`, which is loaded by other projects) without requiring `rules_cc` on disk,\n* copies `generate_system_module_map.sh` into the generated repo before running it and deletes it afterwards.\n\n`resolve_labels` is no longer used, but is kept since `lib_cc_configure.bzl` is loaded by other projects.\n\nCloses #944\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/bazelbuild/rules_cc/pull/944 from fmeum:cc-configure-no-eager-paths 2a44513f53d1676713b25b5c0c06da1444665517\nPiperOrigin-RevId: 1013118324\nChange-Id: I340540da6e7404ecbb404058fffca9a65caf59a5\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c2bf06aaaed1b28a7febbbf1211cb1fd902cbf0a",
      "old_mode": 33188,
      "old_path": "cc/private/toolchain/cc_configure.bzl",
      "new_id": "1d254af8b41937196439b096faa7b8c49a06e124",
      "new_mode": 33188,
      "new_path": "cc/private/toolchain/cc_configure.bzl"
    },
    {
      "type": "modify",
      "old_id": "4647003874fbf76bb3c51019dc833fa028a6218c",
      "old_mode": 33188,
      "old_path": "cc/private/toolchain/lib_cc_configure.bzl",
      "new_id": "32a22ac9b4c371197ba2df40d0e189bbf13f1a60",
      "new_mode": 33188,
      "new_path": "cc/private/toolchain/lib_cc_configure.bzl"
    },
    {
      "type": "modify",
      "old_id": "a1fbd96071ef71cf629737f64f4ec9547e7ec116",
      "old_mode": 33188,
      "old_path": "cc/private/toolchain/unix_cc_configure.bzl",
      "new_id": "ce1282e7b8ffc26fe75044ca3d81588cb1be62bc",
      "new_mode": 33188,
      "new_path": "cc/private/toolchain/unix_cc_configure.bzl"
    },
    {
      "type": "modify",
      "old_id": "235ebbf768e5dbcbc8e4fc90050e414075c8e5a7",
      "old_mode": 33188,
      "old_path": "cc/private/toolchain/windows_cc_configure.bzl",
      "new_id": "790d41c1f8f1cba14dbcbb99cb848d1cffbfe742",
      "new_mode": 33188,
      "new_path": "cc/private/toolchain/windows_cc_configure.bzl"
    }
  ]
}
