)]}'
{
  "commit": "da23db5b4dc095c597a0fc792f04e7ff50d37142",
  "tree": "21226632647975cf76eabe8f9e25b2cb5a471834",
  "parents": [
    "3440572f5d8bcb45df8db93ecc102475d6508bee"
  ],
  "author": {
    "name": "Josh Cannon",
    "email": "joshdcannon@gmail.com",
    "time": "Mon Nov 17 23:13:13 2025 -0600"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Nov 18 05:13:13 2025 +0000"
  },
  "message": "refactor(gazelle): Generate a modules map per wheel, then merge (#3415)\n\nThis change internally splits modules mapping generation to be\nper-wheel, with a final quick \"merge\" action at the end.\n\nThe idea is to make this process both concurrent and cached (courtesy of\nBazel), which can be ideal for codebases with a large set of\nrequirements (as many monorepos end up doing)\n\nNote that the `generator.py` interface changed. This seemed internal, so\nI didn\u0027t mark it breaking (but this change could actually just leave the\ngenerator alone, since the current implementation is fine with 1 wheel).\n\nI ran this on the work repo and saw no change in output (but as I edited\na single requirement, the overall process was fast ⚡ )",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5a71e5f9722ec3a9edc3337f8e99109c30e4a536",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "7d3723c7afc6910eda7652c0021e648597dc2ea8",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "3a9a8a47f3fc36990629ee358770d929851125df",
      "old_mode": 33188,
      "old_path": "gazelle/modules_mapping/BUILD.bazel",
      "new_id": "3423f34e51dc9f8597aa0b4b2ff12a049d0505fd",
      "new_mode": 33188,
      "new_path": "gazelle/modules_mapping/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "48a5477b93825cc34d08e1edfe2e2339fb163470",
      "old_mode": 33188,
      "old_path": "gazelle/modules_mapping/def.bzl",
      "new_id": "74d3c9ef35bafcef39211d8370c29c04d5bb224a",
      "new_mode": 33188,
      "new_path": "gazelle/modules_mapping/def.bzl"
    },
    {
      "type": "modify",
      "old_id": "ea11f3e236571049617ad37b4bd7e58b5a06b99b",
      "old_mode": 33188,
      "old_path": "gazelle/modules_mapping/generator.py",
      "new_id": "611910c669ac5a68a24d8cf10be474cf19258689",
      "new_mode": 33188,
      "new_path": "gazelle/modules_mapping/generator.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "deb0cb266662e3b10f4addf6d770fd7a511916d7",
      "new_mode": 33188,
      "new_path": "gazelle/modules_mapping/merger.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6260fdd6ff9eaba6770ff3e5cf3da0ed2a08b1ee",
      "new_mode": 33188,
      "new_path": "gazelle/modules_mapping/test_merger.py"
    }
  ]
}
