)]}'
{
  "commit": "4d399f5ee60728737d8f1a60f2da198364b2c87c",
  "tree": "e64c0ed8a60a7deaa0bbcf412653b105259c1c88",
  "parents": [
    "922b8d0a899307a390516ef8e85e7dc933cb9de9"
  ],
  "author": {
    "name": "Bogdan Mircea",
    "email": "98585737+bobozaur@users.noreply.github.com",
    "time": "Wed Mar 26 20:54:13 2025 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Mar 26 18:54:13 2025 +0000"
  },
  "message": "`rust-analyzer` discoverConfig integration (#3073)\n\nAdds a target that can be used for project auto-discovery by using the\n`discoverConfig` settings as described in the `rust-analyzer` user\nmanual.\n\nUnlike the `gen_rust_project` target, this can be used for dynamic\nproject discovery, and passing `{arg}` to `discoverConfig.command` can\nsplit big repositories into multiple, smaller workspaces that\n`rust-analyzer` switches between as needed. Large repositories can make\nit OOM.\n\nAt amo, we\u0027ve used a similar implementation for a while with great\nsuccess, which is why we figured we might upstream it. The changes also\ninclude two additional output groups to ensure that proc-macros and\nbuild script targets are built, as `rust-analyzer` depends on these to\nprovide complete IDE support.\n\nAdditionally, the PR makes use of the `output_base` value in `bazel`\ninvocations. We found it helpful to have tools such as `rust-analyzer`\nand `clippy` run on a separate bazel server than the one used for\nbuilding. And a `config_group` argument was added to provide the ability\nto provide a config group to `bazel` invocations.\n\nAn attempt to get codelens actions to work was done as well,\nparticularly around tests and binaries. They seem to work, but I\u0027m not\n100% sure whether the approach taken is the right one.\n\nCloses #2755 .\n\n---------\n\nCo-authored-by: Krasimir Georgiev \u003ckrasimir@google.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4014ec3778c14b3c6a0c1e1621928b5737f5dd1f",
      "old_mode": 33188,
      "old_path": ".bazelci/presubmit.yml",
      "new_id": "7a931a26874328582065c217a97ad90a6fc4f1aa",
      "new_mode": 33188,
      "new_path": ".bazelci/presubmit.yml"
    },
    {
      "type": "modify",
      "old_id": "0316dc90067d5896d6998391bbc89917ea5cfcdc",
      "old_mode": 33188,
      "old_path": ".gitignore",
      "new_id": "74ef480cc25bba48f38d648c76016a2dbd7dc8a4",
      "new_mode": 33188,
      "new_path": ".gitignore"
    },
    {
      "type": "modify",
      "old_id": "5171b23720708f2e4fe5794cf5eb9d46d0e1608b",
      "old_mode": 33188,
      "old_path": "MODULE.bazel",
      "new_id": "971d0867bad64e46555721c6c49eb9d93f834b53",
      "new_mode": 33188,
      "new_path": "MODULE.bazel"
    },
    {
      "type": "modify",
      "old_id": "b9743320b56f9008b8297078aa959c66730819fe",
      "old_mode": 33188,
      "old_path": "docs/rust_analyzer.vm",
      "new_id": "e5f794b3f3a7143bfe77862eb04e469ac75c3e9a",
      "new_mode": 33188,
      "new_path": "docs/rust_analyzer.vm"
    },
    {
      "type": "modify",
      "old_id": "61157e8f6c9b0262fae71242deed66305a128bdb",
      "old_mode": 33188,
      "old_path": "extensions/prost/private/prost.bzl",
      "new_id": "c5917107b5f029f7f5fa7f36426e59092716299e",
      "new_mode": 33188,
      "new_path": "extensions/prost/private/prost.bzl"
    },
    {
      "type": "modify",
      "old_id": "0556ebef5f4dde0a445fab5a2fa20d17a8ad5fc6",
      "old_mode": 33188,
      "old_path": "rust/private/providers.bzl",
      "new_id": "746370bc709c4494efda6c0e1c2d1e351881904f",
      "new_mode": 33188,
      "new_path": "rust/private/providers.bzl"
    },
    {
      "type": "modify",
      "old_id": "bc12306a8251649ade4e10ee614978cb05a29dec",
      "old_mode": 33188,
      "old_path": "rust/private/rust_analyzer.bzl",
      "new_id": "a08d50ca4aa3b7b508dd3b6b949a667e13f7393f",
      "new_mode": 33188,
      "new_path": "rust/private/rust_analyzer.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c363ad776df9c03fbd11a8ff31cb7c769a5801ee",
      "new_mode": 33188,
      "new_path": "test/rust_analyzer/auto_discovery_static_and_shared_lib_test/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e015b7cee27c6ac9709214dde9c746ed828fa59b",
      "new_mode": 33188,
      "new_path": "test/rust_analyzer/auto_discovery_static_and_shared_lib_test/auto_discovery_json_test.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ac87521090c7054b73957b98d28eee888e0aee39",
      "new_mode": 33188,
      "new_path": "test/rust_analyzer/auto_discovery_static_and_shared_lib_test/greeter.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "44969c66c714583f1fe3533a6b564c3068134a91",
      "new_mode": 33188,
      "new_path": "test/rust_analyzer/auto_discovery_static_and_shared_lib_test/shared_lib.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "44969c66c714583f1fe3533a6b564c3068134a91",
      "new_mode": 33188,
      "new_path": "test/rust_analyzer/auto_discovery_static_and_shared_lib_test/static_lib.rs"
    },
    {
      "type": "modify",
      "old_id": "44c35e0ff9521b8261c7e78e35f0b8419d8e3a83",
      "old_mode": 33261,
      "old_path": "test/rust_analyzer/rust_analyzer_test_runner.sh",
      "new_id": "689d95e670ebd8eaad6fa703100ee102aa89576e",
      "new_mode": 33261,
      "new_path": "test/rust_analyzer/rust_analyzer_test_runner.sh"
    },
    {
      "type": "modify",
      "old_id": "9739042dbc4eadef5f539aaa61a0fe2315585103",
      "old_mode": 33188,
      "old_path": "tools/rust_analyzer/3rdparty/BUILD.bazel",
      "new_id": "6759e52f1706f2f8e34637bf0d8989f8aa97d6c1",
      "new_mode": 33188,
      "new_path": "tools/rust_analyzer/3rdparty/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "ab1c359e8bc5a910ae16c89040ddc0fb74f81c26",
      "old_mode": 33188,
      "old_path": "tools/rust_analyzer/3rdparty/Cargo.Bazel.lock",
      "new_id": "feef41fd2bc47fa456270d81d105cdc59b0e4de6",
      "new_mode": 33188,
      "new_path": "tools/rust_analyzer/3rdparty/Cargo.Bazel.lock"
    },
    {
      "type": "modify",
      "old_id": "b33911c06e08b71495f1db6c42507f448f642a66",
      "old_mode": 33188,
      "old_path": "tools/rust_analyzer/3rdparty/crates/BUILD.bazel",
      "new_id": "a908c681ec820309777969397da8843f6489687a",
      "new_mode": 33188,
      "new_path": "tools/rust_analyzer/3rdparty/crates/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8f01a81c1f5adff30da9328dbd386a2c83a53880",
      "new_mode": 33188,
      "new_path": "tools/rust_analyzer/3rdparty/crates/BUILD.camino-1.1.9.bazel"
    },
    {
      "type": "modify",
      "old_id": "bc75a66472c7cd3742a6a51a55faf56c2002457b",
      "old_mode": 33188,
      "old_path": "tools/rust_analyzer/3rdparty/crates/defs.bzl",
      "new_id": "081f00b1c8cffda59eabaaf0dade767c4caddd43",
      "new_mode": 33188,
      "new_path": "tools/rust_analyzer/3rdparty/crates/defs.bzl"
    },
    {
      "type": "modify",
      "old_id": "e17691d6c8095e4e0cbae4ebcac1312b5c2639f6",
      "old_mode": 33188,
      "old_path": "tools/rust_analyzer/BUILD.bazel",
      "new_id": "018ca0924073933225c0e67e77fd65f83ff48ff9",
      "new_mode": 33188,
      "new_path": "tools/rust_analyzer/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "7bef2105be79db809f4eb1bc3be6faa710fb7bc8",
      "old_mode": 33188,
      "old_path": "tools/rust_analyzer/aquery.rs",
      "new_id": "f306aa5b7583513468a2ebe4f556193de204a415",
      "new_mode": 33188,
      "new_path": "tools/rust_analyzer/aquery.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9598f0519a3ef47f07bb382fa9e5dc61e07a78fe",
      "new_mode": 33188,
      "new_path": "tools/rust_analyzer/bin/discover_rust_project.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e7892e80b7238893e0ddfd636cf7a7459760eb14",
      "new_mode": 33188,
      "new_path": "tools/rust_analyzer/bin/gen_rust_project.rs"
    },
    {
      "type": "modify",
      "old_id": "68422164749a2119ad59024b3aa918e3ca483697",
      "old_mode": 33188,
      "old_path": "tools/rust_analyzer/lib.rs",
      "new_id": "4ea641e6a024c8042e4455e0b678b209190926f5",
      "new_mode": 33188,
      "new_path": "tools/rust_analyzer/lib.rs"
    },
    {
      "type": "delete",
      "old_id": "f1dc0143fbc1c9a359b4259cc44e30b3cc5e9624",
      "old_mode": 33188,
      "old_path": "tools/rust_analyzer/main.rs",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "f694267379dbb7909512a1b184d9cf8fa5c28f09",
      "old_mode": 33188,
      "old_path": "tools/rust_analyzer/rust_project.rs",
      "new_id": "749347ea33c9a69d7b9c7128cb56c262ea030eaf",
      "new_mode": 33188,
      "new_path": "tools/rust_analyzer/rust_project.rs"
    }
  ]
}
