)]}'
{
  "commit": "dfd163a738e2c4099f88fe41bffa152df5f3baeb",
  "tree": "e25244397bfea1d032cfa30922b644962eacd6c6",
  "parents": [
    "995e4911f5f29c5cdd6ff521a1216220e5380690"
  ],
  "author": {
    "name": "Zike Yang",
    "email": "zike@apache.org",
    "time": "Mon Oct 30 17:48:31 2023 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Oct 30 17:48:31 2023 +0800"
  },
  "message": "[feat] Support schema field type promotion (#159)\n\n## Motivation\r\n\r\nThe client is not correctly following [Avro\u0027s type promotion rules](https://avro.apache.org/docs/1.11.1/specification/#schema-resolution), leading to a potential problem with data serialization and deserialization.\r\n\r\nThe expected behavior is that the Python client should correctly follow Avro\u0027s type promotion rules and perform type conversion when necessary, ensuring compatibility. However the actual behavior is that the Python client\u0027s schema deserialization is too strict, and type promotion is not happening as expected.\r\n\r\n## Modification\r\n\r\n- Support schema field type promotion when validating the python type\r\n- Convert the field value to the desired compatible python type\r\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a810a9366622fa1fde959a7cde7288961296da08",
      "old_mode": 33188,
      "old_path": "pulsar/schema/definition.py",
      "new_id": "d2796d2ffb474337396d9b5e139c04642e79b1a5",
      "new_mode": 33188,
      "new_path": "pulsar/schema/definition.py"
    },
    {
      "type": "modify",
      "old_id": "b50a1fe5b414cc4e6e3dc3c9f0e2d85f530371b8",
      "old_mode": 33188,
      "old_path": "pulsar/schema/schema.py",
      "new_id": "6ca73b11089772893228bf11dc150d21214d6cea",
      "new_mode": 33188,
      "new_path": "pulsar/schema/schema.py"
    },
    {
      "type": "modify",
      "old_id": "3e6e9c69552a6d8c6386b8d936a0edcee62fcb3c",
      "old_mode": 33261,
      "old_path": "tests/schema_test.py",
      "new_id": "f86ad1485286013a48c95ae28d88dd659208b1d4",
      "new_mode": 33261,
      "new_path": "tests/schema_test.py"
    }
  ]
}
