)]}'
{
  "log": [
    {
      "commit": "5c22d91b435341324e23dc505fe26850ddf3485e",
      "tree": "f9d4382eb8765eb66b8663238f79810c99f684ec",
      "parents": [
        "9aac8ad7aadd7446309dc6d756158cc54c68fe2d"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Mon Nov 10 14:03:02 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 00:01:57 2025 +0100"
      },
      "message": "Fix collection test\n\n- collections.abc was added in 3.3 collections.Hashable removed in 3.10\n"
    },
    {
      "commit": "055fe67ec1856d25f7ad3b98b5cd172fdf8e2c70",
      "tree": "062bf11a4e4dff23d87121e68022eb6e393699f7",
      "parents": [
        "526a1acf3b870d3b292423e19b9bb9bb0d18c0c3"
      ],
      "author": {
        "name": "Neil Williams",
        "email": "neil@reddit.com",
        "time": "Tue Feb 16 15:12:15 2021 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Tue Feb 16 16:31:00 2021 -0800"
      },
      "message": "THRIFT-5352: Fix construction of Py exceptions with no fields\n\nClient: py\n\nWhen no fields are present, we don\u0027t get the special constructor that\nuses __setattr__ to avoid these checks. So the default constructor sets\nmessage normally and triggers the anti-mutation tripwires.\n"
    },
    {
      "commit": "9c43962da8e4b530014619e3703a279053cf2182",
      "tree": "9b862189ed6e5fbdd9819a964c7f2efe69aa9bb4",
      "parents": [
        "9320f891d7d972fc2cc4f9569b66767c5dfc4242"
      ],
      "author": {
        "name": "Elvis Pranskevichus",
        "email": "elvispranskevichus@pinterest.com",
        "time": "Wed Dec 11 16:47:52 2019 -0500"
      },
      "committer": {
        "name": "Duru Can Celasun",
        "email": "can@dcc.im",
        "time": "Thu Dec 12 13:50:42 2019 +0000"
      },
      "message": "Revert \"Revert \"THRIFT-4002: Make generated exception classes immutable by default\"\"\n\nThis reverts commit 1234ddf8a5c98d5d700c82e087f04725170ad581.\n"
    },
    {
      "commit": "1234ddf8a5c98d5d700c82e087f04725170ad581",
      "tree": "38cfceb980bf08948c575c4091b8e17fbbb47ab6",
      "parents": [
        "b40f5c227f8db61be523f23ca017519167589d97"
      ],
      "author": {
        "name": "D. Can Celasun",
        "email": "can@dcc.im",
        "time": "Tue Dec 10 22:13:06 2019 +0000"
      },
      "committer": {
        "name": "D. Can Celasun",
        "email": "can@dcc.im",
        "time": "Tue Dec 10 22:13:06 2019 +0000"
      },
      "message": "Revert \"THRIFT-4002: Make generated exception classes immutable by default\"\n\nThis reverts commit b40f5c227f8db61be523f23ca017519167589d97.\n"
    },
    {
      "commit": "b40f5c227f8db61be523f23ca017519167589d97",
      "tree": "78b38c45fc8cf8104c912e2415eefb6b63103c01",
      "parents": [
        "45a9827f0f455d377ae87d9a35349c10181d6893"
      ],
      "author": {
        "name": "Elvis Pranskevichus",
        "email": "elvispranskevichus@pinterest.com",
        "time": "Thu Mar 07 11:00:34 2019 -0500"
      },
      "committer": {
        "name": "D. Can Celasun",
        "email": "can@dcc.im",
        "time": "Tue Dec 10 20:44:24 2019 +0000"
      },
      "message": "THRIFT-4002: Make generated exception classes immutable by default\n\nCurrently, the generated exception classes are not hashable under\nPython 3 because of the generated `__eq__` method.  Exception objects\nare generally expected to be hashable by the Python standard library.\nPost-construction mutation of an exception object seems like a very\nunlikely case, so enable hashing for all exceptions by making them\nimmutable by default.  This also adds a way to opt-out of immutability\nby setting the `python.immutable` annotation to `\"false\"`.\n"
    },
    {
      "commit": "0ad20bdbfe9abcbb0cc5332ff95651b5c975da91",
      "tree": "7e713c9380844afe41019a7c6ebe4e508eba3464",
      "parents": [
        "8b8a8efea13d1c97f856053af0a5c0e6a8a76354"
      ],
      "author": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Sat Sep 30 15:44:16 2017 -0700"
      },
      "committer": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Thu Oct 19 11:29:04 2017 -0400"
      },
      "message": "THRIFT-4351: use travis build stages to optimize build,\navoiding duplicate rebuilds of the same image, and also\nallow personal docker hub repositories for private fork\nbuilds to be optimized. Move ubsan build to artful image\nbecause it catches more stuff and fix what was found.\n\nTHRIFT-4345: solidify docker build strategy for maximum\ncoverage: trusty, xenial, artful as stock as they can be\n\nTHRIFT-4344: add top level language summary markdown and\nupdate readme with a new image on the layered architecture\n\nTHRIFT-3847: remove VERSION macro from config.h which\nwas causing a conflict on artful builds.\n\nTHRIFT-4359: fix haxe map/set decode when key is binary,\nas a missing break statement caused it to use an int\nduring decode\n\nThis closes #1389\n"
    },
    {
      "commit": "7af189a2366383538bb9aae394fd5f735976f1d5",
      "tree": "9e9fd94cda9dd673250cc6d6c1b279c83f3ae1c1",
      "parents": [
        "6525f6ae8786a2bcb596e471efb1d76ae74aabee"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Feb 11 16:21:01 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sat Feb 13 23:12:34 2016 +0900"
      },
      "message": "THRIFT-3613 Port Python C extension to Python 3\nClient: Python\nPatch: Nobuaki Sukegawa\n\nThis closes #845\n"
    },
    {
      "commit": "6525f6ae8786a2bcb596e471efb1d76ae74aabee",
      "tree": "80c5a5037d166c8ada55d97d4e98d36bff632155",
      "parents": [
        "41e8cbf6866bf9b8ec6d5bbc157a1fb970d8c3cc"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Feb 11 13:58:39 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sat Feb 13 23:12:34 2016 +0900"
      },
      "message": "THRIFT-3612 Add Python C extension for compact protocol\nClient: Python\nPatch: Nobuaki Sukegawa\n\nThis closes #844\n"
    },
    {
      "commit": "10308cb975ac090584068d0470b81e41555b2f35",
      "tree": "bc0bb670626a8a196dc00df6429ae4dcc838b4c4",
      "parents": [
        "d094e79de7e0bd61320f006c83c0de669363bce8"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Wed Feb 03 01:57:03 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Feb 04 14:28:24 2016 +0900"
      },
      "message": "THRIFT-3596 Better conformance to PEP8\n\nThis closes #832\n"
    },
    {
      "commit": "e841b3dac619a5e5d3523d059d48db1a12e41360",
      "tree": "183832cb3b7b9c6cdf10c9f1183a47f8410905ce",
      "parents": [
        "b9641e0949f5de5a3c8079758fdd638889614143"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Tue Nov 17 11:01:17 2015 +0900"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Sat Nov 28 00:08:07 2015 +0100"
      },
      "message": "THRIFT-162 Thrift structures are unhashable, preventing them from being used as set elements\nClient: Python\nPatch: David Reiss, Nobuaki Sukegawa\n\nThis closes #714\n"
    }
  ]
}
