)]}'
{
  "log": [
    {
      "commit": "a2d98d6bf693810668b49cd5a81e3c36703034f3",
      "tree": "f7cb5c05430a92b08be10520ee1a8ec76b2e4141",
      "parents": [
        "dea48e6108b40905400573bb76c523f88971d831"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu May 21 07:03:38 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 14:03:38 2026 +0000"
      },
      "message": "Fix `OUT_DIR` sanitization in `cargo_build_script` (#4050)\n\ncloses https://github.com/bazelbuild/rules_rust/pull/4045"
    },
    {
      "commit": "dea48e6108b40905400573bb76c523f88971d831",
      "tree": "8e58f0974f3ee43c61b931076d3c2412b65c5e87",
      "parents": [
        "c821113c2be5b391666e02ad00b0536a647f922e"
      ],
      "author": {
        "name": "Jorge Gorbe Moya",
        "email": "slack@codemaniacs.com",
        "time": "Wed May 20 12:28:42 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 10:28:42 2026 +0000"
      },
      "message": "Remove is_proc_macro_dep. (#4052)\n\nThis was only used internally at Google during bootstrapping, and it\u0027s\nno longer needed.\n\nCo-authored-by: Krasimir Georgiev \u003ckrasimir@google.com\u003e"
    },
    {
      "commit": "c821113c2be5b391666e02ad00b0536a647f922e",
      "tree": "4a32a251d89a33ff262ad8ff5880c21fbff0b75f",
      "parents": [
        "7e46ed660addb62ba301b38d01163d89ad31d38e"
      ],
      "author": {
        "name": "Thomas Anagrius",
        "email": "anagrius@users.noreply.github.com",
        "time": "Tue May 19 05:14:55 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 03:14:55 2026 +0000"
      },
      "message": "Update wasm-bindgen to 0.2.121 (#4043)\n\nBumps the bundled `wasm-bindgen`, `wasm-bindgen-cli`, and\n`wasm-bindgen-test` to their latest stable versions (`0.2.121` /\n`0.3.71`). Same shape as #3703; regenerated via `bazel run\n@@//3rdparty:crates_vendor` from the wasm_bindgen extension.\n\nChanges:\n\n- `WASM_BINDGEN_VERSION \u003d \"0.2.121\"` in both `repositories.bzl` and\n`extensions.bzl`\n- `wasm-bindgen-test` spec → `0.3.71`\n- Regenerated `Cargo.Bazel.lock`, `extensions/wasm_bindgen/MODULE.bazel`\n`use_repo` aliases, and the entire `3rdparty/crates/BUILD.*.bazel` set.\n\nMotivation: downstream consumers want crates that need `wasm-bindgen \u003e\u003d\n0.2.108` — for example `wasm-streams 0.5`, pulled in by\n`tonic-web-wasm-client 0.9`+. With the bundled cli pinned at `0.2.105`,\ndownstream code is forced to either vendor-patch `tonic-web-wasm-client`\nback to `0.8` (to keep the schema versions aligned) or write a custom\n`rust_wasm_bindgen_toolchain`."
    },
    {
      "commit": "7e46ed660addb62ba301b38d01163d89ad31d38e",
      "tree": "4b21d273d813d05ce22c605d70ff9be1500ab3ba",
      "parents": [
        "90058127ff62fc63a3486f4c032c2aaa05ec9523"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu May 14 07:44:40 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 14:44:40 2026 +0000"
      },
      "message": "Always use param files to handle large rustc commands (#4038)\n\nUsing a params file helps avoid OS limitations for command line lengths.\nThis should provide a more stable experience on all platforms.\n\ncloses https://github.com/bazelbuild/rules_rust/issues/4006"
    },
    {
      "commit": "90058127ff62fc63a3486f4c032c2aaa05ec9523",
      "tree": "864a50199b648b26eb9d7258e3e1d20c49f45ca5",
      "parents": [
        "d0f2bcea18e01105779450f5f7a7505d90d54ae8"
      ],
      "author": {
        "name": "Martin Geisler",
        "email": "martin@geisler.net",
        "time": "Thu May 14 15:32:02 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 13:32:02 2026 +0000"
      },
      "message": "Add test for `mdbook` sources from different places (#4029)\n\nThis adds a test demonstrating how `mdbook` can stitch together sources\nfrom multiple locations in the repository.\n\nWe have to mirror the workspace structure in a temporary build\ndirectory, enabling `mdbook` to resolve relative links between files\nregardless of their package or generation method."
    },
    {
      "commit": "d0f2bcea18e01105779450f5f7a7505d90d54ae8",
      "tree": "797aa544764c13aa2e96f3944a121abaceae60fc",
      "parents": [
        "2fd73117cd996410be45259cd95b12c7688226fb"
      ],
      "author": {
        "name": "Martin Geisler",
        "email": "martin@geisler.net",
        "time": "Thu May 14 15:31:34 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 13:31:34 2026 +0000"
      },
      "message": "Add tests for mdbook plugins (#4028)\n\nThis adds a test to ensure that mdBook plugins (preprocessors) are\nproperly injected and executed when using the `mdbook` rule. It uses a\nnaive `rust_binary` preprocessor to avoid introducing a dependency on\n`serde_json` or Python into the test workspace."
    },
    {
      "commit": "2fd73117cd996410be45259cd95b12c7688226fb",
      "tree": "722e3c4acc1afa214743407e1c95f76431b64f81",
      "parents": [
        "d189805f90ef63c0961c7644edaa58f8b4ad7ffd"
      ],
      "author": {
        "name": "Martin Geisler",
        "email": "martin@geisler.net",
        "time": "Thu May 14 15:31:19 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 13:31:19 2026 +0000"
      },
      "message": "mdbook: fix support for external repositories (#4027)\n\nWhen any part of an `mdbook` target (either the `book.toml` or the\nsource files) comes from an external repository, the build was failing\nbecause the rule\u0027s staging logic and its invocation logic handled\nrepository boundaries inconsistently.\n\nThis change:\n- Updates `_map_inputs` in `mdbook.bzl` to map external repository paths\nto `\u0027external/\u0027` instead of `\u0027../\u0027`.\n- Hardens the process wrapper with a bounds check to ensure files are\nnot staged outside the shadow work directory.\n- Adds an integration test to verify the fix and prevent regressions.\n\nMade by Gemini, fixes #4026."
    },
    {
      "commit": "d189805f90ef63c0961c7644edaa58f8b4ad7ffd",
      "tree": "b80c51687528bedf94628f933817925d27e7edf3",
      "parents": [
        "25cc5a2ff1f5d82d49cd6abe0121e41cf90d7962"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu May 14 01:25:40 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 08:25:40 2026 +0000"
      },
      "message": "Fix RBE jobs (#4032)\n\nHopefully this fixes this error we\u0027re now seeing on jobs.\n```\n(17:55:08) ERROR: /var/lib/buildkite-agent/.cache/bazel/_bazel_buildkite-agent/ec321eb2cc2d0f8f91b676b6d4c66c29/external/bazel_ci_rules+/rbe_repo.bzl:64:13: An error occurred during the fetch of repository \u0027+rust_test+buildkite_config\u0027:\n   Traceback (most recent call last):\n\tFile \"/var/lib/buildkite-agent/.cache/bazel/_bazel_buildkite-agent/ec321eb2cc2d0f8f91b676b6d4c66c29/external/bazel_ci_rules+/rbe_repo.bzl\", line 64, column 13, in _rbe_preconfig_impl\n\t\tfail(\"\\nrbe_preconfig: Unsupported toolchain \u0027{}\u0027 (Values: {}).\\n\".format(toolchain_name, _available_toolchain_names(manifest)))\nError in fail:\nrbe_preconfig: Unsupported toolchain \u0027ubuntu1804-bazel-java11\u0027 (Values: \u0027ubuntu2404\u0027).\n(17:55:08) ERROR: com.google.devtools.build.lib.packages.RepositoryFetchException: no such package \u0027@@+rust_test+buildkite_config//config\u0027:\nrbe_preconfig: Unsupported toolchain \u0027ubuntu1804-bazel-java11\u0027 (Values: \u0027ubuntu2404\u0027).\n```"
    },
    {
      "commit": "25cc5a2ff1f5d82d49cd6abe0121e41cf90d7962",
      "tree": "47aefdfc065632d9c460f48435b322ea13007de0",
      "parents": [
        "175bf94bddc7ddc341ea1708edb44eb23a035a69"
      ],
      "author": {
        "name": "Jorge Gorbe Moya",
        "email": "slack@codemaniacs.com",
        "time": "Fri May 08 17:54:22 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 08 15:54:22 2026 +0000"
      },
      "message": "Add issue templates (#4025)\n\nThis is based on @scentini\u0027s \"rules_rust contributor guidelines\" draft\ndocument. Instead of adding a \"Type\" section for bug/feature request/...\nI have created separate templates.\n\n- The bug template is similar to what\u0027s described in the document\n- The feature request template is pretty much Github\u0027s default feature\nrequest template. It seems like a reasonable starting point but I\u0027m\nhappy to make any changes you\u0027d like to see."
    },
    {
      "commit": "175bf94bddc7ddc341ea1708edb44eb23a035a69",
      "tree": "503cc22788982050fb3fbec3b07c9d194d5fc109",
      "parents": [
        "72c67cd4650c0bb52cc83d4dd6d6240014c89986"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu May 07 10:06:21 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 07 17:06:21 2026 +0000"
      },
      "message": "Add support for `experimental_output_paths` (#4011)\n\nFor details on path mapping see\nhttps://github.com/bazelbuild/bazel/discussions/22658\n\nChanges:\n- The process wrapper now explicitly handles `out_dir` to avoid location\nexpanded environment variables.\n- `construct_arguments` is updated to support `rustc_flags` as an `Args`\nobject. `List` is still supported though"
    },
    {
      "commit": "72c67cd4650c0bb52cc83d4dd6d6240014c89986",
      "tree": "0408797e19d2626dbfc903b256710a1fb3e74431",
      "parents": [
        "cfef26259cc75916f0484df00033db9454ff353d"
      ],
      "author": {
        "name": "Tamás Vajk",
        "email": "tamasvajk@github.com",
        "time": "Thu May 07 14:23:34 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 07 12:23:34 2026 +0000"
      },
      "message": "Handle all `-isystem` variant flags in cargo build script path rewriting (#3996)\n\n## Summary\n\nHandle all `-isystem` variant flags in cargo build script path\nrewriting.\n\n## Problem\n\nWhen Bazel passes CC toolchain flags to cargo build scripts, paths\nfollowing `-isystem` are prefixed with `${pwd}` so they resolve\ncorrectly inside the sandbox. However, several other Clang flags that\ntake system include paths were not handled:\n\n- `-stdlib++-isystem` — C++ standard library headers\n- `-isystem-after` — appended to SYSTEM include search path\n- `-cxx-isystem` — C++ SYSTEM include search path\n\nSee the [Clang command line\nreference](https://clang.llvm.org/docs/ClangCommandLineReference.html)\nfor the full set.\n\nThis caused cargo build scripts to fail when the CC toolchain used any\nof these flags, because paths weren\u0027t rewritten for the sandbox.\n\n## Fix\n\nAdd `-stdlib++-isystem`, `-isystem-after`, and `-cxx-isystem` to the\nflag list in `_pwd_flags_isystem`.\n\n---\n\n\u003e **Note:** This PR was largely AI-generated using Claude Code, with\nhuman review and guidance throughout.\n\nCo-authored-by: Tamas Vajk \u003ctamas.vajk@databricks.com\u003e"
    },
    {
      "commit": "cfef26259cc75916f0484df00033db9454ff353d",
      "tree": "8b4c35182ecbae19ad176576794be2244490b1d1",
      "parents": [
        "d2d856d13f89f234298db1606ece7afd1c3eee1f"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Wed May 06 04:48:44 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 06 11:48:44 2026 +0000"
      },
      "message": "Added support for additional platform triples (#4010)\n\nWith https://github.com/bazelbuild/platforms/pull/134 landed we can now\nsupport additional platforms."
    },
    {
      "commit": "d2d856d13f89f234298db1606ece7afd1c3eee1f",
      "tree": "59865228338d52a9a5c80534ef3a67f4d4641b64",
      "parents": [
        "cab37b6e2944b446b234d5a6c0643d3fedfa490e"
      ],
      "author": {
        "name": "Dave Roth",
        "email": "49175007+davexroth@users.noreply.github.com",
        "time": "Tue May 05 15:27:42 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 05 22:27:42 2026 +0000"
      },
      "message": "Add additional baremetal platform triples (#4019)\n\nThis change addes the following target platform triples:\n- aarch64-unknown-none\n- thumbv7m-none-eabi\n- thumbv8m.main-none-eabihf\n- riscv32imac-unknown-none-elf\n\nThese targets are required to support various baremetal projects."
    },
    {
      "commit": "cab37b6e2944b446b234d5a6c0643d3fedfa490e",
      "tree": "2d131909ad383d1becfd8d455f13d9f461d5fdae",
      "parents": [
        "52e350938bb2c9525fca3f2d37cab92e7a523df8"
      ],
      "author": {
        "name": "Lukas",
        "email": "lukas.oyen@flyzipline.com",
        "time": "Tue May 05 15:47:11 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 05 13:47:11 2026 +0000"
      },
      "message": "Add crate_edition helper macro. (#4018)\n\nCloses #4014"
    },
    {
      "commit": "52e350938bb2c9525fca3f2d37cab92e7a523df8",
      "tree": "934e6c0b00435603c7cd4ac7c17e1a2ed9ea22bc",
      "parents": [
        "d7490c8c088ad2b970295cc01c643d71e5ac0ce5"
      ],
      "author": {
        "name": "Jorge Gorbe Moya",
        "email": "slack@codemaniacs.com",
        "time": "Tue May 05 13:57:27 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 05 11:57:27 2026 +0000"
      },
      "message": "Fix ordering of `--remap-path-prefix` flags. (#4008)\n\nThese flags are interpreted in reverse order (see\nhttps://github.com/rust-lang/rust/issues/82108), and if we have a set of\nflags like:\n```\n  --remap-path-prefix\u003d/a/b/c/d\u003d.\n  --remap-path-prefix\u003d/a/b\u003d.\n```\nthen the first flag will never apply, because the path will be first\nrewritten as ./c/d.\n\nIn this case, output_base is the outermost directory, so we need to make\nsure it\u0027s remapped last.\n\nCo-authored-by: Krasimir Georgiev \u003ckrasimir@google.com\u003e"
    },
    {
      "commit": "d7490c8c088ad2b970295cc01c643d71e5ac0ce5",
      "tree": "0b1cda0c428a317829182cb56d546cfbd3b6c649",
      "parents": [
        "8e9f73f87124f0767b0fb942c0badc27acfadd60"
      ],
      "author": {
        "name": "Tamás Vajk",
        "email": "tamasvajk@github.com",
        "time": "Mon May 04 19:10:12 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 04 17:10:12 2026 +0000"
      },
      "message": "Fix platform label context in rule transitions (#3997)\n\n## Summary\n\nFix platform label resolution in rule transitions for `rust_binary`,\n`rust_shared_library`, `rust_static_library`, and `rust_test`.\n\n## Problem\n\nWhen a platform label comes from the main repository (no repo name),\n`str(label)` produces `//platforms:foo` instead of `@//platforms:foo`.\nBazel\u0027s `//command_line_option:platforms` setting requires the canonical\nform with `@`, so the transition silently selects the wrong platform or\nfails.\n\nThis affects anyone using the `platform` attribute on Rust rules with a\nlabel defined in the main repository.\n\nNote: as mentioned in\nhttps://github.com/bazelbuild/rules_rust/pull/3997#discussion_r3156712697,\nthis only affects builds that use\n`--noincompatible_unambiguous_label_stringification`.\n\n## Fix\n\nExtract a `_resolve_platform` helper that adds the `@` prefix when\n`attr.platform.repo_name` is empty, and apply it consistently to all\nfour rule transitions. The original patch only fixed `rust_binary`; this\nPR fixes all four for completeness.\n\n---\n\n\u003e **Note:** This PR was largely AI-generated using Claude Code, with\nhuman review and guidance throughout.\n\n---------\n\nCo-authored-by: Tamas Vajk \u003ctamas.vajk@databricks.com\u003e\nCo-authored-by: UebelAndre \u003cgithub@uebelandre.com\u003e"
    },
    {
      "commit": "8e9f73f87124f0767b0fb942c0badc27acfadd60",
      "tree": "d122c9ece3aa359cd9792416188fb2b13d585812",
      "parents": [
        "c70eb8562de80058137c8f9680b83f330f538dd4"
      ],
      "author": {
        "name": "Cameron Mulhern",
        "email": "csmulhern@gmail.com",
        "time": "Mon May 04 12:46:30 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 04 16:46:30 2026 +0000"
      },
      "message": "Fixes behavior of rust_generated_srcs within the rust-analyzer aspect (#3836)\n\nThe existing rust analyzer aspect does not handle generated files\ncompletely.\n\n1. The aspect does not propagate through the `srcs` attribute, so on a\ntop level target that uses a generated dependency, the aspect will not\nrun.\n2. For targets with transitive dependencies that contain generated rust\nsources, the aspect will visit those dependencies, but because\n`rust_generated_srcs` is not aggregated onto the top-level target, the\nfiles themselves will not be generated. This breaks things like e.g.\njump-to-definition if you try to jump to a file that has not yet been\ngenerated by bazel.\n\nThis PR addresses both these issues."
    },
    {
      "commit": "c70eb8562de80058137c8f9680b83f330f538dd4",
      "tree": "53e93b0ceeefc4f41be3d0b3ca71bf3111036b4d",
      "parents": [
        "71470d7109c3264e6aa8aaa5794884ddfc8bedba"
      ],
      "author": {
        "name": "Tamir Duberstein",
        "email": "tamird@gmail.com",
        "time": "Fri May 01 18:33:37 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 22:33:37 2026 +0000"
      },
      "message": "feat: Add BPF triple constraint mapping (#3696)\n\nAdd support for tier 3 targets bpfeb-unknown-none and bpfel-unknown-none\n(see\n\nhttps://github.com/rust-lang/rust/blob/f5e2df7/src/doc/rustc/src/platform-support.md?plain\u003d1#L311-L312).\n\nThis is modeled after https://github.com/bazelbuild/rules_rust/pull/3507\nand\nshould probably be updated if/when\nhttps://github.com/bazelbuild/platforms/pull/131 is merged.\n\n(please use rebase merge when landing this as the proper commit message\nis in the commit, rather than the PR description)\n\n/cc @avrabe"
    },
    {
      "commit": "71470d7109c3264e6aa8aaa5794884ddfc8bedba",
      "tree": "0a9caf4adb4fb87507c8bfe46bf7f904e8ab91ce",
      "parents": [
        "7b3177722c0f40f56bd0549712f14d72504f7307"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Fri May 01 12:58:18 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 19:58:18 2026 +0000"
      },
      "message": "Remove WORKSPACE support (#4005)\n\ncloses https://github.com/bazelbuild/rules_rust/issues/3818"
    },
    {
      "commit": "7b3177722c0f40f56bd0549712f14d72504f7307",
      "tree": "84d5b18c8f9b442e321b214589388a7ea3b81cde",
      "parents": [
        "d5809d4560f9dd4393e0024bce3572afcca89a49"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Apr 30 05:45:30 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 12:45:30 2026 +0000"
      },
      "message": "Update rustfmt to work with mixed generated srcs (#3983)\n\nThis change adds an aspect to better locate formattable sources for\nrustfmt.\n\ncloses https://github.com/bazelbuild/rules_rust/issues/3850"
    },
    {
      "commit": "d5809d4560f9dd4393e0024bce3572afcca89a49",
      "tree": "ac98361110b5d3631a1bcbadb572fb19557eb13a",
      "parents": [
        "02be80c7409b3890d728b29134a4b656d941990a"
      ],
      "author": {
        "name": "stephenduong1004",
        "email": "stephenduong@google.com",
        "time": "Thu Apr 30 04:32:12 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 08:32:12 2026 +0000"
      },
      "message": "Ignore unknown warning flags in bindgen (#4004)\n\nBindgen uses Clang but allow the selected cc_toolchain isn\u0027t Clang. This\nflag is to ignore non-Clang warning options from the cc_toolchain.\n\nCo-authored-by: scentini \u003crosica@google.com\u003e"
    },
    {
      "commit": "02be80c7409b3890d728b29134a4b656d941990a",
      "tree": "54b861eb99bc9ab221cb2f31b7c7fde974ad93ac",
      "parents": [
        "fd713d567904376e5a30b6324cfb71ca40d7d9bd"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Tue Apr 28 14:31:15 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 21:31:15 2026 +0000"
      },
      "message": "Delete android example (#3954)\n\nThese examples have always been a big pain to maintain as they require\nknowldge about the BuildKite runners (for NDK/SDK access) and there is\nno active maintainer who has a ton of context in the Bazel+Android\nworld. While I think having the examples are nice, until the integration\nis made more user friendly and we have a maintainer who can vouch for\nit, I think they should be deleted.\n\nShould the examples be reintroduced, they must be proven to work with\nall active LTS versions of Bazel."
    },
    {
      "commit": "fd713d567904376e5a30b6324cfb71ca40d7d9bd",
      "tree": "409c72c899e608228527a76e00459a21de510cfc",
      "parents": [
        "2f07767939e28e1ab8151cdf6006407718734b24"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Tue Apr 28 14:12:59 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 21:12:59 2026 +0000"
      },
      "message": "Move `crate_universe` examples to test dir (#3981)\n\nThe examples are currently not very readable examples and are primarily\nused as integration tests. This change refactors them to leave space for\na more useful example to be added in the near future.\n\ncloses https://github.com/bazelbuild/rules_rust/issues/2842"
    },
    {
      "commit": "2f07767939e28e1ab8151cdf6006407718734b24",
      "tree": "82cd66b0b0e8abf4ad97e12e1591b6d776cca115",
      "parents": [
        "f31db8b6f124dd5eebdd0ed8de4daf20d4d9685f"
      ],
      "author": {
        "name": "Tamás Vajk",
        "email": "tamasvajk@github.com",
        "time": "Tue Apr 28 18:38:58 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 16:38:58 2026 +0000"
      },
      "message": "Include `compile_data` targets in `rustc_env` location expansion for `rust_test` (#4000)\n\n## Summary\n\nInclude `compile_data` targets in `rustc_env` location expansion for\n`rust_test`.\n\n## Problem\n\nIn `rust_test`, `$(location)` and `$(rootpath)` expansions in\n`rustc_env` only search `data` targets. When a `compile_data` target is\nreferenced in `rustc_env` — for example to pass the path of a generated\nfile via `env!()` and `include_str!()` — the expansion fails because\n`compile_data` targets are not in the search set.\n\nThis affects both `rust_test` code paths: the crate-wrapping path\n(testing an existing `rust_library`) and the standalone path (test with\nits own sources).\n\n## Fix\n\nAdd `compile_data` targets to the `data_paths` depset passed to\n`expand_dict_value_locations` in both `rust_test` code paths.\n\n---\n\n\u003e **Note:** This PR was largely AI-generated using Claude Code, with\nhuman review and guidance throughout.\n\n---------\n\nCo-authored-by: Tamas Vajk \u003ctamas.vajk@databricks.com\u003e"
    },
    {
      "commit": "f31db8b6f124dd5eebdd0ed8de4daf20d4d9685f",
      "tree": "5bf5ad976c4bd4cf862ae16262b80c3e1ed39783",
      "parents": [
        "6d8595965412b9ca37704ed53e289c4c4be2a0bf"
      ],
      "author": {
        "name": "Joseph Gette",
        "email": "jgettepost@gmail.com",
        "time": "Mon Apr 27 15:42:25 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 13:42:25 2026 +0000"
      },
      "message": "Don\u0027t leak default_shell_env into published CrateInfo.rustc_env (#3990)\n\nFixes #3989."
    },
    {
      "commit": "6d8595965412b9ca37704ed53e289c4c4be2a0bf",
      "tree": "9a9272aa919cd433be4d5bca9294e8ccc1836b8a",
      "parents": [
        "e890f0dba6e65ad22794e0ecec83ceea9ea7951d"
      ],
      "author": {
        "name": "James Sharpe",
        "email": "mail@jsharpe.net",
        "time": "Wed Apr 22 17:35:28 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 16:35:28 2026 +0000"
      },
      "message": "Remove non-deterministic files from OUT_DIR to fix TreeArtifact cache misses (#3973)\n\nRecursively remove files from OUT_DIR whose names appear in a known list\n(config.log, config.log.old, config.status, Makefile, Makefile.config,\nconfig.cache, commit_hash) or have a .d extension before Bazel captures\nOUT_DIR as a TreeArtifact.\n\nThese files embed sandbox-specific paths, timestamps, or volatile values\nthat make the TreeArtifact hash non-deterministic, causing cache misses\nfor all downstream rustc compilations on every action run.\n\n---------\n\nCo-authored-by: UebelAndre \u003cgithub@uebelandre.com\u003e"
    },
    {
      "commit": "e890f0dba6e65ad22794e0ecec83ceea9ea7951d",
      "tree": "39123c508715ae07fc382b50d9e956e61eb84ae7",
      "parents": [
        "9a137c3075b8bb04dd045d30705d0bacc332df5c"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Wed Apr 22 08:38:19 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 15:38:19 2026 +0000"
      },
      "message": "Release 0.70.0 (#3959)"
    },
    {
      "commit": "9a137c3075b8bb04dd045d30705d0bacc332df5c",
      "tree": "c54ed68df3fdb6b1d872f76bda05fa9254cc19b3",
      "parents": [
        "82506df3f31240f97194b2e9453022125eaa07f4"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Wed Apr 22 08:37:06 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 15:37:06 2026 +0000"
      },
      "message": "Updated `CrateInfo.data` documentation (#3978)\n\nUpdate documentation and add some testing for future clarification."
    },
    {
      "commit": "82506df3f31240f97194b2e9453022125eaa07f4",
      "tree": "ca071aa081133f242241d25596c39f1f5c9ed19e",
      "parents": [
        "325e942d6887a26d45a86d9ac39408c538abc22d"
      ],
      "author": {
        "name": "FabianWolff",
        "email": "16052130+FabianWolff@users.noreply.github.com",
        "time": "Tue Apr 21 14:53:11 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 12:53:11 2026 +0000"
      },
      "message": "Add `unstable_rust_features` attribute (#3963)\n\nThis attribute can be set to the label of a target that provides\n`UnstableRustFeaturesInfo`, which maps a label to a set of unstable\nfeatures allowed for that label. The intent is to provide a way to\ncentrally manage the use of unstable features, without having to use\n`-Zallow-features\u003d` manually in `rustc_flags` for every affected target.\n\nCo-authored-by: Krasimir Georgiev \u003ckrasimir@google.com\u003e"
    },
    {
      "commit": "325e942d6887a26d45a86d9ac39408c538abc22d",
      "tree": "0aae43992e04be72513eff501ac48480d3c08f7f",
      "parents": [
        "25fa202ff0809fb86ba1a14e61dc1e88a446e33f"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Mon Apr 20 13:18:16 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 20:18:16 2026 +0000"
      },
      "message": "Added Rust 1.95.0 (#3971)\n\nhttps://blog.rust-lang.org/2026/04/16/Rust-1.95.0/"
    },
    {
      "commit": "25fa202ff0809fb86ba1a14e61dc1e88a446e33f",
      "tree": "178a8daa7a05f4f55514defef4370fe16fc66d81",
      "parents": [
        "ad14c2b1ad51f8031779174be0097278b537414b"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Mon Apr 20 13:18:06 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 20:18:06 2026 +0000"
      },
      "message": "Delete `//cargo/settings:incompatible_runfiles_cargo_manifest_dir` (#3881)\n\nCloses https://github.com/bazelbuild/rules_rust/issues/2898"
    },
    {
      "commit": "ad14c2b1ad51f8031779174be0097278b537414b",
      "tree": "4a96bc2ac6b37bfd8e8e76c60f81101c0451640d",
      "parents": [
        "01821fade30f9f1991814e88e1178e8560f6445a"
      ],
      "author": {
        "name": "Jonathan",
        "email": "jonremy@users.noreply.github.com",
        "time": "Mon Apr 20 16:31:52 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 14:31:52 2026 +0000"
      },
      "message": "Fix parse_cargo_tree_output misclassifying dev-dependencies as host deps (#3976)\n\nFix `parse_cargo_tree_output` incorrectly classifying\n`[dev-dependencies]` as host dependencies when they follow\n`[build-dependencies]` for the same crate.\n\nThis causes platform-conditional features to leak across platforms in\nthe generated BUILD files. For instance, the `tokio` feature `taskdump`\nthat can only be enabled on linux could leak to other platforms.\n\nExample dependency tree that triggers the issue:\n```\n;my-crate v0.1.0 (/my-crate);;\n`-- ;tokio v1.49.0;bytes,full,taskdump;\n[build-dependencies]\n`-- ;anyhow v1.0.100;default,std;\n[dev-dependencies]\n`-- ;tokio-test v0.4.4;;\n    `-- ;tokio v1.49.0;bytes,full,taskdump; (*)\n```\n\nThis PR also updates surrounding code in `parse_cargo_tree_output`. Let\nme know if you\u0027d prefer a minimal fix instead."
    },
    {
      "commit": "01821fade30f9f1991814e88e1178e8560f6445a",
      "tree": "b2085c58bc853357e22f641006eccbf120705ab7",
      "parents": [
        "4028aa710820340fcdda481f43e4f28c510496f0"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Sun Apr 19 10:53:45 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 19 17:53:45 2026 +0000"
      },
      "message": "crate_universe release 0.18.0 (#3969)"
    },
    {
      "commit": "4028aa710820340fcdda481f43e4f28c510496f0",
      "tree": "506e52e657a60d3871f8dfa2ae48c356b0a401b0",
      "parents": [
        "ae1be23677cf3baccf00b48a0ea4cf8e0adc12a9"
      ],
      "author": {
        "name": "Boris Dolgov",
        "email": "boris@dolgov.name",
        "time": "Sun Apr 19 13:19:25 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 19 11:19:25 2026 +0000"
      },
      "message": "crate_universe: error on empty host triples in cargo tree resolver (#3979)\n\nWhen `supported_platform_triples` contained no platforms with host\ntools, `TreeResolver::execute_cargo_tree` would silently produce no\n`cargo tree` output, and `crate_universe` would generate BUILD files\nwith empty `crate_features` and no optional dependencies. Bail with an\nactionable error instead, pointing the user at adding Bazel\u0027s execution\nplatform triple to `supported_platform_triples`.\n\nFixes #3907"
    },
    {
      "commit": "ae1be23677cf3baccf00b48a0ea4cf8e0adc12a9",
      "tree": "ee5f524780360ef30df1530a9cfb531120925ac9",
      "parents": [
        "85007f4932e66ae67a42658235e38617f75628b5"
      ],
      "author": {
        "name": "Thomas Lam",
        "email": "thomaslam@canva.com",
        "time": "Sat Apr 18 04:38:09 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 17 20:38:09 2026 +0000"
      },
      "message": "cargo-bazel: fix binary targets of proc-macro crates using wrong dep attribute (#3975)\n\n## Problem\n\nWhen a crate has both a `rust_proc_macro` library target and\n`rust_binary` targets (e.g. development utilities shipped alongside the\nproc-macro), `make_rust_binary` unconditionally places the library in\n`deps`. However, rules_rust validates that proc-macro libraries must\nappear in `proc_macro_deps`, not `deps`. This causes analysis failures\nfor any such crate.\n\n## Solution\n\nIn `make_rust_binary`, detect whether the crate\u0027s library target is a\nproc-macro by checking if `Rule::ProcMacro(_)` is present in\n`krate.targets`. If it is, insert the library label into\n`proc_macro_deps` instead of `deps`.\n\n## Testing\n- `binary_of_proc_macro_crate_uses_proc_macro_deps`: verifies that the\ngenerated `rust_binary` has the `proc-macr`o lib in `proc_macro_deps`\nand not in `deps`.\n\n---------\n\nSigned-off-by: Thomas Lam \u003cthomaslam@canva.com\u003e"
    },
    {
      "commit": "85007f4932e66ae67a42658235e38617f75628b5",
      "tree": "87974f2fd6d41e447b96f0b990d38f409b01553f",
      "parents": [
        "eb280facda18a776fa3340ecd49e42243d67867b"
      ],
      "author": {
        "name": "Brian Duff",
        "email": "cairndubh@gmail.com",
        "time": "Thu Apr 16 15:34:00 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 20:34:00 2026 +0000"
      },
      "message": "Wire rust_objcopy into the generated sysroot action inputs (#3972)\n\n## Summary\n\n#3727 added a `rust_objcopy` attribute to `rust_toolchain`, a separate\n`rust-objcopy` filegroup, and automatic opt-in for Rust 1.84+/recent\nnightlies. But the glue to turn that attribute into a real action input\nis missing: `ctx.file.rust_objcopy` is stashed on `ToolchainInfo` and\nnever used again. It never flows through `_generate_sysroot` into\n`direct_files`, so it doesn\u0027t join `toolchain.all_files` and isn\u0027t\ndeclared as an input to the Rustc action.\n\nOn Linux/macOS with symlink-based sandboxing this is masked — rustc\nhappens to see the neighboring file in the unsandboxed `rules_rust`\nexternal repo. Under remote execution, Windows (file-copy sandbox), or\nstricter local sandboxes, rustc invokes `rust-objcopy` and fails:\n\n```\nerror: unable to run `rust-objcopy`: No such file or directory (os error 2)\n```\n\nTracking: #3307.\n\n## Fix\n\nMirror the `linker` handling in `_generate_sysroot`: symlink\n`rust_objcopy` into the sysroot at\n`lib/rustlib/\u003ctriple\u003e/bin/rust-objcopy` (where rustc looks) and append\nit to `direct_files` so it becomes a declared Rustc action input.\n\n## Verification\n\nPatched `rules_rust` via `local_path_override` in a minimal smoke\nworkspace using rustc 1.93.0 on aarch64-apple-darwin:\n\n- `bazel build -c opt //:hello` succeeds (opt-mode `process_wrapper`\nuses `-Cstrip\u003ddebuginfo`, which invokes rust-objcopy).\n- `bazel aquery \u0027mnemonic(\"Rustc\", //:hello)\u0027` now lists the sysroot\n`rust-objcopy` symlink as a declared input — it was absent before.\n\nBefore: no `rust-objcopy` entry in the Rustc action inputs.\nAfter:\n`bazel-out/.../rust_toolchain/lib/rustlib/aarch64-apple-darwin/bin/rust-objcopy`."
    },
    {
      "commit": "eb280facda18a776fa3340ecd49e42243d67867b",
      "tree": "aa515c1851e82e65856747656367a9ca0ccd1556",
      "parents": [
        "3357b18a155ce891a6558212f906f2d6f2b49f5f"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Apr 16 06:35:09 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 13:35:09 2026 +0000"
      },
      "message": "Update `rust_stdlib_filegroup` to detect `profiler_builtins` (#3958)\n\nThis change adds a `coverage_enabled` to `rust_toolchain` that should be\nused to identify if the toolchain supports coverage. This would allow\nrepositories which use MUSL to run `bazel coverage //...` without\nrunning into a linker error. The downside is that they will get no\ncoverage but this would already be the case due to the linker error.\nMore details on https://github.com/rust-lang/rust/issues/79556"
    },
    {
      "commit": "3357b18a155ce891a6558212f906f2d6f2b49f5f",
      "tree": "1aae9b3401c0d12c146f1d0392eefb33e96561eb",
      "parents": [
        "fa96218e9a060b002144592d29a0b1846e636266"
      ],
      "author": {
        "name": "Patrick Scott",
        "email": "patrick@pmscott.com",
        "time": "Thu Apr 16 08:59:00 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 12:59:00 2026 +0000"
      },
      "message": "Pass all environment variables to vendoring (#3964)\n\nI have been struggling for a long time with getting private registries\nand git repositories to work with vendoring. CARGO_REGISTR* is currently\nbroken due to a typo. Private git repositories don\u0027t work because the\nssh auth socket is not forwarded. And custom .ssh/config blow up if all\nenv variables referenced in the config are not forwarded.\n\nThere is no great way to forward all the right environment variables.\nThis does not appear to affect repinning directly in bzlmod."
    },
    {
      "commit": "fa96218e9a060b002144592d29a0b1846e636266",
      "tree": "dce0d1d0c26af35a550334b1649854a1aeab8fb9",
      "parents": [
        "278d31e46d6712f8a46e01e6edc29d218b6ede0c"
      ],
      "author": {
        "name": "Adin Cebic",
        "email": "cebic.ad@gmail.com",
        "time": "Wed Apr 15 21:04:43 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 19:04:43 2026 +0000"
      },
      "message": "Fix wasm staticlib extensions (#3968)\n\n`rust_static_library` targets fail for wasm-style platform mappings\nwhose `staticlib_ext` is empty.\nThis became visible after\nhttps://github.com/bazelbuild/rules_rust/pull/3864 changed the allocator\nshim target to use `rust_static_library`. When building that target for\nthe wasm platform, rules_rust computes:\n\n```\n  crate_type \u003d \"staticlib\"\n  staticlib_ext \u003d \"\"\n```\n\n`determine_lib_name` treats the empty extension as invalid and fails\nwith:\n\n```\nUnknown crate_type: staticlib\n```\n\nStatic library outputs for these wasm/WASI-style targets should use\narchive output names, e.g. libfoo.a. Binary and dylib outputs can\ncontinue using .wasm.\n\nThis updates the wasm-style staticlib mappings to .a for:\n\n- threads\n- unknown\n- wasi\n- wasip1\n- wasip2\n\nThis is easily reproducible from the rules_rust repository, before this\nchange:\n\n```\nbazel build --platforms\u003d//rust/platform:wasm32 //ffi/rs/allocator_library:allocator_library\n```\n\nfails during analysis with:\n\n```\n  Unknown crate_type: staticlib\n```\n\ncloses https://github.com/bazelbuild/rules_rust/issues/3894"
    },
    {
      "commit": "278d31e46d6712f8a46e01e6edc29d218b6ede0c",
      "tree": "e0ee1a9cf8f666ee8d6e7eddb25889f45aaca222",
      "parents": [
        "5d1be3727f4a927a4502bc801c5cb9c6e6448be3"
      ],
      "author": {
        "name": "Menny Even Danan",
        "email": "menny@evendanan.net",
        "time": "Wed Apr 15 13:18:29 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 17:18:29 2026 +0000"
      },
      "message": "Fix crates_repository cache invalidation on Bazel 8 (#3967)\n\n## Problem\nIn Bazel 8, `--incompatible_no_implicit_watch_label` defaults to `true`\n(bazelbuild/bazel#23861). This means `repository_ctx.path(label)` no\nlonger implicitly watches the resolved file for changes.\n\n`crates_repository` resolves its `cargo_lockfile`, `lockfile`, and\n`manifests` inputs via `repository_ctx.path(label)` but never explicitly\ncalls `repository_ctx.watch()` on them. As a result, when these files\nchange on disk, Bazel doesn\u0027t know it needs to re-fetch the repository —\nthe generated `defs.bzl` becomes stale, causing errors like:\n\n```\n      Error in fail: Tried to get all_crate_deps for package \u003cname\u003e but that package had no Cargo.toml file\n```\n\nThis is especially painful in setups where `crates_repository` inputs\ncome from another external repository (e.g `local_repository`) with a\nlong-running Bazel server. CI is unaffected because it always starts\nwith clean state. The only workaround today is `bazel clean` or `bazel\nsync --only\u003d\u003crepo\u003e`.\n\n## Fix\nAdd explicit `repository_ctx.watch()` calls for `cargo_lockfile`,\n`lockfile` (optional, guarded by `if lockfiles.bazel`), and each entry\nin `manifests`, immediately after `get_lockfiles()` returns in\n`_crates_repository_impl`.\n\n## Testing\n\nVerified in a large monorepo (Bazel 8.6.0, rules_rust 0.66.0) with a\nnested workspace where `crates_repository` inputs come from a\n`local_repository`. Before the fix, changing `Cargo.toml` or lock files\nrequired `bazel clean` to pick up changes. After the fix, Bazel\nautomatically re-fetches the crate repositories.\n\n## Related\n- bazelbuild/rules_rust#2125 — related lockfile hash mismatch in nested\nworkspaces\n- https://github.com/bazelbuild/bazel/issues/23861 — the Bazel flag\nchange that caused this"
    },
    {
      "commit": "5d1be3727f4a927a4502bc801c5cb9c6e6448be3",
      "tree": "1014404482613c2ba849cfe3c5b0f0c9dfd93444",
      "parents": [
        "19beae81b7b97b2bf4135f9f2f1a6f63477adde2"
      ],
      "author": {
        "name": "Will Stranton",
        "email": "2659963+willstranton@users.noreply.github.com",
        "time": "Wed Apr 15 17:15:57 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 17:15:57 2026 +0000"
      },
      "message": "Replace `new_git_repository` with `git_repository` (#3965)\n\nThe repository rule `new_git_repository` has been an alias of\n`git_repository` since Bazel 6.0.0:\n\n\nhttps://github.com/bazelbuild/bazel/blob/6.0.0/tools/build_defs/repo/git.bzl#L190\n\nRecently, a change was made to make use of `new_git_repository` fail -\nhttps://github.com/bazelbuild/bazel/commit/71160cb619b5bfeb89c91fee53bb044438ee9b3f\n\nUsers should use `git_repository` instead, which this change does. The\nchange should be a no-op for Bazel \u003e\u003d 6.0.0"
    },
    {
      "commit": "19beae81b7b97b2bf4135f9f2f1a6f63477adde2",
      "tree": "2d14709063e7f6ace44de8d04d7e5e82fa3ecba0",
      "parents": [
        "22f7dbb01e7add5dbd78c3782ec310d8ccf43333"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Tue Apr 14 04:39:17 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 11:39:17 2026 +0000"
      },
      "message": "Add `--rust-target` to bindgen invocation (#3955)"
    },
    {
      "commit": "22f7dbb01e7add5dbd78c3782ec310d8ccf43333",
      "tree": "ca799462e3b090e54f663a9392bbad1d7482bd6b",
      "parents": [
        "0e95c87ca8ea1d9dd762b7fde7ebf4f62d5a7924"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Tue Apr 14 03:50:30 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 10:50:30 2026 +0000"
      },
      "message": "Added `iso_date` and `channel` to `rust_toolchain`. (#3957)\n\nThis change is a slight deviation from the repository interface but that\nis subject to change whenever WORKSPACE support is dropped. Instead of\n`version` representing both a stable version or a nightly/beta channel\nwith ISO date, version always represents the reported version of `rustc`\nwhich even nightly/beta toolchains will have. Users who care about\nnightly behavior should use the `channel` attribute and can make further\ninferences by `iso_date` if they need to know if they are using a\nversion before or after a particular commit."
    },
    {
      "commit": "0e95c87ca8ea1d9dd762b7fde7ebf4f62d5a7924",
      "tree": "5ed2e0ed68add77a0eb68ec5c5b19be7c33edeeb",
      "parents": [
        "0a59de5782867bf05d1e335ea031d327921db8b5"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Apr 09 21:07:32 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 10 04:07:32 2026 +0000"
      },
      "message": "Remap path prefixes for canonicalized paths (#3903)\n\ncloses https://github.com/bazelbuild/rules_rust/issues/1530"
    },
    {
      "commit": "0a59de5782867bf05d1e335ea031d327921db8b5",
      "tree": "99f8bcba1965474f15ff9a51294c294d318485c7",
      "parents": [
        "ee57fdc82450c761262dea8bab70a982a8a06ea4"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Wed Apr 08 23:44:02 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 09 06:44:02 2026 +0000"
      },
      "message": "Fix missing line coverage (#3956)\n\ncloses https://github.com/bazelbuild/rules_rust/issues/3948"
    },
    {
      "commit": "ee57fdc82450c761262dea8bab70a982a8a06ea4",
      "tree": "48b24dea879af3647ad1ad77252e6e5296c81f32",
      "parents": [
        "dc9ca99ad052f6adc4dba853af9e77a9e4cf660c"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Wed Apr 08 12:19:38 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 08 19:19:38 2026 +0000"
      },
      "message": "Revert \"Pin to bazel 8.4.2 (#3804)\" (#3867)\n\nThis change un-restricts the Bazel version which today means we will be\ntesting against Bazel 9"
    },
    {
      "commit": "dc9ca99ad052f6adc4dba853af9e77a9e4cf660c",
      "tree": "028ab4edd10ec8b03b0abb6aebcf053dd2da345d",
      "parents": [
        "90a19fabf4eafff8f1d388c5c3539bc05a01534e"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Wed Apr 08 03:59:50 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 08 10:59:50 2026 +0000"
      },
      "message": "Added `version` to `rust_toolchain` (#3952)"
    },
    {
      "commit": "90a19fabf4eafff8f1d388c5c3539bc05a01534e",
      "tree": "43e21181a34b6a3e83a83cbd25bc148e432191f8",
      "parents": [
        "8c66239298b290c680646d205c0b6905b3fc5d88"
      ],
      "author": {
        "name": "Gregory Anders",
        "email": "github@gpanders.com",
        "time": "Tue Apr 07 16:24:49 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 21:24:49 2026 +0000"
      },
      "message": "Support exec_compatible_with for Cargo build scripts (#3951)\n\nFixes: https://github.com/bazelbuild/rules_rust/issues/3854"
    },
    {
      "commit": "8c66239298b290c680646d205c0b6905b3fc5d88",
      "tree": "5c98ebf7c2a6fb3885b2c5827109e06fd94c6220",
      "parents": [
        "5bad8244a11cda414adec7cc9ad3dd83a2a75bb2"
      ],
      "author": {
        "name": "Patrick Scott",
        "email": "patrick@pmscott.com",
        "time": "Tue Apr 07 11:23:06 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 15:23:06 2026 +0000"
      },
      "message": "Move module_ctx.watch to after lockfile repin (#3932)\n\nIn bazel 9, module_ctx.read verifies digests for files already read. If\nrepin is requested, the content of the lockfile may change and cause\nbazel to hard crash.\n\nrelates to: https://github.com/bazelbuild/bazel/issues/29114"
    },
    {
      "commit": "5bad8244a11cda414adec7cc9ad3dd83a2a75bb2",
      "tree": "84c37cce063d9b43c47152a3883f45d17a879837",
      "parents": [
        "2bad175db4501b95d970d081b3f01d2bd0ea8f4d"
      ],
      "author": {
        "name": "Stefan Bucur",
        "email": "281483+stefanbucur@users.noreply.github.com",
        "time": "Tue Apr 07 09:17:33 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 13:17:33 2026 +0000"
      },
      "message": "Add avr-none triple support (#3950)\n\n**Problem**: The `triple()` parser in `rust/platform/triple.bzl` fails\non `avr-none` because it only has two components separated by `-`, which\ndoes not match the expected `arch-vendor-system[-abi]` format. The\nfunction hits the `fail()` guard at the bottom that requires at least 3\ncomponents.\n\n**Solution**: Add a special case for `avr-none` alongside the existing\nones for `wasm32v1-none` and the ARM Thumb targets.\n\n**Additional context**: `avr-none` is the standard Rust target triple\nfor AVR bare-metal targets (ATtiny, ATmega, AVR-DA series, etc.).\nWithout this fix, any project using rules_rust with an AVR toolchain\n(even a custom one) that sets the target triple to `avr-none` will fail\nduring toolchain resolution."
    },
    {
      "commit": "2bad175db4501b95d970d081b3f01d2bd0ea8f4d",
      "tree": "d666ee93e415c0c8872d1be19aa631d4d9903e24",
      "parents": [
        "e5869a82fb95c1c34010eb34a71d9270453db89c"
      ],
      "author": {
        "name": "Mark Karpov",
        "email": "markkarpov92@gmail.com",
        "time": "Fri Apr 03 21:01:45 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 19:01:45 2026 +0000"
      },
      "message": "Update cargo_toml in cargo/3rdparty (#3942)\n\nDone via `CARGO_BAZEL_REPIN\u003d1 bazel run //cargo/3rdparty:crates_vendor`.\n\nClose #3721."
    },
    {
      "commit": "e5869a82fb95c1c34010eb34a71d9270453db89c",
      "tree": "e3a0a1cae5fc741806d9f5d228f04db155d08d25",
      "parents": [
        "67b69380116a3ee93157b9f70adfc621189ea952"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Fri Apr 03 05:06:35 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 12:06:35 2026 +0000"
      },
      "message": "Fix `cargo_build_script` tree artifact failures (#3945)\n\nAfter `drain_runfiles_dir` removes symlinks and retains only files\nmatching `filename_suffixes_to_retain` (default: `.lib`, `.so`), targets\nwith no matching files were left with a directory tree of empty\nsubdirectories. The existing `.empty` file guard used a shallow\n`read_dir().count() \u003d\u003d 0` check, which returned non-zero because empty\nnested directories (e.g. `workspace_name/pkg/...`) still existed -- even\nthough remote execution tree artifacts only track files, not\ndirectories. This adds a recursive `dir_contains_files` helper, moves\nthe `.empty` guard into the shared `drain_runfiles_dir` method (covering\nboth Unix and Windows paths), and recursively cleans up empty ancestor\ndirectories during drain. The same `.empty` guard is also applied to\n`OUT_DIR` in `bin.rs`."
    },
    {
      "commit": "67b69380116a3ee93157b9f70adfc621189ea952",
      "tree": "82b82c077b6368a85916aa0973ad50ef7fca1d65",
      "parents": [
        "c5958b9d0e2b1ece914c1063458518bd9f666323"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Apr 02 20:48:11 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 03:48:11 2026 +0000"
      },
      "message": "Pull in various Windows improvements (#3940)\n\ncloses https://github.com/bazelbuild/rules_rust/pull/3794"
    },
    {
      "commit": "c5958b9d0e2b1ece914c1063458518bd9f666323",
      "tree": "ad59f73b8fb3775401e32b4b835a0ef4355e6f70",
      "parents": [
        "81ca8122f5223f81aac42fdebd3a871e9e4237fa"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Apr 02 14:18:17 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 02 21:18:17 2026 +0000"
      },
      "message": "Added Rust 1.94.1 (#3939)\n\nhttps://blog.rust-lang.org/2026/03/26/1.94.1-release/"
    },
    {
      "commit": "81ca8122f5223f81aac42fdebd3a871e9e4237fa",
      "tree": "084b6accddff36af3b18ef98c1ed5149b5a95f90",
      "parents": [
        "65c96a39b4df20febc3e62ba78c6c27ebfc628b4"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Apr 02 14:14:52 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 02 21:14:52 2026 +0000"
      },
      "message": "Update coverage to work with Bazel 9 (#3944)\n\nWhen `--experimental_split_coverage_postprocessing` is enabled (default\nin Bazel 9), Bazel no longer sets `RUNFILES_DIR` during coverage\ncollection. The coverage script now treats `RUNFILES_DIR` as optional --\nwhen absent, it resolves `llvm-cov`, `llvm-profdata`, and the test\nbinary directly from the exec root using `COVERAGE_DIR` to derive the\nconfiguration bin directory via a new `config_bin_dir` helper."
    },
    {
      "commit": "65c96a39b4df20febc3e62ba78c6c27ebfc628b4",
      "tree": "73b3aa97528bf4f754da3031a2f6466debc25e0b",
      "parents": [
        "ca4915c0210bcd240152a5333ecb24d266bda144"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Apr 02 14:08:02 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 02 21:08:02 2026 +0000"
      },
      "message": "Add missing attributes to `rust` module extension (#3947)"
    },
    {
      "commit": "ca4915c0210bcd240152a5333ecb24d266bda144",
      "tree": "49c556448a1bda48f769be2c6e303953d4633481",
      "parents": [
        "e6ac9d51cc3d5d876ecb36bdb1924c2e04fe894a"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Mon Mar 30 06:55:33 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 30 13:55:33 2026 +0000"
      },
      "message": "Runfiles release 0.2.0 (#3938)\n\ncloses https://github.com/bazelbuild/rules_rust/issues/1592"
    },
    {
      "commit": "e6ac9d51cc3d5d876ecb36bdb1924c2e04fe894a",
      "tree": "eccfc82d6af7b255ce0bbe52305ed7ffb5ee704a",
      "parents": [
        "4be4fbecf005144710d2d29ef4a38bafa2134a0d"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Sun Mar 29 18:00:39 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 30 01:00:39 2026 +0000"
      },
      "message": "Fix determinism workflow (#3933)\n\nThe workflow currently is broken due to\nhttps://github.com/bazelbuild/rules_rust/pull/3904 being incomplete.\nThis fixes it."
    },
    {
      "commit": "4be4fbecf005144710d2d29ef4a38bafa2134a0d",
      "tree": "fce5f9c01f54df0b0b499c2479dcfcaf90abeb80",
      "parents": [
        "71aae0789f2f0a6e7580aae43de909a536b7c4c1"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Sun Mar 29 14:13:03 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 29 21:13:03 2026 +0000"
      },
      "message": "Update rust-analyzer tool dependencies (#3935)"
    },
    {
      "commit": "71aae0789f2f0a6e7580aae43de909a536b7c4c1",
      "tree": "896acae4bbbd92cc7ac10585c102cbe69d481f2b",
      "parents": [
        "002cc0667a337cb57908fcd45ceb9b71c9f30c6b"
      ],
      "author": {
        "name": "Mark Karpov",
        "email": "markkarpov92@gmail.com",
        "time": "Sun Mar 29 22:45:10 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 29 20:45:10 2026 +0000"
      },
      "message": "Update `cargo_toml` to 0.22.1 and `toml` to 0.9 (#3914)\n\nThe code in `src/splicing.rs` uses `toml::Value` types that were\nincompatible—the workspace used `toml` 0.8.x but cargo_toml 0.22.3\ndepends on `toml` 0.9.x, creating a type mismatch. Therefore,\n`Cargo.toml` was updated to use to use `toml \u003d \"0.9\"` instead of\n`\"0.8.21\"`.\n\nClose #3721.\n\n---------\n\nCo-authored-by: UebelAndre \u003cgithub@uebelandre.com\u003e"
    },
    {
      "commit": "002cc0667a337cb57908fcd45ceb9b71c9f30c6b",
      "tree": "dc39ccb60ba6129c592fec8415fe0fe69a61c511",
      "parents": [
        "fc00eac9386cdb31f048ea40349f2fddd79286d3"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Sun Mar 29 13:09:21 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 29 20:09:21 2026 +0000"
      },
      "message": "Update crate_universe to run Buildifier on stdin (#3912)\n\ncloses https://github.com/bazelbuild/rules_rust/issues/2972"
    },
    {
      "commit": "fc00eac9386cdb31f048ea40349f2fddd79286d3",
      "tree": "6bf01e8d3afa4153d3e22f5d57db815a5fb852ab",
      "parents": [
        "43b039a4506ed5718f2fba9b83978f65c8d18721"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Sun Mar 29 11:42:02 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 29 18:42:02 2026 +0000"
      },
      "message": "Avoid adding data (vs compile_data) to Rustc actions (#3916)\n\nrelates to https://github.com/bazelbuild/rules_rust/issues/3915\ncloses https://github.com/bazelbuild/rules_rust/issues/3609"
    },
    {
      "commit": "43b039a4506ed5718f2fba9b83978f65c8d18721",
      "tree": "59b2f7308866810a6daed8f720ecb79a6cd251d8",
      "parents": [
        "2088b06b9413d4cfc9178c2fcdc6d1f560d0da67"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Sun Mar 29 11:21:40 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 29 18:21:40 2026 +0000"
      },
      "message": "Added crates.io publishing for the Runfiles library (#3913)\n\ncloses https://github.com/bazelbuild/rules_rust/issues/1592\ncloses https://github.com/bazelbuild/rules_rust/pull/3830"
    },
    {
      "commit": "2088b06b9413d4cfc9178c2fcdc6d1f560d0da67",
      "tree": "bfb139155af80ca11a635a499837b765ae0290c7",
      "parents": [
        "d674bd6c0ef5ccaf4ab20e75de85b502efae1328"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Sun Mar 29 10:51:45 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 29 17:51:45 2026 +0000"
      },
      "message": "Add missing runfiles to pyo3 targets (#3917)\n\nRelates to https://github.com/bazelbuild/rules_rust/issues/3902 but I\nthink it\u0027s still correct to collect all runfiles for the underlying\nlibrary target."
    },
    {
      "commit": "d674bd6c0ef5ccaf4ab20e75de85b502efae1328",
      "tree": "ce4964b3a558954d964f5d462a187e306116a11c",
      "parents": [
        "07634cc6a7a0b436ca3b4a53cc34e143438ac058"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Sun Mar 29 10:26:31 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 29 17:26:31 2026 +0000"
      },
      "message": "Bump MSRV to 1.85.0 (#3936)\n\nThis is to introduce the 2024 edition which will help with dependency\nmaintenance."
    },
    {
      "commit": "07634cc6a7a0b436ca3b4a53cc34e143438ac058",
      "tree": "fc172740bf1062f8b7d72bb5f9ffcdb4bb575482",
      "parents": [
        "d84cc492372526bf838889f3c74afdd4ef8a66ab"
      ],
      "author": {
        "name": "Markus Hofbauer",
        "email": "markus.hofbauer@flyzipline.com",
        "time": "Thu Mar 26 13:40:59 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 26 12:40:59 2026 +0000"
      },
      "message": "docs: Fix broken doc links (#3931)"
    },
    {
      "commit": "d84cc492372526bf838889f3c74afdd4ef8a66ab",
      "tree": "a6d6a79c78c461daf91a834f998c21058e007d9c",
      "parents": [
        "b1f5672e1c8bd86fbfe52a1a6c98ce87604d45ee"
      ],
      "author": {
        "name": "Markus Hofbauer",
        "email": "markus.hofbauer@flyzipline.com",
        "time": "Thu Mar 26 13:40:32 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 26 12:40:32 2026 +0000"
      },
      "message": "Add patches making rust analyzer crates deterministic (#3929)\n\nKind of related to https://github.com/bazelbuild/rules_rust/issues/3547\nbut not directly a `-sys` crate. Regardless, these crates are non\ndeterministic and these patches make them deterministic."
    },
    {
      "commit": "b1f5672e1c8bd86fbfe52a1a6c98ce87604d45ee",
      "tree": "c54099e9cf124f93542b9b6d76c73089452d574e",
      "parents": [
        "3f4f4317b8187a033f9a67524c0c9906881ba7d3"
      ],
      "author": {
        "name": "Markus Hofbauer",
        "email": "markus.hofbauer@flyzipline.com",
        "time": "Wed Mar 25 20:11:23 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 25 19:11:23 2026 +0000"
      },
      "message": "chore: pre-commit autoupdate (#3930)\n\nUpdate pre-commit hooks and apply autofixes made by the typos hook"
    },
    {
      "commit": "3f4f4317b8187a033f9a67524c0c9906881ba7d3",
      "tree": "096b28e154b77f2cd63ef642f63d28ddadf62666",
      "parents": [
        "487ea0e214cab472e365e05606dbe23acda89436"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Mon Mar 23 16:35:43 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 23 23:35:43 2026 +0000"
      },
      "message": "Enable coverage job in CI for RBE (#2005)"
    },
    {
      "commit": "487ea0e214cab472e365e05606dbe23acda89436",
      "tree": "c15c5a5c8b97d6bffa199eccaa7ed0c4926e002c",
      "parents": [
        "a9565fface9c522eb8e836a0fb55fb7548fed9f9"
      ],
      "author": {
        "name": "Fredrik Medley",
        "email": "moroten@users.noreply.github.com",
        "time": "Mon Mar 23 20:54:58 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 23 19:54:58 2026 +0000"
      },
      "message": "Support escaped runfile paths (#3910)\n\nAdd support for spaces, newlines and backslashes in paths written to the\nrunfiles MANIFEST file."
    },
    {
      "commit": "a9565fface9c522eb8e836a0fb55fb7548fed9f9",
      "tree": "6345b6efe9efcecfc89381a428560e6c658eeb07",
      "parents": [
        "274309fe3f719e8e7ab407481deb2a14c912d6a8"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Sun Mar 22 18:21:12 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 23 01:21:12 2026 +0000"
      },
      "message": "Make test binary names predictable (#3899)\n\nThis PR makes `rust_test` binary names and output paths deterministic by\nremoving the hash from the test compilation output directory. Instead of\nputting test outputs in a hashed subdirectory (e.g.\n`my/package/test-\u003chash\u003e/`), the rules now use a predictable naming\nscheme (e.g. a `_test` suffix on the crate name) so test binaries and\ntheir outputs have stable, reproducible paths.\n\ncloses https://github.com/bazelbuild/rules_rust/issues/2827"
    },
    {
      "commit": "274309fe3f719e8e7ab407481deb2a14c912d6a8",
      "tree": "e8573f13e16f6ece87979084963f73aa8bbac92a",
      "parents": [
        "f1c294d3aeb5a9e7c162fac4147f7e68189dc167"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Sun Mar 22 16:20:03 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 22 23:20:03 2026 +0000"
      },
      "message": "Move `//cargo` specific tests to `//cargo/tests` (#3874)\n\nThis also includes minor updates to account for the new placement of\ndata files."
    },
    {
      "commit": "f1c294d3aeb5a9e7c162fac4147f7e68189dc167",
      "tree": "94cedad451e1c5aa974995d04705e71c299fca80",
      "parents": [
        "ba6f4ebd0fc1d64b56184ec95e79b3701efa91b7"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Sun Mar 22 12:26:03 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 22 19:26:03 2026 +0000"
      },
      "message": "Port some bash scripts to pure shell (#3888)\n\nUpdate some bash scripts to pure shell to ensure more consistent\nbehavior on Posix systems."
    },
    {
      "commit": "ba6f4ebd0fc1d64b56184ec95e79b3701efa91b7",
      "tree": "e4775b638924175a18c1d16efbccdff4e4a021df",
      "parents": [
        "e226874efa081f5c39c32fffaa2859ad3393ad39"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Sun Mar 22 06:36:57 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 22 13:36:57 2026 +0000"
      },
      "message": "Delete `rules_rust_protobuf` (#3873)\n\ncloses https://github.com/bazelbuild/rules_rust/issues/3858"
    },
    {
      "commit": "e226874efa081f5c39c32fffaa2859ad3393ad39",
      "tree": "1feb49615c58f5f69e18b94714fd207808db11ed",
      "parents": [
        "a60584b1586d4cf2b41b477a7e1b4768cf3bdd52"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Sun Mar 22 04:38:35 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 22 11:38:35 2026 +0000"
      },
      "message": "Update `cross` for `crate_universe` builds (#3878)"
    },
    {
      "commit": "a60584b1586d4cf2b41b477a7e1b4768cf3bdd52",
      "tree": "a14edc084d08b4960a1e90cd4e4e964dee720185",
      "parents": [
        "ec3e912eeff795f16c4f14efcfe0186d92bc997a"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Sun Mar 22 04:38:03 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 22 11:38:03 2026 +0000"
      },
      "message": "Delete \"dummy\" wasm cc_toolchain (#3892)\n\nAfter https://github.com/bazelbuild/rules_rust/pull/3665 there should no\nlonger be a need to register a fake cc_toolchain to target wasm\nplatforms.\n\ncloses https://github.com/bazelbuild/rules_rust/issues/1601"
    },
    {
      "commit": "ec3e912eeff795f16c4f14efcfe0186d92bc997a",
      "tree": "b6a48395f389ec310b518e6911c81532618edc8e",
      "parents": [
        "f9b8d90e182d010e879f6d80b4038d325653c726"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Sun Mar 22 04:34:58 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 22 11:34:58 2026 +0000"
      },
      "message": "Update `pyo3` dependencies (#3898)\n\ncloses https://github.com/bazelbuild/rules_rust/pull/3897"
    },
    {
      "commit": "f9b8d90e182d010e879f6d80b4038d325653c726",
      "tree": "1f9e18bcdcbd84ef4986342cf202f0b8616bdead",
      "parents": [
        "76abd40167aa8a1a9ef399783c4c610b9c6331a6"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Sun Mar 22 04:33:39 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 22 11:33:39 2026 +0000"
      },
      "message": "Fix reproducible warning in `crates_repository` (#3904)\n\nThis fixes a noisy warning for users of `crates_repository`:\n```\nDEBUG: Rule \u0027crate_index\u0027 indicated that a canonical reproducible form can be obtained by nodifying arguments _action_listener \u003d \u003cunknown object com.google.devtools.build.lib.packages.Attribute$LabelListLateBoundDefault\u003e, _config_dependencies \u003d [], _configure \u003d False, _original_name \u003d \"\"\n```"
    },
    {
      "commit": "76abd40167aa8a1a9ef399783c4c610b9c6331a6",
      "tree": "28c96e8f952fc238e99f623014a2c454cb9be58c",
      "parents": [
        "f5b713578a97eca01c449dc211a801c48f2c5ee3"
      ],
      "author": {
        "name": "Nicolas Mattia",
        "email": "nicolas@nmattia.com",
        "time": "Thu Mar 19 17:47:11 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 19 16:47:11 2026 +0000"
      },
      "message": "Add support for package_alias in crate.spec (bzlmod) (#3743)\n\nCloses #3742 \n\nThis makes using different versions of the same crate easier."
    },
    {
      "commit": "f5b713578a97eca01c449dc211a801c48f2c5ee3",
      "tree": "1bd7d0ea615720402ec0b59ced30e62407374fb8",
      "parents": [
        "e4a4fb6a4565a2e1a30ef6fe3e2a523920619290"
      ],
      "author": {
        "name": "Derek Cormier",
        "email": "derek.m.cormier@gmail.com",
        "time": "Tue Mar 10 13:11:52 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 10 20:11:52 2026 +0000"
      },
      "message": "chore: use publish to bcr reusable workflow for bcr mirroring (#3775)\n\nMigrate rules_rust off of the deprecated Publish to BCR GitHub app to\nthe newer reusable workflow. The reusable workflow has a number of\nbenefits over the app:\n* It supports build attestations which can be enabled at a later time.\n* Gives finer grain control over running the publish process—if it\nfails, you can manually re-run the workflow.\n* It\u0027s more secure—you control the PAT rather than giving the app write\npermissions.\n\nSome actions that maintainer for this ruleset will need to take:\n* [x] Add a classic PAT named `BCR_PUBLISH_TOKEN` for the repository or\norg (see\n[steps](https://github.com/bazel-contrib/publish-to-bcr?tab\u003dreadme-ov-file#setup)).\nI recommend creating a \"machine\" user for bazelbuild and generating a\nclassic PAT for that user rather than using an individual\u0027s PAT. For\nexample, in bazel-contrib we use the\n[bazel-contrib-bot](https://github.com/bazel-contrib-bot) user to do\npublishes.\n* [ ] Uninstall the GitHub app for this repo.\n* [ ] Test a publish after landing, or wait for the next release. I\u0027ll\nbe available to help debug any issues that come up if the workflow\nfails.\n\n---------\n\nCo-authored-by: UebelAndre \u003cgithub@uebelandre.com\u003e"
    },
    {
      "commit": "e4a4fb6a4565a2e1a30ef6fe3e2a523920619290",
      "tree": "3272dc9ba74e7ff7e476d9248b5358aae0e897e2",
      "parents": [
        "e37a71f614ef5ffab38ac482abfc6782d11ba144"
      ],
      "author": {
        "name": "Keith Smiley",
        "email": "keithbsmiley@gmail.com",
        "time": "Mon Mar 09 15:01:55 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 09 22:01:55 2026 +0000"
      },
      "message": "Add PWD prefixing for -internal-isystem (#3895)\n\nThis is a follow up to 0a4285119b21c943560c5aa9dbad3b5ca51f2b2d for\nanother flag. This one is slightly different since it is wrapped with\n`-Xclang` as forwarding args."
    },
    {
      "commit": "e37a71f614ef5ffab38ac482abfc6782d11ba144",
      "tree": "3ac711f0ba15f93975e8367b5f9e824c2643ccc5",
      "parents": [
        "6281d27f3ffdb826df90db25c1dc66a198345d64"
      ],
      "author": {
        "name": "Piotr Sikora",
        "email": "code@piotrsikora.dev",
        "time": "Sat Mar 07 08:34:15 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 07 13:34:15 2026 +0000"
      },
      "message": "Remove rust_binary(out_binary\u003dTrue) hack. (#3891)\n\nrust_shared_library() should be used instead.\n\ncloses https://github.com/bazelbuild/rules_rust/pull/3814\n\nSigned-off-by: Piotr Sikora \u003ccode@piotrsikora.dev\u003e"
    },
    {
      "commit": "6281d27f3ffdb826df90db25c1dc66a198345d64",
      "tree": "05c3d7b447fddbc52a5645b11392b5d05e2543a9",
      "parents": [
        "791842f1793c0cab0164457305d783852e3f27aa"
      ],
      "author": {
        "name": "Ralf Anton Beier",
        "email": "ralf_beier@me.com",
        "time": "Sat Mar 07 06:45:15 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 07 05:45:15 2026 +0000"
      },
      "message": "Add missing rustc binaries to rustc_lib filegroup (#3727)\n\n## Summary\n\nAdd `rust-objcopy` and `wasm-component-ld` to the `rustc_lib` filegroup\nin `repository_utils.bzl`. These binaries are present in recent rustc\ndistributions (wasm-component-ld since 1.82.0, rust-objcopy since\n1.84.0) but were not previously declared.\n\n### Changes\n\n- **Binary Declaration**: Add `rust-objcopy{binary_ext}` and\n`wasm-component-ld{binary_ext}` to the rustc_lib filegroup glob patterns\n\n### Context\n\nOn Windows, Bazel copies files into the sandbox rather than symlinking,\nso only explicitly listed files are available. This caused wasm32-wasip2\nbuilds to fail with `linker \u0027wasm-component-ld.exe\u0027 not found`.\n\nOn Linux/macOS, the issue was masked by symlink-based sandboxing which\nallowed rustc to access unlisted files in the same directory.\n\n---------\n\nCo-authored-by: UebelAndre \u003cgithub@uebelandre.com\u003e"
    },
    {
      "commit": "791842f1793c0cab0164457305d783852e3f27aa",
      "tree": "785e7de8b947fa6df266980b37333cd96b596f83",
      "parents": [
        "8fd5c0fc1daea902b7bc618d373338e9a8e97b85"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Fri Mar 06 14:41:47 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 06 22:41:47 2026 +0000"
      },
      "message": "Address buildifier issues (#3887)"
    },
    {
      "commit": "8fd5c0fc1daea902b7bc618d373338e9a8e97b85",
      "tree": "e36fd896e341eea7bc2e9584a84d7d1aa97ba6b4",
      "parents": [
        "43f0f76e956bdac94389046847ed44a87deeffa4"
      ],
      "author": {
        "name": "Piotr Sikora",
        "email": "code@piotrsikora.dev",
        "time": "Thu Mar 05 18:18:32 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 05 23:18:32 2026 +0000"
      },
      "message": "Update default Rust versions to 1.94.0 / nightly-2026-03-05. (#3886)\n\nSigned-off-by: Piotr Sikora \u003ccode@piotrsikora.dev\u003e"
    },
    {
      "commit": "43f0f76e956bdac94389046847ed44a87deeffa4",
      "tree": "ce1d1d1862742fb0dc5622ed843d1ba873b967c0",
      "parents": [
        "0a4285119b21c943560c5aa9dbad3b5ca51f2b2d"
      ],
      "author": {
        "name": "sebas-zip",
        "email": "sebastian.sovero@flyzipline.com",
        "time": "Wed Mar 04 17:02:09 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 05 01:02:09 2026 +0000"
      },
      "message": "cargo_build_script_runner: parse cargo::metadata key/value pairs (#3877)\n\n## Summary\nFix `cargo::metadata\u003dKEY\u003dVALUE` handling in `cargo_build_script_runner`\nso metadata keys are propagated in Cargo-compatible form.\n\nBefore:\n- `cargo::metadata\u003dversion_1_10_0\u003d1`\n- produced `DEP_\u003clinks\u003e_METADATA\u003dversion_1_10_0\u003d1`\n\nAfter:\n- same input produces `DEP_\u003clinks\u003e_VERSION_1_10_0\u003d1`\n\n## Changes\n- Add a `\"metadata\"` parser branch in `BuildScriptOutput::new`.\n- Split metadata payload on first `\u003d` and emit\n`DepEnv(\"\u003cKEY\u003e\u003d\u003cVALUE\u003e\")`.\n- Preserve fallback behavior for malformed metadata payloads.\n- Add unit test: `metadata_directive_maps_to_dep_env_key_value`.\n\n## Motivation\nDownstream `links` users (for example `hdf5-metno`) expect specific\n`DEP_*` metadata keys (`DEP_HDF5_VERSION_*`, `DEP_HDF5_HAVE_*`).\n\n## Testing\n- `bazel --batch test //cargo/private/cargo_build_script_runner:test\n--remote_executor\u003d --remote_cache\u003d --bes_backend\u003d --noshow_progress\n--color\u003dno --curses\u003dno`\n\n`bazel test //test/cargo_build_script/metadata_dep_env:all` are end to\nend integration tests\n\nCloses #3876."
    },
    {
      "commit": "0a4285119b21c943560c5aa9dbad3b5ca51f2b2d",
      "tree": "885e2fc65dea1deebc036854cf9e9e1678d55000",
      "parents": [
        "43ab785b881c2d4629ecbfc6480b69f1dca0e113"
      ],
      "author": {
        "name": "Titouan BION",
        "email": "titouan.bion@gmail.com",
        "time": "Thu Mar 05 01:04:41 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 05 00:04:41 2026 +0000"
      },
      "message": "Add support for `${pwd}` for `-L`, `-resource-dir` and `INCLUDE` env var (#3832)\n\n"
    },
    {
      "commit": "43ab785b881c2d4629ecbfc6480b69f1dca0e113",
      "tree": "d34ab0b5497147f89ba7e441637fd4591f51e08f",
      "parents": [
        "f16d4cb234b545cc9aec5bb08235595beafe8c7c"
      ],
      "author": {
        "name": "divVerent",
        "email": "divVerent@gmail.com",
        "time": "Wed Mar 04 16:38:25 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 04 15:38:25 2026 +0000"
      },
      "message": "bindgen: also support -target (#3883)\n\nhttps://clang.llvm.org/docs/ClangCommandLineReference.html:\n\n    --target\u003d\u003carg\u003e, -target \u003carg\u003e\n    Generate code for the given target\n\nBoth syntaxes are documented for Clang, so let\u0027s support both."
    },
    {
      "commit": "f16d4cb234b545cc9aec5bb08235595beafe8c7c",
      "tree": "acc19a386da0501fd73781ef100465e7f5cfd130",
      "parents": [
        "74bd3d15f33c6133c84bf4348225cbc7ac206f51"
      ],
      "author": {
        "name": "Yan",
        "email": "github@idy.dev",
        "time": "Tue Mar 03 23:27:05 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 03 15:27:05 2026 +0000"
      },
      "message": "platform: add Mac Catalyst triple mappings for crate_universe (#3872)\n\n## Summary\n- add `aarch64-apple-ios-macabi` and `x86_64-apple-ios-macabi` to\n`SUPPORTED_T2_PLATFORM_TRIPLES`\n- map both `*-apple-ios-macabi` triples to Mac Catalyst constraints in\n`triple_to_constraint_set` (`@platforms//os:osx` +\n`@build_bazel_apple_support//constraints:catalyst`)\n- add unit coverage for Catalyst triple parsing and constraint mapping\nto avoid regressions\n\n## Testing\n- `bazel test //test/unit/platform_triple:platform_triple_test_suite\n//test/unit/platform_triple:wasi_platform_test_suite\n//test/unit/platform_triple:apple_platform_test_suite`\n\nThis fixes missing platform labels such as\n`@rules_rust//rust/platform:aarch64-apple-ios-macabi`, which currently\nbreaks crate_universe-generated selects when consumers include Catalyst\nin `supported_platform_triples`."
    },
    {
      "commit": "74bd3d15f33c6133c84bf4348225cbc7ac206f51",
      "tree": "7d8171e4ecb2e31fbf3848d7bdf95a9e8951024c",
      "parents": [
        "2ce620a26d0dcd0d0439e71ad487d6bee6e9f758"
      ],
      "author": {
        "name": "Noah",
        "email": "85663537+ngraf3255@users.noreply.github.com",
        "time": "Mon Mar 02 04:38:55 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 02 10:38:55 2026 +0000"
      },
      "message": "Add the thumbv7em-none-eabihf target (#3875)\n\nThis change adds support for the `thumbv7em-none-eabihf` target in\nrules_rust platform mappings. Currently `rules_rust` does not support\nthis target, preventing me from utilizing the FPU in a closed project. I\nran into this issue when trying to build for a `STM32H725IG`\n(Cortex-M7F).\n\nIt also adds a brief unit test for `thumbv7em-none-eabihf` triple\nparsing."
    },
    {
      "commit": "2ce620a26d0dcd0d0439e71ad487d6bee6e9f758",
      "tree": "2c24e2107267095c636050a152af2e8e1881874f",
      "parents": [
        "eb183e5cd0cc9db6459874323182a8e6e6cb9298"
      ],
      "author": {
        "name": "Daniel Wagner-Hall",
        "email": "dawagner@gmail.com",
        "time": "Wed Feb 25 23:32:02 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 25 23:32:02 2026 +0000"
      },
      "message": "Release 0.69.0 (#3848)\n\n"
    },
    {
      "commit": "eb183e5cd0cc9db6459874323182a8e6e6cb9298",
      "tree": "0e5d91917c7401f487c8479ecbb3eab061bfa0f3",
      "parents": [
        "e7e25a98635cb2d54e4d90d197ec7a09e91f8acc"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Wed Feb 25 14:19:56 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 25 22:19:56 2026 +0000"
      },
      "message": "Bump default version of rustc. (#3562)\n\nCloses https://github.com/bazelbuild/rules_rust/issues/3627"
    },
    {
      "commit": "e7e25a98635cb2d54e4d90d197ec7a09e91f8acc",
      "tree": "2b93e61bd03bc4f9f55b5f399d82a2097a0fa58d",
      "parents": [
        "5f633d207ef2a12fd13fe2edbecc728999bff084"
      ],
      "author": {
        "name": "Krasimir Georgiev",
        "email": "krasimir@google.com",
        "time": "Mon Feb 23 16:24:15 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 23 15:24:15 2026 +0000"
      },
      "message": "use an empty staticlib as an allocator library for cc_common.link (#3864)\n\nNo functional changes intended.\n\nAs suggested on multiple channels, using an empty staticlib is a good\neffective way to ensure we get the rust allocator shims generated\nconsistently. This is simpler than what we have and also looks like it\nuniformly supports stable and nightly across versions.\n\ncloses https://github.com/bazelbuild/rules_rust/issues/3459"
    },
    {
      "commit": "5f633d207ef2a12fd13fe2edbecc728999bff084",
      "tree": "93bfbce8a05540a997156ee71405a30633d0b36f",
      "parents": [
        "817bea7f02fd9b81fec613f46840383ac14be9a2"
      ],
      "author": {
        "name": "Paolo Tranquilli",
        "email": "redsun82@github.com",
        "time": "Mon Feb 23 11:00:02 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 23 10:00:02 2026 +0000"
      },
      "message": "Include *.rmeta files in stdlib sysroot glob (#3860)\n\nStarting around nightly `2026-01-22` (rustc 1.95.0-nightly), the Rust\ndistribution ships stdlib `.rlib` files as ~440-byte metadata stubs,\nwith full metadata in separate `.rmeta` files alongside them. The\n[`_build_file_for_stdlib_template`](https://github.com/bazelbuild/rules_rust/blob/42b098b3a891d7425212c39697e436a21fb5399e/rust/private/repository_utils.bzl#L275)\nglob [only includes\n`*.rlib`](https://github.com/bazelbuild/rules_rust/blob/42b098b3a891d7425212c39697e436a21fb5399e/rust/private/repository_utils.bzl#L280-L286),\nso the `.rmeta` files are excluded from the sysroot, causing\n`error[E0786]: only metadata stub found` errors.\n\nThis PR adds `*.rmeta` to the glob.\n\nFixes #3859\n\nCo-authored-by: Krasimir Georgiev \u003ckrasimir@google.com\u003e"
    },
    {
      "commit": "817bea7f02fd9b81fec613f46840383ac14be9a2",
      "tree": "17028e2a2bcf74e49b829d57aec8ebb129ee4a0e",
      "parents": [
        "21cb5d20bb8c46358c55665c1205702b74870a53"
      ],
      "author": {
        "name": "Fabian Brandstetter",
        "email": "21087362+FaBrand@users.noreply.github.com",
        "time": "Fri Feb 20 18:09:00 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 20 17:09:00 2026 +0000"
      },
      "message": "Provide rust toolchain type in rustdoc action (#3863)\n\nThis is noop in 7.x but used in newer versions"
    },
    {
      "commit": "21cb5d20bb8c46358c55665c1205702b74870a53",
      "tree": "90cb44c721914d5afb33801e8ad2bda551011a05",
      "parents": [
        "854770ea70dd1ec0745f7aec5af3ec44bf9677ab"
      ],
      "author": {
        "name": "Piotr Sikora",
        "email": "code@piotrsikora.dev",
        "time": "Thu Feb 19 21:24:55 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 20 02:24:55 2026 +0000"
      },
      "message": "Add Rust 1.93.1. (#3861)\n\nSigned-off-by: Piotr Sikora \u003ccode@piotrsikora.dev\u003e"
    },
    {
      "commit": "854770ea70dd1ec0745f7aec5af3ec44bf9677ab",
      "tree": "d8d5711a825860942e2d54f4c7aa4949858aaf41",
      "parents": [
        "86d809ec5909edd0ecbd153449f26f94d394324e"
      ],
      "author": {
        "name": "Albert Lloveras",
        "email": "albert.l@canva.com",
        "time": "Fri Feb 20 09:38:40 2026 +1100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 19 22:38:40 2026 +0000"
      },
      "message": "Add \u0027build_script_exec_properties\u0027 to \u0027crate.annotation\u0027 (#3852)\n\n## Intent\nTo allow specifying\n[`exec_properties`](https://bazel.build/reference/be/common-definitions#common.exec_properties)\nvia\n[`crate.annotation`](https://bazelbuild.github.io/rules_rust/crate_universe_bzlmod.html#annotation).\n\n## Problem\nThe current implementation allows tweaking a few of the attributes that\nget generated for the `cargo_build_script` rule, but, unfortunately, not\nthe `exec_properties`.\n\nMy current use case for which I want to be able to specify\n`exec_properties` is a semi-large build script that gets performance\nbenefits from running on machines with multiple CPUs. If you are not\nusing remote execution, it essentially boils down to whatever hardware\nyou have available locally. However, if RBE is available, being able to\nset `exec_properties \u003d {\"Pool\": \"\u003cpool-with-powerful-hardware\u003e\"}` allows\nyou to specifically steer these build actions to the machines that you\nwant to run them on.\n\n## Solution\nTo extend the current `cargo-bazel` code along with the relevant\nStarlark code to make it possible to specify `exec_properties` for the\ngenerated `cargo_build_script` rules."
    },
    {
      "commit": "86d809ec5909edd0ecbd153449f26f94d394324e",
      "tree": "6df1d27f5632e64867587510818699380a29f28c",
      "parents": [
        "42b098b3a891d7425212c39697e436a21fb5399e"
      ],
      "author": {
        "name": "Morten Mjelva",
        "email": "morten.mjelva@cognite.com",
        "time": "Thu Feb 19 23:29:39 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 19 22:29:39 2026 +0000"
      },
      "message": "fix: Return repo_metadata from repository rules in rust/repositories.bzl (#3855)\n\nThis allows repos produced by `rust_toolchain_tools_repository` to use\nthe remote repo content cache.\n\nUsing Bazel 9.0.0 and the remote repo content cache, the external\ndirectory in the output base is much smaller when using this patch.\nDownloading the toolchain, which comes in at almost 800 MB, can be\nentirely skipped when using remote execution.\n\nBefore:\n```shell\nexternal # du -h -d1 | sort -h | grep rules_rust\n\u003cSNIP\u003e\n4.0K    ./rules_rust++i+rules_rust_tinyjson\n32K     ./rules_rust++rust+rust_toolchains\n196K    ./rules_rust_prost+\n6.1M    ./rules_rust+\n787M    ./rules_rust++rust+rust_linux_x86_64__x86_64-unknown-linux-gnu__stable_tools\n```\n\nAfter:\n```shell\nexternal # du -h -d1 | sort -h | grep rules_rust\n\u003cSNIP\u003e\n4.0K    ./rules_rust++i+rules_rust_tinyjson\n4.0K    ./rules_rust++rust+rust_linux_x86_64__x86_64-unknown-linux-gnu__stable_tools\n32K     ./rules_rust++rust+rust_toolchains\n196K    ./rules_rust_prost+\n6.1M    ./rules_rust+\n```"
    },
    {
      "commit": "42b098b3a891d7425212c39697e436a21fb5399e",
      "tree": "7441a52f49e052fc6c76da5a1f126012ef20175c",
      "parents": [
        "af24d277c91a69a0eae05b4ade444dae4e2784c4"
      ],
      "author": {
        "name": "David Zbarsky",
        "email": "dzbarsky@gmail.com",
        "time": "Tue Feb 17 17:21:19 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 17 22:21:19 2026 +0000"
      },
      "message": "Load cc symbols for bazel9 (#3789)\n\n"
    },
    {
      "commit": "af24d277c91a69a0eae05b4ade444dae4e2784c4",
      "tree": "47e3fa64ffd2ab47a72dd1cd08a1d9ebe5bcf135",
      "parents": [
        "2c3469e325fe8d70863247c52cd5ba866311b114"
      ],
      "author": {
        "name": "Markus Hofbauer",
        "email": "markus.hofbauer@flyzipline.com",
        "time": "Mon Feb 09 11:03:13 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 09 10:03:13 2026 +0000"
      },
      "message": "Fix typo in module_bzl.j2 documentation (#3793)\n\nCo-authored-by: Krasimir Georgiev \u003ckrasimir@google.com\u003e"
    }
  ],
  "next": "2c3469e325fe8d70863247c52cd5ba866311b114"
}
