)]}'
{
  "commit": "c9cbfe37ded373a804aeaece69ea7479e7309814",
  "tree": "002ff1b94581ce3c3450f02df2e00dd7409f5269",
  "parents": [
    "4b700120114c739b9ee1f4c7228927165edeb344"
  ],
  "author": {
    "name": "Joshua Haberman",
    "email": "haberman@google.com",
    "time": "Thu Nov 05 16:23:32 2026 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Thu Nov 05 16:26:42 2026 -0800"
  },
  "message": "Raise `FrozenInstanceError` when re-calling `__init__()` on a frozen message in pure Python.\n\nCalling `__init__()` on an existing message resets and reinitializes it. For a frozen message (e.g. one returned by `GetOptions()`), the C++ and upb implementations raise `FrozenInstanceError`, but pure Python silently cleared and modified it, because its `__init__()` did not check `_frozen`. Now all three implementations raise.\n\nPiperOrigin-RevId: 1015074692\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d9e70d2913cbbe5b625c9f31cfc7c62a37655020",
      "old_mode": 33261,
      "old_path": "python/google/protobuf/internal/descriptor_test.py",
      "new_id": "4306de6345fa9c1b276c4a15550d90ebbe316238",
      "new_mode": 33261,
      "new_path": "python/google/protobuf/internal/descriptor_test.py"
    },
    {
      "type": "modify",
      "old_id": "88215010dc11a731cff4c6603d5b884fa13b0b79",
      "old_mode": 33261,
      "old_path": "python/google/protobuf/internal/python_message.py",
      "new_id": "e0d9fd43cae51875340006de928c7b41bc56c691",
      "new_mode": 33261,
      "new_path": "python/google/protobuf/internal/python_message.py"
    }
  ]
}
