)]}'
{
  "log": [
    {
      "commit": "748e5d81ff0f4d542ccc2fb98892aeef21f07c30",
      "tree": "2992c582bdd34991ddb3c87b2054e4d5bf9f004b",
      "parents": [
        "b1e9c9d32e7630b9720e60f6accc3c63c0960723"
      ],
      "author": {
        "name": "Keith Smiley",
        "email": "keithbsmiley@gmail.com",
        "time": "Tue Jul 28 14:07:41 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 28 21:07:41 2026 +0000"
      },
      "message": "Fix cgo race detection (#2383)\n\nThis is required for rules_go 0.62.0+"
    },
    {
      "commit": "b1e9c9d32e7630b9720e60f6accc3c63c0960723",
      "tree": "4bc71d22a978d834d4f2bed1d221600621630607",
      "parents": [
        "8a2dc640bfa6feecfc82312a281e76fff21b05b0"
      ],
      "author": {
        "name": "Tyler French",
        "email": "tfrench@uber.com",
        "time": "Thu Jul 23 16:53:21 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 16:53:21 2026 -0400"
      },
      "message": "fix releases for immutable GitHub releases (#2381)"
    },
    {
      "commit": "8a2dc640bfa6feecfc82312a281e76fff21b05b0",
      "tree": "167b5bdd3bfccd46ece865061c2b0f9ac9e789b8",
      "parents": [
        "1208622c21a6b52907725c7257ff9cc6f884c084"
      ],
      "author": {
        "name": "Tyler French",
        "email": "tfrench@uber.com",
        "time": "Thu Jul 23 15:50:46 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 15:50:46 2026 -0400"
      },
      "message": "docs: update Gazelle and rules_go releases (#2380)\n\nFix up some docs"
    },
    {
      "commit": "1208622c21a6b52907725c7257ff9cc6f884c084",
      "tree": "49ab7ec9fe20f4a0079d8e72255933869ae4f9d7",
      "parents": [
        "f50322b61ced73413c82ed3d584970d648464986"
      ],
      "author": {
        "name": "Tyler French",
        "email": "french.tyler.d@gmail.com",
        "time": "Thu Jul 23 12:42:40 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 16:42:40 2026 +0000"
      },
      "message": "fix release archive format for BCR (#2379)"
    },
    {
      "commit": "f50322b61ced73413c82ed3d584970d648464986",
      "tree": "b4f7a345542e9247aaa726a22aabdf01c943f33d",
      "parents": [
        "478a61c6742f9249702690f97b0f07210c095b4d"
      ],
      "author": {
        "name": "Tyler French",
        "email": "tfrench@uber.com",
        "time": "Thu Jul 23 12:03:43 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 12:03:43 2026 -0400"
      },
      "message": "fix release script to use tzst as expected (#2378)\n\nFixing https://github.com/bazel-contrib/bazel-gazelle/issues/2376\n.tzst is necessary because the pinned attestation workflow recognizes it"
    },
    {
      "commit": "478a61c6742f9249702690f97b0f07210c095b4d",
      "tree": "15025280b744e184821e71074fb3c4c8e4eea6bc",
      "parents": [
        "a1b7ff21027be138c00498d328fcd2af698e259a"
      ],
      "author": {
        "name": "zbarsky-openai",
        "email": "zbarsky@openai.com",
        "time": "Thu Jul 23 10:45:08 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 07:45:08 2026 -0700"
      },
      "message": "fix: use v2 testtools in generation tests (#2377)\n\nThe compatibility module already requires\n`github.com/bazel-contrib/bazel-gazelle/v2`, but\n`internal/generationtest` still depends on the legacy `//testtools`\ntarget and imports `github.com/bazelbuild/bazel-gazelle/testtools`.\n\nThis split makes generation tests resolve a different testtools package\nfrom the v2 dependency graph. Switch both the Bazel target and the Go\nimport to the canonical v2 package so the generation-test helper and the\nmodule graph agree.\n\nThe change is limited to the existing generation-test BUILD dependency\nand import; it does not change production Gazelle behavior."
    },
    {
      "commit": "a1b7ff21027be138c00498d328fcd2af698e259a",
      "tree": "5e60849a0bee4bbb1e25b59ccaec9905e1b0dc6c",
      "parents": [
        "fea258518fde664e76a76272b54a8e228416d4f9"
      ],
      "author": {
        "name": "H5-O5",
        "email": "166461697+H5-O5@users.noreply.github.com",
        "time": "Thu Jul 16 12:04:42 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 16 19:04:42 2026 +0000"
      },
      "message": "feat(go): add directives to set Go/C compiler and linker flags on generated rules (#2372)\n\nImplements #2371.\n\nAdds a family of Go directives that set string-list compiler/linker\nattributes on generated rules. The main motivation is applying flags to\nexternal dependencies generated by `go_deps`, which have no hand-written\nbuild files to edit — the directives flow through the existing\n`directives` channel of `go_deps.gazelle_default_attributes` /\n`gazelle_override`.\n\n| Directive | Attribute | Applied to | Gate |\n|---|---|---|---|\n| `# gazelle:go_gc_goopts` | `gc_goopts` | `go_library` / `go_binary` /\n`go_test` with sources | — |\n| `# gazelle:go_gc_linkopts` | `gc_linkopts` | `go_binary`, `go_test` |\n— |\n| `# gazelle:go_copts` | `copts` | cgo targets (`go_library`) | `cgo \u003d\nTrue` |\n| `# gazelle:go_cppopts` | `cppopts` | cgo targets (`go_library`) | `cgo\n\u003d True` |\n| `# gazelle:go_cxxopts` | `cxxopts` | cgo targets (`go_library`) | `cgo\n\u003d True` |\n| `# gazelle:go_clinkopts` | `clinkopts` | cgo targets (`go_library`) |\n`cgo \u003d True` |\n\n**Notes on design (per discussion in the issue):**\n- The C flags (`copts`/`cppopts`/`cxxopts`/`clinkopts`) are **merged**\nwith the flags Gazelle derives from `#cgo` comments, not overwritten.\n- `clinkopts` is set on `go_library`, matching where the source-derived\n`clinkopts` already go. Gazelle never generates a cgo\n`go_binary`/`go_test` (cgo isn\u0027t allowed in `_test.go`, and a cgo `main`\nbecomes a cgo `go_library` embedded by a plain `go_binary`), so in\npractice all C flags land on `go_library`.\n- `gc_goopts`/`gc_linkopts` are set directly (not derived from source);\n`gc_goopts` needs sources to compile, `gc_linkopts` applies to the\nlinking rules.\n- Values may be separated by whitespace and/or commas (`-N -l` is\nequivalent to `-N,-l`); an empty value resets the directive.\n\n**Tests**\n- Unit tests for directive parsing, reset, and inheritance\n(`config_test.go`).\n- A generate golden (`testdata/compiler_flags`) exercising emission, the\ncgo gate, the library-vs-linking gate, and merging with `#cgo`-derived\nflags.\n- `go test ./language/go/` passes; new/changed files are `gofmt`-clean.\n\n**Docs**\n- `language/go/reference.md` documents all six directives.\n\n*Drafted with Claude Code.*\n\n---------\n\nCo-authored-by: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\nCo-authored-by: Jay Conrod \u003cjay@engflow.com\u003e"
    },
    {
      "commit": "fea258518fde664e76a76272b54a8e228416d4f9",
      "tree": "00858000ab845e5fd5a5ebf0e3d7e21f30f4b63a",
      "parents": [
        "34b6c99a129cafba5f726e9104a1739f3c21f111"
      ],
      "author": {
        "name": "Fabian Meumertzheim",
        "email": "fabian@meumertzhe.im",
        "time": "Wed Jul 15 20:09:18 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 18:09:18 2026 +0000"
      },
      "message": "Record GOROOT as a label in go.env (#2374)\n\n**What type of PR is this?**\n\nBug fix\n\n**What package or component does this PR mostly affect?**\n\ngo_repository\n\n**What does this PR do? Why is it needed?**\n\n`go_repository_cache` writes `GOROOT` into `go.env` as an absolute path\ninto the output base that fetched it, and that path reaches every\n`go_repository` fetch as a plain string. This has two problems, all of\nwhich surface as non-deterministic failures of the form `fetch_repo: go\nmod download exec error: .../bin/go: no such file or directory`:\n\n1. There is no dependency edge from a `go_repository` fetch to the Go\nSDK repo, so a fetch can execute `$GOROOT/bin/go` while the SDK repo is\nconcurrently being refetched (its directory is deleted before\nre-extraction). This can be triggered by, for example, upgrading\nrules_go (invalidates the SDK repo) and gazelle (invalidates all\n`go_repository` repos via the watched `fetch_repo` binary) at the same\ntime.\n2. With Bazel\u0027s `--experimental_remote_repo_contents_cache`, an SDK repo\nserved from the cache exists only in Bazel\u0027s in-memory overlay file\nsystem until something materializes it. Materialization is triggered by\nresolving a label into the repo, which only ever happened in\n`go_repository_cache` itself — a repo whose own cache hit skips exactly\nthat code. `fetch_repo`, a host subprocess reading the real file system,\nthen fails to exec `$GOROOT/bin/go`.\n\nThis PR records the label of the SDK repo\u0027s `ROOT` file in `go.env`\ninstead and resolves it back to a path in `read_cache_env`, i.e. in the\ncontext of the consuming repository rule. The label resolution creates\nthe missing dependency edge (fixing 1), goes through `getPathFromLabel`\nand thus materializes a remote repo contents cache hit before any\nsubprocess reads it (fixing 2), and is independent of the output base\nthat wrote `go.env` (avoids absolute paths in repo rule outputs).\n\n**Which issues(s) does this PR fix?**\n\nNo issue filed; the failure mode is described above.\n\n**Other notes for review**\n\nVerified with `bazel test //internal:bazel_test --test_env\u003dPATH`, which\nexercises the full `go_repository` fetch pipeline including `go.env`\ncreation and consumption."
    },
    {
      "commit": "34b6c99a129cafba5f726e9104a1739f3c21f111",
      "tree": "8808151a0c6a218fefef3940911763d31b496ae4",
      "parents": [
        "6623f1ab00d488701cd1e94959d8cc1e5c31554b"
      ],
      "author": {
        "name": "Dan Markwat",
        "email": "daniel.markwat@gmail.com",
        "time": "Wed Jul 15 00:04:56 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 09:04:56 2026 +0200"
      },
      "message": "fix: add Gazelle overrides for additional dependencies (#2373)\n\n\u003c!-- Thanks for sending a PR! Before submitting:\n\n1. If this is your first PR, please read CONTRIBUTING.md and sign the\nCLA\n   first. We cannot review code without a signed CLA.\n2. Please file an issue *first*. All features and most bug fixes should\nhave\nan associated issue with a design discussed and decided upon. Small bug\n   fixes and documentation improvements don\u0027t need issues.\n3. New features and bug fixes must have tests. Documentation may need to\nbe updated. If you\u0027re unsure what to update, send the PR, and we\u0027ll\ndiscuss\n   in review.\n--\u003e\n\n**What type of PR is this?**\n\nBug fix\n\n**What package or component does this PR mostly affect?**\n\n//internal/bzlmod\n\n**What does this PR do? Why is it needed?**\n\nAdds `proto:disable` for two known transitive dependencies/usages where\nproto files don\u0027t allow for gazelle_overrides in transitive bazel\nmodules.\n\n**Which issues(s) does this PR fix?**\n\nFixes n/a\n\n**Other notes for review**\n\nOne mitigation is to use `--experimental_isolated_extension_usages` and\n`... \u003d use_extension(\"@gazelle//:extensions.bzl\", \"go_deps\", isolate \u003d\nTrue)`, but as that flag [amply\ninforms](https://bazel.build/rules/lib/globals/module#parameters_13):\n\u003e This parameter is experimental and may change at any time. Please do\nnot depend on it.\n\nSo until that\u0027s ready, this PR is one path to dealing with it."
    },
    {
      "commit": "6623f1ab00d488701cd1e94959d8cc1e5c31554b",
      "tree": "d08ea06032c245c0b6c2d9c6e20278b6f3c1bc29",
      "parents": [
        "15d1f023b75ced3d89e1dfac9ac9e5e5e3cdd0e5"
      ],
      "author": {
        "name": "Alex Torok",
        "email": "alex.torok@aurora.tech",
        "time": "Mon Jul 13 12:31:52 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 16:31:52 2026 +0000"
      },
      "message": "Fix alias_kind directive leaking across directories (#2368)\n\nConfig.Clone() deep-copies KindMap but never copied AliasMap, so every\ndirectory\u0027s config shared a single AliasMap by reference. A \"#\ngazelle:alias_kind\" directive set in one package therefore mutated the\nmap seen by every other directory in the repo. For most people this\nlikely isn\u0027t an issue, but could lead to unexpected behavior.\n\nFix Clone() to copy AliasMap the same way it copies KindMap, making\nalias_kind properly directory-scoped like map_kind. Add a regression\ntest that reproduces the cross-directory leak and asserts an unrelated\nsibling package is left untouched.\n\n**What type of PR is this?**\n\nBug fix\n\n**What package or component does this PR mostly affect?**\n\nv2/config\n\n**What does this PR do? Why is it needed?**\nFixes a bug with alias_kind not being appropriately scoped to the\npackage that defines the directive.\n\n**Which issues(s) does this PR fix?**\nN/A"
    },
    {
      "commit": "15d1f023b75ced3d89e1dfac9ac9e5e5e3cdd0e5",
      "tree": "f25882ec3497f515ffe315ffe495831fa6af710a",
      "parents": [
        "ac8ea6f8fc41b11f4ba92d2442df803af51d0ca5"
      ],
      "author": {
        "name": "Rafik Salama",
        "email": "rafik.salama@soundcloud.com",
        "time": "Wed Jul 08 12:16:39 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 12:16:39 2026 +0200"
      },
      "message": "feat(go): support rc toolchains (#2370)\n\n**What type of PR is this?**\n\nBug fix / feature\n\n**What package or component does this PR mostly affect?**\n\nlanguage/go\n\n**What does this PR do? Why is it needed?**\n\nIf you try to use Gazelle today with a pre-release version of Go (e.g.\n`1.27rc1`), you receive an error:\n\n```\n\tFile \"/Users/rafiksalama/Library/Caches/bazel/_bazel_rafiksalama/c4824d8210ee1e28e2bc4f237bdd53e8/external/gazelle+/internal/bzlmod/go_deps.bzl\", line 479, column 95, in _go_deps_impl\n\t\tmodule_path, module_tags_from_go_mod, go_mod_replace_map, tools \u003d deps_from_go_mod(module_ctx, from_file_tag.go_mod)\n\tFile \"/Users/rafiksalama/Library/Caches/bazel/_bazel_rafiksalama/c4824d8210ee1e28e2bc4f237bdd53e8/external/gazelle+/internal/bzlmod/go_mod.bzl\", line 181, column 26, in deps_from_go_mod\n\t\tgo_mod \u003d parse_go_mod(go_mod_content, go_mod_path)\n\tFile \"/Users/rafiksalama/Library/Caches/bazel/_bazel_rafiksalama/c4824d8210ee1e28e2bc4f237bdd53e8/external/gazelle+/internal/bzlmod/go_mod.bzl\", line 266, column 30, in parse_go_mod\n\t\tgo \u003d (int(major), int(minor)),\nError in int: invalid base-10 literal: \"27rc1\"\n```\n\nThis change strips the strips all characters including and after `rc`\nfrom the go version string and parses major/minor from that. So, e.g.\n`1.27rc1` returns (1, 27) for major/minor.\n\n**Which issues(s) does this PR fix?**\n\nFixes #\n\nN/A. Original report in [Bazel\nslack](https://bazelbuild.slack.com/archives/CDBP88Z0D/p1783432998221279)."
    },
    {
      "commit": "ac8ea6f8fc41b11f4ba92d2442df803af51d0ca5",
      "tree": "9e2941e3b75e024f4de2c0cca3168f44c4045ca7",
      "parents": [
        "0b16aec36247c15feec28d9e4812bd4f6194a16b"
      ],
      "author": {
        "name": "Zhongpeng Lin",
        "email": "zplin@uber.com",
        "time": "Tue Jul 07 11:58:10 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 20:58:10 2026 +0200"
      },
      "message": "Fix: stop adding prefix to proto imports (#2369)\n\n**What type of PR is this?**\n\nBug fix\n\n**What package or component does this PR mostly affect?**\n\nlanguage/proto\n\n**What does this PR do? Why is it needed?**\nThe imports parsed from proto file is already a full qualified import\npath, as proto files don\u0027t allow relative imports. Caling `getPrefix()`\non top of the imports will make the custom prefix from\n`gazelle:proto_import_prefix` appear twice, breaking the self-import\ndetection logic."
    },
    {
      "commit": "0b16aec36247c15feec28d9e4812bd4f6194a16b",
      "tree": "dfd77c60743eb848cdfbb50ed276179220b63996",
      "parents": [
        "6606edfb28a02226fab01118f23e2ded9197c105"
      ],
      "author": {
        "name": "Malte Poll",
        "email": "1780588+malt3@users.noreply.github.com",
        "time": "Mon Jul 06 20:40:06 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 19:40:06 2026 +0000"
      },
      "message": "fetch_repo: verify module sum using \"go mod download\" JSON, not the extracted tree (#2366)\n\nfetch_repo re-hashed the extracted module directory with dirhash.HashDir\nand compared the result against the go.sum entry. This duplicates the\nverification go itself does, but derives the hash from the filesystem\nrather than the authoritative source, so it fails whenever the\nfilesystem cannot faithfully round-trip the zip\u0027s file names.\n\ngithub.com/vbatts/go-mtree v0.7.0 ships a testdata file whose name ends\nin a trailing space (testdata/dirwithbrokenlink/...). On Windows the\ntrailing space is stripped during extraction, so HashDir walks a\ndifferent set of names than the zip contains and computes a different\nhash. This surfaces as a spurious sum mismatch on Windows only, even\nthough the downloaded module is correct:\n\n    fetch_repo: resulting module with sum\n    h1:0eFy2k8hOMfWGZ0EXIWhDdNMeCo0+DSQWB23GP6xdWg\u003d; expected sum\n    h1:ytmOc3MTRidZiBi9VBCyZ2BHe4fZS47L5v7BVXDWW4E\u003d. Please retry.\n\nThe h1: hash in go.sum is defined as dirhash.HashZip over the module\nzip, which is exactly what the go toolchain computes and verifies before\nextraction. Trust the value reported by Go instead: `go mod download\n-json` already reports the sum it calculated, so we can use that value.\nThis means we perform the same check standard Go tooling performs, which\nis immune to filesystem round-trip quirks (trailing spaces,\ncase-folding, unicode normalization, symlink handling, ...).\n\nThe verification also moves ahead of copyTree, so a mismatch is caught\nbefore anything is written to the destination.\n\n**What type of PR is this?**\n\nBug fix\n\n**What package or component does this PR mostly affect?**\n\ngo_repository\n\n**What does this PR do? Why is it needed?**\n\nAllows users to depend on vbatts/go-mtree on Windows\n\n**Which issues(s) does this PR fix?**\n\nNo issue created\n\n**Other notes for review**\n\nHappy to add a test, but really unsure how to write one that\u0027s not\noverly complex.\n\nCo-authored-by: Jay Conrod \u003cjay@engflow.com\u003e"
    },
    {
      "commit": "6606edfb28a02226fab01118f23e2ded9197c105",
      "tree": "5e7d40fd2b8cdf9ef676b60f16297ba4cc467b8a",
      "parents": [
        "8bfb6261fa4ed39b98bf0011fcaaf4edc1f649a5"
      ],
      "author": {
        "name": "H5-O5",
        "email": "166461697+H5-O5@users.noreply.github.com",
        "time": "Sat Jul 04 22:49:12 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 05 07:49:12 2026 +0200"
      },
      "message": "go_deps: allow overriding a module\u0027s Bazel repo name (#2365)\n\nTwo distinct Go modules whose import paths differ only by `/` vs `_` (or\nonly by case) mangle to the same Bazel repo name, so go_deps hard-fails.\nWhen both are pulled in transitively, dropping one from the `go.mod` is\nnot always actionable.\n\nAdd an optional `repo_name` attribute to the `gazelle_override` tag.\nWhen set, it is used as the Bazel repo name for that module instead of\nthe mangled default, letting the root module break such collisions. The\nchange is purely additive and root-module-only, like other\ngazelle_override attributes; the collision check still runs on the\nresulting names, and its error message now points at this attribute.\n`repo_name` is intentionally kept out of `_GAZELLE_ATTRS` so it cannot\nbe set via `gazelle_default_attributes`, since a repo name is\nnecessarily per-module.\n\n\u003c!-- Thanks for sending a PR! Before submitting:\n\n1. If this is your first PR, please read CONTRIBUTING.md and sign the\nCLA\n   first. We cannot review code without a signed CLA.\n2. Please file an issue *first*. All features and most bug fixes should\nhave\nan associated issue with a design discussed and decided upon. Small bug\n   fixes and documentation improvements don\u0027t need issues.\n3. New features and bug fixes must have tests. Documentation may need to\nbe updated. If you\u0027re unsure what to update, send the PR, and we\u0027ll\ndiscuss\n   in review.\n--\u003e\n\n**What type of PR is this?**\n\nFeature\n\n**What package or component does this PR mostly affect?**\n\nnone. This is a new feature.\n\n**What does this PR do? Why is it needed?**\n\nSee above.\n\n**Which issues(s) does this PR fix?**\n\nFixes #2364\n\n**Other notes for review**"
    },
    {
      "commit": "8bfb6261fa4ed39b98bf0011fcaaf4edc1f649a5",
      "tree": "e2c640682d89998479c73a344f2a8ef2d9fa4806",
      "parents": [
        "82a3cb1345c39032540f095a02523aa97eedb777"
      ],
      "author": {
        "name": "Tao Wang",
        "email": "tao.ryan.wang@gmail.com",
        "time": "Wed Jun 10 13:34:38 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 20:34:38 2026 +0000"
      },
      "message": "Fix empty rule deletion for aliased kinds (#2362)\n\n**What type of PR is this?**\nBug fix\n\n**What package or component does this PR mostly affect?**\nmerger\n\n**What does this PR do? Why is it needed?**\nFixes empty rule deletion for aliased kinds (`# gazelle:alias_kind`).\n\nWhen a language extension emits an empty rule to delete a stale target,\n`MergeFile` uses `kinds[oldRule.Kind()]` to look up `KindInfo` for the\n`IsEmpty` check. For aliased kinds (e.g., `my_py_library` aliased to\n`py_library`), the aliased name has no entry in the `kinds` map,\nreturning a zero-value `KindInfo` with `nil` `NonEmptyAttrs`. Since\n`IsEmpty` returns `false` when `NonEmptyAttrs` is nil, the rule is never\ndeleted — it gets stripped to a skeleton but remains in the BUILD file.\n\nThe fix resolves through `aliasedKinds` before looking up `KindInfo`.\n`map_kind` is not affected — `update.go` rewrites empty rule kinds\nbefore they reach the merger, so the kind lookup already works correctly\n\n**Which issues(s) does this PR fix?**\n\nFixes #2363\n\n**Other notes for review**"
    },
    {
      "commit": "82a3cb1345c39032540f095a02523aa97eedb777",
      "tree": "119eba9ab2139d949692b0e9ad9e281f4be145b9",
      "parents": [
        "73a31e9a5ef1d9601a81de7afb45061effdc6a06"
      ],
      "author": {
        "name": "Fabian Meumertzheim",
        "email": "fabian@meumertzhe.im",
        "time": "Wed Jun 10 14:31:53 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 14:31:53 2026 +0200"
      },
      "message": "bzlmod: provide a compatibility shim for @rules_proto (#2361)\n\nGazelle no longer depends on rules_proto, which broke Go modules that\nship checked-in BUILD files still loading proto rules from\n`@rules_proto//proto:defs.bzl` (e.g.\n`github.com/bazelbuild/buildtools`):\n\n```\nERROR: error loading package \u0027@@gazelle++go_deps+com_github_bazelbuild_buildtools//build_proto\u0027: Unable to find package for @@[unknown repo \u0027rules_proto\u0027 requested from @@gazelle++go_deps+com_github_bazelbuild_buildtools]//proto:defs.bzl\n```\n\nLet the `go_deps` extension generate a repo named `rules_proto` that\nforwards `proto_library` from its new home in `@com_google_protobuf`.\nSince the repo is generated by the `go_deps` extension, it is visible to\nthe Go module repos generated by the same extension under exactly this\nname, without showing up in or conflicting with the main module\u0027s repo\nmappings.\n\nOnly `proto_library` is forwarded since it is the only symbol that older\nversions of Gazelle emitted a load for from\n`@rules_proto//proto:defs.bzl`. BUILD files loading other symbols can be\nregenerated via a `gazelle_override` with `build_file_generation \u003d\n\"clean\"`, as pointed out by the generated file\u0027s docstring.\n\nThe new test fixture `example.org/proto_compat` ships a checked-in BUILD\nfile that loads `proto_library` from `@rules_proto//proto:defs.bzl` and\nis kept verbatim via `build_file_generation \u003d \"off\"`. The `go_test`\ndependency on its `go_library` exercises the previously failing loading\nphase, including the instantiation of the forwarded `proto_library`.\n\nFixes #2358\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Claude Fable 5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "73a31e9a5ef1d9601a81de7afb45061effdc6a06",
      "tree": "7e85da173e0e1813fa3c1cb78cf1643bb48ccb91",
      "parents": [
        "885015926ad3db4b51c3e591238eda299790dffe"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Mon Jun 08 16:26:56 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 16:26:56 2026 -0700"
      },
      "message": "Upgrade publish-to-bcr workflow (#2359)\n\n**What type of PR is this?**\n\n\u003e Other\n\n**What package or component does this PR mostly affect?**\n\nrelease process\n\n**What does this PR do? Why is it needed?**\n\nTitle says it all.\n\nAlso delete .bcr/config.yml: was only used by the app\n\n**Which issues(s) does this PR fix?**\n\nn/a\n\n**Other notes for review**\n\nFollow-up to #2356, based on @kormide\u0027s recommendation."
    },
    {
      "commit": "885015926ad3db4b51c3e591238eda299790dffe",
      "tree": "3c7c0102ef4e0d84f0aa09dfa78f9a540a39ae4f",
      "parents": [
        "301b9a2e7cc3b31f4bc3577ea25cfbe9748ae8e6"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Fri Jun 05 11:41:39 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 05 18:41:39 2026 +0000"
      },
      "message": "v2/walk: forward walk package, modify to use v2 packages and Configurer interface (#2330)\n\n**What type of PR is this?**\n\n\u003e Other\n\n**What package or component does this PR mostly affect?**\n\n\u003e walk, v2/walk\n\n**What does this PR do? Why is it needed?**\n\n- Copied the walk package to v2/walk, leaving behind forwarding wrappers\nand\n  type aliases with deprecation notices.\n- Modified v2/walk to depend on v2 packages instead of v1, including\nv2/config.\nThis requires a type change, incompatible with v1, so the v1 wrapper\nfunctions\n  now use the compat package when calling v2.\n- v2/walk tests use testtools.NewTestConfig, which accepts Configurer,\nso this PR\n  also updates v2/testtools to use the new interface.\n\n**Which issues(s) does this PR fix?**\n\nFor #2272\n\n**Other notes for review**\n\nFor ease of review, there are two commits. The first is largely\nmechanical, moving and\nforwarding the original definitions to the new package. It\u0027s written\nusing the same tool\nto forward other packages like `label`.\n\nThe second commit contains the actual compatibility changes."
    },
    {
      "commit": "301b9a2e7cc3b31f4bc3577ea25cfbe9748ae8e6",
      "tree": "d9cfd7725942983849412367c90380cd6416a082",
      "parents": [
        "12573ed104f3da8e06a6e1027f720e1dbde0f6b2"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Fri Jun 05 10:36:17 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 05 17:36:17 2026 +0000"
      },
      "message": "v2/compat: add compatibility wrappers and stubs for v1 to v2 compatibility (#2329)\n\n**What type of PR is this?**\n\n\u003e Other\n\n**What package or component does this PR mostly affect?**\n\n\u003e v2/compat\n\n**What does this PR do? Why is it needed?**\n\nIn a later change, v2/cmd/gazelle/update and other clients will use this\nso that\nwe only need to directly interact with the v2 interfaces.\n\n**Which issues(s) does this PR fix?**\n\nFor #2272\n\n**Other notes for review**\n\nNot used yet."
    },
    {
      "commit": "12573ed104f3da8e06a6e1027f720e1dbde0f6b2",
      "tree": "2d883efd98579b69c043d729a01c92ed012c4a1d",
      "parents": [
        "6098d288639a81d4edbed41b42d9d2c75d117d2d"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Fri Jun 05 10:27:26 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 05 17:27:26 2026 +0000"
      },
      "message": "v2: new versions of config, resolve, language packages with new interfaces (#2322)\n\n**What type of PR is this?**\n\n\u003e Other\n\n**What package or component does this PR mostly affect?**\n\n\u003e config\n\u003e internal/module\n\u003e language\n\u003e resolve\n\n**What does this PR do? Why is it needed?**\n\nCopied the`internal/module` package to `v2/internal/module`. It\u0027s used\nby `config`. Due to `internal` visibility rules, it can\u0027t be forwarded.\nIt\u0027s small and doesn\u0027t define types, so no conflicts expected.\n\nPartially moved and forwarded the `config`, `resolve`, and `language`\npackages. The new versions of these packages have the new interfaces\nfrom the [v2\nproposal](https://github.com/bazel-contrib/bazel-gazelle/discussions/2207).\nWherever possible, v1 definitions are forwarded to their v2\ncounterparts, but this is not possible whenever there\u0027s an incompatible\ntype difference.\n\nThe new interfaces aren\u0027t used anywhere yet, so there should be no\nfunctional change here.\n\n**Which issues(s) does this PR fix?**\n\nFor #2272\n\n**Other notes for review**\n\nThere are some minor differences between this PR and the proposal,\nmostly adding `context.Context`, `error`, or minor renamings. Please\ncomment if anything looks wrong or needs to be changed though."
    },
    {
      "commit": "6098d288639a81d4edbed41b42d9d2c75d117d2d",
      "tree": "2e5a9e831922b4583558f65ef7568a07912f6bff",
      "parents": [
        "1955b74886456171d5a363b7543708a824e9703e"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Thu Jun 04 11:36:58 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 11:36:58 2026 -0700"
      },
      "message": "Add publish-to-bcr workflow (#2356)\n\n**What type of PR is this?**\n\n\u003e Other\n\n**What package or component does this PR mostly affect?**\n\nn/a\n\n**What does this PR do? Why is it needed?**\n\nAfter this, I think the release process should just be publishing a tag.\nThe release_ruleset workflow will create the source archive and attach\nit to a new GitHub release.\n\n**Which issues(s) does this PR fix?**\n\nn/a\n\n**Other notes for review**\n\nCopied from bazel_features with light modification"
    },
    {
      "commit": "1955b74886456171d5a363b7543708a824e9703e",
      "tree": "51e366d86bc2deb6a43b67e41e873bd8da1f27f9",
      "parents": [
        "0526458cbac30ecb260372dc32e88964505917d0"
      ],
      "author": {
        "name": "Rafik Salama",
        "email": "r@rafiksalama.com",
        "time": "Thu Jun 04 19:11:04 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 19:11:04 2026 +0200"
      },
      "message": "feat: don\u0027t require `# gazelle:` prefix in directive_file (#2351)\n\n**What does this PR do? Why is it needed?**\n\nThis is a follow-up to #2314.\n\nWith the introduction of `directive_file`, directives in an external\nfile still require the `# gazelle:` prefix. This harms readability as\ncomments preceding directives are not visually distinguished from the\ndirectives themselves. With this PR, directives in external files can\nnow be declared without the `# gazelle:` prefix, e.g.:\n\n```\n# Generate a single proto_library per file\nproto file\n```\n\n**What type of PR is this?**\n\nFeature\n\n**What package or component does this PR mostly affect?**\n\n`rule`\n\n**Which issues(s) does this PR fix?**\n\nN/A\n\n**Other notes for review**\n\nCo-authored-by: Jay Conrod \u003cjay@engflow.com\u003e"
    },
    {
      "commit": "0526458cbac30ecb260372dc32e88964505917d0",
      "tree": "60383f30d5caf43a3af6e6991fff56529e733b50",
      "parents": [
        "228ca4ea7f68510c33b5b0ce734c71b0b69c2438"
      ],
      "author": {
        "name": "David Zbarsky",
        "email": "dzbarsky@gmail.com",
        "time": "Thu Jun 04 11:34:32 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 15:34:32 2026 +0000"
      },
      "message": "More fully fix gazelle_binary (#2355)\n\nPart 2 of the fix to make gazelle work with latest rules_go"
    },
    {
      "commit": "228ca4ea7f68510c33b5b0ce734c71b0b69c2438",
      "tree": "ede80a5e23736379970b89219b48ad151060aad6",
      "parents": [
        "20aa297d92b112f23691d74153b7c74188aaf67b"
      ],
      "author": {
        "name": "David Zbarsky",
        "email": "dzbarsky@gmail.com",
        "time": "Wed Jun 03 11:57:51 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 03 17:57:51 2026 +0200"
      },
      "message": "gazelle_binary needs cc toolchain (#2354)\n\n**What type of PR is this?**\nBug fix\n\n**What does this PR do? Why is it needed?**\nrules_go has become stricter in requiring rules to declare their cc\ntoolchain (the previous ways predated toolchain resolution and could\nlead to incorrect toolchains being selected for multiplatform builds)\n\n**Which issues(s) does this PR fix?**\n\nhttps://github.com/bazel-contrib/rules_go/issues/4626\n\n**Other notes for review**"
    },
    {
      "commit": "20aa297d92b112f23691d74153b7c74188aaf67b",
      "tree": "7e9f4fe3ec71c1d150e1b14d2b4464533978f387",
      "parents": [
        "25eb89980994bf4b93bd99d5f87313aada656039"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Tue Jun 02 01:00:50 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 10:00:50 2026 +0200"
      },
      "message": "go.mod: update v2 requirement to v2.0.0-2 (#2352)\n\n**What type of PR is this?**\n\n\u003e Bug fix\n\n**What package or component does this PR mostly affect?**\n\ngo.mod\n\n**What does this PR do? Why is it needed?**\n\nDepends on a newer v2 tag, since we import v2 packages that aren\u0027t\navailable on the old tag.\n\n**Which issues(s) does this PR fix?**\n\nFor #2349\n\n**Other notes for review**\n\nI\u0027ve tagged v2.0.0-2 as an alias for v0.51.0.\n\nOnce this change is merged, I\u0027ll create a release/v0.51 branch,\ncherry-pick it, and then tag v0.51.1."
    },
    {
      "commit": "25eb89980994bf4b93bd99d5f87313aada656039",
      "tree": "a3fcec0ff7aa48bd678fb1897b13309c1fc09c46",
      "parents": [
        "7f92c7bb89db31f63b594e953b325f2d8d54fc1c"
      ],
      "author": {
        "name": "H5-O5",
        "email": "166461697+H5-O5@users.noreply.github.com",
        "time": "Thu May 21 13:13:44 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 22:13:44 2026 +0200"
      },
      "message": "support patch_cmd in bzlmod (#2350)\n\n\u003c!-- Thanks for sending a PR! Before submitting:\n\n1. If this is your first PR, please read CONTRIBUTING.md and sign the\nCLA\n   first. We cannot review code without a signed CLA.\n2. Please file an issue *first*. All features and most bug fixes should\nhave\nan associated issue with a design discussed and decided upon. Small bug\n   fixes and documentation improvements don\u0027t need issues.\n3. New features and bug fixes must have tests. Documentation may need to\nbe updated. If you\u0027re unsure what to update, send the PR, and we\u0027ll\ndiscuss\n   in review.\n--\u003e\n\n**What type of PR is this?**\n\nBug fix\n\n**What package or component does this PR mostly affect?**\n\ngazelle directives\n\n**What does this PR do? Why is it needed?**\n\nThis allows users to specify patch_cmds (just like how users specify\npatches) in MODULE.bazel\n\n**Which issues(s) does this PR fix?**\n\nFixes #2341\n\n**Other notes for review**"
    },
    {
      "commit": "7f92c7bb89db31f63b594e953b325f2d8d54fc1c",
      "tree": "2f4616e56d464be1d31dfbcb629e7191c15cf6d6",
      "parents": [
        "4e2af97da47ccf12ff3d5f09c64eb50ebab977c6"
      ],
      "author": {
        "name": "Tyler French",
        "email": "french.tyler.d@gmail.com",
        "time": "Fri May 08 11:46:07 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 08 15:46:07 2026 +0000"
      },
      "message": "fix: my email (#2347)"
    },
    {
      "commit": "4e2af97da47ccf12ff3d5f09c64eb50ebab977c6",
      "tree": "7d42428be59c186568fb5f5692ddc26bb874d66e",
      "parents": [
        "493e9d9072eace799138d5cc1188f9e4dcb22061"
      ],
      "author": {
        "name": "G",
        "email": "gregoire@seoulrobotics.org",
        "time": "Sat May 02 16:50:48 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 09:50:48 2026 +0200"
      },
      "message": "Prefer @repo over @repo//:repo (#2343)\n\n**What type of PR is this?**\n\nOther (slight improvement)\n\n**What package or component does this PR mostly affect?**\n\ncmd/gazelle\n\n**What does this PR do? Why is it needed?**\n\nIt changes formatting of `@foo//:foo` to `@foo` in `Label.String()`.\n\n**Which issues(s) does this PR fix?**\n\nFixes #2340.\n\n**Other notes for review**\n\nTested with a local repo with `gazelle_cc` and it did rename e.g.\n`@boost.geometry//:boost.geometry` to `@boost.geometry`.\n\n(Disclaimer: I didn\u0027t test this PR directly, but directly applied the\nchange to `external/gazelle+/label/label.go` because of an issue with Go\nwhen I tried the main `gazelle` branch with this commit).\n\nSigned-off-by: Grégoire Geis \u003cgregoire@seoulrobotics.org\u003e"
    },
    {
      "commit": "493e9d9072eace799138d5cc1188f9e4dcb22061",
      "tree": "05611c04fb55e3af5ddc48006238a3cc6453c130",
      "parents": [
        "edfc45ba2de751edfb47b1abc10195bdcb28ff85"
      ],
      "author": {
        "name": "Kirill Berezin",
        "email": "126603518+kberezin-nshl@users.noreply.github.com",
        "time": "Mon Apr 27 19:08:00 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 10:08:00 2026 -0700"
      },
      "message": "Allow placement of `go.work` in a nested (non-root) package (#2333)\n\n**What type of PR is this?**\n\n\u003e Feature\n\n**What package or component does this PR mostly affect?**\n\n\u003e bzlmod, go.work support\n\n**What does this PR do? Why is it needed?**\n\nAllows an arbitrary location of `go.work` within a Bazel module\n\n**Which issues(s) does this PR fix?**\n\nFixes #2332\n\n**Other notes for review**\n\nDisclosure: I used an AI agent to make this change. I reviewed it myself\nand then manually ran full build and test suite.\n\nI also tested it in our (private) monorepo by using `archive_override`\nand verified that it works with the `go.work` relocated into a\nsubfolder."
    },
    {
      "commit": "edfc45ba2de751edfb47b1abc10195bdcb28ff85",
      "tree": "48d9bd65c4d5378659755460871e557498567900",
      "parents": [
        "e440c4ded5fa4f250cd297bcd3808135b15a629a"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Mon Apr 27 07:32:48 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 14:32:48 2026 +0000"
      },
      "message": "go_deps: don\u0027t declare use_repo dependency on module from go.work (#2337)\n\n**What type of PR is this?**\n\n\u003e Bug fix\n\n**What package or component does this PR mostly affect?**\n\n\u003e go_deps\n\n**What does this PR do? Why is it needed?**\n\nIf a Go module is specified in a go.work file, it\u0027s either a root module\nalready declared by bazel_dep, or a subdirectory module which can\u0027t be\ndepended on through a separate go_repository. Either way, we don\u0027t need\na use_repo declaration, and \u0027bazel mod tidy\u0027 shouldn\u0027t add one.\n\n\n**Which issues(s) does this PR fix?**\n\nFixes #2336\n\n**Other notes for review**"
    },
    {
      "commit": "e440c4ded5fa4f250cd297bcd3808135b15a629a",
      "tree": "6ac1ed1c9cc98aa1bfac13fa210f10c81cd36145",
      "parents": [
        "87d77891869c6fa550cc958dd06f92f63bbb8385"
      ],
      "author": {
        "name": "Jason Bedard",
        "email": "jason+github@jbedard.ca",
        "time": "Fri Apr 24 19:04:12 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 19:04:12 2026 -0700"
      },
      "message": "fix: make language agnostic kinds generic (#2053)\n\nThe generation of these kinds should not depend on the go language being\nenabled.\n\n**What type of PR is this?**\n\nBug fix\n\n**What package or component does this PR mostly affect?**\n\nlanguage/go\ncmd/gazelle\nall\n\n**What does this PR do? Why is it needed?**\n\nAllows any language to generate `filegroup`s without redeclaring the\nkinds.\n\nCo-authored-by: Jay Conrod \u003cjay@engflow.com\u003e"
    },
    {
      "commit": "87d77891869c6fa550cc958dd06f92f63bbb8385",
      "tree": "38cadaa26ebd73b98015e3e16b8b777da9cd8931",
      "parents": [
        "a472876ab09f8d86010222e77ea9bdcc247d03f8"
      ],
      "author": {
        "name": "Andrew Nelson",
        "email": "andrew2nelson@gmail.com",
        "time": "Wed Apr 22 15:03:01 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 22:03:01 2026 +0000"
      },
      "message": "Respect caller GOAUTH when building content (#2335)\n\n**What type of PR is this?**\nBug fix\n\n**What package or component does this PR mostly affect?**\n go_repository\n\n**What does this PR do? Why is it needed?**\n\nPass the user\u0027s GOAUTH env var (alongside GOPROXY) when invoking go. If\nboth GOATH and GOPROXY are set, the go toolchain will use GOAUTH to\ngenerate access tokens that will be passed to GOPROXY. [See here for\ndocumentation](https://pkg.go.dev/cmd/go@master#hdr-GOAUTH_environment_variable)\non the GOAUTH environment variable.\n\n**Which issues(s) does this PR fix?**\n\nFixes #2334\n\n**Other notes for review**"
    },
    {
      "commit": "a472876ab09f8d86010222e77ea9bdcc247d03f8",
      "tree": "7ab64b05c2eb760726ddb16269a3613b854ab054",
      "parents": [
        "78f74abd5f7f22ec7eeef990bc5bb4a6c0c1f370"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Sun Apr 19 15:18:08 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 19 22:18:08 2026 +0000"
      },
      "message": "Move and forward basic packages to v2 (#2311)\n\n**What type of PR is this?**\n\n\u003e Other\n\n**What package or component does this PR mostly affect?**\n\n- flag\n- label\n- merger\n- pathtools\n- rule\n- testools\n\n**What does this PR do? Why is it needed?**\n\nThese packages won\u0027t require substantial changes in v2, so we don\u0027t need\ntwo separate sets of definitions. v2 packages should eventually not\nimport anything from v1, so v2 is the source of truth. Consequently, the\nv1 packages are now just aliases for v2.\n\n**Which issues(s) does this PR fix?**\n\nFor #2272\n\n**Other notes for review**\n\nThis PR was generated with a small program,\nhttps://github.com/jayconrod/bazel-gazelle/blob/v2/tools/forward/forward.go.\nIt\u0027s throw-away code, so I\u0027m not planning to check it in. No manual\nchanges other than re-running Gazelle."
    },
    {
      "commit": "78f74abd5f7f22ec7eeef990bc5bb4a6c0c1f370",
      "tree": "ccdae6b89a79e34964375ef02840c668925d2568",
      "parents": [
        "b9530ec88be8a4afd55bac40dd2321b732311d32"
      ],
      "author": {
        "name": "Régis Desgroppes",
        "email": "rdesgroppes@gmail.com",
        "time": "Fri Apr 17 19:29:50 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 17 17:29:50 2026 +0000"
      },
      "message": "fix(language/go): use rules_go apparent name in proto compilers (#2326)\n\n**What type of PR is this?**\n\nBug fix\n\n**What package or component does this PR mostly affect?**\n\nlanguage/go\n\n**What does this PR do? Why is it needed?**\n\nIn Bzlmod workspaces, the apparent name of the rules_go module defaults\nto `@rules_go` (or whatever `repo_name` is set to in `MODULE.bazel`).\nThe default proto compiler labels are hardcoded to `@io_bazel_rules_go`,\ncausing Gazelle to always generate:\n```py\ngo_proto_library(\n    ...\n    compilers \u003d [\n        \"@io_bazel_rules_go//proto:go_proto\",\n        \"@io_bazel_rules_go//proto:go_grpc_v2\",\n    ],\n```\n... in pure Bzlmod workspaces where `@io_bazel_rules_go` does not exist,\nthis breaks the build.\n\n**Which issues(s) does this PR fix?**\n\nFixes #2000\n\n**Other notes for review**\n\nSince `Configure()` already resolves `gc.rulesGoRepoName` from the\n`MODULE.bazel` apparent name mapping, the proposed fix consists in\nrebuilding the compiler lists from that resolved name whenever they have\nnot been overridden via `# gazelle:go_proto_compilers` and `#\ngazelle:go_grpc_compilers` directives.\n\n---------\n\nCo-authored-by: Jay Conrod \u003cjay@engflow.com\u003e"
    },
    {
      "commit": "b9530ec88be8a4afd55bac40dd2321b732311d32",
      "tree": "c0aae9b1e2dbe57eb45df06488e4dee81b2f7cf6",
      "parents": [
        "181c8b6675c21ea85b5c1d6aad47aad9adf0b216"
      ],
      "author": {
        "name": "Son Luong Ngoc",
        "email": "sluongng@gmail.com",
        "time": "Thu Apr 09 23:50:53 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 09 12:50:53 2026 -0400"
      },
      "message": "go_deps: allow inheriting host env vars (#2328)\n\nThis adds `go_env_inherit` to both `gazelle_dependencies` and\n`go_deps.config`, so callers can forward selected host environment\nvariables into dependency fetching without checking literal values into\nsource control.\n\nThat is especially useful for BuildBuddy users whose workflows provide\nrepository authentication or other fetch-time settings through runtime\nenvironment variables. With this change, those workflows can keep the\nvalues in the runner environment and tell Gazelle which variable names\nto inherit.\n\nBzlmod example:\n\n```bzl\ngo_deps \u003d use_extension(\"@gazelle//:extensions.bzl\", \"go_deps\")\n\ngo_deps.config(\n    go_env \u003d {\n        \"GOPRIVATE\": \"github.com/my-org/*\",\n    },\n    go_env_inherit \u003d [\n        \"REPO_USER\",\n        \"REPO_TOKEN\",\n    ],\n)\n```"
    },
    {
      "commit": "181c8b6675c21ea85b5c1d6aad47aad9adf0b216",
      "tree": "82ea72eb18198c026976309ad147c679db0e681a",
      "parents": [
        "ba1056d23c086b3cb5335b25a82301c67edce4a4"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Tue Apr 07 11:39:36 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 11:39:36 2026 -0700"
      },
      "message": "go_deps: don\u0027t print version mismatch messages for go.work modules (#2325)\n\n**What type of PR is this?**\n\n\u003e Bug fix\n\n**What package or component does this PR mostly affect?**\n\n\u003e go_deps\n\n**What does this PR do? Why is it needed?**\n\nNormally, go_deps prints a warning when a module is provided by\nbazel_dep, and the bazel_dep version does not match the version Go would\nselect.\n\nThis warning is not actionable for modules that come from go.work files.\ngo.work is used when there are multiple Go modules in the same\nworkspace. Go doesn\u0027t allow this outside the main module, but go_deps\ndoes. The Go version for each module is not meaningful in this\nsituation.\n\n**Which issues(s) does this PR fix?**\n\nFixes #2315\n\n**Other notes for review**"
    },
    {
      "commit": "ba1056d23c086b3cb5335b25a82301c67edce4a4",
      "tree": "4b37e329711ffe6a45cc7683804dff8f712d36a1",
      "parents": [
        "cd1408c19694f5fe1287518ec5bd4304e1b796e0"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Mon Apr 06 07:25:02 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 06 14:25:02 2026 +0000"
      },
      "message": "go_repository_tools: build with -buildvcs\u003dfalse (#2324)\n\n**What type of PR is this?**\n\n\u003e Bug fix\n\n**What package or component does this PR mostly affect?**\n\n`go_repository_tools`\n\n**What does this PR do? Why is it needed?**\n\nAdds `-buildvcs\u003dfalse` to the command line when building `gazelle` and\nother binaries for use within `go_repository`.\n\nLeaving VCS stamping enabled may cause problems if a VCS tool is\nmisconfigured. We don\u0027t really need VCS stamping.\n\n**Which issues(s) does this PR fix?**\n\nFixes #2323\n\n**Other notes for review**"
    },
    {
      "commit": "cd1408c19694f5fe1287518ec5bd4304e1b796e0",
      "tree": "cc6daed575d0c5900633c70e16ebd0c83c60f6db",
      "parents": [
        "8bdd18dd4680626fecbba5bc346d39a267c31f33"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Sun Apr 05 13:51:46 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 05 20:51:46 2026 +0000"
      },
      "message": "Revert \"go_deps: allow local module replacements, with a flag (#2317)\" (#2321)\n\nThis reverts commit 7c548446d7044d3d5c57a74096851ae6b0a9192f.\n\n**What type of PR is this?**\n\n\u003e Other\n\n**What package or component does this PR mostly affect?**\n\n\u003e go_deps\n\n**What does this PR do? Why is it needed?**\n\nReverts #2317.\n\n#2320 seems like a better solution for the same problem.\n\n**Which issues(s) does this PR fix?**\n\nFor #2315\n\n**Other notes for review**\n\nMerge after #2320."
    },
    {
      "commit": "8bdd18dd4680626fecbba5bc346d39a267c31f33",
      "tree": "4029eaf73de13c5caf459a468f12c92443d99a70",
      "parents": [
        "519d7cc183733c8c5486746c6dbbe06164c8dc3b"
      ],
      "author": {
        "name": "Simon Mavi Stewart",
        "email": "shs@squareup.com",
        "time": "Sun Apr 05 20:19:45 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 05 19:19:45 2026 +0000"
      },
      "message": "Add a `directive_file` directive (#2314)\n\n**What does this PR do? Why is it needed?**\n\nWhen managing a large monorepo (or possibly a small, chaotic repo) it\u0027s\npossible for the number of directives in build files (especially the\ntop-level build file) to become unmanageable, obscuring the actual\ncontent of the build file in a mess of directives.\n\nThis adds a new `directive_file`, which is treated as if the directives\nin it are inline with the build file. Recursion is forbidden (so you\ncan\u0027t use the `directive_file` directive in a directive file) to\nsimplify processing, both by machine and by people.\n\n**What type of PR is this?**\n\nFeature\n\n**What package or component does this PR mostly affect?**\n\n`rule` and `walk`\n\n**Which issues(s) does this PR fix?**\n\nYou\u0027ve disabled issues in the GitHub repo....\n\n---------\n\nCo-authored-by: Jay Conrod \u003cjay@engflow.com\u003e"
    },
    {
      "commit": "519d7cc183733c8c5486746c6dbbe06164c8dc3b",
      "tree": "1c2be15aa36dbfb7889eb5471d7e2b88b7b3bae5",
      "parents": [
        "7c548446d7044d3d5c57a74096851ae6b0a9192f"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Sun Apr 05 11:15:46 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 05 11:15:46 2026 -0700"
      },
      "message": "MODULE.bazel: load dependencies from go.work instead of go.mod (#2320)\n\n**What type of PR is this?**\n\n\u003e Bug fix\n\n**What package or component does this PR mostly affect?**\n\n\u003e all\n\n**What does this PR do? Why is it needed?**\n\nThis lets us drop the `replace` from go.mod, which is blocking `go\ninstall` in #2319. And it more accurately represents how Gazelle is\nmanaging dependencies: we\u0027ll need to do this anyway if `v2/go.mod`\nrequires something that `go.mod` does not.\n\nThis requires a substantial change in `go_deps`. I\u0027ve renamed the\n`bazel_deps` list to `bazel_go_modules` to reflect the fact that with\n`go.work`, Bazel modules and Go modules are not one-to-one: a Bazel\nmodule like `gazelle` may contain multiple Go modules. We should not\ngenerate `go_repository` definitions for these, nor should we warn about\nselected version differences.\n\nUnfortunately, we can\u0027t ignore `go.work` files outside the main module.\nGazelle\u0027s `deps` labels refer to `//v2/...` packages within the same\nmodule; clients cannot have a different view of the module boundaries.\n\nThis change means that we don\u0027t need `ignore_local_replaced_modules`, so\nreverting that in #2321 since it\u0027s not released yet.\n\n**Which issues(s) does this PR fix?**\n\nFixes #2319\n\n**Other notes for review**"
    },
    {
      "commit": "7c548446d7044d3d5c57a74096851ae6b0a9192f",
      "tree": "58f9f8d540a89e8dda4c7ef2d66199b1c8490a40",
      "parents": [
        "4a7caee10fbd2da9bb059f3ce7c2cac8d0050e53"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Sun Mar 29 07:58:28 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 29 07:58:28 2026 -0700"
      },
      "message": "go_deps: allow local module replacements, with a flag (#2317)\n\n**What type of PR is this?**\n\n\u003e Bug fix\n\n**What package or component does this PR mostly affect?**\n\n\u003e go_deps\n\n**What does this PR do? Why is it needed?**\n\nThe go_deps.from_file tag now accepts an attribute\nignore_local_replaced_modules. When set, a go.mod \"require\" is ignored\n(no go_repository is instantiated) if it has a \"replace\" with a local\npath in the same file.\n\nThis hushes a new warning caused by Gazelle\u0027s own abuse of the module\nsystem: Gazelle has a single Bazel module but multiple Go modules. It\nrefers directly to packages in the v2 submodule without a repo marking,\nfor example, as \"//v2/flag\".\n\nThis flag allows opting into this behavior, since it may be a problem\nthat affects other Bazel modules with multiple Go modules, and it\u0027s\ndifficult to work around. It\u0027s opt-in to discourage wide use. Gazelle\nshould be able to clean this up once we can release proper v2 versions.\n\n**Which issues(s) does this PR fix?**\n\nFixes #2315\n\n**Other notes for review**\n\nNot sure it\u0027s possible to write a test for this. The warning popped up\nwith `bazel run :gazelle`, but it\u0027s only a DEBUG line."
    },
    {
      "commit": "4a7caee10fbd2da9bb059f3ce7c2cac8d0050e53",
      "tree": "faa6e795c4fa4dc67c8b6c2549b5cce93e766e89",
      "parents": [
        "ea863a980aabeedbd27e5af656de536c85a24108"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Mar 19 07:30:01 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 19 07:30:01 2026 -0700"
      },
      "message": "build(deps): bump google.golang.org/grpc from 1.71.0 to 1.79.3 in /tests/bcr/go_mod (#2310)\n\nBumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from\n1.71.0 to 1.79.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/releases\"\u003egoogle.golang.org/grpc\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.79.3\u003c/h2\u003e\n\u003ch1\u003eSecurity\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eserver: fix an authorization bypass where malformed :path headers\n(missing the leading slash) could bypass path-based restricted\n\u0026quot;deny\u0026quot; rules in interceptors like \u003ccode\u003egrpc/authz\u003c/code\u003e. Any\nrequest with a non-canonical path is now immediately rejected with an\n\u003ccode\u003eUnimplemented\u003c/code\u003e error. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8981\"\u003e#8981\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 1.79.2\u003c/h2\u003e\n\u003ch1\u003eBug Fixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003estats: Prevent redundant error logging in health/ORCA producers by\nskipping stats/tracing processing when no stats handler is configured.\n(\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/pull/8874\"\u003egrpc/grpc-go#8874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 1.79.1\u003c/h2\u003e\n\u003ch1\u003eBug Fixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003egrpc: Remove the \u003ccode\u003e-dev\u003c/code\u003e suffix from the User-Agent\nheader. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/pull/8902\"\u003egrpc/grpc-go#8902\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 1.79.0\u003c/h2\u003e\n\u003ch1\u003eAPI Changes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003emem: Add experimental API \u003ccode\u003eSetDefaultBufferPool\u003c/code\u003e to\nchange the default buffer pool. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8806\"\u003e#8806\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eSpecial Thanks: \u003ca\nhref\u003d\"https://github.com/vanja-p\"\u003e\u003ccode\u003e@​vanja-p\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eexperimental/stats: Update \u003ccode\u003eMetricsRecorder\u003c/code\u003e to require\nembedding the new \u003ccode\u003eUnimplementedMetricsRecorder\u003c/code\u003e (a no-op\nstruct) in all implementations for forward compatibility. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8780\"\u003e#8780\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBehavior Changes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ebalancer/weightedtarget: Remove handling of \u003ccode\u003eAddresses\u003c/code\u003e\nand only handle \u003ccode\u003eEndpoints\u003c/code\u003e in resolver updates. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8841\"\u003e#8841\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eNew Features\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eexperimental/stats: Add support for asynchronous gauge metrics\nthrough the new \u003ccode\u003eAsyncMetricReporter\u003c/code\u003e and\n\u003ccode\u003eRegisterAsyncReporter\u003c/code\u003e APIs. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8780\"\u003e#8780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epickfirst: Add support for weighted random shuffling of endpoints,\nas described in \u003ca\nhref\u003d\"https://redirect.github.com/grpc/proposal/pull/535\"\u003egRFC A113\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eThis is enabled by default, and can be turned off using the\nenvironment variable\n\u003ccode\u003eGRPC_EXPERIMENTAL_PF_WEIGHTED_SHUFFLING\u003c/code\u003e. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8864\"\u003e#8864\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003exds: Implement \u003ccode\u003e:authority\u003c/code\u003e rewriting, as specified in \u003ca\nhref\u003d\"https://github.com/grpc/proposal/blob/master/A81-xds-authority-rewriting.md\"\u003egRFC\nA81\u003c/a\u003e. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8779\"\u003e#8779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebalancer/randomsubsetting: Implement the\n\u003ccode\u003erandom_subsetting\u003c/code\u003e LB policy, as specified in \u003ca\nhref\u003d\"https://github.com/grpc/proposal/blob/master/A68-random-subsetting.md\"\u003egRFC\nA68\u003c/a\u003e. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8650\"\u003e#8650\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eSpecial Thanks: \u003ca\nhref\u003d\"https://github.com/marek-szews\"\u003e\u003ccode\u003e@​marek-szews\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBug Fixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ecredentials/tls: Fix a bug where the port was not stripped from the\nauthority override before validation. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8726\"\u003e#8726\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eSpecial Thanks: \u003ca\nhref\u003d\"https://github.com/Atul1710\"\u003e\u003ccode\u003e@​Atul1710\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003exds/priority: Fix a bug causing delayed failover to lower-priority\nclusters when a higher-priority cluster is stuck in\n\u003ccode\u003eCONNECTING\u003c/code\u003e state. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8813\"\u003e#8813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ehealth: Fix a bug where health checks failed for clients using\nlegacy compression options (\u003ccode\u003eWithDecompressor\u003c/code\u003e or\n\u003ccode\u003eRPCDecompressor\u003c/code\u003e). (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8765\"\u003e#8765\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eSpecial Thanks: \u003ca\nhref\u003d\"https://github.com/sanki92\"\u003e\u003ccode\u003e@​sanki92\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003etransport: Fix an issue where the HTTP/2 server could skip header\nsize checks when terminating a stream early. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8769\"\u003e#8769\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eSpecial Thanks: \u003ca\nhref\u003d\"https://github.com/joybestourous\"\u003e\u003ccode\u003e@​joybestourous\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eserver: Propagate status detail headers, if available, when\nterminating a stream during request header processing. (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8754\"\u003e#8754\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eSpecial Thanks: \u003ca\nhref\u003d\"https://github.com/joybestourous\"\u003e\u003ccode\u003e@​joybestourous\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ePerformance Improvements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ecredentials/alts: Optimize read buffer alignment to reduce copies.\n(\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8791\"\u003e#8791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emem: Optimize pooling and creation of \u003ccode\u003ebuffer\u003c/code\u003e objects.\n(\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8784\"\u003e#8784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etransport: Reduce slice re-allocations by reserving slice capacity.\n(\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8797\"\u003e#8797\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/dda86dbd9cecb8b35b58c73d507d81d67761205f\"\u003e\u003ccode\u003edda86db\u003c/code\u003e\u003c/a\u003e\nChange version to 1.79.3 (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8983\"\u003e#8983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/72186f163e75a065c39e6f7df9b6dea07fbdeff5\"\u003e\u003ccode\u003e72186f1\u003c/code\u003e\u003c/a\u003e\ngrpc: enforce strict path checking for incoming requests on the server\n(\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8981\"\u003e#8981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/97ca3522b239edf6813e2b1106924e9d55e89d43\"\u003e\u003ccode\u003e97ca352\u003c/code\u003e\u003c/a\u003e\nChanging version to 1.79.3-dev (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8954\"\u003e#8954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/8902ab6efea590f5b3861126559eaa26fa9783b2\"\u003e\u003ccode\u003e8902ab6\u003c/code\u003e\u003c/a\u003e\nChange the version to release 1.79.2 (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8947\"\u003e#8947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/a9286705aa689bee321ec674323b6896284f3e02\"\u003e\u003ccode\u003ea928670\u003c/code\u003e\u003c/a\u003e\nCherry-pick \u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8874\"\u003e#8874\u003c/a\u003e to\nv1.79.x (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8904\"\u003e#8904\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/06df3638c0bcee88197b1033b3ba83e1eb8bc010\"\u003e\u003ccode\u003e06df363\u003c/code\u003e\u003c/a\u003e\nChange version to 1.79.2-dev (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8903\"\u003e#8903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/782f2de44f597af18a120527e7682a6670d84289\"\u003e\u003ccode\u003e782f2de\u003c/code\u003e\u003c/a\u003e\nChange version to 1.79.1 (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8902\"\u003e#8902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/850eccbb2257bd2de6ac28ee88a7172ab6175629\"\u003e\u003ccode\u003e850eccb\u003c/code\u003e\u003c/a\u003e\nChange version to 1.79.1-dev (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8851\"\u003e#8851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/765ff056b6890f6c8341894df4e9668e9bfc18ef\"\u003e\u003ccode\u003e765ff05\u003c/code\u003e\u003c/a\u003e\nChange version to 1.79.0 (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8850\"\u003e#8850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/commit/68804be0e78ed0365bb5a576dedc12e2168ed63e\"\u003e\u003ccode\u003e68804be\u003c/code\u003e\u003c/a\u003e\nCherry pick \u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8864\"\u003e#8864\u003c/a\u003e to\nv1.79.x (\u003ca\nhref\u003d\"https://redirect.github.com/grpc/grpc-go/issues/8896\"\u003e#8896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/grpc/grpc-go/compare/v1.71.0...v1.79.3\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dgoogle.golang.org/grpc\u0026package-manager\u003dgo_modules\u0026previous-version\u003d1.71.0\u0026new-version\u003d1.79.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the\n[Security Alerts\npage](https://github.com/bazel-contrib/bazel-gazelle/network/alerts).\n\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "ea863a980aabeedbd27e5af656de536c85a24108",
      "tree": "0ac0d2f6e6ed7bde74ac1cb8dec19464dc3634f3",
      "parents": [
        "aeb4220ad1752cb5aa0e877681010eb5448636f8"
      ],
      "author": {
        "name": "Robert Findley",
        "email": "rfindley@anthropic.com",
        "time": "Mon Mar 16 13:02:45 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 16 17:02:45 2026 +0000"
      },
      "message": "bzlmod: fix _noop arity for check_direct_dependencies \u003d \"off\" (#2305)\n\noutdated_direct_dep_printer defaults to print (variadic). Both call\nsites (go_deps.bzl:636, :660) pass multiple positional arguments. When\ncheck_direct_dependencies \u003d \"off\" swaps in _noop, the single-argument\nsignature fails with:\n\n  Error: _noop() accepts no more than 1 positional argument but got 5\n\ntests/bcr/go_work already has a circl bazel_dep (1.3.8) vs pkg/go.mod\n(1.6.1) version skew that fires the :636 path; setting\ncheck_direct_dependencies \u003d \"off\" there makes bazel build //... fail\nwithout this fix.\n\nFixes #2304\n\nCo-authored-by: Jay Conrod \u003cjay@engflow.com\u003e"
    },
    {
      "commit": "aeb4220ad1752cb5aa0e877681010eb5448636f8",
      "tree": "3bea04615a2fde04c2c4822caef16389dac5a2e0",
      "parents": [
        "40c2c73dbbe8bb669ff2ee54c0aca1bfcdb2a44b"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Mon Mar 16 08:53:15 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 16 08:53:15 2026 -0700"
      },
      "message": "Add -version flag to print the current version (#2307)\n\n**What type of PR is this?**\n\n\u003e Feature\n\n**What package or component does this PR mostly affect?**\n\n\u003e v2/cmd/gazelle/update\n\n**What does this PR do? Why is it needed?**\n\nWhen set, Gazelle prints its version to stdout, then exits without doing\nanything else.\n\nThis flag is recognized by the fix/update commands, so usage can be\n\u0027gazelle -version\u0027 or \u0027gazelle update -version\u0027 but not \u0027gazelle\nupdate-repos -version\u0027. It feels awkward for v1, but I didn\u0027t want to\nadd a new \u0027version\u0027 subcommand because v2 doesn\u0027t have subcommands.\n\n**Which issues(s) does this PR fix?**\n\nFor #2272\nFixes #2288\n\n**Other notes for review**"
    },
    {
      "commit": "40c2c73dbbe8bb669ff2ee54c0aca1bfcdb2a44b",
      "tree": "642873ffe847884236221da3dec6991f3375b1c1",
      "parents": [
        "baca6fbbd606df4607e3caf213e65db8fd37ac80"
      ],
      "author": {
        "name": "Robert Findley",
        "email": "rfindley@golang.org",
        "time": "Thu Mar 12 19:01:04 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 12 16:01:04 2026 -0700"
      },
      "message": "bzlmod: allow non-default go.work file names (#2303)\n\nThe go command accepts any file as a workspace file via the GOWORK\nenvironment variable, and writes checksums to a sibling file with a .sum\nsuffix (e.g. GOWORK\u003dgo.bazel.work produces go.bazel.work.sum).\n\ngo_deps.from_file(go_work \u003d ...) currently rejects any name other than\ngo.work, and hardcodes go.work.sum as the sum file name. This is\nstricter than the go command itself. Notably, go_work_from_label already\naccepts any name; only the sum-file path checks.\n\nRemove the name check and derive the sum file name from the work file\nname.\n\nA non-default name is useful when a repository wants a Bazel-only\nworkspace that the go toolchain won\u0027t auto-discover (the toolchain walks\nup directories looking specifically for go.work), so native go builds\nremain unaffected by the Bazel workspace configuration.\n\n**What type of PR is this?**\n\n Bug fix\n\n**What package or component does this PR mostly affect?**\n\ngo_repository\n\n**What does this PR do? Why is it needed?**\n\n**Which issues(s) does this PR fix?**\n\nFixes #2302\n\n**Other notes for review**"
    },
    {
      "commit": "baca6fbbd606df4607e3caf213e65db8fd37ac80",
      "tree": "a5cdd38a6c3c4245994504bcbd953cb966b224c4",
      "parents": [
        "f254bbb84e6c86a5db76a97b76aef4039eaf0305"
      ],
      "author": {
        "name": "Mateusz Olczyk",
        "email": "molczyk@virtuslab.com",
        "time": "Wed Mar 11 19:13:09 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 11 11:13:09 2026 -0700"
      },
      "message": "Fix MergeDict() logic for empty lists (#2301)\n\n\u003c!-- Thanks for sending a PR! Before submitting:\n\n1. If this is your first PR, please read CONTRIBUTING.md and sign the\nCLA\n   first. We cannot review code without a signed CLA.\n2. Please file an issue *first*. All features and most bug fixes should\nhave\nan associated issue with a design discussed and decided upon. Small bug\n   fixes and documentation improvements don\u0027t need issues.\n3. New features and bug fixes must have tests. Documentation may need to\nbe updated. If you\u0027re unsure what to update, send the PR, and we\u0027ll\ndiscuss\n   in review.\n--\u003e\n\n**What type of PR is this?**\n\n\u003e Bug fix\n\n**What package or component does this PR mostly affect?**\n\n\u003e rule\n\n**What does this PR do? Why is it needed?**\n\n`MergeDict()` won\u0027t drop explicit empty lists. It\u0027s needed to properly\nmerge `select` expressions without breaking the semantics.\n\n**Which issues(s) does this PR fix?**\n\nFixes #2300\n\n**Other notes for review**\n\n---------\n\nSigned-off-by: Mateusz Olczyk \u003cmolczyk@virtuslab.com\u003e"
    },
    {
      "commit": "f254bbb84e6c86a5db76a97b76aef4039eaf0305",
      "tree": "65622190b6d0acfaf582fe349a18d975711b4f70",
      "parents": [
        "a1055c5e56fd985bdc23f387107dcd5be833c14b"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Mon Mar 09 08:05:15 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 09 08:05:15 2026 -0700"
      },
      "message": "go_repository_tools: build v2/cmd/gazelle (#2299)\n\n**What type of PR is this?**\n\n\u003e Other\n\n**What package or component does this PR mostly affect?**\n\n\u003e go_repository_tools\n\n**What does this PR do? Why is it needed?**\n\n`go_repository_tools` now builds `v2/cmd/gazelle` instead of\n`cmd/gazelle`. This should cause no observable difference in behavior,\nit\u0027s just the new entry point for the same code.\n\n**Which issues(s) does this PR fix?**\n\nFor #2272\n\n**Other notes for review**"
    },
    {
      "commit": "a1055c5e56fd985bdc23f387107dcd5be833c14b",
      "tree": "b26def48c04031daf657c4b3f79af5bc4c421d08",
      "parents": [
        "a3e63b06e1e5c4c7a7849874fadf7ccda8868870"
      ],
      "author": {
        "name": "Lars Lehtonen",
        "email": "lars.lehtonen@gmail.com",
        "time": "Mon Mar 02 11:46:10 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 02 14:46:10 2026 -0500"
      },
      "message": "cmd/fetch_repo: fix dropped error (#2298)\n\n**What type of PR is this?**\n\nBug fix\n\n**What package or component does this PR mostly affect?**\n\n/cmd/fetch_repo/\n\n**What does this PR do? Why is it needed?**\n\nThis fixes an err variable that was dropped and unhandled.\n\n**Which issues(s) does this PR fix?**\n\nFixes #2297.\n\nSigned-off-by: Lars Lehtonen \u003clars.lehtonen@gmail.com\u003e"
    },
    {
      "commit": "a3e63b06e1e5c4c7a7849874fadf7ccda8868870",
      "tree": "924ce86464d3d232496f68791aa344043010a2e1",
      "parents": [
        "a8d8f4c666a35afed0b322a869e2b2d57e98beac"
      ],
      "author": {
        "name": "Mateusz Olczyk",
        "email": "molczyk@virtuslab.com",
        "time": "Thu Feb 26 16:34:28 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 26 07:34:28 2026 -0800"
      },
      "message": "Implement Rule.AttrBool() method (#2295)\n\n**What type of PR is this?**\n\n\u003e Feature\n\n**What package or component does this PR mostly affect?**\n\n\u003e rule\n\n**What does this PR do? Why is it needed?**\n\n`Rule` already has methods like `AttrString` or `AttrStrings`. Boolean\nvalues are another common attribute type in Bazel rules. As a developer\nof a `gazelle` extension, I\u0027d appreciate having this as a part of the\n`Rule` interface instead of having to write side helper functions.\n\n**Which issues(s) does this PR fix?**\n\nI have not created an issue for such a simple task.\n\n**Other notes for review**\n\n---------\n\nSigned-off-by: Mateusz Olczyk \u003cmolczyk@virtuslab.com\u003e"
    },
    {
      "commit": "a8d8f4c666a35afed0b322a869e2b2d57e98beac",
      "tree": "73dbfa21bf3c2c2e0069ce2eacf5f2a63d9e1016",
      "parents": [
        "95527eb554450622f119c9bfd687a954d05c4d92"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Tue Feb 24 11:50:41 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 24 11:50:41 2026 -0800"
      },
      "message": "tests: convert most remaining integration tests (#2294)\n\n**What type of PR is this?**\n\n\u003e Other\n\n**What package or component does this PR mostly affect?**\n\n\u003e tests\n\n**What does this PR do? Why is it needed?**\n\nConvert tests that weren\u0027t converted earlier by #2293 and remove the\ncorresponding old integration tests.\n\nThe remaining integration tests can\u0027t be converted because they aren\u0027t\ncompatible with the directory test framework. Most of them cover\n`update-repos`, which isn\u0027t supported there and won\u0027t be supported in v2\nanyway. A few tests have excessively long names or subtests, and\nrunfiles couldn\u0027t be accessed on Windows.\n\n**Which issues(s) does this PR fix?**\n\nFor #2272\n\n**Other notes for review**"
    },
    {
      "commit": "95527eb554450622f119c9bfd687a954d05c4d92",
      "tree": "c7ec2993167350c361ca731128bd0a51340b9b1a",
      "parents": [
        "76b0b0c69040bb39f74ea99cbf965fb2405ac501"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Mon Feb 23 09:50:32 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 23 09:50:32 2026 -0800"
      },
      "message": "tests: convert some integration tests to gazelle_generation_test (#2293)\n\n**What type of PR is this?**\n\n\u003e Other\n\n**What package or component does this PR mostly affect?**\n\n\u003e tests\n\n**What does this PR do? Why is it needed?**\n\nConverts some of the tests from `cmd/gazelle/integration_test.go` to\ntest directories in //tests. This allows tests to be run against both v1\nand v2 to guard against unexpected changes.\n\n**Which issues(s) does this PR fix?**\n\nFor #2272\n\n**Other notes for review**"
    },
    {
      "commit": "76b0b0c69040bb39f74ea99cbf965fb2405ac501",
      "tree": "6d6a3d0450bec43074eccc9ed3120c6c2296f431",
      "parents": [
        "72178d158128f4ecfabca32c081a2396bd2ba001"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Mon Feb 23 09:27:21 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 23 09:27:21 2026 -0800"
      },
      "message": "gazelle_binary: support either v1 or v2 (#2281)\n\n**What type of PR is this?**\n\n\u003e Other\n\n**What package or component does this PR mostly affect?**\n\n\u003e gazelle_binary\n\n**What does this PR do? Why is it needed?**\n\ngazelle_binary accepts a \"version\" attribute, used to select between\neither the ./cmd/gazelle or ./v2/cmd/gazelle main package. The default\nis determined by Gazelle\u0027s module version.\n\n//tests now has separate gazelle_binary targets and test targets for\neach version so that we don\u0027t regress either v1 or v2.\n\n**Which issues(s) does this PR fix?**\n\nFor #2272\n\n**Other notes for review**"
    },
    {
      "commit": "72178d158128f4ecfabca32c081a2396bd2ba001",
      "tree": "4aad30b62a51636371618394523446ca42cf4d38",
      "parents": [
        "6b2aeccd77d2668a21202f5b60e10b035419c61a"
      ],
      "author": {
        "name": "Mateusz Olczyk",
        "email": "molczyk@virtuslab.com",
        "time": "Fri Feb 20 19:01:12 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 20 18:01:12 2026 +0000"
      },
      "message": "Switch to \"protobuf\" module when generating proto_library rules (#2284)\n\n**What type of PR is this?**\n\n\u003e Other\n\n**What package or component does this PR mostly affect?**\n\n\u003e language/proto\n\n**What does this PR do? Why is it needed?**\n\nBecause `\"rules_proto\"` is a deprecated module, `proto_library` rule\nshould be fetched from the `\"protobuf\"` module. This change updates\n`ApparentLoads()` method for `proto` extension and updates the test\nscenarios accordingly. Moreover, `rules_proto` is not mentioned in\n`README.md` anymore; now it refers to `protobuf`.\n\n**Which issues(s) does this PR fix?**\n\nFixes #2283 \n\n**Other notes for review**\n\nI wasn\u0027t sure if `\"rules_proto\"` should also be removed from\n`MODULE.bazel`. It looks like `bazel test //...` passes after removing\nboth `\"rules_proto\"` and `\"protobuf\"` from `MODULE.bazel`. But I see\nthose may be required by the submodules: `tests/bcr/go_mod` and\n`tests/bcr/go_work`.\n\n---------\n\nSigned-off-by: Mateusz Olczyk \u003cmolczyk@virtuslab.com\u003e\nCo-authored-by: Jay Conrod \u003cjayconrod@gmail.com\u003e\nCo-authored-by: Jay Conrod \u003cjay@engflow.com\u003e"
    },
    {
      "commit": "6b2aeccd77d2668a21202f5b60e10b035419c61a",
      "tree": "bf0b287fb4ede5b5a9790cdb27a3b19af70e7b16",
      "parents": [
        "09f3d81efd98c34f1ac2bea2449a618d11e32f25"
      ],
      "author": {
        "name": "Dustin J. Mitchell",
        "email": "dustin@v.igoro.us",
        "time": "Fri Feb 13 13:04:59 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 13 10:04:59 2026 -0800"
      },
      "message": "(docs) Note that an extension is required for default_visibility (#2287)\n\n**What type of PR is this?**\n\n\u003e Uncomment one line below and remove others.\n\u003e\n\u003e Bug fix\n\u003e Feature\nDocumentation\n\u003e Other\n\n**What package or component does this PR mostly affect?**\n\n\u003e For example:\n\u003e\n\u003e language/go\n\u003e cmd/gazelle\n\u003e go_repository\nall\n\n**What does this PR do? Why is it needed?**\n\nAdds a note that an extension is required in order to use the\ndefault_visibility directive. I was unaware of this and that led to\n#2285. I do not see the extension referenced in any other documentation\nin the repo.\n\n**Which issues(s) does this PR fix?**\n\nFixes #2285.\n\n**Other notes for review**\n\nThis file only references language extensions, and from a user\nperspective my thinking was, \"I have the Go extension installed, so what\nmore do I need?\"\n\nIf it would be better to add some kind of `**Required Extension:** to\neach directive, I can do that, especially with help to figure out which\nextension each one requires."
    },
    {
      "commit": "09f3d81efd98c34f1ac2bea2449a618d11e32f25",
      "tree": "d3d8a8d3b0b7498ea8fe99376ec7e62339b149c9",
      "parents": [
        "b5b771c3d310c54a07ee786a60c607ef2699a5bd"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "grrtrr@users.noreply.github.com",
        "time": "Tue Feb 03 12:19:24 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 03 12:19:24 2026 -0500"
      },
      "message": "resolve: use a fallback RepoName for overrides (#2270)\n\n_PR type_:  bug fix\n_Scope_: resolve overrides (all languages)\n\n### Why this PR?\n\nAs discussed in #2269, when an override does not set an explicit\nrepository name, use the configured one instead.\n\nThis avoids problems in resolving package-local labels.\n\n### Description of changes\n\nSubstitute the configured `RepoName` when resolving overrides\n(`resolve/resolve_regexp`), and for `go` targets and the resolved\n`Label.Repo` is empty.\n\n---------\n\nCo-authored-by: Jay Conrod \u003cjay@engflow.com\u003e"
    },
    {
      "commit": "b5b771c3d310c54a07ee786a60c607ef2699a5bd",
      "tree": "a4a8061f08d16b870bce207fbe1c59989f278dbd",
      "parents": [
        "42f187adf6607cd646706115212bced8330af1af"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Wed Jan 28 14:13:09 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 28 22:13:09 2026 +0000"
      },
      "message": "v2: add v2/cmd/gazelle (#2277)\n\n**What type of PR is this?**\n\n\u003e Other\n\n**What package or component does this PR mostly affect?**\n\n\u003e v2/cmd/gazelle\n\n**What does this PR do? Why is it needed?**\n\nThe new entry point for v2. It just wraps update.Run. Doesn\u0027t need to do\nmuch more than that.\n\n**Which issues(s) does this PR fix?**\n\nFor #2272\n\n**Other notes for review**"
    },
    {
      "commit": "42f187adf6607cd646706115212bced8330af1af",
      "tree": "dca84c877d53c516413a15fb001136b4bd6d30dc",
      "parents": [
        "7b9d7f36a9278df5637cdb82f660c46b8df2aae4"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Wed Jan 28 13:41:13 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 28 21:41:13 2026 +0000"
      },
      "message": "v2: extract fix-update logic to v2/cmd/gazelle/update (#2276)\n\n**What type of PR is this?**\n\n\u003e Other\n\n**What package or component does this PR mostly affect?**\n\n\u003e v2/cmd/gazelle/update\n\n**What does this PR do? Why is it needed?**\n\nThis new package now implements Gazelle\u0027s core fix/update functionality.\ncmd/gazelle and v2/cmd/gazelle will both we wrappers around this, though\nthe update-repos command will remain in v1, since we\u0027re dropping it in\nv2.\n\nAlso modifed go_repository_tools to work in module mode, since it would\nactually require deeper changes to continue working in GOPATH mode.\n\n**Which issues(s) does this PR fix?**\n\nFor #2272\n\n**Other notes for review**\n\nAlso copied `internal/wspace`. It\u0027s an internal package, so it can\u0027t be\nmoved and forwarded unfortunately."
    },
    {
      "commit": "7b9d7f36a9278df5637cdb82f660c46b8df2aae4",
      "tree": "74dc5de38a54c990584719deb4a251765d47cfb7",
      "parents": [
        "2f939c7503fd8ada7ef9fa861ac9c7a936037c90"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Tue Jan 27 13:18:46 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 27 21:18:46 2026 +0000"
      },
      "message": "v2: add v2/go.mod, go.work (#2275)\n\n**What type of PR is this?**\n\n\u003e Other\n\n**What package or component does this PR mostly affect?**\n\n\u003e all\n\n**What does this PR do? Why is it needed?**\n\ngo.work is unrelated to the Bazel build. It keeps my editor happy\nwithout gopackagesdriver. Bazel needs to rebuild all of gazelle after\nevery change via go_repository_tools, so gopackagesdriver isn\u0027t really\nusable.\n\n**Which issues(s) does this PR fix?**\n\nFor #2272\n\n**Other notes for review**"
    },
    {
      "commit": "2f939c7503fd8ada7ef9fa861ac9c7a936037c90",
      "tree": "c10b8d94a572daf67030eba7f1e273941fe6f8d8",
      "parents": [
        "3234826a5db2d5fa7b171dbb2a4be4a3e62ad11c"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Tue Jan 27 13:08:21 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 27 13:08:21 2026 -0800"
      },
      "message": "Upgrade Go to 1.24.12, rules_go to 0.59.0, and sync deps to WORKSPACE (#2274)\n\n**What type of PR is this?**\n\n\u003e Other\n\n**What package or component does this PR mostly affect?**\n\n\u003e all\n\n**What does this PR do? Why is it needed?**\n\n- Go is still a pretty old version, but a year newer than what we had\nbefore. This gives us fancy range loops.\n- rules_go is now the latest version, needed to resolve some nogo issues\nin WORKSPACE mode, though I\u0027m not sure if it was actually a rules_go\nproblem or upgrading the ancient version of x/tools we were on.\n- Synced dependencies from go.mod / MODULE.bazel to WORKSPACE. These had\ncompletely diverged.\n- Removed some apparently unused compatibility definitions referencing\nmultiple versions of Go.\n- Disabled Stardoc targets in WORKSPACE mode. They no longer build due\nto some hidden dependency on rules_cc. Don\u0027t care.\n\n**Which issues(s) does this PR fix?**\n\nFor #2272\n\n**Other notes for review**"
    },
    {
      "commit": "3234826a5db2d5fa7b171dbb2a4be4a3e62ad11c",
      "tree": "14655f04278a8d3032a5cacb06b1755fe660944b",
      "parents": [
        "a854abf8365145fc14cad7948d2b45dcb7a20f23"
      ],
      "author": {
        "name": "Will Noble",
        "email": "4642422+ouillie@users.noreply.github.com",
        "time": "Mon Jan 26 01:22:25 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 26 07:22:25 2026 +0100"
      },
      "message": "Disable proto library generation for protocompile (#2278)\n\n\u003c!-- Thanks for sending a PR! Before submitting:\n\n1. If this is your first PR, please read CONTRIBUTING.md and sign the\nCLA\n   first. We cannot review code without a signed CLA.\n2. Please file an issue *first*. All features and most bug fixes should\nhave\nan associated issue with a design discussed and decided upon. Small bug\n   fixes and documentation improvements don\u0027t need issues.\n3. New features and bug fixes must have tests. Documentation may need to\nbe updated. If you\u0027re unsure what to update, send the PR, and we\u0027ll\ndiscuss\n   in review.\n--\u003e\n\n**What type of PR is this?**\n\nBug fix\n\n**What package or component does this PR mostly affect?**\n\ncmd/gazelle\n\n**What does this PR do? Why is it needed?**\n\n`github.com/bufbuild/protocompile` bundles well-known .proto files under\n`wellknownimports/google/`, which is conflicting with the\n`go_proto_library` targets that Gazelle wanted to generate.\n\n**Which issues(s) does this PR fix?**\n\nAddresses https://github.com/bazel-contrib/bazel-gazelle/issues/2029\nalthough that issue technically was asking for something else.\n\n**Other notes for review**"
    },
    {
      "commit": "a854abf8365145fc14cad7948d2b45dcb7a20f23",
      "tree": "2a161bd345c199e0c217e0ac24ffe83c8150a43c",
      "parents": [
        "c2a2ca85d7ee59cae07357faaba07174c1231cad"
      ],
      "author": {
        "name": "Marcel",
        "email": "maleo@google.com",
        "time": "Fri Jan 23 17:31:24 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jan 23 08:31:24 2026 -0800"
      },
      "message": "Add proto compiler for grpc libraries (#2271)\n\n**What type of PR is this?**\n\nBug fix\n\n**What package or component does this PR mostly affect?**\n\nlanguage/go\n\n**What does this PR do? Why is it needed?**\n\nThe go_grpc compiler generated both proto and grpc bindings. The\ngo_grpc_v2 compiler only generates the grpc bindings but requires\nexplicit use of go_proto for the proto bindings.\n\nThis change in behavior was missed in #2071.\n\n**Which issues(s) does this PR fix?**\n\n**Other notes for review**"
    },
    {
      "commit": "c2a2ca85d7ee59cae07357faaba07174c1231cad",
      "tree": "6a21c47e94aa5efd4d1aaa919da2684e28c1473e",
      "parents": [
        "ff2b7cf16314b7571bba6e7c2aafad59a31b7370"
      ],
      "author": {
        "name": "Fabian Meumertzheim",
        "email": "fabian@meumertzhe.im",
        "time": "Mon Jan 12 19:50:03 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 12 19:50:03 2026 +0100"
      },
      "message": "Fix the lockfile and let it update locally (#2263)\n\n**What type of PR is this?**\n\nOther\n\n**What package or component does this PR mostly affect?**\n\ndeveloper experience\n\n**What does this PR do? Why is it needed?**\n\n**Which issues(s) does this PR fix?**\n\n**Other notes for review**"
    },
    {
      "commit": "ff2b7cf16314b7571bba6e7c2aafad59a31b7370",
      "tree": "12b189014e64d0cb8972a9e9f19e431b69f694bb",
      "parents": [
        "58be1038215b0cff6604a1d31f45ae3770a99a75"
      ],
      "author": {
        "name": "sohumk-stripe",
        "email": "sohumk@stripe.com",
        "time": "Tue Jan 06 20:09:21 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 06 17:09:21 2026 -0800"
      },
      "message": "Add check to see if testdata is empty when determining when to add data (#2262)\n\n**What type of PR is this?**\n\nBug fix\n\n**What package or component does this PR mostly affect?**\n\nlanguage/go\n\n**What does this PR do? Why is it needed?**\n\nAdds logic to check that a testdata subdirectory is not empty before\nadding it as a data source.\n\n**Which issues(s) does this PR fix?**\n\nFixes #2233"
    },
    {
      "commit": "58be1038215b0cff6604a1d31f45ae3770a99a75",
      "tree": "171763808c7b3e80cbcfcf5ce7083169a959b6d8",
      "parents": [
        "fdb8a9553bbf0ca384516d49366030e294e21262"
      ],
      "author": {
        "name": "Eric Boren",
        "email": "borenet@gmail.com",
        "time": "Fri Dec 19 16:30:57 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 19 21:30:57 2025 +0000"
      },
      "message": "Add default Gazelle override for go.chromium.org/luci (#2259)\n\n**What type of PR is this?**\nBug fix\n\n**What package or component does this PR mostly affect?**\ninternal/bzlmod/default_gazelle_overrides.bzl\n\n**What does this PR do? Why is it needed?**\nTurns off Gazelle generation of go_proto_library targets for\ngo.chromium.org/luci. The repository includes the generated files, so\nthese targets are unnecessary and they produce errors.\n\n**Which issues(s) does this PR fix?**\nN/A\n\n**Other notes for review**\n\n---------\n\nCo-authored-by: Jay Conrod \u003cjay@engflow.com\u003e"
    },
    {
      "commit": "fdb8a9553bbf0ca384516d49366030e294e21262",
      "tree": "820be87c398208b85ac58536da0539e5c79dcb75",
      "parents": [
        "b99e3476f62f765ddccf25b24bb570f6fa9248a6"
      ],
      "author": {
        "name": "Eric Boren",
        "email": "borenet@gmail.com",
        "time": "Fri Dec 19 15:43:02 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 19 21:43:02 2025 +0100"
      },
      "message": "Add remote-apis-sdks to DEFAULT_BUILD_FILE_GENERATION_BY_PATH (#2260)\n\nThis repository contains references to @go_googleapis, which is no\nlonger pulled in by rules_go as of v0.41.0. Other rules seem to be\noutdated as well, and I have been unable to fix this with a simple\ninject_repo.\n\nA gazelle_override with `build_file_generation \u003d \"on\"` fixes the problem\nfor us by paving over the outdated BUILD.bazel files with new,\nfunctional ones.\n\nWe have other repos which need to depend on our module, so the local\ngazelle_override is not viable. We either need to fix the BUILD.bazel\nfiles upstream (it looks like this has been attempted at least a couple\nof times) or add this setting to the defaults.\n\n**What type of PR is this?**\nBug fix\n\n**What package or component does this PR mostly affect?**\ninternal/bzlmod/default_gazelle_overrides.bzl\n\n**What does this PR do? Why is it needed?**\nCauses build_file_generation to be enabled for\ngithub.com/bazelbuild/remote-apis-sdks. The repository already contains\nBUILD.bazel files, but they are outdated and broken with newer versions\nof rules_go.\n\n**Which issues(s) does this PR fix?**\nN/A\n\n**Other notes for review**"
    },
    {
      "commit": "b99e3476f62f765ddccf25b24bb570f6fa9248a6",
      "tree": "42fd1c6a4c4219ded5c82c6dac552562ac80e2dc",
      "parents": [
        "0ebe7d8b2a4eb98993f4797fd9fdaa3c8012a99a"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Thu Dec 18 10:41:33 2025 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 18 18:41:33 2025 +0000"
      },
      "message": "docs: added explanation on how the merger works (#2255)\n\n**What type of PR is this?**\n\n\u003e Documentation\n\n**What package or component does this PR mostly affect?**\n\n\u003e all\n\n**What does this PR do? Why is it needed?**\n\n- How extensions generate rules\n- How the merger combines existing and generated rules\n- Examples\n- keep comments and parser subtleties\n\n**Which issues(s) does this PR fix?**\n\nFor #2196\n\n**Other notes for review**\n\n---------\n\nCo-authored-by: Nikki Vijaybhaskar \u003cnikki@engflow.com\u003e"
    },
    {
      "commit": "0ebe7d8b2a4eb98993f4797fd9fdaa3c8012a99a",
      "tree": "7fdf3e4d1bc2509aa6b4ce51425e05ab87f8079e",
      "parents": [
        "b8a73bc7468c622d1675443ead1d1e146b26dc28"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Wed Dec 17 11:50:05 2025 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 17 11:50:05 2025 -0800"
      },
      "message": "walk: assert that RelsToIndex strings are clean and relative (#2258)\n\n**What type of PR is this?**\n\n\u003e Bug fix\n\n**What package or component does this PR mostly affect?**\n\n\u003e walk\n\n**What does this PR do? Why is it needed?**\n\nAssertions make it a bit easier to track down bugs like\nEngFlow/gazelle_cc#165.\n\n**Which issues(s) does this PR fix?**\n\nn/a\n\n**Other notes for review**"
    },
    {
      "commit": "b8a73bc7468c622d1675443ead1d1e146b26dc28",
      "tree": "08f0f7b021e285636ffa57f494083baa6e9e1538",
      "parents": [
        "3696f8cccfebe2bc8248b3b5977edccbb4ee7bb9"
      ],
      "author": {
        "name": "Ammar Elsabe",
        "email": "ammar.elsabe@riv-capital.com",
        "time": "Wed Dec 17 19:05:01 2025 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 17 16:05:01 2025 +0100"
      },
      "message": "fix(language/go): ignored goexperiment build tag typo (#2257)\n\n**What type of PR is this?**\n\nBug fix\n\n**What package or component does this PR mostly affect?**\n\nlanguage/go\n\n**What does this PR do? Why is it needed?**\n\nIt fixes my typo\n\n**Which issues(s) does this PR fix?**\n\nFixes #2256\n\n**Other notes for review**\n\n(sorry)"
    },
    {
      "commit": "3696f8cccfebe2bc8248b3b5977edccbb4ee7bb9",
      "tree": "78c6f0a62c2d88bae621d69ac6f69810f11f3180",
      "parents": [
        "093359a493d953167654a46020c58ae3362f45c0"
      ],
      "author": {
        "name": "Ammar Elsabe",
        "email": "ayasser763@gmail.com",
        "time": "Sun Dec 14 22:08:49 2025 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Dec 14 19:08:49 2025 +0100"
      },
      "message": "fix: ignore goexperiments build tags (#2254)\n\n**What type of PR is this?**\n\nBug fix\n\n\n**What package or component does this PR mostly affect?**\n\nlanguage/go\n\n**What does this PR do? Why is it needed?**\n\n**Which issues(s) does this PR fix?**\n\nFixes #2227\n\n**Other notes for review**"
    },
    {
      "commit": "093359a493d953167654a46020c58ae3362f45c0",
      "tree": "6a1e3fa5f72bf30400d763d0148243b188037574",
      "parents": [
        "2762427aceb5875dcdaecb5b6a1406f3d116fd0d"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Mon Dec 08 10:54:36 2025 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 08 10:54:36 2025 -0800"
      },
      "message": "docs: rewrite design explanation (#2251)\n\n**What type of PR is this?**\n\n\u003e Documentation\n\n**What package or component does this PR mostly affect?**\n\n\u003e all\n\n**What does this PR do? Why is it needed?**\n\nReplace Design.md with how-gazelle-works.md, a complete rewrite.\n\nThe old page was written before extensions, so was very obsolete.\n\nThe new page is intended to be an Explanation (https://diataxis.fr/) to\nhelp Gazelle developers and extension authors.\n\n**Which issues(s) does this PR fix?**\n\nFor #2196\n\n**Other notes for review**\n\n---------\n\nCo-authored-by: Nikki Vijaybhaskar \u003cnikki@engflow.com\u003e\nCo-authored-by: Fabian Meumertzheim \u003cfabian@meumertzhe.im\u003e"
    },
    {
      "commit": "2762427aceb5875dcdaecb5b6a1406f3d116fd0d",
      "tree": "e8d21b21aeaae5e952a08b93af96fe82080402fd",
      "parents": [
        "dedce651119811c869d4db4a20290c87b4dc8d8e"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Fri Dec 05 17:08:26 2025 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 05 17:08:26 2025 -0800"
      },
      "message": "docs: split reference material onto different pages (#2250)\n\n**What type of PR is this?**\n\n\u003e Documentation\n\n**What package or component does this PR mostly affect?**\n\n\u003e all\n\n**What does this PR do? Why is it needed?**\n\nMoved several sections out of the main README onto separate pages:\n\n- gazelle-reference.md: a language-agnostic reference for commands,\n  directives, and commandline-line flags.\n- language/go/reference.md: a reference for Go-specific directives,\n  flags, and fix command transformations. The `update-repos` command\n  is now documented here since it has no useful functionality for\n  other languages.\n- language/proto/reference.md: a reference for Proto-specific\n  directives and flags.\n\nI\u0027m hoping this makes the main README more digestible, though there\u0027s\nstill a lot of improvement needed there.\n\n**Which issues(s) does this PR fix?**\n\nFor #2196\n\n**Other notes for review**"
    },
    {
      "commit": "dedce651119811c869d4db4a20290c87b4dc8d8e",
      "tree": "4091b040889c17ad2198f947fae606e438f75337",
      "parents": [
        "6dc11189e370b7950936e34141ffe2f2e116c62a"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jayconrod@gmail.com",
        "time": "Fri Dec 05 15:31:05 2025 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 05 15:31:05 2025 -0800"
      },
      "message": "README: fix broken links to JS, Kotlin extensions (#2199)\n\nFor #2196\n\n**What type of PR is this?**\n\n\u003e Documentation\n\n**What package or component does this PR mostly affect?**\n\nREADME\n\n**What does this PR do? Why is it needed?**\n\nFix broken links to JS, Kotlin extensions. They were moved into a new\nrepo in preparation for publishing as separate Bazel modules.\n\n**Which issues(s) does this PR fix?**\n\nFor #2196\n\n**Other notes for review**\n\nLet me know if there should be any other change in wording."
    },
    {
      "commit": "6dc11189e370b7950936e34141ffe2f2e116c62a",
      "tree": "f319801a1f2629b50280b15a08c218c0bdfcfe2b",
      "parents": [
        "c43f201c49428454f8f079c8f0cdf21820aaa450"
      ],
      "author": {
        "name": "Keith Smiley",
        "email": "keithbsmiley@gmail.com",
        "time": "Fri Dec 05 15:18:03 2025 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 05 15:18:03 2025 -0800"
      },
      "message": "Add default_features directive (#2247)\n\nThis sets the `package(features \u003d ...)` attribute in all nested BUILD\nfiles similar to `default_visibility`\n\nFixes https://github.com/bazel-contrib/bazel-gazelle/issues/2236\n\n---------\n\nCo-authored-by: Jay Conrod \u003cjay@engflow.com\u003e"
    },
    {
      "commit": "c43f201c49428454f8f079c8f0cdf21820aaa450",
      "tree": "0a2aab695fbe4391df479bb72fbda62ba7667372",
      "parents": [
        "028c500e9f911a73683b6ec390f3e59e8f31fccc"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jayconrod@gmail.com",
        "time": "Fri Dec 05 15:01:01 2025 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 05 23:01:01 2025 +0000"
      },
      "message": "cmd/autogazelle/README: translate from reStructuredText to Markdown (#2200)\n\nFor #2196\n\n**What type of PR is this?**\n\n\u003e Documentation\n\n**What package or component does this PR mostly affect?**\n\n\u003e cmd/autogazelle\n\n**What does this PR do? Why is it needed?**\n\nTranslates documentation from reStructuredText to Markdown for easier\nediting.\n\n**Which issues(s) does this PR fix?**\n\nFor #2196\n\n**Other notes for review**"
    },
    {
      "commit": "028c500e9f911a73683b6ec390f3e59e8f31fccc",
      "tree": "b1265e9cddc000db4fd0a5c3e4a238380dd5cd95",
      "parents": [
        "0c712d1012f1644fe86ba46ff023a03033bd40c0"
      ],
      "author": {
        "name": "Keith Smiley",
        "email": "keithbsmiley@gmail.com",
        "time": "Wed Dec 03 10:36:34 2025 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 03 10:36:34 2025 -0800"
      },
      "message": "Insert package() at the top of the file (#2249)\n\nThis is a different approach to\nhttps://github.com/bazel-contrib/bazel-gazelle/pull/1458"
    },
    {
      "commit": "0c712d1012f1644fe86ba46ff023a03033bd40c0",
      "tree": "dedd56536e037a797accdb2d98ce949a50506172",
      "parents": [
        "2250eaa251d01ee95cd4155d8a48ebea7860681c"
      ],
      "author": {
        "name": "Keith Smiley",
        "email": "keithbsmiley@gmail.com",
        "time": "Tue Dec 02 22:52:18 2025 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 03 06:52:18 2025 +0000"
      },
      "message": "Fix exports_files and package conflicts (#2248)\n\nThis was caused because both rules have an empty name. Now the empty\nname is ignored for deduping.\n\nFixes https://github.com/bazel-contrib/bazel-gazelle/issues/2246"
    },
    {
      "commit": "2250eaa251d01ee95cd4155d8a48ebea7860681c",
      "tree": "73dd7766d104c46372e776d9de6448d01f953972",
      "parents": [
        "46abfc06ad7b03338e3ad38cb533f6de10469b4e"
      ],
      "author": {
        "name": "David Zbarsky",
        "email": "dzbarsky@gmail.com",
        "time": "Tue Dec 02 11:53:40 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 02 16:53:40 2025 +0000"
      },
      "message": "Add Glob.AllowsEmpty (#2245)\n\n**What type of PR is this?**\nFeature\n\n**What package or component does this PR mostly affect?**\nall\n\n**What does this PR do? Why is it needed?**\nThis makes it easier to emit standardized globs from gazelle languages\nwithout complex logic to verify the exact set of patterns needed.\n(Especially since merging globs doesn\u0027t seem to work correctly in all\ncases)\n\nWhile here, I tweaked how we emit True/False literals to align with how\nthey\u0027re parsed by `buildtools`, otherwise we had to handle multiple ways\nto parse `allow_empty \u003d True` (both Literal and Ident). I can revert\nthis bit if we think it\u0027s unsafe or was done like this intentionally,\nbut it felt like matching what the parser itself would emit is better\n\n**Which issues(s) does this PR fix?**\n\nFixes #\n\n**Other notes for review**\n\nCo-authored-by: Jay Conrod \u003cjay@engflow.com\u003e"
    },
    {
      "commit": "46abfc06ad7b03338e3ad38cb533f6de10469b4e",
      "tree": "7c673f883b5028e0a1259a004ed6f097e402745c",
      "parents": [
        "cb5dab0b54b52f3dcc2d9c8b7ab936b47aba63ff"
      ],
      "author": {
        "name": "Peter Cardenas",
        "email": "16930781+PeterCardenas@users.noreply.github.com",
        "time": "Tue Dec 02 08:00:27 2025 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 02 08:00:27 2025 -0800"
      },
      "message": "feat: remove scalar attr keep comments (#2244)\n\n**What type of PR is this?**\n\nFeature\n\n**What package or component does this PR mostly affect?**\n\ncmd/gazelle\n\n**What does this PR do? Why is it needed?**\n\nFollowup to https://github.com/bazel-contrib/bazel-gazelle/pull/2232 to\nremove keep comments for scalar attribute assignments.\n\n**Which issues(s) does this PR fix?**\n\npartially addresses #2228, remaining work is to remove keep comments for\nnon-mergeable attributes (which is a little hairy)\n\n**Other notes for review**\n\nKeeping things abstracted to mergeAttrValues felt more right to me,\nalthough the code there to handle the edge cases looks a little wonky.\nWould appreciate some advice there."
    },
    {
      "commit": "cb5dab0b54b52f3dcc2d9c8b7ab936b47aba63ff",
      "tree": "cb9d4d3a77ea57ffac9a52ed466014211ff8a26e",
      "parents": [
        "377f822f68ce31e6c90714324605d3043bee7377"
      ],
      "author": {
        "name": "Peter Cardenas",
        "email": "16930781+PeterCardenas@users.noreply.github.com",
        "time": "Tue Nov 25 09:00:43 2025 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 25 09:00:43 2025 -0800"
      },
      "message": "feat: remove unnecessary keep comments in lists (#2232)\n\n**What type of PR is this?**\n\nfeature\n\n**What package or component does this PR mostly affect?**\n\ncmd/gazelle\n\n**What does this PR do? Why is it needed?**\n\nRemoves keep comments in lists when the list item was going to be kept\nanyways. Allows for automatic cleanup of dependencies that do not have\nto be manually tracked.\n\n**Which issues(s) does this PR fix?**\n\nPartially addresses #2228"
    },
    {
      "commit": "377f822f68ce31e6c90714324605d3043bee7377",
      "tree": "4871ddc86dac846c01d8d6d09f3d66ed5a04a48a",
      "parents": [
        "d3a4217845b19d8ea165586852e780976bae2f0c"
      ],
      "author": {
        "name": "Vasilios Pantazopoulos",
        "email": "vasilios@fullstory.com",
        "time": "Tue Nov 25 00:41:33 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 25 06:41:33 2025 +0100"
      },
      "message": "feature: generate `pgoprofile` attribute if default profile detected (#2241)\n\n\u003c!-- Thanks for sending a PR! Before submitting:\n\n1. If this is your first PR, please read CONTRIBUTING.md and sign the\nCLA\n   first. We cannot review code without a signed CLA.\n2. Please file an issue *first*. All features and most bug fixes should\nhave\nan associated issue with a design discussed and decided upon. Small bug\n   fixes and documentation improvements don\u0027t need issues.\n3. New features and bug fixes must have tests. Documentation may need to\nbe updated. If you\u0027re unsure what to update, send the PR, and we\u0027ll\ndiscuss\n   in review.\n--\u003e\n\n**What type of PR is this?**\n\nFeature\n\n**What package or component does this PR mostly affect?**\n\n`language/go`\n\n**What does this PR do? Why is it needed?**\n\nThis PR adds a quick detection of `default.pgo`, and if it exists,\nautomatically includes it in the `go_binary` `pgoprofile` attribute.\nThis is a very simple addition to allow easy generation of the\ndefault-case for profile-guided optimization.\n\n\u003e _Why?_\n\u003e Golang has supported profile-guided optimizations during compilation\nsince `v1.20`. When using `go build`, the default value of `-pgo` is\n`auto`, which will cause Go to perform profile-guided optimization if a\npprof file named `default.pgo` is co-located in the `main` package\ndirectory. See [Go\u0027s Profile-Guided Optimization\ndocumentation](https://go.dev/doc/pgo) for more details.\n\n**Which issues(s) does this PR fix?**\n\nFixes #2240\n\n**Other notes for review**\n\nHello!"
    },
    {
      "commit": "d3a4217845b19d8ea165586852e780976bae2f0c",
      "tree": "6f5d706e10a5ae879a5d5573d4b5f9280a44542e",
      "parents": [
        "cbd235f0ae64339e4cad7b2a667cbb318b226b82"
      ],
      "author": {
        "name": "Ignas Anikevicius",
        "email": "240938+aignas@users.noreply.github.com",
        "time": "Tue Nov 25 01:39:23 2025 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 24 08:39:23 2025 -0800"
      },
      "message": "doc: fix the `rules_python` gazelle example (#2020)\n\nThis is a small fix to improve the docs."
    },
    {
      "commit": "cbd235f0ae64339e4cad7b2a667cbb318b226b82",
      "tree": "c3d1d1cb15909d6995b920f87bfbdee980de2d05",
      "parents": [
        "9d26c707e1167ebf06290aca12ee9bae33c140f3"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Thu Nov 20 07:46:49 2025 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 20 15:46:49 2025 +0000"
      },
      "message": "walk: fix race condition (#2238)\n\n**What type of PR is this?**\n\nBug fix\n\n**What package or component does this PR mostly affect?**\n\nwalk\n\n**What does this PR do? Why is it needed?**\n\nPreviously in Walk2, after visiting directories listed on the command\nline but before visiting RelsToIndex, we set walker.mode to\nUpdateDirsMode to avoid further recursion. This write raced with a read\nof walker.mode in walker.shouldVisit when called by populateCache.\n\nThis change removes the walker.mode field and instead passes the mode as\nan explicit parameter to functions that need it.\n\n**Which issues(s) does this PR fix?**\n\nFixes #2235\n\n**Other notes for review**\n\nAlso added a test configuration for race detection so we can catch\nproblems like this earlier."
    },
    {
      "commit": "9d26c707e1167ebf06290aca12ee9bae33c140f3",
      "tree": "4506a80d2f80b8798cb6506af927ca8a364fb536",
      "parents": [
        "2f37cced5edd1856bd4bb92a0c6a2587edb8ef85"
      ],
      "author": {
        "name": "Fabian Meumertzheim",
        "email": "fabian@meumertzhe.im",
        "time": "Thu Nov 20 08:53:18 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 20 07:53:18 2025 +0000"
      },
      "message": "Accept `go.sum` files with git conflict markers (#2225)\n\n**What type of PR is this?**\n\nFeature\n\n**What package or component does this PR mostly affect?**\n\n`go_deps`\n\n**What does this PR do? Why is it needed?**\n\n**Which issues(s) does this PR fix?**\n\nFixes bazel-contrib/rules_go#4505\n\n**Other notes for review**"
    },
    {
      "commit": "2f37cced5edd1856bd4bb92a0c6a2587edb8ef85",
      "tree": "85bb4a61b53e9436aa46702f68069601327b6fc5",
      "parents": [
        "7022bb2c679a56230a699c7534b13450f9f2f006"
      ],
      "author": {
        "name": "Rory Chatterton",
        "email": "rory@wayvz.io",
        "time": "Thu Nov 20 03:34:53 2025 +1100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 19 16:34:53 2025 +0000"
      },
      "message": "Add default Gazelle override for tflint-plugin-sdk (#2230)\n\n**What type of PR is this?**\n\nBug fix\n\n**What package or component does this PR mostly affect?**\n\nbzlmod\n\n**What does this PR do? Why is it needed?**\n\nAdds `gazelle:proto disable` directive for\n`github.com/terraform-linters/tflint-plugin-sdk` to the default\noverrides.\n\nThe tflint-plugin-sdk repository includes pre-generated protobuf\nbindings.\nWhen Gazelle attempts to regenerate these bindings, it produces\nincompatible\ncode that causes build failures with undefined type errors.\n\nI have verified that disabling proto generation allows successful builds\nof\nprojects depending on tflint-plugin-sdk by using a MODULE.bazel override\nlike:\n\n```python\ngo_deps.gazelle_override(\n    directives \u003d [\n        \"gazelle:proto disable\",\n    ],\n    path \u003d \"github.com/terraform-linters/tflint-plugin-sdk\",\n)\n```\n\n**Which issues(s) does this PR fix?**\n\nN/A \n\n**Other notes for review**\n\nSmall fix similar to #2062 for hashicorp/go-plugin)\n\nCo-authored-by: Jay Conrod \u003cjay@engflow.com\u003e"
    },
    {
      "commit": "7022bb2c679a56230a699c7534b13450f9f2f006",
      "tree": "22d80d35c54b910301abfb2790e1cfb8e28de0cd",
      "parents": [
        "bb95b5e9cc96dcd2fd22b728da0ae573896a1c0b"
      ],
      "author": {
        "name": "Martin Kosiba",
        "email": "3844309+mkosiba@users.noreply.github.com",
        "time": "Tue Nov 18 19:23:04 2025 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 18 19:23:04 2025 +0000"
      },
      "message": "[bzlmod/go_deps] Clarify support for modules that differ only by case. (#2213)\n\n**What type of PR is this?**\n\nBug fix / minor enhancement\n\n**What package or component does this PR mostly affect?**\n\nbzlmod go_deps/go_repository\n\n**What does this PR do? Why is it needed?**\n\nGo tooling allows go.mod files to contain entries that differ only by\ncase.\nIf that happens the `go_deps` extension will `fail(..)` with an error\nmessage describing the problem.\n\n~In this PR we\u0027re adding support for the simple case, where the\ndependency is at the same version (as is the case\n[here](https://github.com/apognu/gocal/blob/master/go.mod#L6)).~\n\nIn this PR we\u0027re clarifying the error message so it doesn\u0027t suggest that\nthis is desired/planned functionality.\n\n**Which issues(s) does this PR fix?**\n\nSeems minor enough to not need an issue?\n\nCo-authored-by: Martin Kosiba \u003cmkosiba@apple.com\u003e\nCo-authored-by: Jay Conrod \u003cjay@engflow.com\u003e"
    },
    {
      "commit": "bb95b5e9cc96dcd2fd22b728da0ae573896a1c0b",
      "tree": "2d3a697aff50b1ca74aef209e60b85bd0a75b1a6",
      "parents": [
        "b13c1573c378bb3dd9b9de1397db89d0392f8e72"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Tue Nov 18 11:14:06 2025 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 18 11:14:06 2025 -0800"
      },
      "message": "CI: upgrade rules_go for BCR tests (#2237)\n\n**What type of PR is this?**\n\n\u003e Bug fix\n\n**What package or component does this PR mostly affect?**\n\ntests/bcr\n\n**What does this PR do? Why is it needed?**\n\nBazel 9.x requires the cc_common module to be loaded explicitly.\nbazel-contrib/rules_go#4508 added the required load statement, and this\nfix was released in rules_go 0.59.0.\n\nThis change upgrades the tests/bcr/go_mod and go_work test modules to\nrequire rules_go 0.59.0 so they can be tested with Bazel 9.x. Gazelle\nitself doesn\u0027t require the fix, so this change doesn\u0027t touch\nMODULE.bazel, avoiding a forced upgrade.\n\n**Which issues(s) does this PR fix?**\n\nFixes #2234\n\n**Other notes for review**"
    },
    {
      "commit": "b13c1573c378bb3dd9b9de1397db89d0392f8e72",
      "tree": "85451f500e806cc849458f919d393cf35cd68ce8",
      "parents": [
        "8ce02f76d6a7b248ac82ddb23136c1b6704183da"
      ],
      "author": {
        "name": "Steven Dee",
        "email": "git@wholezero.org",
        "time": "Thu Nov 06 05:16:53 2025 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 06 14:16:53 2025 +0100"
      },
      "message": "Fix go tools at module roots (#2223)\n\n**What type of PR is this?**\n\n\u003e Bug fix\n\n**What package or component does this PR mostly affect?**\n\n\u003e go_repository\n\n**What does this PR do? Why is it needed?**\n\nThis fixes a bug in bazel-contrib/bazel-gazelle#2215 wherein tools\nlocated at module roots would not be referenced correctly from the\n`GO_TOOLS` dictionary. The proposed fix is to always explicitly specify\nthe target name, which is assumed to always be the last path component\nin the package path.\n\n**Which issues(s) does this PR fix?**\n\nPart of buildbuddy-io/bazel_env.bzl#68\n\n**Other notes for review**\n\nThough the diff is in the end pretty small (I think), I leaned on Claude\nCode a fair bit to put this together, as you can see from\nmrdomino/bazel-gazelle#2. Mainly, I asked Claude to help me research how\nGazelle generates the last path component in the binary targets it\nproduces; from what I can tell, this is usually just the last path\ncomponent, even if that component is a major version:\n\n\nhttps://github.com/bazel-contrib/bazel-gazelle/blob/8ce02f76d6a7b248ac82ddb23136c1b6704183da/language/go/generate.go#L683-L686\n\n\nhttps://github.com/bazel-contrib/bazel-gazelle/blob/8ce02f76d6a7b248ac82ddb23136c1b6704183da/language/go/package.go#L254-L257\n\n\nhttps://github.com/bazel-contrib/bazel-gazelle/blob/8ce02f76d6a7b248ac82ddb23136c1b6704183da/pathtools/path.go#L55-L72\n\n---------\n\nCo-authored-by: Claude \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "8ce02f76d6a7b248ac82ddb23136c1b6704183da",
      "tree": "a714fc8d03ca1addcc1e2a5eecd3b2d38954aad0",
      "parents": [
        "c250075b62c3d6343f58f31544f0c98af4c48342"
      ],
      "author": {
        "name": "Fabian Meumertzheim",
        "email": "fabian@meumertzhe.im",
        "time": "Wed Nov 05 10:50:51 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 05 09:50:51 2025 +0000"
      },
      "message": "Fix BCR test module with Bazel 9 (#2221)\n\n**What type of PR is this?**\n\nBug fix\n\n**What package or component does this PR mostly affect?**\n\nBCR test\n\n**What does this PR do? Why is it needed?**\n\n**Which issues(s) does this PR fix?**\n\nWork towards\nhttps://github.com/bazelbuild/bazel-central-registry/issues/6402\n\n**Other notes for review**"
    },
    {
      "commit": "c250075b62c3d6343f58f31544f0c98af4c48342",
      "tree": "8f077fa50e7361f7f0b38999b9d44164babfa731",
      "parents": [
        "f866de07a7101d51360a56260f31ca11c2b49e6e"
      ],
      "author": {
        "name": "Steven Dee",
        "email": "git@wholezero.org",
        "time": "Fri Oct 31 14:28:43 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 31 22:28:43 2025 +0100"
      },
      "message": "Generate dictionary with go tool targets (#2215)\n\n**What type of PR is this?**\n\n\u003e Feature\n\n**What package or component does this PR mostly affect?**\n\n\u003e go_repository\n\n**What does this PR do? Why is it needed?**\n\nThis adds Bazel support for [go1.24 tool directives][0]. A\n`go_tools.bzl` is emitted that contains a `GO_TOOLS` dictionary with\nbinary names as keys and targets as values. This dictionary can be\nunioned into a [`bazel_env.bzl`][1] `tools` attribute to make a module’s\ntools accessible from that env.\n\n**Which issues(s) does this PR fix?**\n\nPart of buildbuddy-io/bazel_env.bzl#68\n\n**Other notes for review**\n\nI consulted with Claude on how to build the `tool_targets` dict; I did\nnot see any prior Starlark implementation of a Go package path to Bazel\nmodule transform.\n\n[0]: https://tip.golang.org/doc/go1.24#tools\n[1]: https://github.com/buildbuddy-io/bazel_env.bzl"
    },
    {
      "commit": "f866de07a7101d51360a56260f31ca11c2b49e6e",
      "tree": "3ca063e21b249536c164878d9379a2e7f2c02659",
      "parents": [
        "47b5773efc64569526e4cafe53cf74d8993dfda9"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Thu Oct 30 08:17:57 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 30 08:17:57 2025 -0700"
      },
      "message": "CI: hopefully fix BCR tests (#2220)\n\n**What type of PR is this?**\n\n\u003e Test\n\n**What package or component does this PR mostly affect?**\n\n\u003e all\n\n**What does this PR do? Why is it needed?**\n\nThe format for .bcr/presubmit.yml isn\u0027t well-documented. As far as I can\ntell, it\u0027s intepreted by\nbuildkite/bazel-central-registry/bcr_presubmit.py from\nbazelbuild/bazel-central-registry. The \"bcr_test_module\" block is\nimportant, I shouldn\u0027t have deleted that. But it only accepts one\nmodule, so go_mod is it.\n\n**Which issues(s) does this PR fix?**\n\nFor #2208\n\n**Other notes for review**"
    },
    {
      "commit": "47b5773efc64569526e4cafe53cf74d8993dfda9",
      "tree": "cab0b7af1ce751eea9e2eeb94d38e49829abcc9b",
      "parents": [
        "855be08f1e0dafdc3ddf0a6d7802d542d6956b5a"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jay@engflow.com",
        "time": "Tue Oct 28 13:13:19 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 28 13:13:19 2025 -0700"
      },
      "message": "CI: sync BCR and presubmit tests (#2218)\n\n**What type of PR is this?**\n\nTest\n\n**What package or component does this PR mostly affect?**\n\n\u003e all\n\n**What does this PR do? Why is it needed?**\n\n- BCR: Drop support for Debian 10. It\u0027s old, we don\u0027t test it in\npresubmit, and protoc has compile errors there.\n- BCR: test both go_work and go_mod since we test both in presubmit.\n- Presubmit: squash windows and non-windows tests. They\u0027re not separated\non BCR, and they\u0027re nearly identical.\n\n**Which issues(s) does this PR fix?**\n\nFor #2208\n\n**Other notes for review**"
    },
    {
      "commit": "855be08f1e0dafdc3ddf0a6d7802d542d6956b5a",
      "tree": "af6697017994a7be8a050a7e256ba963292b64ec",
      "parents": [
        "02b5c182edf0236deade3050e4f3a589dd1d1a4a"
      ],
      "author": {
        "name": "Torin Carey",
        "email": "torin@tcarey.uk",
        "time": "Tue Oct 28 12:22:05 2025 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 28 13:22:05 2025 +0100"
      },
      "message": "language/go: handle cgo noescape and nocallback directives (#2217)\n\nThese directives currently cause gazelle to fail to process the given\nfile. Update gazelle to use the same check as saveCgo does.\n\n\u003c!-- Thanks for sending a PR! Before submitting:\n\n1. If this is your first PR, please read CONTRIBUTING.md and sign the\nCLA\n   first. We cannot review code without a signed CLA.\n2. Please file an issue *first*. All features and most bug fixes should\nhave\nan associated issue with a design discussed and decided upon. Small bug\n   fixes and documentation improvements don\u0027t need issues.\n3. New features and bug fixes must have tests. Documentation may need to\nbe updated. If you\u0027re unsure what to update, send the PR, and we\u0027ll\ndiscuss\n   in review.\n--\u003e\n\n**What type of PR is this?**\nBug fix\n\n**What package or component does this PR mostly affect?**\nlanguage/go\n\n**What does this PR do? Why is it needed?**\nThis PR updates the `#cgo` directive parsing in `language/go` to handle\nthese two new(ish) directives. Currently these directives will cause\ngazelle to bail on that file.\n\n**Which issues(s) does this PR fix?**\n\nFixes #2216\n\n**Other notes for review**"
    },
    {
      "commit": "02b5c182edf0236deade3050e4f3a589dd1d1a4a",
      "tree": "9e298a25577d6e87bcb6084c28a38ab35573ab6c",
      "parents": [
        "15fa5e242c2af74ccfb0e44f7852307da0cc1856"
      ],
      "author": {
        "name": "Jason Bedard",
        "email": "jason+github@jbedard.ca",
        "time": "Fri Oct 24 12:13:49 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 24 12:13:49 2025 -0700"
      },
      "message": "fix: only return requested dirinfo on GetDirInfo error (#2212)\n\n**What type of PR is this?**\n\nBug fix\n\n**What package or component does this PR mostly affect?**\n\nall\n\n**What does this PR do? Why is it needed?**\n\nEnsure `GetDirInfo()` only returns `DirInfo` for the requested dir, or\nempty on error.\n\n**Which issues(s) does this PR fix?**\n\nIf there is an error loading a directory such as a syntax error in a\nBUILD file then `GetDirInfo` will detect that error and return without\nrecursing further into the `GetDirInfo(rel)`. It will return the error\nbut also the `DirInfo` for the directory containing the error.\n\nIf we are doing `GetDirInfo(\"a/b/c\")` and `a/b/c/BUILD` had a syntax\nerror, it is non-intuitive for `GetDirInfo(\"a/b/c\")` to return the\n`DirInfo` for `a/b`.\n\n**Other notes for review**\n\nIn my case I was recursing into subdirectories and when `GetDirInfo`\nreturns the info of a parent directory it caused infinite recursion.\nThis should probably by solved on my part by not recursing on error, but\nI think this change within gazelle makes return result on error clearer?\n\nThe alternative is `GetDirInfo` should return the directory the\n`DirInfo` is for. Maybe change the signature to `GetDirInfo(rel string)\n(string, DirInfo, error)` or adding `DirInfo.Pkg`."
    },
    {
      "commit": "15fa5e242c2af74ccfb0e44f7852307da0cc1856",
      "tree": "513627b45632763719ef8587bb3c75a5d52f9907",
      "parents": [
        "72ec3d2bab4c3495d32b18bb95d7d086f3523e27"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jayconrod@gmail.com",
        "time": "Thu Oct 23 07:53:01 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 23 07:53:01 2025 -0700"
      },
      "message": "Commit MODULE.bazel.lock file (#2209)\n\n**What type of PR is this?**\n\n\u003e Other\n\n**What package or component does this PR mostly affect?**\n\n\u003e all\n\n**What does this PR do? Why is it needed?**\n\nThis ensures Gazelle developers always see the same bits when\ndownloading files. We should see a security error if a module version\nchanges upstream.\n\n**Which issues(s) does this PR fix?**\n\nFixes #2208\n\n**Other notes for review**"
    },
    {
      "commit": "72ec3d2bab4c3495d32b18bb95d7d086f3523e27",
      "tree": "3233d5a1d3b8672ed05e61cfbbe8f88045c8f92a",
      "parents": [
        "d82aa37ecb2feb4e3a28dd6b01bc6a6a5a4d577b"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jayconrod@gmail.com",
        "time": "Mon Oct 20 14:57:17 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 20 21:57:17 2025 +0000"
      },
      "message": "config: fix nil pointer exception in update help (#2202)\n\n**What type of PR is this?**\n\n\u003e Bug fix\n\n**What package or component does this PR mostly affect?**\n\n\u003e config\n\n**What does this PR do? Why is it needed?**\n\nWhen running \u0027gazelle update -h\u0027, gazelle would panic. This happened\nbecause indexFlag.String() was invoked on a zero value, and it\ndeferenced pointers to bool values. This change fixes the panic,\ntreating nil pointers as false.\n\n**Which issues(s) does this PR fix?**\n\nn/a\n\n**Other notes for review**"
    },
    {
      "commit": "d82aa37ecb2feb4e3a28dd6b01bc6a6a5a4d577b",
      "tree": "57f46e994511ba6cb052e7d84276f7963cc44fbb",
      "parents": [
        "ac1a5c3409199b93d4692793b69ed93079e445b8"
      ],
      "author": {
        "name": "Jason Bedard",
        "email": "jason+github@jbedard.ca",
        "time": "Mon Oct 20 14:34:43 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 20 14:34:43 2025 -0700"
      },
      "message": "perf: avoid use of reflection when generating bzl expressions (#2204)\n\n**What type of PR is this?**\n\nOther\n\n**What package or component does this PR mostly affect?**\n\nall\n\n**What does this PR do? Why is it needed?**\n\nPerf. Reduce use of `reflect.*` in common cases."
    },
    {
      "commit": "ac1a5c3409199b93d4692793b69ed93079e445b8",
      "tree": "de9c038af1fe665af4ba57f7a22d75726201c733",
      "parents": [
        "2d0f0766c1c54adb5f692f3c11b494c784ab1d2a"
      ],
      "author": {
        "name": "Jason Bedard",
        "email": "jason+github@jbedard.ca",
        "time": "Sun Oct 19 14:49:24 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 19 23:49:24 2025 +0200"
      },
      "message": "perf: dont use sprintf for simple string concat (#2205)\n\n**What type of PR is this?**\n\nOther\n\n**What package or component does this PR mostly affect?**\n\nall\n\n**What does this PR do? Why is it needed?**\n\nAvoid use of `Sprintf` for frequent simple concatenation."
    },
    {
      "commit": "2d0f0766c1c54adb5f692f3c11b494c784ab1d2a",
      "tree": "28a2c3fe94bc01db19e04b65142d5be8d8998452",
      "parents": [
        "b55c4b214c6ddc65df00fbff2847627eb2670efa"
      ],
      "author": {
        "name": "Jason Bedard",
        "email": "jason+github@jbedard.ca",
        "time": "Sat Oct 18 22:50:47 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 19 07:50:47 2025 +0200"
      },
      "message": "chore: update bazelbuild/buildtools, bmatcuk/doublestar (#2203)\n\n**What type of PR is this?**\n\nOther\n\n**What package or component does this PR mostly affect?**\n\nall\n\n**What does this PR do? Why is it needed?**\n\nUpgrade bazelbuild/buildtools and bmatcuk/doublestar go modules which\nboth include minor fixes and performance improvements"
    },
    {
      "commit": "b55c4b214c6ddc65df00fbff2847627eb2670efa",
      "tree": "8f1fefa4a05e9984aa3f00a4c4c4c687602d3c99",
      "parents": [
        "c7339b8dc556518989550d25b6e09744f85b34aa"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jayconrod@gmail.com",
        "time": "Tue Oct 14 08:04:55 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 14 08:04:55 2025 -0700"
      },
      "message": "Design: translate from reStructuredText to Markdown (#2198)\n\nFor #2196\n\n**What type of PR is this?**\n\n\u003e Documentation\n\n**What package or component does this PR mostly affect?**\n\n\u003e Design\n\n**What does this PR do? Why is it needed?**\n\nTranslates Design.rst from reStructuredText to Markdown.\n\nThis page is almost entirely obsolete. But let\u0027s change the format\nbefore we substantially change the content.\n\n**Which issues(s) does this PR fix?**\n\nFixes #2196\n\n**Other notes for review**"
    },
    {
      "commit": "c7339b8dc556518989550d25b6e09744f85b34aa",
      "tree": "4dbd4b8389cdd48a48c8382a813f2feb2aee9f75",
      "parents": [
        "f5f8aff2ee45dddab0cf31f2348c32a2d41ed382"
      ],
      "author": {
        "name": "Jay Conrod",
        "email": "jayconrod@gmail.com",
        "time": "Fri Oct 10 07:46:34 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 10 07:46:34 2025 -0700"
      },
      "message": "README: translate from reStructuredText to Markdown (#2197)\n\nFor #2196\n\n**What type of PR is this?**\n\n\u003e Documentation\n\n**What package or component does this PR mostly affect?**\n\nREADME.rst\n\n**What does this PR do? Why is it needed?**\n\nTranslates README.rst into README.md for more familiarity, easier\nediting. I tried to keep this as direct as possible with minimal changes\nto the text or formatting within text. I did fix punctuation and\nformatting in a few places.\n\nMarkdown tables can\u0027t have multiline cells with internal formatting, so\nI\u0027ve translated the tables into paragraphs.\n\n**Which issues(s) does this PR fix?**\n\nFor #2196\n\n**Other notes for review**\n\nThere are a lot of documentation improvements needed. This is just a\nfirst step: I don\u0027t want to mix content changes with language changes."
    }
  ],
  "next": "f5f8aff2ee45dddab0cf31f2348c32a2d41ed382"
}
