)]}'
{
  "log": [
    {
      "commit": "df6871eb0dd22e8e3959e0e7924a78067f16bfc9",
      "tree": "ae42eb26b05bb4fc17f0a8d7ae2f11136b097832",
      "parents": [
        "3138051e9612fcdbc17a825519deac0fe2deb870"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Fri Apr 10 16:15:44 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 10 16:15:44 2026 +0800"
      },
      "message": "Add AutoClusterFailover and ServiceInfoProvider (#295)"
    },
    {
      "commit": "3138051e9612fcdbc17a825519deac0fe2deb870",
      "tree": "961aec8a6321d19925ae3d80ae67a49de1845938",
      "parents": [
        "bb63296b56351a7420965ba7fa31dc63a1ddb935"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Thu Apr 09 18:28:36 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 09 18:28:36 2026 +0800"
      },
      "message": "Bump C++ client to 4.1.0 (#293)"
    },
    {
      "commit": "bb63296b56351a7420965ba7fa31dc63a1ddb935",
      "tree": "e6b2832b6105c4493e0446bb461880eae9ce213f",
      "parents": [
        "a189711033f3a0a7e7b43e9fa77b57b7d153cc50"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Tue Feb 24 11:16:27 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 24 11:16:27 2026 +0800"
      },
      "message": "Bumped version to 3.11.0a1 (#292)\n\n"
    },
    {
      "commit": "a189711033f3a0a7e7b43e9fa77b57b7d153cc50",
      "tree": "f2853b79584f968b3824924fe771df14dc94a73e",
      "parents": [
        "8cfeac654ab0ed29d82e5a8659d59fd76b1c6b8c"
      ],
      "author": {
        "name": "Nikolas Achatz",
        "email": "75917813+nachatz@users.noreply.github.com",
        "time": "Mon Feb 09 00:25:27 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 09 13:25:27 2026 +0800"
      },
      "message": "chore: add async example (#291)\n\n"
    },
    {
      "commit": "8cfeac654ab0ed29d82e5a8659d59fd76b1c6b8c",
      "tree": "7dc4621287b5260a06e3a6494bff14b88f179dac",
      "parents": [
        "af27edd12417f6eae1013d26465b0dc21cc0423c"
      ],
      "author": {
        "name": "Nikolas Achatz",
        "email": "75917813+nachatz@users.noreply.github.com",
        "time": "Mon Feb 02 04:03:02 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 02 20:03:02 2026 +0800"
      },
      "message": "feat: add shutdown support to async client (#290)\n\n"
    },
    {
      "commit": "af27edd12417f6eae1013d26465b0dc21cc0423c",
      "tree": "084c3e544a149021c60f069d1daf833c393c6aba",
      "parents": [
        "73e4ef52771fbbab7924db5ab836144c2033cbd8"
      ],
      "author": {
        "name": "Nikolas Achatz",
        "email": "75917813+nachatz@users.noreply.github.com",
        "time": "Sun Feb 01 19:48:40 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 02 11:48:40 2026 +0800"
      },
      "message": "feat: add get partitioned topic names (#289)\n\n"
    },
    {
      "commit": "73e4ef52771fbbab7924db5ab836144c2033cbd8",
      "tree": "19fc563b0d3f249d921b2698066b99bb251e60a0",
      "parents": [
        "b1c94879328ea6eadbda7abd8ae0c20d293cd226"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Mon Feb 02 11:21:29 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 02 11:21:29 2026 +0800"
      },
      "message": "Bump C++ client to 4.0.1 (#287)\n\n"
    },
    {
      "commit": "b1c94879328ea6eadbda7abd8ae0c20d293cd226",
      "tree": "1d201f58e5264cd29ca5a4657849feb4bb1eef1f",
      "parents": [
        "d7817070215c7f84b3ca5f5481fe8e4c1a191575"
      ],
      "author": {
        "name": "Nikolas Achatz",
        "email": "75917813+nachatz@users.noreply.github.com",
        "time": "Tue Jan 27 22:59:28 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 28 14:59:28 2026 +0800"
      },
      "message": "feat: add producer connectivity functionality (#286)\n\n"
    },
    {
      "commit": "d7817070215c7f84b3ca5f5481fe8e4c1a191575",
      "tree": "31bc2318cc73169d780f0c9e132c886e9d61b2c3",
      "parents": [
        "2704dd70441e88fa63a2fcce3bc384f6688af30a"
      ],
      "author": {
        "name": "Nikolas Achatz",
        "email": "75917813+nachatz@users.noreply.github.com",
        "time": "Tue Jan 27 21:07:08 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 28 13:07:08 2026 +0800"
      },
      "message": "feat: add async last message id support (#284)\n\n"
    },
    {
      "commit": "2704dd70441e88fa63a2fcce3bc384f6688af30a",
      "tree": "f33f96e5e9a083950d3394f298c81de6224234fe",
      "parents": [
        "36d6fd63478fbf9c5fa348bdd14cc913c2b98bc1"
      ],
      "author": {
        "name": "Nikolas Achatz",
        "email": "75917813+nachatz@users.noreply.github.com",
        "time": "Tue Jan 27 20:19:09 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 28 12:19:09 2026 +0800"
      },
      "message": "feat: add async redeliver supprot (#285)\n\n"
    },
    {
      "commit": "36d6fd63478fbf9c5fa348bdd14cc913c2b98bc1",
      "tree": "b591f0ba181884467eb1b52d903e1f89f33af997",
      "parents": [
        "6f047eea2424d0a548f7fbc838cd76631c830f21"
      ],
      "author": {
        "name": "Nikolas Achatz",
        "email": "75917813+nachatz@users.noreply.github.com",
        "time": "Sat Jan 17 03:04:36 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jan 17 18:04:36 2026 +0800"
      },
      "message": "feat: add individual negative acknowledgement for async consumer (#282)\n\n"
    },
    {
      "commit": "6f047eea2424d0a548f7fbc838cd76631c830f21",
      "tree": "72214de44e7e4c3f1ca80cc6a0ee10362a613e8e",
      "parents": [
        "9432cb8354dedf1f402a9b698ea2d75bee83d492"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Wed Dec 31 09:02:50 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 31 09:02:50 2025 +0800"
      },
      "message": "Bumped version to 3.10.0a1 (#281)\n\n"
    },
    {
      "commit": "9432cb8354dedf1f402a9b698ea2d75bee83d492",
      "tree": "3180eb98faf7f5e33d7b2f30a77490a155aaf249",
      "parents": [
        "961411f896564e0ce0c40f63aa09cb2917b77587"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Wed Dec 24 22:08:36 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 24 22:08:36 2025 +0800"
      },
      "message": "Improve asynchronous producer with more options for creation and send (#280)\n\n"
    },
    {
      "commit": "961411f896564e0ce0c40f63aa09cb2917b77587",
      "tree": "b3cb5b3de343cbc3373283c0a6c9e6ff391218ed",
      "parents": [
        "4629281c4e1ea9928c6f2442d0aae5de826037ad"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Wed Dec 24 16:43:20 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 24 16:43:20 2025 +0800"
      },
      "message": "Implement async consumer (#277)\n\n"
    },
    {
      "commit": "4629281c4e1ea9928c6f2442d0aae5de826037ad",
      "tree": "3adb68c3bc89abdd8ff915df78b7879435c02ec5",
      "parents": [
        "813e295c0e8eb2885f6d5c43f5bc6a004ed0b136"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Tue Dec 23 16:31:21 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 23 16:31:21 2025 +0800"
      },
      "message": "Support encryption context on Message (#276)\n\n* Support encryption context on Message\n\n* revert unnecessary change\n\n* fix tests\n\n* fix docs\n\n* fix tests\n\n* improve tests"
    },
    {
      "commit": "813e295c0e8eb2885f6d5c43f5bc6a004ed0b136",
      "tree": "668520acbbd529b41e0367f0c35dc7f9e4ca1528",
      "parents": [
        "77bfd39b48b0717c30c018066bc92bcf58edb9fc"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Thu Dec 18 18:19:09 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 18 18:19:09 2025 +0800"
      },
      "message": "Support Message.producer_name() (#275)\n\n"
    },
    {
      "commit": "77bfd39b48b0717c30c018066bc92bcf58edb9fc",
      "tree": "1caf569f051126016b340bcf47f2578d109f4e65",
      "parents": [
        "879cdfd22537871cca50f51095d266ef735b8e1f"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Thu Dec 18 18:18:55 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 18 18:18:55 2025 +0800"
      },
      "message": "Support Python 3.14 and remove Python 3.9 support (#274)\n\n"
    },
    {
      "commit": "879cdfd22537871cca50f51095d266ef735b8e1f",
      "tree": "57e6a59ba422ba4ffb3bc19d2db5196e1a2daea7",
      "parents": [
        "60bc8c0197d1cbb1f57226dde2c1c9504cf6999c"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Mon Dec 15 13:55:14 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 15 13:55:14 2025 +0800"
      },
      "message": "Bump C++ client to 4.0.0 (#273)\n\n"
    },
    {
      "commit": "60bc8c0197d1cbb1f57226dde2c1c9504cf6999c",
      "tree": "6aa8f99bc464120abf1a19586d34c27814349895",
      "parents": [
        "51a205491c162ee2e58dbeda9ac33ed4189623f2"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Mon Nov 17 17:42:09 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 17 17:42:09 2025 +0800"
      },
      "message": "Bump C++ client to 3.8.0 (#270)\n\n"
    },
    {
      "commit": "51a205491c162ee2e58dbeda9ac33ed4189623f2",
      "tree": "607161c66b4fcf4c84133545076eb7ba1d388db2",
      "parents": [
        "77fd33043614da87976e2c5230317b65104253a0"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Tue Sep 30 15:23:17 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 30 15:23:17 2025 +0800"
      },
      "message": "Bumped version to 3.9.0a1 (#266)\n\n"
    },
    {
      "commit": "77fd33043614da87976e2c5230317b65104253a0",
      "tree": "b66343b444c373579177bdff8e9f4a9c65dd0d50",
      "parents": [
        "4253d63a5c5151d0de13cd2dc2b9633a1ba0e348"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Thu Jul 10 22:41:13 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 10 07:41:13 2025 -0700"
      },
      "message": "Support message router (#265)\n\n"
    },
    {
      "commit": "4253d63a5c5151d0de13cd2dc2b9633a1ba0e348",
      "tree": "5fc11028d792af3b83dc22ec8ae932cffee85b01",
      "parents": [
        "7c6123f0a3f9ccd85c4e97f04d927b75f6f55cc6"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Thu Jul 10 11:14:56 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 10 11:14:56 2025 +0800"
      },
      "message": "Bump C++ client to 3.7.2 (#264)\n\n"
    },
    {
      "commit": "7c6123f0a3f9ccd85c4e97f04d927b75f6f55cc6",
      "tree": "f92e0f8385c0e958a0ddad5a4c1df6bccdb30358",
      "parents": [
        "2a631d60f97962990855fce1166f18553721d328"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Sun Jun 22 10:41:30 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 22 10:41:30 2025 -0700"
      },
      "message": "Remove version upper bound for protobuf dependency (#260)\n\n"
    },
    {
      "commit": "2a631d60f97962990855fce1166f18553721d328",
      "tree": "8aa895e3be578ca6321574f3399fe90d5a0007ba",
      "parents": [
        "c449d886bb065697454bee5af9925d740e5a1e70"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Sun Jun 08 19:56:15 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 08 19:56:15 2025 +0800"
      },
      "message": "Support deserializing a message id from bytes and topic (#259)\n\n"
    },
    {
      "commit": "c449d886bb065697454bee5af9925d740e5a1e70",
      "tree": "140444286ae43234e13318b265ad42a3eec3a13a",
      "parents": [
        "6214bf7917c0b8b5d0e6dec84deabe1ad8d47a27"
      ],
      "author": {
        "name": "Daniel López",
        "email": "44398965+Danniilpz@users.noreply.github.com",
        "time": "Fri May 16 14:02:30 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 16 20:02:30 2025 +0800"
      },
      "message": "fix: added schema to messages in batch_receive method (#215)\n\n"
    },
    {
      "commit": "6214bf7917c0b8b5d0e6dec84deabe1ad8d47a27",
      "tree": "70bd7d7b85775ee9ffe756e67ef857ef13b5a5b2",
      "parents": [
        "53852ffab26b008d1be3777f79ac40a49c50c46b"
      ],
      "author": {
        "name": "Baodi Shi",
        "email": "baodi@apache.org",
        "time": "Wed May 14 12:31:30 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 14 12:31:30 2025 +0800"
      },
      "message": "Bumped version to 3.8.0a1 (#255)\n\n"
    },
    {
      "commit": "53852ffab26b008d1be3777f79ac40a49c50c46b",
      "tree": "c146318fa3f974ca43b8a8849eff6da4fdab4bbe",
      "parents": [
        "26ab32fe1b64badfab685c37c0c2773584f1ed11"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Wed May 07 19:05:33 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 07 19:05:33 2025 +0800"
      },
      "message": "Support TableView (#251)\n\n"
    },
    {
      "commit": "26ab32fe1b64badfab685c37c0c2773584f1ed11",
      "tree": "4c23c62e1453a36ac9497a34435460fc35a31551",
      "parents": [
        "581531ac67149eb6b5b9cc3376a5085cbd23281a"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Tue May 06 19:51:26 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 06 19:51:26 2025 +0800"
      },
      "message": "Support ConsumerCryptoFailureAction for consumer and reader (#253)\n\n"
    },
    {
      "commit": "581531ac67149eb6b5b9cc3376a5085cbd23281a",
      "tree": "70cfeb3bb1824cb1f41c357452c7161335642b81",
      "parents": [
        "6df05a149bf1590def24a480e3a1635896adee86"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Tue May 06 19:51:12 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 06 19:51:12 2025 +0800"
      },
      "message": "Support constructing MessageId from results of send() and receive() (#254)\n\nCurrently, `Producer.send` returns a `_pulsar.MessageId` instance,\n`Consumer.receive` returns a `MessageId` whose `message_id()` method\nreturns a `_pulsar.MessageId` instance. This forces users to access the\ntype from the C extension module (`_pulsar`).\n\nThis patch adds a `MessageId.wrap` class method to convert the type from\nthe C extension to the type in the `pulsar` module. It also exposes the\ncomparison methods for `MessageId`."
    },
    {
      "commit": "6df05a149bf1590def24a480e3a1635896adee86",
      "tree": "a66d8ec787e18d01c1af99ece1a77c715eb46a57",
      "parents": [
        "e463ef394aa7ba7d6c378f6d4ef65f2b1461a565"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Sun May 04 22:35:10 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 04 07:35:10 2025 -0700"
      },
      "message": "Add separated TLS transport configs (#252)\n\n"
    },
    {
      "commit": "e463ef394aa7ba7d6c378f6d4ef65f2b1461a565",
      "tree": "c152c107bb797003d3c1e60d11b86e107e7f9032",
      "parents": [
        "02a1bfd4cefbee662740324213494aedca5c6ea0"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Wed Apr 23 00:06:16 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 22 09:06:16 2025 -0700"
      },
      "message": "Bump manylinux versions for CVEs (#250)\n\n* Bump manylinux versions for CVEs\n\nThe `libgcc.so` is packaged for Linux wheels via `auditwheel`. However,\ncurrently the `manylinux2014` and `musllinux_1_1` images are used, where\nthe GCC version is 9.3.0 that has CVEs.\n\nThis patch bumps the images to `manylinux_2_28` and `musllinux_1_2` to\nhave a higher version `libgcc`.\n\n* Use ubuntu-latest runner\n\n* Fix build script"
    },
    {
      "commit": "02a1bfd4cefbee662740324213494aedca5c6ea0",
      "tree": "024d0d00ec876cff3a616f7c8f6dbfc0a4423279",
      "parents": [
        "f973c30a9621391ca67602c49fffa2861f2bc18d"
      ],
      "author": {
        "name": "hadican",
        "email": "abdulhadi.celenlioglu@gmail.com",
        "time": "Thu Mar 27 04:47:18 2025 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 27 09:47:18 2025 +0800"
      },
      "message": "add stats_interval_in_seconds parameter to the client configuration (#248)\n\nCo-authored-by: Abdulhadi Celenlioglu \u003cabdulhadi@intenseye.com\u003e"
    },
    {
      "commit": "f973c30a9621391ca67602c49fffa2861f2bc18d",
      "tree": "08dbf737ce1f696847fe3db1dc21c86389a1d8eb",
      "parents": [
        "4a4ac3f23ec6129c80a6eef8bc01046a7259b6a9"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Sat Feb 15 22:20:46 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Feb 15 22:20:46 2025 +0800"
      },
      "message": "Bumped version to 3.7.0a1 (#241)\n\n"
    },
    {
      "commit": "4a4ac3f23ec6129c80a6eef8bc01046a7259b6a9",
      "tree": "316d7dfdb0694dbb98b3ab5e5549deb7164f4a68",
      "parents": [
        "508a4c3a8778fbf9acbf2d9d5e97824194847b8b"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Sat Feb 08 11:44:10 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Feb 08 11:44:10 2025 +0800"
      },
      "message": "Fix conflicts with other python libraries due to static link to libstdc++ (#244)\n\nFixes https://github.com/apache/pulsar-client-python/issues/242\r\nFixes https://github.com/apache/pulsar-client-python/issues/243\r\nFixes https://github.com/apache/pulsar-client-python/issues/245\r\n\r\nAdd a patch to avoid linking to libgcc and libstdc++."
    },
    {
      "commit": "508a4c3a8778fbf9acbf2d9d5e97824194847b8b",
      "tree": "8659f52196ce7cf8c5244b5ecf0bac22b18965a8",
      "parents": [
        "e6800f894ec8a44fd745857c28e53e24ae73be9c"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Tue Jan 28 02:02:14 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 27 10:02:14 2025 -0800"
      },
      "message": "Update the release process for twine upload and supported versions (#240)\n\n"
    },
    {
      "commit": "e6800f894ec8a44fd745857c28e53e24ae73be9c",
      "tree": "73e975cc11ba5e932f92b642eb0aff9ba2f30e0b",
      "parents": [
        "687e1b79c699a98406d46f487f0fd43b20a95636"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Fri Jan 24 11:20:48 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jan 24 11:20:48 2025 +0800"
      },
      "message": "Set the minimum macOS version to 13 (#239)\n\n"
    },
    {
      "commit": "687e1b79c699a98406d46f487f0fd43b20a95636",
      "tree": "615f66e7fe09202fe539cb8fa9c3dd72d4e753b3",
      "parents": [
        "1c4ceb4e55bb6cbece619d7c90d6c095b3da8879"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Tue Jan 21 09:43:53 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 21 09:43:53 2025 +0800"
      },
      "message": "Support Python 3.13 and drop the support for Python 3.8 (#238)\n\nPython 3.8 reached EOL at Oct.2024. See https://devguide.python.org/versions/"
    },
    {
      "commit": "1c4ceb4e55bb6cbece619d7c90d6c095b3da8879",
      "tree": "cb2b1602f8a78227609e542e7d4505d9cca6c708",
      "parents": [
        "6bfdb1006fd8a63a4e1d6ae03a94a29246a8a1a6"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Mon Jan 20 19:41:42 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 20 19:41:42 2025 +0800"
      },
      "message": "Support seek a MessageId from pulsar module (#233)\n\n"
    },
    {
      "commit": "6bfdb1006fd8a63a4e1d6ae03a94a29246a8a1a6",
      "tree": "b4f945ab69cac7a14c04aeb5ecac712f9fd29675",
      "parents": [
        "fb4523b48a73819678dc38a64ee4750971abbe88"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Mon Jan 20 14:16:31 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 20 14:16:31 2025 +0800"
      },
      "message": "Upgrade the C++ client to 3.7.0 (#237)\n\n"
    },
    {
      "commit": "fb4523b48a73819678dc38a64ee4750971abbe88",
      "tree": "1b0005f8b3fd30396a560efc931ed3406254f794",
      "parents": [
        "43792ea151649e264b9a954364de855166c86afd"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Fri Jan 10 09:33:36 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jan 10 09:33:36 2025 +0800"
      },
      "message": "Fix the broken CI due to the regression of 4.0.1 and some deprecated image and links (#235)\n\nFixes https://github.com/apache/pulsar-client-python/issues/234\r\n\r\n1. Downgrade the Pulsar image to 4.0.0\r\n2. Upgrade the macOS runner image from 12 to 14\r\n\r\nSince the Boost download link is broken now, this PR also fixes the wheel build process by reusing the pre-built libraries to install pulsar-client-cpp on Linux and macOS. Specially, it links the `libpulsarwithdeps.a` instead of `libpulsar.a` and all 3rd-party libraries on macOS."
    },
    {
      "commit": "43792ea151649e264b9a954364de855166c86afd",
      "tree": "b0b8b54b08958efe00b5e3b804fd2b39b669b44e",
      "parents": [
        "2a26553a58c9be60d29ee1f4b1f80aa64e52b9f3"
      ],
      "author": {
        "name": "Kian-Meng Ang",
        "email": "kianmeng.ang@gmail.com",
        "time": "Sun Nov 03 01:16:16 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Nov 02 10:16:16 2024 -0700"
      },
      "message": "Fix typos (#232)\n\nFound via `codespell -L transaltion`"
    },
    {
      "commit": "2a26553a58c9be60d29ee1f4b1f80aa64e52b9f3",
      "tree": "dc83f966d1f2b7fa2230be1ec76e1f07e42e91d6",
      "parents": [
        "728952223afb498aadab784da92a6282fd783081"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Fri Nov 01 11:09:28 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 31 20:09:28 2024 -0700"
      },
      "message": "Build the C extension with optimize options enabled (#230)\n\n"
    },
    {
      "commit": "728952223afb498aadab784da92a6282fd783081",
      "tree": "96d0ad2218e6436f6ab38761a77d2e1b67d31c28",
      "parents": [
        "c3c12c416b00943d03929457c026a6fde8296e00"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Thu Oct 31 18:27:09 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 31 18:27:09 2024 +0800"
      },
      "message": "Fix failed AsyncioTest.test_send_failure and clean up tests (#231)\n\nAfter https://github.com/apache/pulsar/pull/23291, which is included in Pulsar 4.0.0, when the tenant does not exist, the broker will respond with `BrokerMetadataError`, which is retryable.\r\n\r\nBefore that, the error code is `AuthorizationError`, which is not retryable so that `create_producer` will fail immediately.\r\n\r\nThis patch fixes the `test_send_failure` to assert the error is `Timeout`. Additional, separate some tests from `pulsar_test.py`:\r\n1. debug logger tests will affect other tests so that all tests will print debug logs\r\n2. running `schema_test` in `pulsar_test` might have unexpected failures like\r\n\r\n```\r\nFailed to create ConsumerImpl for persistent://public/default/my-python-pattern-consumer-3-partition-0: Failed to create steady_timer: kqueue: Too many open files [system:24]\r\nFailed when subscribed to topic persistent://public/default/my-python-pattern-consumer-3 in TopicsConsumer. Error - ConnectError\r\nUnable to create Consumer - [Muti Topics Consumer: TopicName - persistent://public/default/my-python-pattern-consumer.* - Subscription - my-pattern-consumer-sub] Error - ConnectError\r\nFailed to retry lookup for get-partition-metadata-persistent://public/default/my-v2-topic-producer-consumer: Failed to create steady_timer: kqueue: Too many open files [system:24]\r\nError Checking/Getting Partition Metadata while Subscribing on persistent://public/default/my-v2-topic-producer-consumer -- ConnectError\r\nFailed to retry lookup for get-partition-metadata-persistent://public/default/my-v2-topic-producer-consumer: Failed to create steady_timer: kqueue: Too many open files [system:24]\r\nError Checking/Getting Partition Metadata while Subscribing on persistent://public/default/my-v2-topic-producer-consumer -- ConnectError\r\nFailed to retry lookup for get-partition-metadata-persistent://public/default/test_has_message_available_after_seek-1730263910.78957: Failed to create steady_timer: kqueue: Too many open files [system:24]\r\nError Checking/Getting Partition Metadata while creating producer on persistent://public/default/test_has_message_available_after_seek-1730263910.78957 -- ConnectError\r\nFailed to retry lookup for get-partition-metadata-persistent://public/default/test_seek_latest_message_id-1730263910.789991: Failed to create steady_timer: kqueue: Too many open files [system:24]\r\n```"
    },
    {
      "commit": "c3c12c416b00943d03929457c026a6fde8296e00",
      "tree": "2fd2d95ea459aaf4bb8407e5ed431f0bf294683a",
      "parents": [
        "e1e74c696305516fb41860727d8c46903d5a8800"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Tue May 07 18:59:54 2024 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 07 08:59:54 2024 -0700"
      },
      "message": "Set grpcio minimum version to 1.59.3 so that Alpine py3-grpcio 1.59.3 can be used (#211)\n\n- there\u0027s no specific minimum version constraint originating from pulsar-client-python\r\n  - grpcio is required by apache-bookkeeper-client. the dependencies are defined in\r\n    https://github.com/apache/bookkeeper/blob/master/stream/clients/python/setup.py\r\n    the version in this file is \u003e\u003d 1.8.2"
    },
    {
      "commit": "e1e74c696305516fb41860727d8c46903d5a8800",
      "tree": "efd3561abd97ab0dab7ef7567db936f9e5dfd004",
      "parents": [
        "eb2a7d46e53b1444c006255751f61fbb2b8c3db8"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Sun Apr 14 01:00:53 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Apr 13 10:00:53 2024 -0700"
      },
      "message": "Bumped version to 3.6.0a1 (#210)\n\n"
    },
    {
      "commit": "eb2a7d46e53b1444c006255751f61fbb2b8c3db8",
      "tree": "256bcee00368fa025b8446f63f4b9f78b491c568",
      "parents": [
        "bc173fd25560e12ba1e19b0661ad1a912e4d3857"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Tue Apr 02 14:36:05 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 01 23:36:05 2024 -0700"
      },
      "message": "Upgrade the C++ client to 3.5.1 (#209)\n\n* Upgrade the C++ client to 3.5.1\r\n\r\n* Use the official 3.5.1"
    },
    {
      "commit": "bc173fd25560e12ba1e19b0661ad1a912e4d3857",
      "tree": "a27456cef960fc7e79437862eeba093a57b0c070",
      "parents": [
        "2a8819def9a2b5eebdd6c2260ff3cbad6f0b1ef1"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Fri Mar 22 18:50:20 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 22 18:50:20 2024 +0800"
      },
      "message": "Add Consumer.consumer_name() API (#206)\n\nCatch up for https://github.com/apache/pulsar-client-cpp/pull/360"
    },
    {
      "commit": "2a8819def9a2b5eebdd6c2260ff3cbad6f0b1ef1",
      "tree": "19cb3a3c29d113f8763fe45aaa89819904d3b405",
      "parents": [
        "d1727cf7432f49c7da81dab36b51277be772dd01"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Thu Mar 21 17:00:05 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 21 09:00:05 2024 +0000"
      },
      "message": "Add documents for the batching arguments when creating producer (#205)\n\n"
    },
    {
      "commit": "d1727cf7432f49c7da81dab36b51277be772dd01",
      "tree": "cb4fb10afeb3feadb289e51e667603a5ad8b1e6f",
      "parents": [
        "af6a555a7f20e5bc39a34e30f608277e19ac3110"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Thu Mar 21 13:18:00 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 21 13:18:00 2024 +0800"
      },
      "message": "Fix incorrect type hints in Client (#204)\n\nFixes https://github.com/apache/pulsar-client-python/issues/188"
    },
    {
      "commit": "af6a555a7f20e5bc39a34e30f608277e19ac3110",
      "tree": "0f8432eeb981c469ea7162783a1ad1665aa18180",
      "parents": [
        "1aca467ee4a7ec8d4ef3249e45bf5dfc03db411a"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Tue Mar 19 17:33:47 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 19 02:33:47 2024 -0700"
      },
      "message": "Upgrade the C++ client to 3.5.0 for some bug fixes (#202)\n\n"
    },
    {
      "commit": "1aca467ee4a7ec8d4ef3249e45bf5dfc03db411a",
      "tree": "01ef3133850e70f063f7d78ca6994e8e0b3ae581",
      "parents": [
        "48be1795a7993422cf4bce2785351f48e456dc26"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Mon Mar 18 20:30:52 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 19 11:30:52 2024 +0800"
      },
      "message": "Enable CodeQL static scanner (#197)\n\nCo-authored-by: Yunze Xu \u003cxyzinfernity@163.com\u003e"
    },
    {
      "commit": "48be1795a7993422cf4bce2785351f48e456dc26",
      "tree": "d020bc99b28afe51e2808f9b1fcac4cf6f552033",
      "parents": [
        "865bc9d3d8a3f793c759acc67a60dcb0c947675b"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Mon Feb 19 10:46:53 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 19 10:46:53 2024 +0800"
      },
      "message": "Fix incorrect logs when a message failed to be decoded with the writer schema (#200)\n\n### Motivation\r\n\r\nSee\r\nhttps://github.com/apache/pulsar-client-python/blob/f9b2d168ae85f289d6ee043cd81791d569ba8844/pulsar/schema/schema_avro.py#L92C32-L92C69\r\n\r\nWhen `self._decode_bytes(msg.data(), writer_schema)` failed, the error\r\nlog is still `Failed to get schema info`, which is confusing.\r\n\r\n### Modifications\r\n\r\nModify the error message. Even if it failed at\r\n`self._get_writer_schema(topic, version)`, there would still be error\r\nlogs from the C++ client."
    },
    {
      "commit": "865bc9d3d8a3f793c759acc67a60dcb0c947675b",
      "tree": "58b7746129a05cf216bac46f438d61f59d2f4c1d",
      "parents": [
        "f9b2d168ae85f289d6ee043cd81791d569ba8844"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Mon Feb 19 10:08:18 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 19 10:08:18 2024 +0800"
      },
      "message": "Disable topic level policies to make tests work for latest Pulsar (#201)\n\nSee https://lists.apache.org/thread/gjdvl1ys71k9mknwypxgkbsdyjwr31yt"
    },
    {
      "commit": "f9b2d168ae85f289d6ee043cd81791d569ba8844",
      "tree": "d203be6eb0570d78af065de0fa0f78c0b9dacece",
      "parents": [
        "4b61547e0f79011b1d76e24a7a9745c1d3d6e36f"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Tue Jan 16 12:13:38 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 15 20:13:38 2024 -0800"
      },
      "message": "[docs] Add guide to avoid logs from the default logger (#195)\n\nFixes https://github.com/apache/pulsar-client-python/issues/194\r\n\r\n### Motivation\r\n\r\nWhen the Python logger is configured as the logger, during the exit\r\nprocess of a Python script, the default logger will be used for logging\r\ninstead because the Python logger is unavailable after the interpreter\r\nis finalized. It might lead to some unexpected outputs to standard\r\noutput."
    },
    {
      "commit": "4b61547e0f79011b1d76e24a7a9745c1d3d6e36f",
      "tree": "e8b07b9f1654546792ceeb2ae753e29cc0ca8272",
      "parents": [
        "9ee23b86c2024fdf658b03600592a9b9b8ca81ee"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Thu Jan 04 11:50:15 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 04 11:50:15 2024 +0800"
      },
      "message": "[asyncio] Support creating producer and sending messages (#189)\n\nMaster issue: https://github.com/apache/pulsar-client-python/issues/55\r\n\r\n### Modifications\r\n\r\nIntroduce a `pulsar.asyncio` module that includes the asynchronous APIs\r\nto work with Python asyncio module.\r\n\r\nExample:\r\n\r\n```python\r\nasync def main():\r\n    client \u003d Client(\u0027pulsar://localhost:6650\u0027)\r\n    try:\r\n        producer \u003d await client.create_producer(\u0027topic\u0027)\r\n        msg_id \u003d await producer.send(\u0027msg\u0027.encode())\r\n        await producer.close()\r\n    except PulsarException as e:\r\n        error \u003d e.error()\r\n    await client.close()\r\n```\r\n\r\nThe creation of `Client` reuses the same keyword arguments from\r\n`pulsar.Client` but the options for creating producer and sending\r\nmessages are not added yet."
    },
    {
      "commit": "9ee23b86c2024fdf658b03600592a9b9b8ca81ee",
      "tree": "04908719bc204acd593ba02b0adcce1526bbad53",
      "parents": [
        "81e833d2f4c0198c4d2f09396365271cdc645248"
      ],
      "author": {
        "name": "Zike Yang",
        "email": "zike@apache.org",
        "time": "Thu Jan 04 10:30:26 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 04 10:30:26 2024 +0800"
      },
      "message": "Fix the release doc for PyPI login and release note sample PR (#192)\n\n"
    },
    {
      "commit": "81e833d2f4c0198c4d2f09396365271cdc645248",
      "tree": "32e3b7456ac09e65afafc3c5c6901fe968a61681",
      "parents": [
        "d2fb04e5afc8c4ba24e11771059eff0e465a7f61"
      ],
      "author": {
        "name": "Zike Yang",
        "email": "zike@apache.org",
        "time": "Thu Jan 04 10:29:47 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 04 10:29:47 2024 +0800"
      },
      "message": "Bumped version to 3.5.0a1 (#191)\n\n"
    },
    {
      "commit": "d2fb04e5afc8c4ba24e11771059eff0e465a7f61",
      "tree": "a1f5708035a5045349f7f858344ca0a8db03b712",
      "parents": [
        "daabc677e06e867f84beaeb3912d1d450cddf54d"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Thu Dec 28 14:55:09 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 28 14:55:09 2023 +0800"
      },
      "message": "Document the requirement for the send_async method (#186)\n\nSee https://github.com/apache/pulsar-client-python/issues/184\r\n\r\nIt should be documented that the callback should not throw any exception\r\nwhen passed to `send_async`."
    },
    {
      "commit": "daabc677e06e867f84beaeb3912d1d450cddf54d",
      "tree": "ca1b92b02f9acced8c835b8d16793c5551142ed2",
      "parents": [
        "eafc6724381796e1f5d4e1afaad21dba715da9b9"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Tue Dec 26 12:08:01 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 26 12:08:01 2023 +0800"
      },
      "message": "Fix the incompatibility with Python 3.12 and drop the support for 3.7 (#181)\n\n### Motivation\r\n\r\nThe `avro` component cannot be installed with Python 3.12 because the\r\ndepended `fastavro` dependency is 1.7.3, which is not compatible with\r\nPython 3.12. However, the newer fastavro dependencies all do not support\r\nPython 3.7, which has already reached the EOL (2023-06-27).\r\n\r\n### Modifications\r\n\r\n- Upgrade the fastavro dependency to 1.9.2\r\n- Add the workflows to run tests for the lowest and highest supported\r\n  Python versions (3.8 and 3.12).\r\n- Fix the documents"
    },
    {
      "commit": "eafc6724381796e1f5d4e1afaad21dba715da9b9",
      "tree": "ce463048a77e6e94dae8de57b1c767bb96a59c8e",
      "parents": [
        "e667570bd80a9f3375dbee501fc85e1e94ee8667"
      ],
      "author": {
        "name": "Zike Yang",
        "email": "zike@apache.org",
        "time": "Tue Dec 26 10:58:46 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 26 10:58:46 2023 +0800"
      },
      "message": "Fix missing dependency of setuptools (#183)\n\n## Motivation\r\n\r\nThere are some errors blocking the CI:\r\nhttps://github.com/apache/pulsar-client-python/actions/runs/7321925272/job/19942911045?pr\u003d181\r\nhttps://github.com/apache/pulsar-client-python/actions/runs/7320564743/job/19942264377\r\n\r\nThe python 3.12 has removed the setuptools for the default dependency by this PR: https://github.com/python/cpython/issues/95299\r\n\r\n\u003e [gh-95299](https://github.com/python/cpython/issues/95299): Do not pre-install setuptools in virtual environments created with [venv](https://docs.python.org/3/library/venv.html#module-venv). This means that distutils, setuptools, pkg_resources, and easy_install will no longer available by default; to access these run pip install setuptools in the [activated](https://docs.python.org/3/library/venv.html#venv-explanation) virtual environment.\r\n\r\n## Verification\r\n\r\nVerification CI: https://github.com/apache/pulsar-client-python/actions/runs/7325997832\r\n\r\nThe result of CI shows that this fix could build the release wheel file successfully."
    },
    {
      "commit": "e667570bd80a9f3375dbee501fc85e1e94ee8667",
      "tree": "eea79f82fa7885987c4df1ec1e31bab76248be39",
      "parents": [
        "b9c72195fbc33f7ff06a7fd1af54da9ce5e44a8a"
      ],
      "author": {
        "name": "Zike Yang",
        "email": "zike@apache.org",
        "time": "Tue Dec 26 10:54:43 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 26 10:54:43 2023 +0800"
      },
      "message": "Fix windows release CI doesn\u0027t show the python version (#182)\n\n"
    },
    {
      "commit": "b9c72195fbc33f7ff06a7fd1af54da9ce5e44a8a",
      "tree": "e1e80c6a65944f21a834562b0e096a407c0782af",
      "parents": [
        "d278416eaffccc380f0af3773faee54c40a61da9"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Tue Dec 26 10:53:33 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 26 10:53:33 2023 +0800"
      },
      "message": "Fix negative acknowledge on a message ID does not work (#180)\n\nFixes https://github.com/apache/pulsar-client-python/issues/178\r\n\r\n### Motivation\r\n\r\nhttps://github.com/apache/pulsar-client-python/pull/121 introduces a\r\nregression that when `negative_acknowledge` accepts a message ID, the\r\nunderlying `acknowledgeAsync` method will be called.\r\n\r\n### Modifications\r\n\r\nFix the `Consumer_negative_acknowledge_message_id` method and add the\r\ntest for negative acknowledging message IDs in `test_redelivery_count`."
    },
    {
      "commit": "d278416eaffccc380f0af3773faee54c40a61da9",
      "tree": "305de38abf915d45cdb593786c6784e6f910f226",
      "parents": [
        "bf8524a858eae1eced14a283bbe7dffdee534742"
      ],
      "author": {
        "name": "Zike Yang",
        "email": "zike@apache.org",
        "time": "Mon Dec 25 19:40:13 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 25 19:40:13 2023 +0800"
      },
      "message": "Fix incorrect version upgrade command in RELEASE.md (#179)\n\n"
    },
    {
      "commit": "bf8524a858eae1eced14a283bbe7dffdee534742",
      "tree": "bedd16503e67cf9bea72a808d9d6fd9f79b7c3f4",
      "parents": [
        "5784c4003384daac7dea02c4667d90d8223baf75"
      ],
      "author": {
        "name": "Zike Yang",
        "email": "zike@apache.org",
        "time": "Wed Dec 20 07:29:16 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 20 07:29:16 2023 +0800"
      },
      "message": "Fix incorrect python spec name for release wheels workflow (#177)\n\nThere is an error when building the wheel for python12:\r\n```\r\nDockerfile:35\r\n--------------------\r\n  33 |     ENV PYTHON_LIBRARIES   /opt/python/${PYTHON_SPEC}/lib/python${PYTHON_VERSION}\r\n  34 |     \r\n  35 | \u003e\u003e\u003e RUN pip3 install pyyaml\r\n  36 |     \r\n  37 |     ADD .build/dependencies.yaml /\r\n--------------------\r\n```\r\nMore context: https://github.com/apache/pulsar-client-python/actions/runs/7246274042/job/19737879474#step:6:237\r\n\r\nThe python spec name is incorrect in the github release wheels workflow. These are all specs in the manylinux2014:\r\n```\r\n[root@82c96c919b6f /]# cd /opt/python/\r\n[root@82c96c919b6f python]# ll\r\ntotal 0\r\nlrwxrwxrwx 1 root root 30 Dec 18 19:58 cp310-cp310 -\u003e /opt/_internal/cpython-3.10.13\r\nlrwxrwxrwx 1 root root 29 Dec 18 19:57 cp311-cp311 -\u003e /opt/_internal/cpython-3.11.7\r\nlrwxrwxrwx 1 root root 29 Dec 18 19:57 cp312-cp312 -\u003e /opt/_internal/cpython-3.12.1\r\nlrwxrwxrwx 1 root root 29 Dec 18 19:57 cp36-cp36m -\u003e /opt/_internal/cpython-3.6.15\r\nlrwxrwxrwx 1 root root 29 Dec 18 19:57 cp37-cp37m -\u003e /opt/_internal/cpython-3.7.17\r\nlrwxrwxrwx 1 root root 29 Dec 18 19:57 cp38-cp38 -\u003e /opt/_internal/cpython-3.8.18\r\nlrwxrwxrwx 1 root root 29 Dec 18 19:57 cp39-cp39 -\u003e /opt/_internal/cpython-3.9.18\r\nlrwxrwxrwx 1 root root 33 Dec 18 19:58 pp310-pypy310_pp73 -\u003e /opt/_internal/pp310-pypy310_pp73\r\nlrwxrwxrwx 1 root root 31 Dec 18 19:58 pp37-pypy37_pp73 -\u003e /opt/_internal/pp37-pypy37_pp73\r\nlrwxrwxrwx 1 root root 31 Dec 18 19:58 pp38-pypy38_pp73 -\u003e /opt/_internal/pp38-pypy38_pp73\r\nlrwxrwxrwx 1 root root 31 Dec 18 19:58 pp39-pypy39_pp73 -\u003e /opt/_internal/pp39-pypy39_pp73\r\n```\r\n\r\nThis PR fixes the incorrect spec name for python12."
    },
    {
      "commit": "5784c4003384daac7dea02c4667d90d8223baf75",
      "tree": "2dd2c04621733bdba66e61a192168c1bc4e13e9e",
      "parents": [
        "e9e0ccf702e0df135babb7a6c8a31c7eaaea7ff8"
      ],
      "author": {
        "name": "Zike Yang",
        "email": "zike@apache.org",
        "time": "Tue Dec 19 18:15:26 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 19 18:15:26 2023 +0800"
      },
      "message": "Fix incorrect command in release doc (#176)\n\nThe command in the release doc is incorrect. It will lose the double quotes for the version."
    },
    {
      "commit": "e9e0ccf702e0df135babb7a6c8a31c7eaaea7ff8",
      "tree": "a41766cc711e9a7f5bdc24c3141784530921a5dc",
      "parents": [
        "162afd53bda321992223cb209a509ee1c46f870a"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Sat Dec 16 21:18:29 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Dec 16 21:18:29 2023 +0800"
      },
      "message": "Upgrade the C++ client to 3.4.2 (#170)\n\n"
    },
    {
      "commit": "162afd53bda321992223cb209a509ee1c46f870a",
      "tree": "27b823266b27b4b9feb7efb6888a854b173919f9",
      "parents": [
        "39d4f9d113dad9669482f028f10e931e6dfa7fb6"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Wed Dec 13 12:06:13 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 13 12:06:13 2023 +0800"
      },
      "message": "Upgrade grpcio to 1.60.0 to fix CVE-2023-1428 (#174)\n\n* Upgrade grpcio to 1.60.0 to fix CVE-2023-1428\r\n* Add a workflow to verify functions installation"
    },
    {
      "commit": "39d4f9d113dad9669482f028f10e931e6dfa7fb6",
      "tree": "99eaf150eb0af0548bcceddfbded72174ba99f9b",
      "parents": [
        "f53340f18101852c375904c653eb0aac104c4106"
      ],
      "author": {
        "name": "Baodi Shi",
        "email": "baodi@apache.org",
        "time": "Tue Dec 05 17:54:59 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 05 17:54:59 2023 +0800"
      },
      "message": "Add type annotations for enum parameters in methods (#169)\n\n"
    },
    {
      "commit": "f53340f18101852c375904c653eb0aac104c4106",
      "tree": "768eed439ae6294fea13208a9528e329b45f1c59",
      "parents": [
        "bd6e981234d59b7ac97a2c6732f977316767c673"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Tue Nov 28 17:20:02 2023 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 29 09:20:02 2023 +0800"
      },
      "message": "Update Curl to 8.4.0 (#168)\n\nFix #165 "
    },
    {
      "commit": "bd6e981234d59b7ac97a2c6732f977316767c673",
      "tree": "cd2ecebc8ac4e6879ac59c187144a0c1de38c93f",
      "parents": [
        "d38c156b3e4d1e6fb7c2fe47d6edb8fffb4e34ff"
      ],
      "author": {
        "name": "Zike Yang",
        "email": "zike@apache.org",
        "time": "Tue Nov 28 00:08:33 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 27 08:08:33 2023 -0800"
      },
      "message": "Upgrade the C++ client to 3.4.1 (#167)\n\n"
    },
    {
      "commit": "d38c156b3e4d1e6fb7c2fe47d6edb8fffb4e34ff",
      "tree": "a93a8c0a43ec2c9065a7cf41f80df82bbc12d2a2",
      "parents": [
        "99d65d3dd317823fd183a06fbb6c38d5a81e296d"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Thu Nov 16 18:55:20 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 16 18:55:20 2023 +0800"
      },
      "message": "Improve the developer experience when running tests (#163)\n\nMigrate the PRs from the pulsar-client-cpp repo:\r\n- https://github.com/apache/pulsar-client-cpp/pull/297\r\n- https://github.com/apache/pulsar-client-cpp/pull/236\r\n- https://github.com/apache/pulsar-client-cpp/pull/340"
    },
    {
      "commit": "99d65d3dd317823fd183a06fbb6c38d5a81e296d",
      "tree": "1579a180f539c209c570a9593d82adf4f3faa1c0",
      "parents": [
        "dfd163a738e2c4099f88fe41bffa152df5f3baeb"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Mon Oct 30 18:38:09 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 31 09:38:09 2023 +0800"
      },
      "message": "Support Python 3.12 wheels (#160)\n\n"
    },
    {
      "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"
    },
    {
      "commit": "995e4911f5f29c5cdd6ff521a1216220e5380690",
      "tree": "68bffd3ccdeeca9b3505e612ab2ffd3989500462",
      "parents": [
        "8d77f7404d57dcf492f2c72d695daca566f5f92b"
      ],
      "author": {
        "name": "Zike Yang",
        "email": "zike@apache.org",
        "time": "Thu Oct 19 20:32:15 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 19 20:32:15 2023 +0800"
      },
      "message": "feat: Support configure startMessageIdInclusive for the reader (#157)\n\n"
    },
    {
      "commit": "8d77f7404d57dcf492f2c72d695daca566f5f92b",
      "tree": "c3f3d929b87088436951680e9ecc777913ea2b3d",
      "parents": [
        "904717079da07a19dba0bb06bf49f99258c96461"
      ],
      "author": {
        "name": "Baodi Shi",
        "email": "baodi@apache.org",
        "time": "Mon Oct 09 10:35:47 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 09 10:35:47 2023 +0800"
      },
      "message": "Remove useless sleep on test_seek. (#154)\n\n"
    },
    {
      "commit": "904717079da07a19dba0bb06bf49f99258c96461",
      "tree": "3418d1027b5ac8294178dfd89104c1cac3a60c21",
      "parents": [
        "8c36eb70f981c6cc1dec7691c7ab759a5520204d"
      ],
      "author": {
        "name": "Shane Breatnach",
        "email": "sbreatnach@users.noreply.github.com",
        "time": "Wed Sep 27 07:17:36 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 27 14:17:36 2023 +0800"
      },
      "message": "Added missing publish option `ordering_key` (#152)\n\nThe `ordering_key` was not available to set when publishing\r\nmessages. This has been added, aping how partition_key is set.\r\nAdded test to cover new functionality."
    },
    {
      "commit": "8c36eb70f981c6cc1dec7691c7ab759a5520204d",
      "tree": "616ea2e7874df371d7121c9f57e0bf0a9dac88b0",
      "parents": [
        "c50ada731241f343c38ef18272e553110ca43718"
      ],
      "author": {
        "name": "Baodi Shi",
        "email": "baodi@apache.org",
        "time": "Wed Aug 30 10:22:09 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 30 10:22:09 2023 +0800"
      },
      "message": "Bumped version to 3.4.0a1 (#151)\n\n"
    },
    {
      "commit": "c50ada731241f343c38ef18272e553110ca43718",
      "tree": "84c54c02ea3d5d22f59fd055b2deab24db37b48c",
      "parents": [
        "0693c2d28084cff52718229ae9e9f086aa12dd69"
      ],
      "author": {
        "name": "Baodi Shi",
        "email": "baodi@apache.org",
        "time": "Tue Aug 15 19:16:07 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 15 19:16:07 2023 +0800"
      },
      "message": "feat: Support dead letter topic. (#135)\n\n* feat: Support dead letter topic.\r\n\r\n* Fix non space\r\n\r\n* Let maxRedeliverCount param required."
    },
    {
      "commit": "0693c2d28084cff52718229ae9e9f086aa12dd69",
      "tree": "ec1ea66017d6e6ef98bca2cded4a8d3d2aec3255",
      "parents": [
        "19df7c349cefbcc03a8ef9054c30deb53b03c249"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Tue Aug 15 18:07:52 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 15 18:07:52 2023 +0800"
      },
      "message": "Use f-string to show correct error message (#147)\n\nFixes https://github.com/apache/pulsar-client-python/issues/144"
    },
    {
      "commit": "19df7c349cefbcc03a8ef9054c30deb53b03c249",
      "tree": "cafce665a218733861dcc7fa1e286899749e8031",
      "parents": [
        "ac4fcf062a8dbf6f3f2b75480b083ec707077a9c"
      ],
      "author": {
        "name": "Baodi Shi",
        "email": "baodi@apache.org",
        "time": "Sun Aug 13 14:08:59 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 13 14:08:59 2023 +0800"
      },
      "message": "feat: support pattern subscription non persistent topic. (#134)\n\n"
    },
    {
      "commit": "ac4fcf062a8dbf6f3f2b75480b083ec707077a9c",
      "tree": "201aaf65ea9f690ea123e6d0da3248a129d461c2",
      "parents": [
        "0de92b02f77188ee2f0f5132f4cecd0be680bb81"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Sat Aug 12 01:40:07 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 12 01:40:07 2023 +0800"
      },
      "message": "Upgrade the C++ client to 3.3.0 (#146)\n\n### Modifications\r\n\r\nUpgrade the C++ client to 3.3.0 and deprecate the `log_conf_file_path`\r\nconfig due to https://github.com/apache/pulsar-client-cpp/pull/283.\r\n\r\nThere is another issue that after\r\nhttps://github.com/apache/pulsar-client-cpp/pull/290, the CMakeLists.txt\r\nfrom the C++ client finds the protobuf package with config mode. To fix\r\nit, install the OpenSSL via CMake instead of the autotools."
    },
    {
      "commit": "0de92b02f77188ee2f0f5132f4cecd0be680bb81",
      "tree": "1bc4fbae598be0989204f8d3539d5d7312c02fc3",
      "parents": [
        "4c28ed52f41c5ec9943a3ddb36faedcdfcf3178e"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Fri Aug 11 23:50:24 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 11 23:50:24 2023 +0800"
      },
      "message": "Fix the OpenSSL 3.x symbols not found on macOS build (#145)\n\n### Motivation\r\n\r\nRecently after the runner image was upgraded, the macOS build failed\r\nwith `symbol not found in flat namespace (_EVP_PKEY_get_bn_param)`.\r\n\r\nSee https://github.com/apache/pulsar-client-python/actions/runs/5805986979/job/15740588663?pr\u003d134\r\n\r\nThere are actually two issues.\r\n\r\nOne is that when building the C++ client on macOS,\r\n`/usr/local/opt/openssl/` will be firstly searched if `OPENSSL_ROOT_DIR`\r\nis not defined.\r\n\r\nhttps://github.com/apache/pulsar-client-cpp/blob/1e7d259bb94379ef6e4618fdac283912d0be6861/CMakeLists.txt#L136\r\n\r\nIt should be fixed at the C++ client side but we can also have a\r\nworkaround here by defining the `OPENSSL_ROOT_DIR` variable.\r\n\r\nThe other is that when building the libcurl, the headers from\r\n`/usr/local/include/openssl/` were included, see the logs:\r\n\r\n```\r\n/usr/local/include/openssl/macros.h:193:49: note: expanded from macro \u0027OSSL_DEPRECATEDIN_3_0\u0027\r\n#   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)\r\n```\r\n\r\nIt\u0027s a strange error because we have already configured the `--with-ssl`\r\noption to specify the OpenSSL directory. I tried adding\r\n`-I/path/to/my/openssl` to the `CFLAGS` env variable but it didn\u0027t work.\r\n\r\n### Modifications\r\n\r\nTo resolve the 1st issue, specifying `OPENSSL_ROOT_DIR` to the\r\n`DEPS_PREFIX` path when building the C++ client.\r\n\r\nTo resolve the 2nd issue, since I cannot find an elegant way to do that,\r\nI just copied the OpenSSL headers from the dependency header directory\r\nto the libcurl include directory."
    },
    {
      "commit": "4c28ed52f41c5ec9943a3ddb36faedcdfcf3178e",
      "tree": "afaa84fc7669e168afa126fbc69303a0214740c3",
      "parents": [
        "2cb3cfec220121c427a41536e6357410ae4f08b9"
      ],
      "author": {
        "name": "Baodi Shi",
        "email": "baodi@apache.org",
        "time": "Wed Aug 09 11:05:54 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 09 11:05:54 2023 +0800"
      },
      "message": "feat: support producer access mode. (#138)\n\n"
    },
    {
      "commit": "2cb3cfec220121c427a41536e6357410ae4f08b9",
      "tree": "0346749eab388e134c16957eafa8a0da22a8ff93",
      "parents": [
        "8e6dd6582a24e845cda02c415263e5eca11b0bff"
      ],
      "author": {
        "name": "Baodi Shi",
        "email": "baodi@apache.org",
        "time": "Mon Jul 10 17:57:34 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 10 17:57:34 2023 +0800"
      },
      "message": "feat: support batch index ack. (#139)\n\n"
    },
    {
      "commit": "8e6dd6582a24e845cda02c415263e5eca11b0bff",
      "tree": "44da20d9ae031dbb45254f309ac34b1de060614e",
      "parents": [
        "766db9e0420954798d8d24ef4dc55fa250270921"
      ],
      "author": {
        "name": "Baodi Shi",
        "email": "baodi@apache.org",
        "time": "Fri Jul 07 18:44:05 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 07 18:44:05 2023 +0800"
      },
      "message": "Add partitioned topic unit test for Reader. (#137)\n\n"
    },
    {
      "commit": "766db9e0420954798d8d24ef4dc55fa250270921",
      "tree": "e1768ae93fb59b17ead6712abd736d5f2a7204ce",
      "parents": [
        "1a2fb076ea2a00afce27a076bad5a8a655bd3bd3"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Fri Jun 23 10:04:52 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 23 10:04:52 2023 +0800"
      },
      "message": "Fix link failure on macOS (#133)\n\n### Motivation\r\n\r\nWe need to link the Python shared library on non-Windows systems as\r\nwell. Otherwise, some link errors might happen."
    },
    {
      "commit": "1a2fb076ea2a00afce27a076bad5a8a655bd3bd3",
      "tree": "44b0d50ad991e2f3e2c662ce300d29d336e7895b",
      "parents": [
        "f84931c4908620c6f8fa897582ed2e72ba62f029"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Mon Jun 12 10:08:12 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 12 10:08:12 2023 +0800"
      },
      "message": "[docs] Fix the incorrect API docs generation steps in the release process (#131)\n\n### Motivation\r\n\r\nhttps://github.com/apache/pulsar-client-python/pull/126 adds the\r\ninstruction to include the `_pulsar` C module when generating the API\r\ndocs. However, it does not work when the library is installed from\r\n`pip`. It only works when the wheel is installed from `dist/*.whl` that\r\nis generated by the `python3 setup.py bdist_wheel` command in the\r\nREADME.\r\n\r\nThe reason is the official Python wheel uses `auditwheel` to package all\r\ndynamic libraries, so the `_pulsar.so` depends on another dynamic\r\nlibrary in the relative path. e.g.\r\n\r\n```bash\r\n$ ldd ~/.local/lib/python3.8/site-packages/_pulsar.cpython-38-x86_64-linux-gnu.so\r\n        libpulsar-b6dad138.so \u003d\u003e /home/xyz/.local/lib/python3.8/site-packages/pulsar_client.libs/libpulsar-b6dad138.so (0x00007f8dc09b3000)\r\n        ...\r\n```\r\n\r\nIf we copy the `_pulsar.cpython-38-x86_64-linux-gnu.so` into the project\r\ndirectory, the `libpulsar-b6dad138.so` will not be found.\r\n\r\n### Modifications\r\n\r\nIn `RELEASE.md`, specify the path of `_pulsar.so` directly."
    },
    {
      "commit": "f84931c4908620c6f8fa897582ed2e72ba62f029",
      "tree": "997285e089b8378ad484f8e840752b946cc850a5",
      "parents": [
        "eb34eafa7fef18713937843c0793fc82a622cd30"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Mon Jun 05 15:59:47 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 05 15:59:47 2023 +0800"
      },
      "message": "Bumped version to 3.3.0a1 (#130)\n\n"
    },
    {
      "commit": "eb34eafa7fef18713937843c0793fc82a622cd30",
      "tree": "a091a51ceb783a85b75c40db08b442f3d144c684",
      "parents": [
        "39ac8f80d82ca10df5c719b3520985352f578ad4"
      ],
      "author": {
        "name": "Tommy",
        "email": "admin@hyperevo.com",
        "time": "Sun Jun 04 23:36:15 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 05 14:36:15 2023 +0800"
      },
      "message": "[Enhancement/Feature Issue #47] Added support for KeySharedPolicy for the consumer when in KeyShared mode. (#109)\n\n### Motivation\r\nThe pulsar python client lacks support for defining KeyShared behaviour like out of order message delivery and sticky-hash, auto-hash for consumers in KeyShared mode. This PR adds full support. The user can now provide a KeySharedPolicy when starting a consumer with client.subscribe() #47 \r\n\r\nThe ConsumerConfiguration::KeySharedPolicy and related setter/getter are now exposed to the Python client in this PR.\r\n\r\n### Modifications\r\n\r\n- Added pybind11 enum for KeySharedMode in src/enums.cc.\r\n- Added pybind11 class for KeySharedPolicy in src/config.cc.\r\n- Modified pybind11 class for ConsumerConfiguration and added function to set KeySharedPolicy and function to read KeySharedPolicy.\r\n- Added KeySharedPolicy wrapper to pulsar/__init__.py. This wrapper handles KeySharedPolicy initialization and does some value validation.\r\n- Added the key_shared_policy parameter to client.subscribe(), some validation, and adding to the config in pulsar/__init__.py.\r\n- Added 4 new tests to test the new KeySharedPolicy functionality to tests/pulsar_test.py"
    },
    {
      "commit": "39ac8f80d82ca10df5c719b3520985352f578ad4",
      "tree": "5a29713558af1f188a7af13138316475393e0cfd",
      "parents": [
        "d2fac8fb8bbaaaa7d134abc35e7f1f8f89f615be"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Fri May 26 08:02:36 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 25 17:02:36 2023 -0700"
      },
      "message": "Include the C extension when generating API docs (#126)\n\n### Motivation\r\n\r\nhttps://github.com/apache/pulsar-client-python/issues/85#issuecomment-1531069608\r\n\r\nSome targets in the API docs are referenced from the `_pulsar` module,\r\nwhile the `pydoctor` command does not generate API docs for it. It\u0027s not\r\nfriendly to users, e.g. they cannot find which values could\r\n`_pulsar.ConsumerType` be.\r\n\r\n```\r\npulsar/__init__.py:695: Cannot find link target for \"_pulsar.ConsumerType\"\r\n```\r\n\r\n### Modifications\r\n\r\nFix the documents to describe how to include the API docs for the\r\n`_pulsar` module when generating API docs. It also fixes some other\r\nwarnings when running the `pydoctor` command."
    },
    {
      "commit": "d2fac8fb8bbaaaa7d134abc35e7f1f8f89f615be",
      "tree": "10ba2c0271fdf9db5d6b35858e0eab2e139bdb1c",
      "parents": [
        "ce25b367f5b0d048e68b3c7328180c2dd675eef6"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Thu May 25 09:43:49 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 25 09:43:49 2023 +0800"
      },
      "message": "Fetch writer schema to decode Avro messages (#119)\n\nFixes https://github.com/apache/pulsar-client-python/issues/108\r\n\r\n### Motivation\r\n\r\nCurrently the Python client uses the reader schema, which is the schema\r\nof the consumer, to decode Avro messages. However, when the writer\r\nschema is different from the reader schema, the decode will fail.\r\n\r\n### Modifications\r\n\r\nAdd `attach_client` method to `Schema` and call it when creating\r\nconsumers and readers. This method stores a reference to a\r\n`_pulsar.Client` instance, which leverages the C++ APIs added in\r\nhttps://github.com/apache/pulsar-client-cpp/pull/257 to fetch schema\r\ninfo. The `AvroSchema` class fetches and caches the writer schema if it\r\nis not cached, then use both the writer schema and reader schema to\r\ndecode messages.\r\n\r\nAdd `test_schema_evolve` to test consumers or readers can decode\r\nany message whose writer schema is different with the reader schema."
    },
    {
      "commit": "ce25b367f5b0d048e68b3c7328180c2dd675eef6",
      "tree": "fb9a65e2eae7b8499052356ad1b153fa3a85728b",
      "parents": [
        "0d1402a522a8e1b01c1069adcbb58a0f6b27e077"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Wed May 24 17:29:25 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 25 08:29:25 2023 +0800"
      },
      "message": "Release the GIL before any call to async methods (#123)\n\nFix #122 \r\n\r\nWhen call an async method on Pulsar C++ client, we need to be releasing the GIL to avoid a deadlock between that and the producer lock."
    },
    {
      "commit": "0d1402a522a8e1b01c1069adcbb58a0f6b27e077",
      "tree": "3a3b8f44cdbf844d91525597dbfc3db7fa6fd45b",
      "parents": [
        "00288931bc04929aab9c2717cd6e6c7e2a9f65e2"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Wed May 24 16:57:19 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 25 07:57:19 2023 +0800"
      },
      "message": "Use readNextAsync for reader.read_next() (#125)\n\n"
    },
    {
      "commit": "00288931bc04929aab9c2717cd6e6c7e2a9f65e2",
      "tree": "268653696aed943de26d5de8499310904cbf8f21",
      "parents": [
        "87a3506d38ea1a0dd15743e34cf2b3ca9d538164"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Thu May 25 02:21:41 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 24 11:21:41 2023 -0700"
      },
      "message": "Make acknowledge APIs synchronous and improve the documents (#121)\n\nFixes https://github.com/apache/pulsar-client-python/issues/114\r\n\r\n### Motivation\r\n\r\nCurrently the `acknowledge` and `acknowledge_cumulative` methods are all\r\nasynchronous. Even if any error happened, no exception would be raised.\r\nFor example, when acknowledging cumulatively on a consumer whose\r\nconsumer type is Shared or KeyShared, no error happens.\r\n\r\n### Modifications\r\n\r\n- Change these methods to synchronous and raise exceptions if the\r\n  acknowledgment failed.\r\n- Add `PulsarTest.test_acknowledge_failed` to test these failed cases.\r\n- Improve the documents to describe which exceptions could be raised in\r\n  which cases."
    },
    {
      "commit": "87a3506d38ea1a0dd15743e34cf2b3ca9d538164",
      "tree": "0a2bdf66ade8deaf3ed64dce57f322eed0d79fde",
      "parents": [
        "cf4a9c0572e7232b315179f78c28d4c653f9119c"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Wed May 24 02:30:00 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 23 11:30:00 2023 -0700"
      },
      "message": "Add docs and tests for AuthenticationOauth2 (#120)\n\n### Modifications\r\n\r\nAdd tests to verify the changes of\r\nhttps://github.com/apache/pulsar-client-cpp/pull/249 work for the Python\r\nclient.\r\n\r\nAdd docs to describe valid JSON fields used to create an\r\n`AuthenticationOauth2` instance."
    },
    {
      "commit": "cf4a9c0572e7232b315179f78c28d4c653f9119c",
      "tree": "94f9c7bd89c90c101cd598b1b14bd1bb8c8ce1ed",
      "parents": [
        "fee8d1dc92045edb6348e9c1a43dd334bf907daf"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Thu May 18 01:40:30 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 17 10:40:30 2023 -0700"
      },
      "message": "Bump the C++ client to 3.2.0 (#118)\n\n* Bump the C++ client to 3.2.0\r\n\r\nFixes https://github.com/apache/pulsar-client-python/issues/116\r\n\r\nhttps://github.com/apache/pulsar-client-cpp/pull/266 is included in the\r\nC++ client 3.2.0 so that #116 will be fixed.\r\n\r\n* Change the download URL since archive.apache.org is not available now\r\n\r\n* Revert \"Change the download URL since archive.apache.org is not available now\"\r\n\r\nThis reverts commit 6b92e984dfffe8151edf4df77c62275e794adb73."
    },
    {
      "commit": "fee8d1dc92045edb6348e9c1a43dd334bf907daf",
      "tree": "2c827cf55e55b6fa1084cb2b7b813f69b83d179b",
      "parents": [
        "cf2c7c419a4c696e5e9cb05a4ffcc675058c2905"
      ],
      "author": {
        "name": "Jun Ma",
        "email": "60642177+momo-jun@users.noreply.github.com",
        "time": "Sun May 14 21:04:55 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 14 21:04:55 2023 +0800"
      },
      "message": "Update README.md (#117)\n\n"
    },
    {
      "commit": "cf2c7c419a4c696e5e9cb05a4ffcc675058c2905",
      "tree": "adb909a1ce9d542f2a52597d7b928cf4c4bc1423",
      "parents": [
        "623df3af7330536c52c04b959ffecb14ad506796"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Thu Apr 20 09:18:58 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 20 09:18:58 2023 -0700"
      },
      "message": "Update to bookkeeper client 4.16.1 (#111)\n\nThe new BK client is now working with newer version of Grpc, so we can upgrade and use Grpc \u003e1.37 which comes with pre-packaged binaries."
    },
    {
      "commit": "623df3af7330536c52c04b959ffecb14ad506796",
      "tree": "edc17b5acbf66f32a22ed3fa813732ecf5c3088f",
      "parents": [
        "a6476d9c45508f55a7af4b25001038a8e3a27489"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Thu Apr 20 01:26:42 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 19 10:26:42 2023 -0700"
      },
      "message": "Upgrade fastavro to 1.7.3 (#110)\n\n"
    },
    {
      "commit": "a6476d9c45508f55a7af4b25001038a8e3a27489",
      "tree": "51729fb92c50ae217be0c55bb2c0913e141be84a",
      "parents": [
        "ec05f50bf489aef85532d61f577c62649a5b71a6"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Tue Mar 14 19:11:45 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 14 19:11:45 2023 +0800"
      },
      "message": "Bumped version to 3.2.0a1 (#105)\n\n"
    }
  ],
  "next": "ec05f50bf489aef85532d61f577c62649a5b71a6"
}
