)]}'
{
  "log": [
    {
      "commit": "6c5cc322721c5783f853eee6c0c5f708aea14c1e",
      "tree": "0ce2f45699a87bd610f06253f5866e674507ddda",
      "parents": [
        "5786455b5c3fc189cb907ef7d29ff3e895d589ed"
      ],
      "author": {
        "name": "Jorge Gorbe Moya",
        "email": "slack@codemaniacs.com",
        "time": "Mon Jul 13 08:28:45 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 08:28:45 2026"
      },
      "message": "Move flags passed in `rust_flags` near the end of the rustc invocation. (#4135)\n\nThis allows callers of rustc_compile_action to override the default\nflags.\n\nThe motivating example for making this change was some path remapping\ndone by Crubit\n(https://github.com/google/crubit/blob/685a46aabbdf6552803c5bd77da6628008d0d245/rs_bindings_from_cc/bazel_support/compile_rust.bzl#L100).\nPR #4106 added another `--remap-path-prefix` flag after the code that\nadds `rust_flags` to the rustc invocation, and the new remapping took\nprecedence."
    },
    {
      "commit": "5786455b5c3fc189cb907ef7d29ff3e895d589ed",
      "tree": "a16d5703b690adb29fef0591d8b61285a588e228",
      "parents": [
        "dd6729b94835b851e1ff50722174585d96534e53"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Fri Jul 10 12:51:08 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 12:51:08 2026"
      },
      "message": "Added Rust 1.97.0 (#4144)\n\nhttps://blog.rust-lang.org/2026/07/09/Rust-1.97.0/"
    },
    {
      "commit": "dd6729b94835b851e1ff50722174585d96534e53",
      "tree": "e29564cc1c1b1c36b64c1ee06bbc61be90a1d4fb",
      "parents": [
        "ed321505851d2cc8a5ace048188ef3ba8f7e8d71"
      ],
      "author": {
        "name": "Alex Conrey",
        "email": "ajcblz2019@gmail.com",
        "time": "Fri Jul 10 06:52:37 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 06:52:37 2026"
      },
      "message": "Add rust-analyzer clippy end-to-end test (#4147)\n\nImplements https://github.com/bazelbuild/rules_rust/pull/4143 and also\nfixes a memory leak from multiple rust-analyzer processes for different\nrust-analyzer-workspaces.\n\ncloses https://github.com/bazelbuild/rules_rust/pull/4143"
    },
    {
      "commit": "ed321505851d2cc8a5ace048188ef3ba8f7e8d71",
      "tree": "32c002ca83f24de564513b85275e10e9b0f1100f",
      "parents": [
        "7cd42b83c0f4d1bbd68376685b425de08fa58d83"
      ],
      "author": {
        "name": "Keith Smiley",
        "email": "keithbsmiley@gmail.com",
        "time": "Thu Jul 09 18:26:18 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 09 18:26:18 2026"
      },
      "message": "Return repo_metadata from repository rules (#4146)\n\nThis allows the remote repo contents cache to cache the result of these"
    },
    {
      "commit": "7cd42b83c0f4d1bbd68376685b425de08fa58d83",
      "tree": "929dcf723e77f47dbcae9b030ed13d2e9d223d9b",
      "parents": [
        "88ab9d0c3e21fa3f8721cea2875809315930d6fc"
      ],
      "author": {
        "name": "Martin Kuntz Jacobsen",
        "email": "56176095+TrapsterDK@users.noreply.github.com",
        "time": "Wed Jul 08 22:18:38 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 22:18:38 2026"
      },
      "message": "Fix rust-analyzer proc-macro merge for k8-opt-exec paths (#4140)\n\nWritten by AI, reviewed by human.\n\nFixes #4139.\n\n## Summary\n\n`consolidate_crate_specs` prefers proc-macro dylib paths that look like\nexec outputs. The previous marker matched paths with `-opt-exec-`, but\nBazel can also emit exec paths like `bazel-out/k8-opt-exec/bin/...`.\n\nThis updates the marker to match both forms and adds a regression test\nfor the unsuffixed `k8-opt-exec/bin` path shape.\n\n## Testing\n\n```sh\nbazel test --cache_test_results\u003dno //tools/rust_analyzer:gen_rust_project_lib_test\n```"
    },
    {
      "commit": "88ab9d0c3e21fa3f8721cea2875809315930d6fc",
      "tree": "d1d5609e9baa57a7625458c822ca416c707842f8",
      "parents": [
        "16d03098f1a4d8b40ed672c8b6650dd274e66282"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Wed Jul 08 21:50:09 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 21:50:09 2026"
      },
      "message": "Add jsonc support for rust-analyzer setup (#4126)\n\nThe change aims to cleanly handle merging rust-analyzer settings into\nexisting vscode config files that are `jsonc` vs valid `json`."
    },
    {
      "commit": "16d03098f1a4d8b40ed672c8b6650dd274e66282",
      "tree": "68788498337417f5af1dd404581ed57638451000",
      "parents": [
        "46d67bc1fda4592dab7465c8152d94ae6f969cfc"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Wed Jul 08 21:45:56 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 21:45:56 2026"
      },
      "message": "Fix rust-analyzer selecting the wrong proc-macro cfg (#4137)\n\ncloses https://github.com/bazelbuild/rules_rust/issues/4136"
    },
    {
      "commit": "46d67bc1fda4592dab7465c8152d94ae6f969cfc",
      "tree": "87eb5b45e13a610f4dac65e96670e40cca09d6a6",
      "parents": [
        "dedf05304354aace6a76ae78030a9d69c74e37d4"
      ],
      "author": {
        "name": "Cameron Mulhern",
        "email": "csmulhern@gmail.com",
        "time": "Tue Jul 07 05:43:50 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 05:43:50 2026"
      },
      "message": "Fixes BEP path handling for rust analyzer specs (#4130)\n\nThe rewrite of the Rust Analyzer auto-discovery pipeline (see #4075)\nintroduced a bug for users who use\n`--experimental_convenience_symlinks\u003dignore` (i.e. have no bazel-out\nsymlink in their workspace).\n\n`parse_output_group_paths` documentation suggests that output paths are\nalways absolute\n\n\nhttps://github.com/bazelbuild/rules_rust/blob/dedf05304354aace6a76ae78030a9d69c74e37d4/tools/rust_analyzer/bep.rs#L107-L110\n\nbut that is not true for BEP events that trigger the fallback\nreconstruction path\n\n\nhttps://github.com/bazelbuild/rules_rust/blob/dedf05304354aace6a76ae78030a9d69c74e37d4/tools/rust_analyzer/bep.rs#L241-L243\n\nThis PR detects those cases and anchors those paths to the execution\nroot, making them also absolute."
    },
    {
      "commit": "dedf05304354aace6a76ae78030a9d69c74e37d4",
      "tree": "56dd577aab3d961bed8b1282889d2188aba50c12",
      "parents": [
        "64c826a3741aae38aa27e0c02c4e080aa20f19cb"
      ],
      "author": {
        "name": "Bas van Dijk",
        "email": "bas@van.dijk.ch",
        "time": "Sun Jul 05 14:19:22 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 05 14:19:22 2026"
      },
      "message": "Fix unresolved `${out_dir}` token in dep env files (#4124)\n\n### The bug\n\nSince the `OUT_DIR` sanitization work (#4050 / #4011, first released in\n0.71.x), `outputs_to_dep_env` redacts the producer\u0027s `out_dir` to the\ngeneric `${out_dir}` substitution token, the same way `outputs_to_env`\ndoes.\n\nThat redaction is only correct for `_bs.env` files, which are consumed\nby the target that directly owns the build script (where\n`process_wrapper`\u0027s `--out-dir` resolves the token to the right\ndirectory). Dep env (`DEP_*`) files, however, are consumed by\n*downstream* crates\u0027 build scripts: their runner only substitutes\n`${pwd}`, and their own `out_dir` points to a different directory. The\ntoken is therefore left unresolved, or would resolve to the wrong\ndirectory.\n\nReal-world failure: `libssh2-sys`\u0027s build script fails to find `zlib.h`\nbecause `libz-sys`\u0027s `DEP_Z_INCLUDE` contains a literal `${out_dir}`\npath component. Found while upgrading `rules_rust` to 0.71.3 in\ndfinity/ic (see dfinity/ic#10632, where this fix is currently carried as\na patch).\n\n### The fix\n\nOnly substitute the exec root in dep env files and keep the real\n`out_dir` path. That path is valid for consumers: the producer\u0027s\n`out_dir` is a declared input of downstream build script actions.\n\n### Tests\n\n* Unit test\n`out_dir_in_dep_env_value_is_not_redacted_to_substitution_token` in\n`cargo/private/cargo_build_script_runner/lib.rs`.\n* End-to-end regression test `//cargo/tests/dep_env:build_read_out_dir`\nmirroring the libz-sys → libssh2-sys scenario: a producer build script\nadvertises `cargo:include\u003d$OUT_DIR/include` and the consumer build\nscript asserts `DEP_Z_INCLUDE` points at an existing directory. Fails\nwithout the fix, passes with it.\n\n---\n\nAssisted-by: GitHub Copilot"
    },
    {
      "commit": "64c826a3741aae38aa27e0c02c4e080aa20f19cb",
      "tree": "0192f70fe137af48098d542bfc58624e1b91986b",
      "parents": [
        "bd2a8f01549844fd91a9e5098fabc78c56d55734"
      ],
      "author": {
        "name": "Keegan Carruthers-Smith",
        "email": "keegan.csmith@gmail.com",
        "time": "Sun Jul 05 12:39:00 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 05 12:39:00 2026"
      },
      "message": "fix: declare rustfmt aspect action toolchain (#4128)\n\nThe --incompatible_auto_exec_groups flag requires Starlark actions to\ndeclare whether their executable/tools come from an action toolchain.\nThis is not a Bazel default today, but it is exposed through strict\npreset configurations and is intended to catch rules that rely on\nimplicit action toolchain inference.\n\nrustfmt_aspect runs rustfmt from rules_rust\u0027s rustfmt toolchain, but the\nformatting action does not declare that action toolchain. Declare the\nmatching rustfmt toolchain so the action\u0027s toolchain behavior is\nexplicit without changing its inputs or execution model."
    },
    {
      "commit": "bd2a8f01549844fd91a9e5098fabc78c56d55734",
      "tree": "fe50a3e8e6deca47db7abaa1a1fa2aae11b1cad8",
      "parents": [
        "4c2c46038fd9d794191c5df0865d0e0de059b73d"
      ],
      "author": {
        "name": "Martin Geisler",
        "email": "martin@geisler.net",
        "time": "Sun Jul 05 12:21:40 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 05 12:21:40 2026"
      },
      "message": "Fix Clippy errors from #4127 (#4129)\n\nThese were not triggered before the PR was merged. I’m not sure why more\ntests are run on `main` than on PRs, but maybe this could be revisited\nto at least gate PRs on this kind of thing?"
    },
    {
      "commit": "4c2c46038fd9d794191c5df0865d0e0de059b73d",
      "tree": "7e218e4c2ca7e2aeebb2426ada02f9de2f8c68b4",
      "parents": [
        "7fb3e6d051719d5d4f1d59f6499c40435351e67e"
      ],
      "author": {
        "name": "Martin Geisler",
        "email": "martin.geisler@proton.ch",
        "time": "Fri Jul 03 23:25:05 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 23:25:05 2026"
      },
      "message": "Tolerate partial build failures during rust-analyzer discovery (#4127)\n\n`discover_bazel_rust_project` builds the rust-analyzer aspect over the\nwhole workspace and bailed on any non-zero Bazel exit. In a large\nmonorepo a single broken target (e.g. an unrelated, unmaintained one)\naborted the build, leaving rust-analyzer with no Bazel project model. It\nthen silently falls back to a Cargo workspace, which breaks proc-macro\nexpansion (toolchain ABI mismatch) and materializes a stray `target/`.\n\nPass `--keep_going` so Bazel keeps building the rest of the graph, and\ntreat the result as usable when the BEP still yielded crate specs:\nproceed with a `log::warn` that the project may be incomplete, and only\nfail when zero specs were produced. This mirrors `flycheck`\u0027s existing\nexit-code handling.\n\nAdd an end-to-end test that stands up a workspace with one good\n`rust_library` and one target that fails analysis, then checks discovery\nstill returns a project containing the good crate. Unit tests cover the\n`assess_discovery` decision.\n\nWritten with Claude, but I believe I understand what is going on."
    },
    {
      "commit": "7fb3e6d051719d5d4f1d59f6499c40435351e67e",
      "tree": "b26e2def6f32d68f2688ddc96f0a33f3c69dc051",
      "parents": [
        "256b6b92476204e2b6a0ee2e6659cde0017bafdd"
      ],
      "author": {
        "name": "Jorge Gorbe Moya",
        "email": "slack@codemaniacs.com",
        "time": "Fri Jul 03 14:55:05 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 14:55:05 2026"
      },
      "message": "rustc: add support for split debuginfo (#4092)\n\nThis is #3168 by @durin42, with fixes for some of the pre-merge checks.\n\nThis PR adapts the original change to support path mapping when passing\n`-Zsplit-dwarf-out-dir\u003d\u003cpath\u003e`. In order to do this, it adds to\n`construct_arguments` the option to pass `(format_string, File)` as\nelements in the list form of `rustc_flags`. This PR also adds tests for\nthe new functionality.\n\nThe new changes on top of the original PR were written with assistance\nby Gemini.\n\n---------\n\nCo-authored-by: Augie Fackler \u003caugie@google.com\u003e"
    },
    {
      "commit": "256b6b92476204e2b6a0ee2e6659cde0017bafdd",
      "tree": "f1215881fb2158d5d11e9a3a65b9b22f05471e9c",
      "parents": [
        "8f4cba1695aff1bfc1346541abb09ec55bb0f354"
      ],
      "author": {
        "name": "Glenn LeBlanc",
        "email": "g.leblanc135@gmail.com",
        "time": "Thu Jul 02 21:33:05 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 21:33:05 2026"
      },
      "message": "fix: prefix pwd for imacros flag (#4116)\n\ntoolchains_llvm\n[now](https://github.com/bazel-contrib/toolchains_llvm/commit/119492322ea93f90870a6c8f9c6438480c0f0524)\nforce-includes a header via `-imacros`, which surfaced this bug."
    },
    {
      "commit": "8f4cba1695aff1bfc1346541abb09ec55bb0f354",
      "tree": "93ef75695fff24be25b59ad20933b1f225ba16df",
      "parents": [
        "f7f212ad30a58475d6252a8607cf5cdb5f59bbdd"
      ],
      "author": {
        "name": "Krasimir Georgiev",
        "email": "krasimir@google.com",
        "time": "Thu Jul 02 10:32:52 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 10:32:52 2026"
      },
      "message": "add a mnemonic to a cargo dep env action (#4123)"
    },
    {
      "commit": "f7f212ad30a58475d6252a8607cf5cdb5f59bbdd",
      "tree": "e415e8b4460efbfd03d70309439833fc0fffd599",
      "parents": [
        "fc45989eb148d7edd6855d0b2d5ae1f7b63f4fff"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Jul 02 03:00:56 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 03:00:56 2026"
      },
      "message": "Release 0.71.3 (#4119)"
    },
    {
      "commit": "fc45989eb148d7edd6855d0b2d5ae1f7b63f4fff",
      "tree": "65d99ad90159b3a4f964d4f7656accc14d7e0e75",
      "parents": [
        "227dac1b7a8a1b99359d019a3bfe7fe052a02092"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Jul 02 02:34:16 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 02:34:16 2026"
      },
      "message": "Add path-mapping test for env location expansion (#4120)\n\nAdds regression testing for\nhttps://github.com/bazelbuild/rules_rust/pull/4117 as well as identifies\nsome cases where there are further incompatibilities (namely uses of\n`rust_test.crate`)."
    },
    {
      "commit": "227dac1b7a8a1b99359d019a3bfe7fe052a02092",
      "tree": "95883c9a4af0d35df6dba33e3b498f648996781a",
      "parents": [
        "3e58a1d9ca8a8b4bb1d6cbc1cb0464c4c0a55f67"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Jul 02 01:50:01 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 01:50:01 2026"
      },
      "message": "Added Rust 1.96.1 (#4121)\n\nhttps://blog.rust-lang.org/2026/06/30/Rust-1.96.1/"
    },
    {
      "commit": "3e58a1d9ca8a8b4bb1d6cbc1cb0464c4c0a55f67",
      "tree": "b5028c4d345371e161761b94317ddf3d2afa5776",
      "parents": [
        "155a8afc139f7381e6eedbc9b831e04e99f52c52"
      ],
      "author": {
        "name": "Xiao Yu",
        "email": "airtrick@gmail.com",
        "time": "Thu Jul 02 01:10:33 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 01:10:33 2026"
      },
      "message": "Disable path mapping when rustc_env has location expansions (#4117)\n\nLocation expansion happens outside the control of path mapping logic and\nwould produce paths with build configuration in them, breaking path\nmapping\u0027s logic of replacing all build configuration with the literal\n\"cfg\"."
    },
    {
      "commit": "155a8afc139f7381e6eedbc9b831e04e99f52c52",
      "tree": "bc325a1ae3860729dcb12fc6d41c305dfaf54437",
      "parents": [
        "08d7cc67ab0d891632a8fb1ae472047096119679"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Jul 02 01:09:11 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 01:09:11 2026"
      },
      "message": "Add cross-platform compatible launcher for rust-analyzer (#4118)\n\nFor vscode users who commit `.code-workspace` or `settings.json`, this\nchange introduces a cross-platform compatible entrypoint for\nrust-analyzer infrastructure. Note that this doesn\u0027t mean the binaries\nare magically platform agnostic. It just means the two files mentioned\nwill be compatible on both Unix and Windows platforms if the vscode\nconfig files are source controlled."
    },
    {
      "commit": "08d7cc67ab0d891632a8fb1ae472047096119679",
      "tree": "4f9a966f9b4ed412d732078484b86e9b92360f20",
      "parents": [
        "aa5da6531178f585ef4426c3ba6c061cb451198e"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Sun Jun 28 01:03:56 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 28 01:03:56 2026"
      },
      "message": "Release 0.71.2 (#4115)"
    },
    {
      "commit": "aa5da6531178f585ef4426c3ba6c061cb451198e",
      "tree": "92dbc6204ed200140c6cfa082e660c62bd576ed5",
      "parents": [
        "ab2ba8403255de436f4506cd839858ef77b5ac0b"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Sun Jun 28 00:42:45 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 28 00:42:45 2026"
      },
      "message": "Avoid reliance on bazel-bin for rust-analyzer IDE setup (#4112)\n\nThis change removes any reliance `setup` placed on `bazel-bin` as it\u0027s\nan unreliable path. Instead binaries like `flycheck` are installed into\nthe setup directory and the output_base is used to identify\nrust-analyzer and the sysroot."
    },
    {
      "commit": "ab2ba8403255de436f4506cd839858ef77b5ac0b",
      "tree": "23bc9f288473557b479e6d6a0752fa943e5da92b",
      "parents": [
        "dc6c891dd5adc4631e7315d522ee4b870e5bf77c"
      ],
      "author": {
        "name": "Régis Desgroppes",
        "email": "rdesgroppes@gmail.com",
        "time": "Sat Jun 27 17:37:02 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 27 17:37:02 2026"
      },
      "message": "Restore `crate_universe/extension.bzl` shim with a deprecation warning (#4114)\n\n#4005 removed `crate_universe/extension.bzl`, the deprecated re-export\nof `crate_universe/extensions.bzl`, as part of dropping WORKSPACE\nsupport.\n\nDownstream projects may still load `crate` from that path via\n`use_extension`, so any build that resolves `rules_rust` 0.71.0 with\nsuch a module in its graph fails.\n`protobuf` 35.1, the newest release on BCR, is one such module.\n\nRestore the shim and print a deprecation warning at load time, giving\ndownstream modules a short window to migrate to `extensions.bzl`, e.g.:\n- protocolbuffers/protobuf#28226.\n\nCloses #4111."
    },
    {
      "commit": "dc6c891dd5adc4631e7315d522ee4b870e5bf77c",
      "tree": "d40b3156432936d58f0d21a64af5f86ec77fc25d",
      "parents": [
        "2f69054614bbe022492f9121bdf1475dfdb14bd6"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Fri Jun 26 15:29:52 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 15:29:52 2026"
      },
      "message": "Fix publish-to-bcr author (#4108)\n\nA random user was used on\nhttps://github.com/bazelbuild/bazel-central-registry/pull/9424, this\nchange fixes that and aligns with the info provided from\nhttps://api.github.com/users/bazel-io"
    },
    {
      "commit": "2f69054614bbe022492f9121bdf1475dfdb14bd6",
      "tree": "e1252b19f3f6b53efdac2548756aef39387ff598",
      "parents": [
        "cdd9b2778fe396079a6cb4cc7e1b5a376b60dbd6"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Fri Jun 26 15:19:44 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 15:19:44 2026"
      },
      "message": "Add `link_deps` crate_universe annotation (#4109)\n\nhttps://github.com/bazelbuild/rules_rust/pull/4024 now adds noisy prints\nthat users have no way to handle when using crate_universe. This change\nadds annotations so the prints can be actioned."
    },
    {
      "commit": "cdd9b2778fe396079a6cb4cc7e1b5a376b60dbd6",
      "tree": "e35b0803de0c10dc80a45d89a15f43fdd7af2f4f",
      "parents": [
        "4fee5935ba71773f6d6ef67e05e6e5c54a078e1d"
      ],
      "author": {
        "name": "Keith Smiley",
        "email": "keithbsmiley@gmail.com",
        "time": "Thu Jun 25 22:17:48 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 22:17:48 2026"
      },
      "message": "Fix releases (#4107)\n\nCo-authored-by: UebelAndre \u003cgithub@uebelandre.com\u003e"
    },
    {
      "commit": "4fee5935ba71773f6d6ef67e05e6e5c54a078e1d",
      "tree": "58f9f3e9fc2ff7532dcf177d323ace8d101eb9ea",
      "parents": [
        "f9c09637a0aeff457ce4bb757f007fc674e67d14"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Jun 25 21:09:33 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 21:09:33 2026"
      },
      "message": "Release 0.71.0 (#4082)"
    },
    {
      "commit": "f9c09637a0aeff457ce4bb757f007fc674e67d14",
      "tree": "a8796d70687abd9b5b1217ae6aab9983ca737de9",
      "parents": [
        "2f83a8fd637e584ae3ea61f97d369bfdb907d192"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@google.com",
        "time": "Thu Jun 25 20:59:37 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 20:59:37 2026"
      },
      "message": "Fix bindgen flag merging between clang_flags and cc_common (#4100)\n\nIf a param flag (a flag with a following argument like -isystem) exists\nboth in the flags returned by\n`cc_common.get_memory_inefficient_command_line` and a\n`rust_bindgen_library`\u0027s `clang_flags`, the secondary argument of the\nflag from `cc_common` was getting dropped."
    },
    {
      "commit": "2f83a8fd637e584ae3ea61f97d369bfdb907d192",
      "tree": "27dfe26b420101e38c7c7c9b0cf0e89201ef7ecc",
      "parents": [
        "eda8f0292e28881ff927557fc169aaba3ef8c210"
      ],
      "author": {
        "name": "Keith Smiley",
        "email": "keithbsmiley@gmail.com",
        "time": "Thu Jun 25 20:52:42 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 20:52:42 2026"
      },
      "message": "Add more sysroot flags that require prefixing (#4101)"
    },
    {
      "commit": "eda8f0292e28881ff927557fc169aaba3ef8c210",
      "tree": "e8872d57a1fec91b77e721a6d775cf8b3b8016f6",
      "parents": [
        "99ad03eb9ac0e11489f2dbd73af1e13b69f19401"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Jun 25 20:19:56 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 20:19:56 2026"
      },
      "message": "Make setup authorative over rust-analyzer paths (#4105)\n\nThis change adds control over the launchers and cache dir through the\nrust-analyzer setup tool so users don\u0027t see mystery files appear in\ntheir checkout when they don\u0027t want."
    },
    {
      "commit": "99ad03eb9ac0e11489f2dbd73af1e13b69f19401",
      "tree": "a15408521df93ec6c7e98baf0c81a5a9642b69bd",
      "parents": [
        "c55282e3b872157a0354b8bb62d6bcec25e4163c"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Jun 25 20:08:30 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 20:08:30 2026"
      },
      "message": "Render crates into subpackages (#4093)\n\nCurrently `crate_universe` renders aliases into a single package for\ndevelopers to consume. The issue with this design is that for projects\nwith massive amounts of dependencies, Bazel parsing that BUILD file can\nbe slow and have noticable impacts on analysis. This change updates\n`crate_universe` to render aliases into sub-packages instead of a root\nBUILD file in the repo hubs. In practice this means dependencies that\nwere once accessed via `@crate_index//:clap` are now accessed via\n`@crate_index//clap`. Currently both root level aliases are still\nrendered but can be disabled via the new\n`incompatible_no_root_alias_targets` flag."
    },
    {
      "commit": "c55282e3b872157a0354b8bb62d6bcec25e4163c",
      "tree": "a966a28c2c655b76b5fec16aa632bfdbd33ca4cc",
      "parents": [
        "b62b2811cc88e5bce4d1195ac223f054e8d8a4b6"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Jun 25 19:54:14 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 19:54:14 2026"
      },
      "message": "Add ibazel support to mdbook_server (#4068)\n\nThis change adds [ibazel](https://github.com/bazelbuild/bazel-watcher)\nsupport to the `mdbook` server."
    },
    {
      "commit": "b62b2811cc88e5bce4d1195ac223f054e8d8a4b6",
      "tree": "52668fca7a66070f3fb2424e5ad8265489e484d4",
      "parents": [
        "39a22fe1532ceea086b528f2f7ce5a0dad846e96"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Jun 25 19:10:38 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 19:10:38 2026"
      },
      "message": "Fix coverage for crates with mixed sources (#4106)\n\nAn expansion of https://github.com/bazelbuild/rules_rust/pull/4079 with\nsome added testing.\n\ncloses https://github.com/bazelbuild/rules_rust/pull/4079"
    },
    {
      "commit": "39a22fe1532ceea086b528f2f7ce5a0dad846e96",
      "tree": "c13936fbf8c2eb5cc70034bfe823315489349a10",
      "parents": [
        "3a95857e86144b130749ded8e25179951e640a65"
      ],
      "author": {
        "name": "Krasimir Georgiev",
        "email": "krasimir@google.com",
        "time": "Wed Jun 24 13:27:47 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 13:27:47 2026"
      },
      "message": "remove mention of cc_deps from warning message (#4099)\n\nA follow-up from https://github.com/bazelbuild/rules_rust/pull/4024\nwhere we inadvertently mentioned a feature that doesn\u0027t exist."
    },
    {
      "commit": "3a95857e86144b130749ded8e25179951e640a65",
      "tree": "9c7bf1bcf5a3b8f7ed994a500865b7441e7c95fa",
      "parents": [
        "1ce5fb365e3394a04b28232adf8b0ebb24305f6e"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Tue Jun 23 22:26:10 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 22:26:10 2026"
      },
      "message": "Consolidate crate_universe generated `defs.bzl` into `crates.bzl` (#4094)\n\nThis change begins to consolidate `defs.bzl` into `crates.bzl` so users\ndon\u0027t get confused as to which of the two to use. In doing so, I have\nalso consolidated the repository rules for where crate aliases are\ngenerated between the `crate` module extension and outputs to\n`crates_vendor` rule as a cleanup and consolidation effort. In the\nfuture I plan to have that rule be responsible for aliases and the crate\ndependency interface."
    },
    {
      "commit": "1ce5fb365e3394a04b28232adf8b0ebb24305f6e",
      "tree": "a302f88fc0a75f18690f9fbcc55517af4a93c1f1",
      "parents": [
        "20b9cf99be9c178e76588c2f1f6f2b0bb54849ab"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Tue Jun 23 22:26:02 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 22:26:02 2026"
      },
      "message": "Add `discoverConfig` Support for rust-analyzer (#4075)\n\nThis change improves rust-analyzer support by moving away from\n`rust-project.json` and promoting a more automated approach.\nDocumentation has been updated to reflect the recommended integration.\n\nChanges:\n- Implement Build-Event-Service parsing to avoid globbing for bazel\noutputs.\n- Implements new `setup` tool that users can invoke to configure their\nIDE for Bazel-backed rust-analyzer support.\n\ncloses https://github.com/bazelbuild/rules_rust/issues/2488\ncloses https://github.com/bazelbuild/rules_rust/issues/3762"
    },
    {
      "commit": "20b9cf99be9c178e76588c2f1f6f2b0bb54849ab",
      "tree": "5e453dea7cda0a5ec45e5676873df02612d5db20",
      "parents": [
        "a9cec9ae8816790d39e37aa496992eb5ba2ced36"
      ],
      "author": {
        "name": "Paul Draper",
        "email": "paulddraper@gmail.com",
        "time": "Tue Jun 23 15:52:17 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 15:52:17 2026"
      },
      "message": "Suppress noisy build script warnings (#4046)\n\nFixes #3880.\n\n`cargo::warning\u003d` lines from `build.rs` are forwarded to stderr\nunconditionally, which is noisy for `-sys` crates such as `zstd-sys`,\n`aws-lc-sys`, `openssl-sys`. Under Cargo these warnings are hidden for\nregistry/git deps unless the build fails or the user passes `-vv`; under\nrules_rust the user always sees them.\n\nThis PR adds two complementary fixes (both discussed on the issue):\n\n1. **Global flag**\n`--@rules_rust//cargo/settings:emit_build_script_warnings` (default\n`auto`). Values:\n- `on` — emit for every target, overriding any per-target opt-out\n(useful for debugging an `-sys` crate).\n- `auto` — respect the per-target `emit_warnings` attribute.\n`crate_universe`-generated targets opt out, so registry crates stay\nquiet (matching Cargo); first-party targets emit by default.\n   - `off` — silence build-wide.\n2. **Per-target attribute** `cargo_build_script(emit_warnings \u003d ...)`\n(default `True`). `crate_universe` renders generated\n`cargo_build_script` targets with `emit_warnings \u003d False`. Honored only\nwhen the global flag is `auto`.\n\n---------\n\nCo-authored-by: UebelAndre \u003cgithub@uebelandre.com\u003e"
    },
    {
      "commit": "a9cec9ae8816790d39e37aa496992eb5ba2ced36",
      "tree": "1de9fbcd4f44e56a5493e720d7fbaaebefc3bbd5",
      "parents": [
        "fb01b69e20a613d3b37a91662f25a73faecfb4f8"
      ],
      "author": {
        "name": "Alex Trotta",
        "email": "44127594+Ahajha@users.noreply.github.com",
        "time": "Tue Jun 23 14:40:28 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 14:40:28 2026"
      },
      "message": "Remove C Python headers from pyo3 build actions (#4095)\n\nhttps://github.com/bazelbuild/rules_rust/pull/4024 introduced a warning\nfor targets adding CC deps in `deps`. The warning calls out putting this\nin `link_deps` or `cc_deps`. The latter makes more sense here... but\ndoesn\u0027t actually exist. However, I don\u0027t think this matters anyways, as\nI don\u0027t think it\u0027s needed (this works with an internal codebase)."
    },
    {
      "commit": "fb01b69e20a613d3b37a91662f25a73faecfb4f8",
      "tree": "afbee0cfbaea96f7302e0150173cd03a46b340eb",
      "parents": [
        "a2113e94b524e468ea16b7b89bd2c6e26e4f0f88"
      ],
      "author": {
        "name": "Paul Salaberria",
        "email": "psalaberria002@gmail.com",
        "time": "Mon Jun 22 10:37:24 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 10:37:24 2026"
      },
      "message": "fix(cargo_build_script): expand ${pwd} for execpaths and locations in build_script_env (#4088)\n\nSingular `$(execpath ...)` and `$(location ...)` were already prefixed\nwith `${pwd}/` so build_script_runner could resolve them to absolute\npaths at run time. The plural forms `$(execpaths ...)` and `$(locations\n...)` were silently omitted from this handling, leaving their paths as\nexecroot-relative.\n\nFor plural forms each macro is expanded individually (via\nctx.expand_location) and every resulting space-separated path is\nprefixed with `${pwd}/`."
    },
    {
      "commit": "a2113e94b524e468ea16b7b89bd2c6e26e4f0f88",
      "tree": "08ef2efad798b21a078661b7b95f8c9ee1b488cd",
      "parents": [
        "dad9720297c943d944877fd9a143f57c83ed59a0"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Jun 18 13:34:28 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 18 13:34:28 2026"
      },
      "message": "Move rust/toolchain.bzl implementation into rust/private (#4087)\n\nThis change is a noop for our public interface but allows for more\nhelper functions to exist in `toolchains.bzl` without them expanding the\npublic interface."
    },
    {
      "commit": "dad9720297c943d944877fd9a143f57c83ed59a0",
      "tree": "bdd0ece2fc99e278556914f3c16bd651dcf62f8b",
      "parents": [
        "6a3e2f934fa209d7827738b2f1d4f46b34dc0db4"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Wed Jun 17 14:03:11 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 14:03:11 2026"
      },
      "message": "Resolve `\u003cbinary\u003e.runfiles_manifest` from argv[0] in `Runfiles::create()` (#4086)\n\nI have reviewed the runfiles implementation for\n[rules_cc](https://github.com/bazelbuild/rules_cc/tree/f65555ccb4257d65e0a5379f9f476dd748203d4b/cc/runfiles),\n[rules_shell](https://github.com/bazel-contrib/rules_shell/tree/b0fe38e8211df2f05979410a215520eb9eaa9da3/shell/runfiles),\n[rules_go](https://github.com/bazel-contrib/rules_go/tree/370a75048291a6e03fd29bb96f20ecefac5416ad/go/runfiles),\nand\n[rules_python](https://github.com/bazel-contrib/rules_python/tree/99d0c3d187209a4d143790e6d4b706f15b2b294b/python/runfiles)\nto figure out the behavior of runfiles relative to the current binary.\nUnfortunately\n[`current_exe`](https://doc.rust-lang.org/std/env/fn.current_exe.html)\ncanonicalizes the path on some platforms so we need to instead focus on\n`argv[0]` as a more reliable path."
    },
    {
      "commit": "6a3e2f934fa209d7827738b2f1d4f46b34dc0db4",
      "tree": "940e87dc6e63ba823b02d2cade98440c4bc9c571",
      "parents": [
        "2a9037e9b702cab7993380a3cc4fb6fb92e49eef"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Mon Jun 15 21:13:31 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 21:13:31 2026"
      },
      "message": "Fix failing test in rolling bazel version (#4076)\n\nMy assumption is that the hashing algorithm changed in some way in the\nrolling Bazel version. I don\u0027t think we need to test the exact value,\njust that it\u0027s a numeric hash."
    },
    {
      "commit": "2a9037e9b702cab7993380a3cc4fb6fb92e49eef",
      "tree": "df198d94cfb03161a06ca134acf321982ff15848",
      "parents": [
        "161ce08d3f589c2ce65d004354a524ee332dbf67"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Mon Jun 15 21:13:22 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 21:13:22 2026"
      },
      "message": "Add attestation support to releases (#4077)"
    },
    {
      "commit": "161ce08d3f589c2ce65d004354a524ee332dbf67",
      "tree": "9630d617aa3cb76bc99fc586eb7f6df58867bc19",
      "parents": [
        "5932417b5c66287fa435c3c65d7df2d4c53fd4da"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Mon Jun 15 21:09:46 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 21:09:46 2026"
      },
      "message": "Update label_injections to work transitively (#4081)\n\nRendering canonical labels into lockfiles is sensitive to consumers\npotentially having overrides. Instead, injections are applied on the\nfly."
    },
    {
      "commit": "5932417b5c66287fa435c3c65d7df2d4c53fd4da",
      "tree": "1e07e824facf4c13d03d3c1ce6a306d4d41e2359",
      "parents": [
        "97e0d25539a1f7aca65625762679fa742ae8d750"
      ],
      "author": {
        "name": "Vipul Gupta",
        "email": "73114964+1vipulgupta@users.noreply.github.com",
        "time": "Mon Jun 15 13:58:20 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 13:58:20 2026"
      },
      "message": "Added support for rustc self-profiling (#4073)\n\nIntroduced a new build setting,\n`--//rust/settings:zself_profile_events`, to enable rustc\u0027s\n`-Zself-profile` and `-Zself-profile-events` flag. Rust `nightly`\ntoolchain is required for using this feature.\nThe setting accepts patterns to match against crate labels or execution\npaths, allowing fine-grained control over which crates are profiled.\nProfiling data is output to a `\u003ccrate_name\u003e_self-profile` directory.\n\nCo-authored-by: Vipul Gupta \u003civip@google.com\u003e"
    },
    {
      "commit": "97e0d25539a1f7aca65625762679fa742ae8d750",
      "tree": "605ebb41e0af8d5b3c980e5bb78aa0be436f717e",
      "parents": [
        "71bdd246a408bfbf1663278cb2e404f5341161fc"
      ],
      "author": {
        "name": "Kohei Watanabe",
        "email": "mypmc@vec.jp",
        "time": "Sun Jun 14 18:22:02 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 14 18:22:02 2026"
      },
      "message": "Update pyo3 to 0.29.0 (#4085)\n\nTo support doc comments generation, pyo3 0.28.2\ndoes not include Rust doc comments in generated\n.pyi stubs.\n\nThe patch that rules_rust_pyo3 applied to pyo3 0.28.2\nis not needed for now: PyO3/pyo3#5862 removed\n`resolve_cross_compile_config_path`.\nThe cross-build-script file dependency that caused the\nsandbox path issue no longer exists.\n\n- https://github.com/PyO3/pyo3/issues/4579"
    },
    {
      "commit": "71bdd246a408bfbf1663278cb2e404f5341161fc",
      "tree": "2057fe97496228c5fdf05f0ccb072de04e97978f",
      "parents": [
        "0d36c003122dbe617e86f4788390a319f9d7ac58"
      ],
      "author": {
        "name": "Damian Banki",
        "email": "ddaniel.banki@gmail.com",
        "time": "Fri Jun 12 09:16:14 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 12 09:16:14 2026"
      },
      "message": "Support path mapping in Rust Starlark actions (#4063)\n\nTransition from passing raw string paths (`.path`) to passing `File`\nobjects directly to action arguments (`Args`). This allows Bazel to\nmutate paths during execution, which is required for path mapping\ncompatibility.\n\nFor more details on path mapping best practices, see:\nhttps://github.com/bazelbuild/bazel/discussions/22658\n\nCo-authored-by: Krasimir Georgiev \u003ckrasimir@google.com\u003e"
    },
    {
      "commit": "0d36c003122dbe617e86f4788390a319f9d7ac58",
      "tree": "d8114c79c6f50d2edd8b0f6b16bbbeea5fa96014",
      "parents": [
        "57d165f38f6b9e3cf14037e19279eadbcf93fee5"
      ],
      "author": {
        "name": "Patrick Scott",
        "email": "patrick@pmscott.com",
        "time": "Thu Jun 11 20:04:03 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 20:04:03 2026"
      },
      "message": "Fix rust_doc_test linking with native libraries (#4080)\n\nrust_doc_test does not propagate native libraries into the final test\ncommand. This appears to only affect native libraries built by bazel\nrather than ones linked into crates by build.rs. This change only works\nwith static libraries - dynamic libraries are much more complex.\n\nFor example, using the jemalloc bazel module in tikv-jemalloc-sys.\n\n* Add -Clink-arg for all transitive non-crates\n* Add include_linker_inputs to collect all linker inputs\n* Collect linker roots from all libraries and additional inputs"
    },
    {
      "commit": "57d165f38f6b9e3cf14037e19279eadbcf93fee5",
      "tree": "1751419c53147a3536443657eb51ba4a6a862fd2",
      "parents": [
        "34ea9343a4acf22481bed84dfbbb232b75f35395"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Jun 11 13:11:48 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 13:11:48 2026"
      },
      "message": "Add support for build script runfiles (#4066)\n\nThis change restores support for runfiles in\n`cargo_build_script.script`. There exists one limitation where only\n`cargo_build_script.tools` can be located via runfiles. Any\n`cargo_build_script.data` files should be located relative to the\n`CARGO_MANIFEST_DIR` env var. This is required as there is no existing\ninterface for merging exec (tools) and target (data) runfiles.\n\ncloses https://github.com/bazelbuild/rules_rust/pull/4064"
    },
    {
      "commit": "34ea9343a4acf22481bed84dfbbb232b75f35395",
      "tree": "9a0d3b08ec77416a377be0d66a0cc5393a22bcc7",
      "parents": [
        "301d4258fe04566ec641ecc20c6975a52482d725"
      ],
      "author": {
        "name": "Martin Altenburg",
        "email": "2737351+martin4861@users.noreply.github.com",
        "time": "Wed Jun 10 15:51:05 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 15:51:05 2026"
      },
      "message": "Prefix execroot-relative file arguments with pwd (#4067)\n\nPrefix execroot-relative bare positional file args with pwd in cargo\nbuild scripts. This is already done for `-L`, `-isystem`, `--sysroot`,\netc but not for bare positional arguments like\n`bazel-out/bin/compiler-rt/libclang_rt.builtins.static.a`.\n\nThis problem arised when compiling `aws-lc-sys` with\n[hermetic-llvm](https://github.com/hermeticbuild/hermetic-llvm), see\nhttps://github.com/hermeticbuild/hermetic-llvm/issues/405\n\nA minimal working example to reproduce is created in\nhttps://github.com/martin4861/mwe-bootstrapped-rust-clang_rt.builtins.static:\n```\nclang: error: no such file or directory:\n\u0027bazel-out/darwin_arm64-fastbuild-ST-bdec89fd5d65/bin/external/llvm++llvm_source+compiler-rt/clang_rt.builtins.static_/libclang_rt.builtins.static.a\u0027\n```"
    },
    {
      "commit": "301d4258fe04566ec641ecc20c6975a52482d725",
      "tree": "e4f05339f8e0b17a580dfd855bd061440b830301",
      "parents": [
        "247703a12bcb8bfb0f9551ead198654cfe953dba"
      ],
      "author": {
        "name": "Cameron Mulhern",
        "email": "csmulhern@gmail.com",
        "time": "Wed Jun 10 13:35:35 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 13:35:35 2026"
      },
      "message": "Fixes rust-analyzer include_dirs for crates with generated sources (#3840)\n\nWhen a crate contains generated sources, `include_dirs` needs to include\nBOTH the root_module directory, and the generated sources directory.\n\nWhen `include_dirs` is empty, the inclusion of the root_module directory\nis done automatically, but when setting `include_dirs`, this needs to be\ndone manually.\n\nSee:\n\nhttps://github.com/rust-lang/rust-analyzer/blob/a84d92ff213e30fb00d7b812e07c4f67e99dcd29/crates/project-model/src/project_json.rs#L123-L131"
    },
    {
      "commit": "247703a12bcb8bfb0f9551ead198654cfe953dba",
      "tree": "fc41bf80a396ef6038a7606fbd0e65d9f8c4c6a9",
      "parents": [
        "c4d6c51d8b000c3f349f733da179d70907cb037b"
      ],
      "author": {
        "name": "Vaibhav",
        "email": "vaibhavshukla@google.com",
        "time": "Wed Jun 10 09:30:20 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 09:30:20 2026"
      },
      "message": "Add extensions_bindgen_ios task in CI to verify iOS cross-compilation (#4071)\n\nBindgen is failing to generate bindings for the iOS platform in google3\ndue to extra Apple-specific Clang flags that are not currently\nallowlisted by the bindgen implementation.\n\nAdding the iOS task to the upstream CI will help catch any\ncross-compilation failures early."
    },
    {
      "commit": "c4d6c51d8b000c3f349f733da179d70907cb037b",
      "tree": "5f4f681c9365d75e4747600492b9a0a3854a0f79",
      "parents": [
        "bf89fb67113ea7a2cb7d9a776a79f8ab6135e9b1"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Jun 04 20:25:38 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 20:25:38 2026"
      },
      "message": "Added `label_injection` to crate_universe annotations (#3755)\n\nThe new `label_injection` attribute is used to sanitize \"apparent\nlabels\" used in annotations to \"canonical labels\". A common example of\nthis is when adding external dependencies to `cargo_build_script`\ntargets. E.g.\n\n```starlark\nbazel_dep(name \u003d \"openssl\", version \u003d \"3.3.1\")\n\ncrate \u003d use_extension(\"@rules_rust//crate_universe:extensions.bzl\", \"crate\")\ncrate.annotation(\n    crate \u003d \"openssl-sys\",\n    build_script_data \u003d [\n        \"@openssl//:openssl\",\n    ],\n    build_script_env \u003d {\n        \"OPENSSL_BIN\": \"$(execpath @openssl//:openssl)\",\n    },\n    label_injection \u003d {\n        \"@openssl//:openssl\": \"@openssl//:openssl\",\n    },\n)\ncrate.from_cargo(\n    name \u003d \"crates_index\",\n    cargo_lockfile \u003d \"//:Cargo.lock\",\n    manifests \u003d [\"//:Cargo.toml\"],\n)\nuse_repo(crate, \"crates_index\")\n```\n\nBefore this change\n[inject_repo](https://bazel.build/rules/lib/globals/module#inject_repo)\nwould have been needed to get `@openssl` to resolve in the generated\n`openssl-sys` crate. After this, labels are remapped after resolving the\ncanonical label based on the `label_injection` attribute so that even if\nthe module above is consumed as a transitive dependency, the modules are\nstill usable (because `inject_repo` is only applied to the root module)."
    },
    {
      "commit": "bf89fb67113ea7a2cb7d9a776a79f8ab6135e9b1",
      "tree": "2ccaca047a02ae264edeec2fb555e8698572fefa",
      "parents": [
        "129a7c9fcade34297e0d17ab7e3386e2eb518437"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Jun 04 18:38:22 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 18:38:22 2026"
      },
      "message": "Update crate_universe boringssl with openssl (#4048)\n\nThe openssl example will be far more common than boringssl."
    },
    {
      "commit": "129a7c9fcade34297e0d17ab7e3386e2eb518437",
      "tree": "755df0567ab7c4e6ea06c1b9f75ed550b16f0106",
      "parents": [
        "51c5e0f49ee9ec53dcbeab8a49dad29e2e561c1b"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Jun 04 18:11:50 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 18:11:50 2026"
      },
      "message": "Statically link crate_universe for MSVC (#4031)\n\ncloses https://github.com/bazelbuild/rules_rust/issues/3833"
    },
    {
      "commit": "51c5e0f49ee9ec53dcbeab8a49dad29e2e561c1b",
      "tree": "3d3cbae1379298fb3124d7f6c20609f414be42f8",
      "parents": [
        "30c0f73f026e8b2536dd509d097aab407bbbf1fc"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Jun 04 18:10:28 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 18:10:28 2026"
      },
      "message": "Rename using_cxx test to ext_annotations (#4041)\n\nThe test isn\u0027t actually about using\n[cxx](https://github.com/dtolnay/cxx) but instead showing consumption of\ncrate defined annotations. E.g.\n[@cxx//:Cargo.toml#L66-L82](https://github.com/dtolnay/cxx/blob/0cbbf15ec43439e51b99d895e1f72162de81cd30/Cargo.toml#L66-L82)"
    },
    {
      "commit": "30c0f73f026e8b2536dd509d097aab407bbbf1fc",
      "tree": "6cb14e6c6dadc8f46e36ad0b5e18d6645c16f812",
      "parents": [
        "59a507e343825ddc5a0478ef3b063ae199d4d1a1"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu Jun 04 12:43:43 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 12:43:43 2026"
      },
      "message": "Fix bindgen C++17 transition on Windows (#4069)\n\nThis is more correct for all rules_cc available compilers."
    },
    {
      "commit": "59a507e343825ddc5a0478ef3b063ae199d4d1a1",
      "tree": "3a45355f88717089af6d15eb448ce1baa6adb45d",
      "parents": [
        "6910b34e8096fe37ea0d6f1d2e8fd99467ac3660"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Tue Jun 02 13:29:19 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 13:29:19 2026"
      },
      "message": "Split rustdoc test compilation and execution (#4034)\n\nThis change introduces a new `RustdocTestCompile` action which takes\nadvantage of the nightly rustc flag `-Zunstable-options\n--persist-doctests` to have rustdoc tests written to disk to be executed\nin a separate action, similar to a normal `rust_test` which first\ncompiles the test and then executes it in a test action.\n\nTo use this change a nightly toolchain is required and the use of\n`--@rules_rust//rust/settings:experimental_compile_rustdoc_tests\u003dTrue`.\n\ncloses https://github.com/bazelbuild/rules_rust/issues/1431"
    },
    {
      "commit": "6910b34e8096fe37ea0d6f1d2e8fd99467ac3660",
      "tree": "0a18bef8159393080fb528657cd44f0587ee525e",
      "parents": [
        "fabd0f9a32bc0cfb4e0ff7ad14e5525127aa813e"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Tue Jun 02 06:08:29 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 06:08:29 2026"
      },
      "message": "Consume cc deps with PIC when rustc emits PIE binaries (#4062)\n\nToday, rules_rust picks the PIC vs non-PIC variant of cc_library deps\nbased only on the C++ toolchain, feature config, crate type, and\ncompilation mode. But when rustc itself decides to emit a\nPosition-Independent Executable (PIE) for a given target, the Rust\nobjects need PIC-compatible cc deps - otherwise you get link errors from\nmixing PIE Rust objects with non-PIC C/C++ objects (the failure mode\ndemonstrated by the existing test from commit\nhttps://github.com/bazelbuild/rules_rust/commit/70f8fb7814d1b2af7f2cb0c4bdfeebf3e2e47ff4\n\"Make native_deps test fail with pie\").\n\nThis PR teaches Bazel when rustc will pass `-pie` to the linker by\nporting rustc\u0027s per-target `position_independent_executables` truth\ntable into Starlark, then feeding that into the PIC selection.\n\nRelates to #118"
    },
    {
      "commit": "fabd0f9a32bc0cfb4e0ff7ad14e5525127aa813e",
      "tree": "e04bf8320cc5f1fc70f12dc7706c9f62480b1ee5",
      "parents": [
        "20dbf36a3424b8b6793d26c5ab518c37367c06c5"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Mon Jun 01 23:27:11 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 23:27:11 2026"
      },
      "message": "Expose `opt_level` in `rust` extension (#4061)"
    },
    {
      "commit": "20dbf36a3424b8b6793d26c5ab518c37367c06c5",
      "tree": "f657723d8d5666830cbf0e0af662e4b65fb6bf61",
      "parents": [
        "0dc66fa8f47f102f49a27f1328d740081e3b6995"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Mon Jun 01 13:48:57 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 13:48:57 2026"
      },
      "message": "Added Rust 1.96.0 (#4060)\n\nhttps://blog.rust-lang.org/2026/05/28/Rust-1.96.0/"
    },
    {
      "commit": "0dc66fa8f47f102f49a27f1328d740081e3b6995",
      "tree": "ba0e2b8b7f67d89a12d1a5b8a593876325bf8169",
      "parents": [
        "e13543d59dd19ca75ebb3f5f1015a167e0c9f2a2"
      ],
      "author": {
        "name": "Suyash Agarwal",
        "email": "71758361+Suyashagarw@users.noreply.github.com",
        "time": "Mon Jun 01 12:33:44 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 12:33:44 2026"
      },
      "message": "feature: introduce link_deps attribute for native library linkage (#4024)\n\nThis change adds a dedicated link_deps attribute to Rust rules, allowing\nnative symbols to be linked without exposing them as Rust crates.\n\nCloses #4023 \n\nKey changes:\n* Added link_deps to _COMMON_ATTRS for CcInfo/CrateInfo targets.\n* Filtered link_deps out of rust_proc_macro to avoid transition\ncomplexity.\n* Implemented transform_link_deps to extract linkage context while\nhiding crate metadata.\n* Updated _assert_correct_dep_mapping to print a proactive warning for\nnative libraries listed in deps.\n* Added unit tests in test/unit/link_deps to verify correct linkage and\nprovider propagation.\n\nThis provides a cleaner separation of concerns between Rust modules and\nnative code linkage while maintaining full backward compatibility for\nexisting targets."
    },
    {
      "commit": "e13543d59dd19ca75ebb3f5f1015a167e0c9f2a2",
      "tree": "b5432a27eba4979eb5aa3d57856d9cdf8737882f",
      "parents": [
        "e0ddf88bfa1edc22549134ff13d3aefa80994794"
      ],
      "author": {
        "name": "Jorge Gorbe Moya",
        "email": "slack@codemaniacs.com",
        "time": "Mon Jun 01 09:43:02 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 09:43:02 2026"
      },
      "message": "Support `--incompatible_exclude_starlark_flags_from_exec_config`. (#4056)\n\nThis change adds `scope \u003d \"universal\"` to some settings that need to be\npreserved in exec config."
    },
    {
      "commit": "e0ddf88bfa1edc22549134ff13d3aefa80994794",
      "tree": "c8b07a068c457c3b389e2e00ce1b0b137d61b020",
      "parents": [
        "179d109ef8151a256653c47beb27f817ba968d41"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu May 28 17:24:01 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 17:24:01 2026"
      },
      "message": "Fix incorrect exec transition for cargo_build_script (#4040)\n\nRelying on an exec configuration through targets consumed in `target`\nleads to the potential for `cfg \u003d \"exec\"` to be evaluated differently in\nthe transitive target (in this case,\n`cargo_build_script_runfiles.script`) and the consumer\n(`cargo_build_script.data_runfiles`). This change moves the script\ndirectly back to `cargo_build_script` in `cfg \u003d \"exec\"` and separately\nuses a `cfg \u003d \"target\"` intermediate rule to implement runfiles (solving\nfor https://github.com/bazelbuild/bazel/issues/15486).\n\ncloses https://github.com/bazelbuild/rules_rust/issues/3201\nhttps://github.com/bazelbuild/rules_rust/issues/3893"
    },
    {
      "commit": "179d109ef8151a256653c47beb27f817ba968d41",
      "tree": "87f30bf496a7214b231323a5eeed1afebfe38a85",
      "parents": [
        "0eca14919146d12010da680eb3c19c777dd09a4f"
      ],
      "author": {
        "name": "scentini",
        "email": "rosica@google.com",
        "time": "Thu May 28 17:14:46 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 17:14:46 2026"
      },
      "message": "Update CONTRIBUTING.md (#4051)\n\nUpdate `CONTRIBUTING.md` to add guidelines around LLM contributions,\npublic interface changes, and manage expectations for contributions to\nareas that are not properly owned/maintained today."
    },
    {
      "commit": "0eca14919146d12010da680eb3c19c777dd09a4f",
      "tree": "221a7330f6550b4726f3bafb0d316041b26df4ad",
      "parents": [
        "4bfb5ee254d0d51ff3250306a119c45501326870"
      ],
      "author": {
        "name": "Pierre Gergondet",
        "email": "pierre.gergondet@woven.toyota",
        "time": "Thu May 28 12:56:12 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 12:56:12 2026"
      },
      "message": "Strip whitespace from paths before prefixing ${pwd} (#4054)\n\nFixes #3992\n\nThis patch strips the relative paths before prefixing `${pwd}`. This\nalso tweaks an existing test to test this situation."
    },
    {
      "commit": "4bfb5ee254d0d51ff3250306a119c45501326870",
      "tree": "c507173b7e673ff409678d077930d7ec4c65e644",
      "parents": [
        "92621cdf966857d1c7657c6ac91d1ecf77471101"
      ],
      "author": {
        "name": "Martin Gammelsæter",
        "email": "mg@axadelta.com",
        "time": "Wed May 27 21:36:33 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 21:36:33 2026"
      },
      "message": "Pass --config skip_children\u003dtrue to rustfmt (#4059)\n\nThe rustfmt.toml `skip_children` workaround is a no-op on stable\nrustfmt. Instead, we pass it as a --config flag, which seems to be\nhonored.\n\nFixes #4022"
    },
    {
      "commit": "92621cdf966857d1c7657c6ac91d1ecf77471101",
      "tree": "8a634c0886e0628ee69f7ee12c9a79887504e174",
      "parents": [
        "19ce34a811e011b4b56f407e87fa33cb5daa42ff"
      ],
      "author": {
        "name": "Jorge Gorbe Moya",
        "email": "slack@codemaniacs.com",
        "time": "Wed May 27 15:15:56 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 15:15:56 2026"
      },
      "message": "Remove placeholder for Google-internal import macro. (#4058)\n\nThe placeholder is no longer needed for Google to keep using the import\nmacro internally, so we don\u0027t have to keep it in the upstream repo."
    },
    {
      "commit": "19ce34a811e011b4b56f407e87fa33cb5daa42ff",
      "tree": "49d16c182f889fa7a74b9e8e3342293a9b3e9dab",
      "parents": [
        "a2d98d6bf693810668b49cd5a81e3c36703034f3"
      ],
      "author": {
        "name": "Alex Trotta",
        "email": "44127594+Ahajha@users.noreply.github.com",
        "time": "Fri May 22 16:24:59 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 16:24:59 2026"
      },
      "message": "Add extra_exec_rustc_flags_triples to toolchain attributes (#3911)\n\nWe have:\nextra_rustc_flags\nextra_rustc_flags_triples\nextra_exec_rustc_flags\n, so rounding out the set. Hit this when passing\n`-Clink-self-contained\u003dno` to the toolchain, and this is only available\non x86_64 rust toolchains."
    },
    {
      "commit": "a2d98d6bf693810668b49cd5a81e3c36703034f3",
      "tree": "f7cb5c05430a92b08be10520ee1a8ec76b2e4141",
      "parents": [
        "dea48e6108b40905400573bb76c523f88971d831"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Thu May 21 14:03:38 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 14:03:38 2026"
      },
      "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 10:28:42 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 10:28:42 2026"
      },
      "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 03:14:55 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 03:14:55 2026"
      },
      "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 14:44:40 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 14:44:40 2026"
      },
      "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 13:32:02 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 13:32:02 2026"
      },
      "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 13:31:34 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 13:31:34 2026"
      },
      "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 13:31:19 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 13:31:19 2026"
      },
      "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 08:25:40 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 08:25:40 2026"
      },
      "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 15:54:22 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 08 15:54:22 2026"
      },
      "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 17:06:21 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 07 17:06:21 2026"
      },
      "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 12:23:34 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 07 12:23:34 2026"
      },
      "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 11:48:44 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 06 11:48:44 2026"
      },
      "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 22:27:42 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 05 22:27:42 2026"
      },
      "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 13:47:11 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 05 13:47:11 2026"
      },
      "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 11:57:27 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 05 11:57:27 2026"
      },
      "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 17:10:12 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 04 17:10:12 2026"
      },
      "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 16:46:30 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 04 16:46:30 2026"
      },
      "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 22:33:37 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 22:33:37 2026"
      },
      "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 19:58:18 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 19:58:18 2026"
      },
      "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 12:45:30 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 12:45:30 2026"
      },
      "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 08:32:12 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 08:32:12 2026"
      },
      "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 21:31:15 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 21:31:15 2026"
      },
      "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 21:12:59 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 21:12:59 2026"
      },
      "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 16:38:58 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 16:38:58 2026"
      },
      "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 13:42:25 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 13:42:25 2026"
      },
      "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 16:35:28 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 16:35:28 2026"
      },
      "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 15:38:19 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 15:38:19 2026"
      },
      "message": "Release 0.70.0 (#3959)"
    },
    {
      "commit": "9a137c3075b8bb04dd045d30705d0bacc332df5c",
      "tree": "c54ed68df3fdb6b1d872f76bda05fa9254cc19b3",
      "parents": [
        "82506df3f31240f97194b2e9453022125eaa07f4"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Wed Apr 22 15:37:06 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 15:37:06 2026"
      },
      "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 12:53:11 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 12:53:11 2026"
      },
      "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 20:18:16 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 20:18:16 2026"
      },
      "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 20:18:06 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 20:18:06 2026"
      },
      "message": "Delete `//cargo/settings:incompatible_runfiles_cargo_manifest_dir` (#3881)\n\nCloses https://github.com/bazelbuild/rules_rust/issues/2898"
    }
  ],
  "next": "ad14c2b1ad51f8031779174be0097278b537414b"
}
