)]}'
{
  "commit": "d636e3c0282d3a09176f35c19cc9563b6bcb7c8d",
  "tree": "e664d8c98fa6378aa52358231bd6d1ddd6d3aec3",
  "parents": [
    "74b944afe32049191674c747e060d8d67a2a1b17"
  ],
  "author": {
    "name": "Serhiy Storchaka",
    "email": "storchaka@gmail.com",
    "time": "Sun Aug 30 10:27:33 2026"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun Aug 30 10:27:33 2026"
  },
  "message": "gh-44871: Improve DOM Level 1 conformance of xml.dom.minidom (#155641)\n\n* The factory methods now raise InvalidCharacterErr if the name is not\n  a valid XML name.\n* Inserting or setting a node created by another document now raises\n  WrongDocumentErr.\n* Setting an attribute node which belongs to another element now raises\n  InuseAttributeErr.\n* Inserting a node into itself or its descendant now raises\n  HierarchyRequestErr.\n* A document can have only one element child and only one document type\n  child, and a document fragment can no longer have notation children.\n* Removing an absent attribute now has no effect instead of raising\n  NotFoundErr.\n* Attributes defaulted in the DTD are no longer omitted when parsing,\n  and Attr.specified now reports whether the attribute was given in the\n  start tag.  This needs the new pyexpat method\n  GetSpecifiedAttributeCount().\n* EntityReference nodes and Document.createEntityReference() are now\n  implemented.\n* The exceptions required by the DOM are now documented, and minidom\n  specific differences are described in the minidom documentation.\n\nCo-authored-by: Jason Orendorff \u003c283361+jorendorff@users.noreply.github.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c88411ce0b7b91fc2d6b04c6dcf1d3defa8a20f5",
      "old_mode": 33188,
      "old_path": "Doc/library/pyexpat.rst",
      "new_id": "abd68c5006bd475274cee305b5b5944e42b32c9a",
      "new_mode": 33188,
      "new_path": "Doc/library/pyexpat.rst"
    },
    {
      "type": "modify",
      "old_id": "ded3859192fd8352466f015ab0db6d12c91fb33d",
      "old_mode": 33188,
      "old_path": "Doc/library/xml.dom.minidom.rst",
      "new_id": "efc81f31e36a5be6a41e550a649d9e5b5822b67d",
      "new_mode": 33188,
      "new_path": "Doc/library/xml.dom.minidom.rst"
    },
    {
      "type": "modify",
      "old_id": "97573388458ac5145b914a25285538ca1fd0b56b",
      "old_mode": 33188,
      "old_path": "Doc/library/xml.dom.rst",
      "new_id": "250b9be99a8bd390d8a21235c85282c2e3c4879a",
      "new_mode": 33188,
      "new_path": "Doc/library/xml.dom.rst"
    },
    {
      "type": "modify",
      "old_id": "a1a8415482b97aa8dcb9b891c8b1c32435cde987",
      "old_mode": 33188,
      "old_path": "Doc/whatsnew/3.16.rst",
      "new_id": "f3ddae7a2b2fdd167ae6748544cf3c40140dffca",
      "new_mode": 33188,
      "new_path": "Doc/whatsnew/3.16.rst"
    },
    {
      "type": "modify",
      "old_id": "46249e5138aed528b908f423dd8463bd5aecf752",
      "old_mode": 33188,
      "old_path": "Lib/test/test_minidom.py",
      "new_id": "3735a6046891ea9a5fefee3a6d31f520630134e8",
      "new_mode": 33188,
      "new_path": "Lib/test/test_minidom.py"
    },
    {
      "type": "modify",
      "old_id": "7dd667bf3fbe042d8d14ff1d07541cf52dc8f333",
      "old_mode": 33188,
      "old_path": "Lib/xml/dom/expatbuilder.py",
      "new_id": "d56b2ddfdb256986ba1b6b92160d6276de34ef54",
      "new_mode": 33188,
      "new_path": "Lib/xml/dom/expatbuilder.py"
    },
    {
      "type": "modify",
      "old_id": "16b33b90184dc59d08805ebfd07c4d660606e66e",
      "old_mode": 33188,
      "old_path": "Lib/xml/dom/minidom.py",
      "new_id": "5fd3911bd3c9ebb6f0fca8cb61eb0598a56425a6",
      "new_mode": 33188,
      "new_path": "Lib/xml/dom/minidom.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d3adb49db69620fc02128744acc7eb06db9d5d1c",
      "new_mode": 33188,
      "new_path": "Misc/NEWS.d/next/Library/2026-08-12-21-34-12.gh-issue-44871.Qw3Lm8.rst"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1d81ecea11c5d0a8fa3e2a715e08f5771c960f9f",
      "new_mode": 33188,
      "new_path": "Misc/NEWS.d/next/Library/2026-08-12-21-34-12.gh-issue-44871.Rt7Nv2.rst"
    },
    {
      "type": "modify",
      "old_id": "1a07726d303ecad874501e71a48b83b3bf2d04d0",
      "old_mode": 33188,
      "old_path": "Modules/clinic/pyexpat.c.h",
      "new_id": "9e32bb079c1ea6822230e0f5ea3e59122f13fe24",
      "new_mode": 33188,
      "new_path": "Modules/clinic/pyexpat.c.h"
    },
    {
      "type": "modify",
      "old_id": "397a441f574fe45cd5a8487dbc8345964c68c432",
      "old_mode": 33188,
      "old_path": "Modules/pyexpat.c",
      "new_id": "fa8b0db6080623345812fb20f6c842c3989c2a46",
      "new_mode": 33188,
      "new_path": "Modules/pyexpat.c"
    }
  ]
}
