)]}'
{
  "commit": "a2773de53c02ccaf242ed52f706a08a7f61b9186",
  "tree": "1805ae0be32d22518624a06208de8c5f0af45115",
  "parents": [
    "d85a3925c5d32783b4ebbd652ce7acda109fa27f"
  ],
  "author": {
    "name": "kcon-stackav",
    "email": "168012427+kcon-stackav@users.noreply.github.com",
    "time": "Mon Oct 07 19:33:26 2024 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Oct 08 02:33:26 2024 +0000"
  },
  "message": "fix(py_wheel): Quote wheel RECORD file entry elements if needed (#2269)\n\nThe `RECORD` file written when wheels are patched using `pip.override()`\nis not quoting filenames as needed, so wheels that (unfortunately)\ninclude files whose name contain commas would be written in such a way\nthat https://pypi.org/project/installer/ would fail to parse them,\nresulting in an error like:\n\n```\ninstaller.records.InvalidRecordEntry: Row Index 360: expected 3 elements, got 5\n```\n\nThis PR fixes that by using `csv` to read and write `RECORD` file\nentries which takes care of quoting elements of record entries as\nneeded. See PEP376 for more info about the `RECORD` file format here:\nhttps://peps.python.org/pep-0376/#record\n\nFixes #2261",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d58351a542a24a47b27d6eff3fdecb80f6658be6",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "c850d186ac7ff5e2cea6dd6e5833255ff4c4ef5f",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "3b596627451c1a422cb370d57805aac2add5bceb",
      "old_mode": 33188,
      "old_path": "examples/wheel/lib/BUILD.bazel",
      "new_id": "755818daa1c4849a8e19642cd33829983e920568",
      "new_mode": 33188,
      "new_path": "examples/wheel/lib/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "72124232bf6d7d3ace4f48ae835830ced70ba734",
      "old_mode": 33188,
      "old_path": "examples/wheel/wheel_test.py",
      "new_id": "4494ee170dccc9b80a3a824a3e1329d5636722e3",
      "new_mode": 33188,
      "new_path": "examples/wheel/wheel_test.py"
    },
    {
      "type": "modify",
      "old_id": "9052ac39c611330803acfe53aa832a38501ec6d2",
      "old_mode": 33188,
      "old_path": "python/private/pypi/repack_whl.py",
      "new_id": "519631f272b458b3e982c78d7cca7b633a9ca432",
      "new_mode": 33188,
      "new_path": "python/private/pypi/repack_whl.py"
    },
    {
      "type": "modify",
      "old_id": "01d0bc6c9e109fe8b19ca192299cbf713cd1a5c9",
      "old_mode": 33188,
      "old_path": "python/private/whl_filegroup/extract_wheel_files.py",
      "new_id": "5b799c9fbbf094bfd5cd56b4c1a4d643b40e47f9",
      "new_mode": 33188,
      "new_path": "python/private/whl_filegroup/extract_wheel_files.py"
    },
    {
      "type": "modify",
      "old_id": "387e56cde32429d966448b3b98fb77da1e0a7bdd",
      "old_mode": 33188,
      "old_path": "tests/whl_filegroup/extract_wheel_files_test.py",
      "new_id": "434899d5cf41fc6837649fc4003f8e5e3476fc1c",
      "new_mode": 33188,
      "new_path": "tests/whl_filegroup/extract_wheel_files_test.py"
    },
    {
      "type": "modify",
      "old_id": "db287ebaee6125de84a1b65452781fcd67854210",
      "old_mode": 33188,
      "old_path": "tools/wheelmaker.py",
      "new_id": "23b18eca5fcf9a63decc698f71faec650ec7cdc7",
      "new_mode": 33188,
      "new_path": "tools/wheelmaker.py"
    }
  ]
}
