)]}'
{
  "commit": "c4b3d20be7a10979a7e2f0ab85029311a188376d",
  "tree": "c728a341ad9308ec8e1db161abe92bb9f9e3b272",
  "parents": [
    "6ec6d867843d274fa4555eb635ebafc60259b88e"
  ],
  "author": {
    "name": "Ian (Hee) Cha",
    "email": "heec@google.com",
    "time": "Fri May 08 13:47:08 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri May 08 20:47:08 2026 +0000"
  },
  "message": "[9.2.0] Add an implicit _sort_key field to module extension tags (#29484)\n\n\u003c!--\nThank you for contributing to Bazel!\nPlease read the contribution guidelines:\nhttps://bazel.build/contribute.html\n--\u003e\n\n### Description\nReplaces the implicit `tag._sort_key` field introduced in\nhttps://github.com/bazelbuild/bazel/pull/27883 with an explicit method\n`module_ctx.tag_sort_key(tag)`. The implicit field can unintentionally\nbreak users who are iterating through all available fields using e.g.\n`dir(tag)`.Replaces the implicit `tag._sort_key` field introduced in\nhttps://github.com/bazelbuild/bazel/pull/27883 with an explicit method\n`module_ctx.tag_sort_key(tag)`. The implicit field can unintentionally\nbreak users who are iterating through all available fields using e.g.\n`dir(tag)`.\n\n### Motivation\nFixes https://github.com/bazelbuild/rules_rust/issues/3962Fixes\nhttps://github.com/bazelbuild/rules_rust/issues/3962\n\n### Build API Changes\nThis does affect the Build API, and is not backwards compatible; but\n`tag._sort_key` was introduced earlier on HEAD, and hasn\u0027t been\nbackported to a release branch yet.\n\n### Checklist\n\n- [ ] I have added tests for the new use cases (if any).\n- [ ] I have updated the documentation (if applicable).\n\n### Release Notes\n\n\u003c!--\nIf this is a new feature, please add \u0027RELNOTES[NEW]: \u003cdescription\u003e\u0027\nhere.\nIf this is a breaking change, please add \u0027RELNOTES[INC]: \u003creason\u003e\u0027 here.\nIf this change should be mentioned in release notes, please add\n\u0027RELNOTES: \u003creason\u003e\u0027 here.\n--\u003e\n\nRELNOTES: Added the `module_ctx.tag_sort_key(tag)` method, which returns\nan opaque object for the given tag that can be compared to derive the\norder in which tags from different classes appear in the MODULE.bazel\nfile.\n\nCloses https://github.com/bazelbuild/bazel/pull/29343.Closes\nhttps://github.com/bazelbuild/bazel/pull/29343.\n\nPiperOrigin-RevId: 902647373\nChange-Id: I177edef56f8946cf88e41ed35cc01403e537857c\n\nCommit\nhttps://github.com/bazelbuild/bazel/commit/a76b2e610b099aca138feb8d0ce231d0db060303\nand\nhttps://github.com/bazelbuild/bazel/commit/a39cef7d8171fb39663f541ed03434bd126414dc\n\n---------\n\nCo-authored-by: Fabian Meumertzheim \u003cfabian@meumertzhe.im\u003e\nCo-authored-by: Xudong Yang \u003cwyverald@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "751ce5ef24cb3ef6028d0cb57cd43f0700612dbe",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleExtensionContext.java",
      "new_id": "edefbcd516657e4a0906c8471f669363fa4c5be7",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleExtensionContext.java"
    },
    {
      "type": "modify",
      "old_id": "5f57c9f540b72259e0fb781ebbeecd895a34d724",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/bazel/bzlmod/RegularRunnableExtension.java",
      "new_id": "450a8a6abd2cb7b25b9534e6f95b677f44adb942",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/bzlmod/RegularRunnableExtension.java"
    },
    {
      "type": "modify",
      "old_id": "d9e05fb136de56978ed440dd3acdd1634c575085",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/bazel/bzlmod/StarlarkBazelModule.java",
      "new_id": "40633337d41799fad14532b2f2fc2f536b5ecee4",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/bzlmod/StarlarkBazelModule.java"
    },
    {
      "type": "modify",
      "old_id": "a694ae50ec0f2c95ba7149def42b690133c03dc7",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/bazel/bzlmod/TypeCheckedTag.java",
      "new_id": "aa8e1aeed1ac089fbf55247a2412d4ce94e8d70a",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/bzlmod/TypeCheckedTag.java"
    },
    {
      "type": "modify",
      "old_id": "0cd617c9e68d93cb01ec1cb7e22a1c4c46c6b548",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleExtensionResolutionTest.java",
      "new_id": "3ecb817886814c58b77064a640be50229c2a2f0a",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleExtensionResolutionTest.java"
    },
    {
      "type": "modify",
      "old_id": "9a8d2501e55fbad9fa59ecbd848c36b688c78de3",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/bazel/bzlmod/StarlarkBazelModuleTest.java",
      "new_id": "3f6df3b0a5a5927df360bef850a71ab539fb3a50",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/bazel/bzlmod/StarlarkBazelModuleTest.java"
    },
    {
      "type": "modify",
      "old_id": "0a93133bea7e6758e226f372b5598f1a00b978e7",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/bazel/bzlmod/TypeCheckedTagTest.java",
      "new_id": "56bbb65e4298bbd9e7b4f1973ce0abf0d038657d",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/bazel/bzlmod/TypeCheckedTagTest.java"
    }
  ]
}
