)]}'
{
  "commit": "ccf3141bbe85f1bd7396febe08ff367101826205",
  "tree": "14a11a70a4ecd85dbf0e9481d588d5aac1eec8c9",
  "parents": [
    "a0400e9a832d554de032fe44d8b8375ceaa32db8"
  ],
  "author": {
    "name": "Frank Portman",
    "email": "frank1214@gmail.com",
    "time": "Tue Apr 15 04:38:54 2025 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Apr 15 08:38:54 2025 +0000"
  },
  "message": "fix(packaging): Format `METADATA` correctly if given empty `requires_file` (#2771)\n\nAn empty `requires_file` used to be okay, but at some point regressed to\nleaving an empty line (due to the `metadata.replace(...)`) in the\n`METADATA` file - rendering the wheel uninstallable.\n\nThis PR initially attempted to solve that by introducing a new list that\nprocessed `METADATA` lines go into, rather than relying on repeated\nstring replacement. But it seems like the repeated string replace\nactually did more than simply process one line at a time, so I reverted\nto a single substitution at the end.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6f86851bdf8234b9f02f9095e42caf0d0bd87eeb",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "e7f9fe30e2fe6a3f668dc2358cb427e15d7c5741",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "d9ba8001251731920958dc0857e6a1660a546d37",
      "old_mode": 33188,
      "old_path": "examples/wheel/BUILD.bazel",
      "new_id": "b434e674057bcb92baf4c063f0a98a5ff8798f27",
      "new_mode": 33188,
      "new_path": "examples/wheel/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "a3d6034930d1a0abfc53b031254b3491988e0c3f",
      "old_mode": 33188,
      "old_path": "examples/wheel/wheel_test.py",
      "new_id": "9ec150301d761a372dd31d5af3fdeaa91e1bf7d0",
      "new_mode": 33188,
      "new_path": "examples/wheel/wheel_test.py"
    },
    {
      "type": "modify",
      "old_id": "629af2d6a4ea15a468ae152b61071bf75bb41b34",
      "old_mode": 33188,
      "old_path": "python/packaging.bzl",
      "new_id": "b190635cfe09f69b9d2e07257deefe1ee8d7ac29",
      "new_mode": 33188,
      "new_path": "python/packaging.bzl"
    },
    {
      "type": "modify",
      "old_id": "23b18eca5fcf9a63decc698f71faec650ec7cdc7",
      "old_mode": 33188,
      "old_path": "tools/wheelmaker.py",
      "new_id": "908b3fe9566bf9087c7a7672484a6c6911d8b270",
      "new_mode": 33188,
      "new_path": "tools/wheelmaker.py"
    }
  ]
}
