)]}'
{
  "commit": "afdbedd3a58cb5d65e659e1dcc77108cfd22715e",
  "tree": "2c8079a05b75bdf03b3c7f936063ab6dbbd594f7",
  "parents": [
    "4c365e71d1146f8f8f7c43ad19129c72ac49f4bf"
  ],
  "author": {
    "name": "Richard Levasseur",
    "email": "rlevasseur@google.com",
    "time": "Sat Jun 03 11:55:34 2023 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sat Jun 03 18:55:34 2023 +0000"
  },
  "message": "fix(bzlmod): give precedence to the first seen versioned toolchain (#1244)\n\nThis fixes an issue where the last submodule, instead of the first, was\ngiven precedence when creating versioned toolchains. To fix, when\ncreating the map of versioned toolchains, if a version is already\ndefined, then a subsequent usage is ignored. A warning is emitted when\nthis occurs.\n\nThis also fixes a similar problem that can occur to the root module. If\nthe root module uses a particular version marked as the default, and is\nusing the versioned rules, and a submodule also uses that same version,\nthen the submodule\u0027s toolchain would be used. This happened because the\nroot module\u0027s toolchain would be moved last, so its versioned rules\nwould match the submodule\u0027s versioned toolchain.\n\nThis also does some cleanup and refactoring to:\n  * Compute the toolchains in one loop iteration\n  * Give more informative error messages\n* Reject duplicate names within a module, even for the non-root module.\n  * Reject duplicate versions within a module.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4732cfb07849a30ccead2e16c6f0df12be8bf581",
      "old_mode": 33188,
      "old_path": "python/extensions/python.bzl",
      "new_id": "a604df6ca3a350dbc833e81cf8bb680035a70372",
      "new_mode": 33188,
      "new_path": "python/extensions/python.bzl"
    }
  ]
}
