)]}'
{
  "commit": "a78cbd81d5d03b5f126eb36edb92bca78972c804",
  "tree": "da9176cc76597098f4b2927996f52d3b8cf0b9aa",
  "parents": [
    "d23ff760f8448b51579016d96f39590018445724"
  ],
  "author": {
    "name": "Paul Ganssle",
    "email": "git@m.ganssle.io",
    "time": "Sun Nov 01 01:25:00 2026 -0400"
  },
  "committer": {
    "name": "Paul Ganssle",
    "email": "git@m.ganssle.io",
    "time": "Sun Nov 01 01:25:00 2026 -0400"
  },
  "message": "Prepare release 4.0.0\n\nRun `towncrier build` for 4.0.0 and then curate the result by hand: the\nrelease opens with a note that 4.0 requires Python 3.11 and drops `six`,\nthe `isoparse` entry is first among the bugfixes because it rejects\nstrings that used to parse, the 1051, 1583 and 1625 entries are\nreworded, and the Hatchling and pyproject.toml entries are combined. The\nremaining CI-only entries in \"Misc\" are collapsed into a list of PR\nnumbers.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6c0f42882303b35da56a9cea3f31fddc017965ab",
      "old_mode": 33188,
      "old_path": "NEWS",
      "new_id": "26b3bb6456fdb88c350d6fd73ff1a39b97d075d1",
      "new_mode": 33188,
      "new_path": "NEWS"
    },
    {
      "type": "delete",
      "old_id": "24d6b652a47e6075d73afe4b832ae7b23e7536f0",
      "old_mode": 33188,
      "old_path": "changelog.d/1051.bugfix.rst",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "cea930e407074362e0c7ee1c049a8e6f426bd5c7",
      "old_mode": 33188,
      "old_path": "changelog.d/1583.bugfix.rst",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "a30f258959cfee904af2655d31c268631e974a25",
      "old_mode": 33188,
      "old_path": "changelog.d/1617.bugfix.rst",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "c5ac4538c93baf9d16ea5dcca7c439aeacdd5610",
      "old_mode": 33188,
      "old_path": "changelog.d/1625.deprecations.rst",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "f51f13d3e2d515ccb5289c499b35480de1578485",
      "old_mode": 33188,
      "old_path": "changelog.d/1636.misc.rst",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "da8683154627861c6eeddb8f8411082e0b288ce5",
      "old_mode": 33188,
      "old_path": "changelog.d/1637.misc.rst",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "51c3813c57fc16593a0b14ccec42cb1d3bae4b19",
      "old_mode": 33188,
      "old_path": "changelog.d/1638.misc.rst",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "28b9aec760d97917d0cb67caa9785429d2a0cc7e",
      "old_mode": 33188,
      "old_path": "changelog.d/1644.misc.rst",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "e5d7e836b5a82cb3ac963f4672c4e72c45769d75",
      "old_mode": 33188,
      "old_path": "changelog.d/1645.misc.rst",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "6c3d3aad6e7697d75b0c87d29c7aa24299c30a1b",
      "old_mode": 33188,
      "old_path": "changelog.d/1646.misc.rst",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "f83cafd182a187d2f3cb7b5964635cc8cc048461",
      "old_mode": 33188,
      "old_path": "changelog.d/1648.misc.rst",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "99b36202d559574871b1e928175361c1a0199449",
      "old_mode": 33188,
      "old_path": "changelog.d/1649.misc.rst",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "f571418e1eb7022fe70c8baf5f3e01df31626a79",
      "old_mode": 33188,
      "old_path": "changelog.d/1650.misc.rst",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "dcb6a8e66195e7588741f75f53b35f7d098da665",
      "old_mode": 33188,
      "old_path": "changelog.d/1655.bugfix.rst",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    }
  ]
}
