)]}'
{
  "log": [
    {
      "commit": "c28dd859c221cf5895879226b49d940f483885ed",
      "tree": "f5ce5716e325d4f0aa8adefefa96341824b3fd05",
      "parents": [
        "69914616c4b306017f08ce39aaea1a8901fd7648"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Thu Apr 30 15:41:00 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 15:41:00 2026 -0700"
      },
      "message": "[feat]PIP-468: Wire transactions into V5 client (#25631)"
    },
    {
      "commit": "69914616c4b306017f08ce39aaea1a8901fd7648",
      "tree": "657c2be1727dc6a1112ca7c70103ecfc1b9e8a21",
      "parents": [
        "f662459769e364e4b54e11bca539419e2bc1e8b2"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Fri May 01 00:49:16 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 14:49:16 2026 -0700"
      },
      "message": "[fix][broker] PIP-460: Authorize scalable topic binary commands (#25635)"
    },
    {
      "commit": "f662459769e364e4b54e11bca539419e2bc1e8b2",
      "tree": "03d164069af20da2b1649ce86364430b454b1f81",
      "parents": [
        "b4df3c6e38489b7bb0d8d0a7d4858b2f2647a2f5"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Thu Apr 30 14:47:19 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 14:47:19 2026 -0700"
      },
      "message": "[feat] PIP-468: Multi-broker shared cluster + V5 cross-broker tests (#25633)"
    },
    {
      "commit": "b4df3c6e38489b7bb0d8d0a7d4858b2f2647a2f5",
      "tree": "d59763dd3977a433efea5e851003eafda677acb4",
      "parents": [
        "4f73b437fcf45373c03356155bebf5dd0af53f4a"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Thu Apr 30 23:52:17 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 13:52:17 2026 -0700"
      },
      "message": "[improve][ci] Document avoiding reflection in tests in Copilot review instructions (#25636)"
    },
    {
      "commit": "4f73b437fcf45373c03356155bebf5dd0af53f4a",
      "tree": "f842837093a64ccd685dbd7d3eb88cf152bb6718",
      "parents": [
        "cd910c27f06175d4ea4be96bb0f857be491fb6d8"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Thu Apr 30 13:51:45 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 13:51:45 2026 -0700"
      },
      "message": "[feat][broker] PIP-468: Filter scalable topics by property via secondary index (#25632)"
    },
    {
      "commit": "cd910c27f06175d4ea4be96bb0f857be491fb6d8",
      "tree": "046011e4961b305fbbd6c243b5f16d81ad127560",
      "parents": [
        "145b3a55d0fe04ade57c18f3a0ce15c87239d752"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Thu Apr 30 07:41:58 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 17:41:58 2026 +0300"
      },
      "message": "[feat] PIP-468: Auto-reconnect scalable consumer session on disconnect (#25623)"
    },
    {
      "commit": "145b3a55d0fe04ade57c18f3a0ce15c87239d752",
      "tree": "818d1a2ff4f56cbebdbdd29bfd5a9fed8faf5d78",
      "parents": [
        "759a5f520f81ba45caef9bd94a79997855a695fd"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Thu Apr 30 07:39:46 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 17:39:46 2026 +0300"
      },
      "message": "[fix][client] PIP-468: V5 CheckpointConsumer consumer-group support (#25622)"
    },
    {
      "commit": "759a5f520f81ba45caef9bd94a79997855a695fd",
      "tree": "de6156f7c4616831a29b17ef9932292c9f75ac09",
      "parents": [
        "1a6b69d2199e5c668e0babffc48300fafa81f980"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Thu Apr 30 06:18:54 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 16:18:54 2026 +0300"
      },
      "message": "[fix][broker] Fix stuck chunks in SharedConsumerAssignor permit tracking (#25620)"
    },
    {
      "commit": "1a6b69d2199e5c668e0babffc48300fafa81f980",
      "tree": "56f374ad2f7634335058b29f19e3897f8eeccc79",
      "parents": [
        "d861e15a1ffd1ed0f622d5659bfe8bd9dffd2300"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Thu Apr 30 06:18:38 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 16:18:38 2026 +0300"
      },
      "message": "[feat] PIP-468: V5 StreamConsumer disconnect / reconnect / past-grace reassignment (#25619)"
    },
    {
      "commit": "d861e15a1ffd1ed0f622d5659bfe8bd9dffd2300",
      "tree": "52b6873277e892773cc6455d7c520933ebb8092d",
      "parents": [
        "71462d3151b2dceb776db08b8dc974d779d462e1"
      ],
      "author": {
        "name": "Zixuan Liu",
        "email": "nodeces@gmail.com",
        "time": "Thu Apr 30 15:19:53 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 15:19:53 2026 +0800"
      },
      "message": "[fix][broker] Close pending acks cleanup gap in BacklogQuotaManager (#25624)"
    },
    {
      "commit": "71462d3151b2dceb776db08b8dc974d779d462e1",
      "tree": "03405f2fd9590c28f8a01b804b591ec7a482fae9",
      "parents": [
        "d200fd5e85f3e343be29cc373008dc928c7fd370"
      ],
      "author": {
        "name": "fengyubiao",
        "email": "yubiao.feng@streamnative.io",
        "time": "Thu Apr 30 11:16:38 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 11:16:38 2026 +0800"
      },
      "message": "[improve][broker]Part-3 of PIP-433:  always allow replicator to register a new compatible schema (#25461)"
    },
    {
      "commit": "d200fd5e85f3e343be29cc373008dc928c7fd370",
      "tree": "dcaa798b6d59dc46039b921c559c65acbfe3b998",
      "parents": [
        "88fcfa6b425c47f830cc690a70ef6cfe31ec4d33"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Wed Apr 29 23:17:04 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 13:17:04 2026 -0700"
      },
      "message": "[improve][broker] Add authn/authz to Scalable Topics Admin API (PIP-460) (#25618)"
    },
    {
      "commit": "88fcfa6b425c47f830cc690a70ef6cfe31ec4d33",
      "tree": "80eb3ea793cc1a015277836d0762937454b025ed",
      "parents": [
        "138595f6256c301956f9d77fde8534699e992536"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Wed Apr 29 19:03:01 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 09:03:01 2026 -0700"
      },
      "message": "[feat][broker] PIP-466: Add supports_scalable_topics feature flag and broker config (#25616)"
    },
    {
      "commit": "138595f6256c301956f9d77fde8534699e992536",
      "tree": "11ceb29e834d28642402e80ab8e8ae9350df3bea",
      "parents": [
        "35ec14a6460017db8844dbb5e48c68869ba4c8de"
      ],
      "author": {
        "name": "Zixuan Liu",
        "email": "nodeces@gmail.com",
        "time": "Wed Apr 29 23:18:31 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 23:18:31 2026 +0800"
      },
      "message": "[fix][broker] Move pending acks cleanup to selected mark-delete callbacks (#25592)"
    },
    {
      "commit": "35ec14a6460017db8844dbb5e48c68869ba4c8de",
      "tree": "9c77fcbc60456fde2b499e935ed32fe52d53a55c",
      "parents": [
        "8a7eed351dbfb3b6bf5213bfccc04e3f215c3b63"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Wed Apr 29 06:03:34 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 16:03:34 2026 +0300"
      },
      "message": "[fix][client] PIP-468: Wire V5 StreamConsumer to broker SubscriptionCoordinator (#25612)"
    },
    {
      "commit": "8a7eed351dbfb3b6bf5213bfccc04e3f215c3b63",
      "tree": "b8703d42239e728af3909b8f006f273def2c187b",
      "parents": [
        "1260980f11b49d95ec10474f520efcf2b390e7e6"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Wed Apr 29 04:11:31 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 14:11:31 2026 +0300"
      },
      "message": "[test][client-v5] V5 layout-dynamics coverage + consumer fixes (DAG replay, late-ack) (#25611)"
    },
    {
      "commit": "1260980f11b49d95ec10474f520efcf2b390e7e6",
      "tree": "6b1253df65e8348e3aa42f8491d1f917b014cd74",
      "parents": [
        "00577a5438bbb3d959e5ca2ea037e760219b95d8"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Wed Apr 29 04:11:13 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 14:11:13 2026 +0300"
      },
      "message": "[fix] Client-v5: Retry producer send on AlreadyClosed across segment seal (#25610)"
    },
    {
      "commit": "00577a5438bbb3d959e5ca2ea037e760219b95d8",
      "tree": "c73a530ee9539d9f6e1945a895a6679620651bd6",
      "parents": [
        "d69c78753c5f3747e8d961ee9ba3a419f9c9d8af"
      ],
      "author": {
        "name": "zhenJiangWang",
        "email": "zhenjiang427@gmail.com",
        "time": "Wed Apr 29 10:47:18 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 10:47:18 2026 +0800"
      },
      "message": "[fix][broker] Fix precision loss in DataSketchesSummaryLogger by replacing LongAdder with DoubleAdder for sum accumulation (#25594)"
    },
    {
      "commit": "d69c78753c5f3747e8d961ee9ba3a419f9c9d8af",
      "tree": "9c01f43ac9229510db503cf533d816decc0396f1",
      "parents": [
        "f10be84a21cfb994029455136edf74cc54d6dde8"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Tue Apr 28 10:47:45 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 10:47:45 2026 -0700"
      },
      "message": "[fix][test] Fix flaky ExtensibleLoadManagerImplTest.testLoadBalancerServiceUnitTableViewSyncer (#25596)"
    },
    {
      "commit": "f10be84a21cfb994029455136edf74cc54d6dde8",
      "tree": "9c7b56674c3f5b95ea76b994934b452562e9fcc5",
      "parents": [
        "c94e3f56c720126e70c5309d6fa50a26f1b13005"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Tue Apr 28 09:49:40 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 09:49:40 2026 -0700"
      },
      "message": "[fix][test] Fix flaky ManagedLedgerTest.testInvalidateReadHandleWhenConsumed (#25595)"
    },
    {
      "commit": "c94e3f56c720126e70c5309d6fa50a26f1b13005",
      "tree": "a7b46dac8067c258d1ec7c9bc43f9c9f27b360e2",
      "parents": [
        "d6ca792aa1b09708673f5f632829adb932fcfa0f"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Tue Apr 28 08:51:02 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 08:51:02 2026 -0700"
      },
      "message": "[feat] [test] PIP-468: V5 producer/consumer knob coverage + related client fixes (#25588)"
    },
    {
      "commit": "d6ca792aa1b09708673f5f632829adb932fcfa0f",
      "tree": "5ef151a09f8051b2cb664aa90122ea1172e79c98",
      "parents": [
        "f92a4a059bebe481f4d35a1ba7c7cb97b420a183"
      ],
      "author": {
        "name": "Hideaki Oguni",
        "email": "22386882+izumo27@users.noreply.github.com",
        "time": "Wed Apr 29 00:41:09 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 18:41:09 2026 +0300"
      },
      "message": "[improve][client] Implement tls_client_auth for AuthenticationOAuth2 (#25538)\n\nCo-authored-by: hoguni \u003choguni@lycorp.co.jp\u003e"
    },
    {
      "commit": "f92a4a059bebe481f4d35a1ba7c7cb97b420a183",
      "tree": "cb9fb994c6af7d4f15fdc4c34587e87c4a449cbd",
      "parents": [
        "b56c1de916b2c0833253c038e362e94a3ad03607"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Tue Apr 28 08:32:44 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 08:32:44 2026 -0700"
      },
      "message": "[feat] PIP-468: Basic end-to-end tests for V5 Queue/Stream/Checkpoint consumers + async APIs (#25587)"
    },
    {
      "commit": "b56c1de916b2c0833253c038e362e94a3ad03607",
      "tree": "9e9df1b7d4ecc1382c154d19df456d1533adde38",
      "parents": [
        "9e1bae353ad3f869aaab99a98548fbe37375364e"
      ],
      "author": {
        "name": "Praveen Kumar",
        "email": "122990319+Praveenkumar76@users.noreply.github.com",
        "time": "Tue Apr 28 19:31:29 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 17:01:29 2026 +0300"
      },
      "message": "[fix][test] Fix flaky PulsarFunctionsJavaThreadTest.testTumblingCountWindowTest (#25590)"
    },
    {
      "commit": "9e1bae353ad3f869aaab99a98548fbe37375364e",
      "tree": "459fc53f8bd4e86f1b02aee4f3a00a758c8163f5",
      "parents": [
        "03ed3af4cc8fb9c18a310245280e3dc2fcb18dd3"
      ],
      "author": {
        "name": "Zixuan Liu",
        "email": "nodeces@gmail.com",
        "time": "Tue Apr 28 15:18:55 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 15:18:55 2026 +0800"
      },
      "message": "[fix][broker] Fix race in pending acks removal in redeliverUnacknowledgedMessages (#25589)"
    },
    {
      "commit": "03ed3af4cc8fb9c18a310245280e3dc2fcb18dd3",
      "tree": "4e86b99ff4641de298e7e4ab078b81b92528c1f1",
      "parents": [
        "7b49b385efc2ec9aec28f6193db91e017d086be2"
      ],
      "author": {
        "name": "xiaolong ran",
        "email": "rxl@apache.org",
        "time": "Tue Apr 28 10:08:20 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 10:08:20 2026 +0800"
      },
      "message": "[improve][client] Add SOCKS5 proxy support for PulsarAdmin and for PulsarClient HTTP lookups (#25575)\n\nSigned-off-by: xiaolongran \u003cxiaolongran@tencent.com\u003e"
    },
    {
      "commit": "7b49b385efc2ec9aec28f6193db91e017d086be2",
      "tree": "da77013cd4d4e1efd53d1caeb22bcded5a71b15a",
      "parents": [
        "5168fcb36c8e84d73e6dd7d31f5cbafdda9c0aa8"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Mon Apr 27 13:30:15 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 13:30:15 2026 -0700"
      },
      "message": "[feat] PIP-468: V5 client end-to-end smoke test + segment-bypass for internal subscribe/read (#25586)"
    },
    {
      "commit": "5168fcb36c8e84d73e6dd7d31f5cbafdda9c0aa8",
      "tree": "afaee671137bae6540bf09308153790134db35ab",
      "parents": [
        "ad114adec359486ad2b2d5493c816d78f44f66a2"
      ],
      "author": {
        "name": "Zixuan Liu",
        "email": "nodeces@gmail.com",
        "time": "Mon Apr 27 20:50:37 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 20:50:37 2026 +0800"
      },
      "message": "[fix][broker] Decrement unacked counter when removeAllUpTo removes pending acks (#25581)"
    },
    {
      "commit": "ad114adec359486ad2b2d5493c816d78f44f66a2",
      "tree": "b8a1303d7e6fe29d0484fbfb9256dcfeb0528bb2",
      "parents": [
        "13e1faccee926977ac5a3160642afaa1ac42ec67"
      ],
      "author": {
        "name": "xiaolong ran",
        "email": "rxl@apache.org",
        "time": "Mon Apr 27 20:49:02 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 20:49:02 2026 +0800"
      },
      "message": "[feat][broker]:Support broker configuration for BookKeeper client TCP keep-alive options (#25580)\n\nSigned-off-by: xiaolongran \u003cxiaolongran@tencent.com\u003e"
    },
    {
      "commit": "13e1faccee926977ac5a3160642afaa1ac42ec67",
      "tree": "bbf82120bb8071ef7ff7aaa3e0f432b35796e76d",
      "parents": [
        "33fe7559b4d1a2cfb9d35756d38f7bad72b54309"
      ],
      "author": {
        "name": "Oneby Wang",
        "email": "44369297+oneby-wang@users.noreply.github.com",
        "time": "Mon Apr 27 20:10:37 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 15:10:37 2026 +0300"
      },
      "message": "[improve][cli] Add client side looping in \"pulsar-admin topics analyze-backlog\" cli to avoid potential HTTP call timeout (#25126)"
    },
    {
      "commit": "33fe7559b4d1a2cfb9d35756d38f7bad72b54309",
      "tree": "cadd102bd82d63d934978daf5e7d1a49582c313c",
      "parents": [
        "f07decea0474b24f50fcdb8aed55c5290512d5a5"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Mon Apr 27 14:43:00 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 14:43:00 2026 +0800"
      },
      "message": "[feat][pip] PIP-469: Legacy-aware topic policies backend routing and metadata-store topic policies (#25547)"
    },
    {
      "commit": "f07decea0474b24f50fcdb8aed55c5290512d5a5",
      "tree": "a2ee17ca0aea24ebcb1e4cd1fc6472d0d2fc7a9f",
      "parents": [
        "f459a1a111b41d4377b784ac7af79ab7e672a971"
      ],
      "author": {
        "name": "sinan liu",
        "email": "liusinan1998@gmail.com",
        "time": "Mon Apr 27 11:30:24 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 11:30:24 2026 +0800"
      },
      "message": "[fix][broker] Wait for orphan schema ledger cleanup before retry (#25579)"
    },
    {
      "commit": "f459a1a111b41d4377b784ac7af79ab7e672a971",
      "tree": "d1eb1ae4c29a415c0106cb12b183910a2155ba9b",
      "parents": [
        "f6598d8408f51d5f199c2ec8d47b1dc74fb60b04"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Fri Apr 24 16:57:10 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 16:57:10 2026 -0700"
      },
      "message": "[feat] PIP-468: Implement V5 client with scalable topic producer and consumer types (#25573)"
    },
    {
      "commit": "f6598d8408f51d5f199c2ec8d47b1dc74fb60b04",
      "tree": "37c2aa6f9ecce0879ca002273420a48f92360b6c",
      "parents": [
        "3c5c86639e3d9e480287eff51fa76bafba905489"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Fri Apr 24 16:10:37 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 16:10:37 2026 -0700"
      },
      "message": "[fix][client] Stabilize scaleReceiverQueueHint against concurrent enqueue/take (#25578)"
    },
    {
      "commit": "3c5c86639e3d9e480287eff51fa76bafba905489",
      "tree": "fed81b6655b355da6fbda1755e4c7de409056110",
      "parents": [
        "597eb0daa2ca155cdf3d1bb0c2ff63c637e5ab41"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Fri Apr 24 16:02:22 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 16:02:22 2026 -0700"
      },
      "message": "[feat] PIP-468: Add scalable topics and segments admin APIs with CLI (#25565)"
    },
    {
      "commit": "597eb0daa2ca155cdf3d1bb0c2ff63c637e5ab41",
      "tree": "3e0f92629be1f4913a94dbe4ea6404c5b31e3076",
      "parents": [
        "527efb6e47cb3afecf2b4aad28c70100782c4edc"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Fri Apr 24 14:46:54 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 14:46:54 2026 -0700"
      },
      "message": "[feat] PIP-468: Add scalable topic protocol commands and connection handling (#25564)"
    },
    {
      "commit": "527efb6e47cb3afecf2b4aad28c70100782c4edc",
      "tree": "bc2478fa5adc17de124edf0719997e465efdff2e",
      "parents": [
        "fae3df958f74f2afb0ba398b69d94fd3e6358c4f"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Fri Apr 24 12:49:51 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 12:49:51 2026 -0700"
      },
      "message": "[feat] PIP-468: Add ScalableTopicController and broker infrastructure (#25559)"
    },
    {
      "commit": "fae3df958f74f2afb0ba398b69d94fd3e6358c4f",
      "tree": "f0bf49513286ca5cbde1c927a5577383425ebe89",
      "parents": [
        "2476b1b4ad461cca977cae12634bb4084571c05f"
      ],
      "author": {
        "name": "Zixuan Liu",
        "email": "nodeces@gmail.com",
        "time": "Fri Apr 24 10:53:23 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 10:53:23 2026 +0800"
      },
      "message": "[improve][client] Best-effort retry for individual/batch-index acks on send failure when ackReceiptEnabled\u003dfalse (#25525)\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e"
    },
    {
      "commit": "2476b1b4ad461cca977cae12634bb4084571c05f",
      "tree": "7c3f54f9538fc5ad287456b6620b4a71e6c69367",
      "parents": [
        "01fedb84a454bdc7d755e70e68af1624ceeb1f12"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Thu Apr 23 17:16:28 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 07:16:28 2026 -0700"
      },
      "message": "[improve][fn] Log function package download completion and process PID (#25568)"
    },
    {
      "commit": "01fedb84a454bdc7d755e70e68af1624ceeb1f12",
      "tree": "8dfc89819528510fd8e4f9200ae70685e8540556",
      "parents": [
        "81a77530b831463fe23f4df38c6cdb66df9b5bdd"
      ],
      "author": {
        "name": "zhou zhuohan",
        "email": "843520313@qq.com",
        "time": "Thu Apr 23 20:50:39 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 20:50:39 2026 +0800"
      },
      "message": "[fix][broker] Clean up orphan ledger on concurrent initial schema creation in BookkeeperSchemaStorage (#25514)"
    },
    {
      "commit": "81a77530b831463fe23f4df38c6cdb66df9b5bdd",
      "tree": "69dfe13fbd08c177d0bd2cc01c6372e411bf64ef",
      "parents": [
        "a14f6ccf31464a645dcb9af012ccdde73fc5124e"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Thu Apr 23 12:33:58 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 17:33:58 2026 +0800"
      },
      "message": "[fix][broker] Replace Java serialization with JSON in package metadata (#25570)"
    },
    {
      "commit": "a14f6ccf31464a645dcb9af012ccdde73fc5124e",
      "tree": "2076e8c2478775d200fe6851ccc599c3d66ceca6",
      "parents": [
        "db94b9534f0900a5ec4eb9fa5191296513aa0575"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Thu Apr 23 04:59:16 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 09:59:16 2026 +0800"
      },
      "message": "[fix][sec] Upgrade BouncyCastle to 1.84 (CVE-2026-5588, CVE-2026-0636) (#25569)"
    },
    {
      "commit": "db94b9534f0900a5ec4eb9fa5191296513aa0575",
      "tree": "915f22d4e416b4984fe37b813071c0bfd418d722",
      "parents": [
        "4addfdab1a2c57ec23148b27abef0b5d437b076b"
      ],
      "author": {
        "name": "Kai Wang",
        "email": "kwang@apache.org",
        "time": "Thu Apr 23 04:47:27 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 13:47:27 2026 -0700"
      },
      "message": "[improve][broker] Use full bundle name for namespace bundle destination affinity in ModularLoadManagerImpl (#25518)"
    },
    {
      "commit": "4addfdab1a2c57ec23148b27abef0b5d437b076b",
      "tree": "c94551297b3eeff816c71b7c0d0701eecacf0765",
      "parents": [
        "1071cc94b62921ede294c17391e19fca69c289d6"
      ],
      "author": {
        "name": "Pavel Zeger",
        "email": "pavel.zeger@gmail.com",
        "time": "Wed Apr 22 17:48:29 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 22:48:29 2026 +0800"
      },
      "message": "[fix] Fix flaky BrokerDispatchRateLimiterTest.testBrokerDispatchThrottledMetrics (#25567)"
    },
    {
      "commit": "1071cc94b62921ede294c17391e19fca69c289d6",
      "tree": "6be6a6c570a426474de51889d729054b4f8d4ea2",
      "parents": [
        "77999fc8a9464b5af7ba0e541d3beb5906f83714"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Wed Apr 22 16:50:28 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 06:50:28 2026 -0700"
      },
      "message": "[fix][test] Flaky SameAuthParamsLookupAutoClusterFailoverTest (#25566)"
    },
    {
      "commit": "77999fc8a9464b5af7ba0e541d3beb5906f83714",
      "tree": "40a993eaa34bc8e7c685705071c13ecc6c49fc44",
      "parents": [
        "43c7ad86ebfc0c7c47f0f6ccc92c5f0aa62177a3"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Wed Apr 22 04:26:54 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 14:26:54 2026 +0300"
      },
      "message": "[fix][test] Fix flaky OffloadPrefixTest.testPositionOnEdgeOfLedger race with ledger rollover (#25561)"
    },
    {
      "commit": "43c7ad86ebfc0c7c47f0f6ccc92c5f0aa62177a3",
      "tree": "7d12f92d20d6db239e83916b7c45a8f9c00dea87",
      "parents": [
        "9cf1cc9b5bf5d5581fe4e40318b85dfdd2ec77f7"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Wed Apr 22 04:23:53 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 14:23:53 2026 +0300"
      },
      "message": "[fix][test] Extend SameAuthParamsLookupAutoClusterFailoverTest phase timeouts (#25563)"
    },
    {
      "commit": "9cf1cc9b5bf5d5581fe4e40318b85dfdd2ec77f7",
      "tree": "73da6f432416ff09aa988c8278a3c85af27c5fd7",
      "parents": [
        "f26e3bac7d44c9c16bc0eb7f4b2720d763cf7eb1"
      ],
      "author": {
        "name": "Rahul",
        "email": "84563516+programmerahul@users.noreply.github.com",
        "time": "Wed Apr 22 16:43:50 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 14:13:50 2026 +0300"
      },
      "message": "[fix][broker] pulsar admin stats internal with metadata command (#25557)\n\nCo-authored-by: Rahul Prasad \u003crahul.prasad3@flipkart.com\u003e"
    },
    {
      "commit": "f26e3bac7d44c9c16bc0eb7f4b2720d763cf7eb1",
      "tree": "f25093f121c62e7df6ea5ed15189b680e2712249",
      "parents": [
        "293eafc08c933bbb4ffebb37c128c4b76b6a3947"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Wed Apr 22 03:28:49 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 18:28:49 2026 +0800"
      },
      "message": "[fix][test] Relax BrokerRegistryIntegrationTest broker-close threshold (#25562)"
    },
    {
      "commit": "293eafc08c933bbb4ffebb37c128c4b76b6a3947",
      "tree": "9a889bf98e757a1982bfdd73f3083ccec5df3ac9",
      "parents": [
        "423a74698e1b44652425f030788ac54484052f85"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Tue Apr 21 15:54:17 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 15:54:17 2026 -0700"
      },
      "message": "[fix][test] Recreate EventLoop in PublishRateLimiterTest setup (#25560)"
    },
    {
      "commit": "423a74698e1b44652425f030788ac54484052f85",
      "tree": "89b4842560754512de897abf1d72c2e69a46765a",
      "parents": [
        "93d13e2fdb1a2032e51ff2601c5c929b8a0fb418"
      ],
      "author": {
        "name": "Vishal Kumar Singh",
        "email": "vishal.kr.singh2021@gmail.com",
        "time": "Wed Apr 22 04:01:05 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 01:31:05 2026 +0300"
      },
      "message": "[fix][broker] Lower log level of DrainingHashesTracker not-found entry to DEBUG (#25558)"
    },
    {
      "commit": "93d13e2fdb1a2032e51ff2601c5c929b8a0fb418",
      "tree": "5cd72b5adf51bd2ecb78a51e0338d77ab45abc7c",
      "parents": [
        "c6c9032bd6f7e240eae44c6666c93226a43ef88c"
      ],
      "author": {
        "name": "Vishal Kumar Singh",
        "email": "vishal.kr.singh2021@gmail.com",
        "time": "Wed Apr 22 00:15:20 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 02:45:20 2026 +0800"
      },
      "message": "[fix][doc] Correct loadConf example key in PulsarAdminBuilder (#25556)"
    },
    {
      "commit": "c6c9032bd6f7e240eae44c6666c93226a43ef88c",
      "tree": "6865d7b9db3bec8a7e003ecc3f1013f16eb9afa0",
      "parents": [
        "d553cec5485bdaa359b5bfdaea0162f10d3c13e5"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Tue Apr 21 09:55:37 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 09:55:37 2026 -0700"
      },
      "message": "[feat] PIP-468: Scalable Topic Controller (#25516)"
    },
    {
      "commit": "d553cec5485bdaa359b5bfdaea0162f10d3c13e5",
      "tree": "5c157db28e4a29bcd24d17e6052ce7ec2753fba5",
      "parents": [
        "3130a93b1abc053fc5e5c9687df044a6091d0a3c"
      ],
      "author": {
        "name": "Alexandre Boyer",
        "email": "33391039+ng-galien@users.noreply.github.com",
        "time": "Tue Apr 21 14:10:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 15:10:24 2026 +0300"
      },
      "message": "[improve][ml] Warn and emit metric when cursor ack state exceeds persist limits (#25548)"
    },
    {
      "commit": "3130a93b1abc053fc5e5c9687df044a6091d0a3c",
      "tree": "311c33cea134f6a2193c9f7eaa20a236fe564375",
      "parents": [
        "8c4e83d2374a6431953684bfadbf5abc301dd26f"
      ],
      "author": {
        "name": "Yunze Xu",
        "email": "xyzinfernity@163.com",
        "time": "Tue Apr 21 19:08:11 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 14:08:11 2026 +0300"
      },
      "message": "[improve][broker] Improve the performance of TopicName constructor (#24463)"
    },
    {
      "commit": "8c4e83d2374a6431953684bfadbf5abc301dd26f",
      "tree": "66058a2cee61831e3db2fae5656ed5da5ce3cf51",
      "parents": [
        "6ce15e13cc37bb1cd9ceae1814e659c420f9550b"
      ],
      "author": {
        "name": "Xiangying Meng",
        "email": "55571188+liangyepianzhou@users.noreply.github.com",
        "time": "Tue Apr 21 16:56:01 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 16:56:01 2026 +0800"
      },
      "message": "[improve][common] Optimize TopicName.get() to reduce lock contention on cache lookup (#25367)\n\n### Motivation\n\n`TopicName.get()` previously used `ConcurrentHashMap.computeIfAbsent()` to populate the topic-name cache. Although `computeIfAbsent` is atomic, it holds the internal bin-lock for the entire duration of the mapping function, which includes the non-trivial `TopicName` construction (string splitting, validation, etc.).\n\nUnder high-concurrency workloads where many threads simultaneously encounter the same uncached topic name, this causes unnecessary lock contention and can degrade throughput.\n\n### Modifications\n\nReplace `computeIfAbsent` with an explicit two-step pattern:\n\n1. **Fast path**: call `cache.get(topic)` first — a single volatile read with no locking — and return immediately on a cache hit (steady-state case).\n2. **Slow path** (cache miss): construct `TopicName` *outside* the lock, then use `cache.put()` to insert. "
    },
    {
      "commit": "6ce15e13cc37bb1cd9ceae1814e659c420f9550b",
      "tree": "e1809604e43b727123052483deb95d64403304db",
      "parents": [
        "9e4e7e1277af795bf7a93294944563b4083ba7af"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Mon Apr 20 13:19:45 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 13:19:45 2026 -0700"
      },
      "message": "[feat] PIP-466: Add V5 client API for scalable topics (#25489)"
    },
    {
      "commit": "9e4e7e1277af795bf7a93294944563b4083ba7af",
      "tree": "2692ae1c738ec7a41af9cec62b975a37e2163099",
      "parents": [
        "90332238719502d1c094d6ddd4fc3c7ba431c2fc"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Mon Apr 20 10:31:54 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 10:31:54 2026 -0700"
      },
      "message": "[feat] [pip] PIP-466: New Java Client API (V5) with Scalable Topic Support (#25455)"
    },
    {
      "commit": "90332238719502d1c094d6ddd4fc3c7ba431c2fc",
      "tree": "7194099892c31da76392a7cae7d9f12db3c11232",
      "parents": [
        "a1613bc2e5fd26cc16fc95b4a3c61bc5e1ae090d"
      ],
      "author": {
        "name": "fengyubiao",
        "email": "yubiao.feng@streamnative.io",
        "time": "Mon Apr 20 21:20:09 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 21:20:09 2026 +0800"
      },
      "message": "[fix][broker]Namespaces can be created with may empty replication_clusters policy (#25551)"
    },
    {
      "commit": "a1613bc2e5fd26cc16fc95b4a3c61bc5e1ae090d",
      "tree": "126a6307254898a65431c411b306bc1c96bbf753",
      "parents": [
        "a4c291f6aa38c79a81396df9ab89259c0fca1aec"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Fri Apr 17 13:39:15 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 17 18:39:15 2026 +0800"
      },
      "message": "[fix][sec] Upgrade to async-http-client 2.14.5 to address CVE-2026-40490 (#25546)"
    },
    {
      "commit": "a4c291f6aa38c79a81396df9ab89259c0fca1aec",
      "tree": "223dc33ff1ab21415cc0f173801a175ca6eb0ee4",
      "parents": [
        "744d2b8ec2d870c27c2804f7fe370124eefba534"
      ],
      "author": {
        "name": "Zixuan Liu",
        "email": "nodeces@gmail.com",
        "time": "Fri Apr 17 15:16:29 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 17 10:16:29 2026 +0300"
      },
      "message": "[fix][broker] Avoid Project access in broker test setup (#25529)\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e"
    },
    {
      "commit": "744d2b8ec2d870c27c2804f7fe370124eefba534",
      "tree": "b9eb4890d1e26fff537f60585618c4417449c0a1",
      "parents": [
        "91c165c7ebb95413768ee7dc8590826aa1276e14"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Thu Apr 16 20:58:18 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 20:58:18 2026 -0700"
      },
      "message": "[improve][broker] Log only non-default config values on broker startup (#25545)"
    },
    {
      "commit": "91c165c7ebb95413768ee7dc8590826aa1276e14",
      "tree": "c517cab7b0ea80bc3580dcf67dbedb65040411c1",
      "parents": [
        "af2eba9eebc26cb9bc223e8c865ed82c1f563bbe"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Thu Apr 16 15:42:05 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 15:42:05 2026 -0700"
      },
      "message": "[improve] PIP-467: Convert Jetty request logs to structured slog events (#25543)"
    },
    {
      "commit": "af2eba9eebc26cb9bc223e8c865ed82c1f563bbe",
      "tree": "7712c9a37228188608777bb825736bd4e643008d",
      "parents": [
        "97329ba8aea5ba3b8d281d96cf7db842cae0d347"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Thu Apr 16 14:16:56 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 14:16:56 2026 -0700"
      },
      "message": "[improve] PIP-467: Remove now-dead slf4j.api dependency from modules converted to slog (#25541)"
    },
    {
      "commit": "97329ba8aea5ba3b8d281d96cf7db842cae0d347",
      "tree": "9669eea3b84d4ac7651b4ec2afa3c6cd2c47f2dd",
      "parents": [
        "ae2b8c76cec9dfc240fcbf6ae323f42d0ccbcc28"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Thu Apr 16 23:06:11 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 13:06:11 2026 -0700"
      },
      "message": "[improve][misc] Add deepwiki badge in README to enable automated index update (#25544)"
    },
    {
      "commit": "ae2b8c76cec9dfc240fcbf6ae323f42d0ccbcc28",
      "tree": "e379317a139579fdcf57291b6365f8799f6778b6",
      "parents": [
        "d1352520c878cdc6aab66eed3fd1d9a1c731ba4f"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Thu Apr 16 12:49:15 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 12:49:15 2026 -0700"
      },
      "message": "[improve] Emit flat OpenTelemetry JSON logs instead of ECS (#25542)"
    },
    {
      "commit": "d1352520c878cdc6aab66eed3fd1d9a1c731ba4f",
      "tree": "f23b141ab6e0d7312286d0c675af55728f62904b",
      "parents": [
        "4998cd9e4f66ade6a7972da4afcd0f1546ddfc16"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Thu Apr 16 09:54:07 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 09:54:07 2026 -0700"
      },
      "message": "[improve][test] PIP-467: Convert pulsar-broker test files logging from SLF4J to slog (#25536)\n\nCo-authored-by: Lari Hotari \u003clhotari@users.noreply.github.com\u003e\nCo-authored-by: Zixuan Liu \u003cnodeces@gmail.com\u003e"
    },
    {
      "commit": "4998cd9e4f66ade6a7972da4afcd0f1546ddfc16",
      "tree": "8068bc5c994789397def72a6e8e83fb3f74efdad",
      "parents": [
        "e05c2129aad5a8620b1fda88ee2a5f79bc86a365"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Thu Apr 16 06:20:17 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 06:20:17 2026 -0700"
      },
      "message": "[improve] PIP-467: Convert pulsar-broker module logging from SLF4J to slog (#25535)"
    },
    {
      "commit": "e05c2129aad5a8620b1fda88ee2a5f79bc86a365",
      "tree": "075d962452b3500177c3f6280501a4a22bcfefc8",
      "parents": [
        "dfb06f183c312b849fce42d729c6b36181239490"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Thu Apr 16 01:26:27 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 01:26:27 2026 +0300"
      },
      "message": "[fix][sec] Upgrade Jetty to address CVE-2026-5795 (#25532)"
    },
    {
      "commit": "dfb06f183c312b849fce42d729c6b36181239490",
      "tree": "96a0fd0609108b0c3dd69852b1ae70f0cc30533e",
      "parents": [
        "40edde7dcd492851393ddb4ea05837d8c41120a3"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Wed Apr 15 09:11:38 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 09:11:38 2026 -0700"
      },
      "message": "[fix][sec] Upgrade log4j to 2.25.4 to address CVE-2026-34477, CVE-2026-34478, CVE-2026-34480, CVE-2026-34481 (#25521)\n\nCo-authored-by: Lari Hotari \u003clhotari@users.noreply.github.com\u003e"
    },
    {
      "commit": "40edde7dcd492851393ddb4ea05837d8c41120a3",
      "tree": "03857acba08bc67f15ca2cb14419074e200540f1",
      "parents": [
        "4c96c730aa2fa7c9b70ded7892a40797c36855e2"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Wed Apr 15 08:13:51 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 08:13:51 2026 -0700"
      },
      "message": "[improve] PIP-467: Convert remaining modules logging from SLF4J to slog (#25511)"
    },
    {
      "commit": "4c96c730aa2fa7c9b70ded7892a40797c36855e2",
      "tree": "e1cb1eb165765078f6ff561aa1a93483ad94938c",
      "parents": [
        "352147bff422a753fd67cf0420ad1b6e7f837e0a"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Wed Apr 15 17:54:51 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 17:54:51 2026 +0300"
      },
      "message": "[fix][sec] Upgrade Jetty to address CVE-2026-2332 (#25527)"
    },
    {
      "commit": "352147bff422a753fd67cf0420ad1b6e7f837e0a",
      "tree": "0874ef45d2b62538e5323e4e82b3d0c09aa7dc0b",
      "parents": [
        "a8e629635b740341489f65ccdf75e837a709cf70"
      ],
      "author": {
        "name": "Zixuan Liu",
        "email": "nodeces@gmail.com",
        "time": "Wed Apr 15 22:49:32 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 22:49:32 2026 +0800"
      },
      "message": "[fix][broker] Revert \"[improve][broker] Enhance advertised address resolution with fallback to localhost (#25238)\" (#25523)"
    },
    {
      "commit": "a8e629635b740341489f65ccdf75e837a709cf70",
      "tree": "7efac9249136af0c8d462b6823104c6dc6d76128",
      "parents": [
        "85937d8ea8ecf07480f51df6c76654370e35c870"
      ],
      "author": {
        "name": "Mukunda Rao Katta",
        "email": "mukunda.vjcs6@gmail.com",
        "time": "Wed Apr 15 02:51:05 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 17:51:05 2026 +0800"
      },
      "message": "[fix] Fix typo \u0027seperated\u0027 in broker comments (#25524)\n\nCo-authored-by: MukundaKatta \u003cmukundakatta@users.noreply.github.com\u003e"
    },
    {
      "commit": "85937d8ea8ecf07480f51df6c76654370e35c870",
      "tree": "3b7201a227be984c45f8e2ca695fa3f62f08e360",
      "parents": [
        "840fc34473b1da827488af3caea0dbfa563ff67b"
      ],
      "author": {
        "name": "Wenzhi Feng",
        "email": "thetumbled@apache.org",
        "time": "Wed Apr 15 14:28:56 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 14:28:56 2026 +0800"
      },
      "message": "[fix][broker] Unthrottle producers immediately when publish rate limiting is disabled (#25502)\n\nCo-authored-by: fengwenzhi \u003cfengwenzhi.max@bigo.sg\u003e"
    },
    {
      "commit": "840fc34473b1da827488af3caea0dbfa563ff67b",
      "tree": "d81a0715e2aca8c329a13487fcb921b7bed3a6e1",
      "parents": [
        "8545ca4d8d7258d31d6cfbd462e2a1ab6e69a402"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Tue Apr 14 22:33:46 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 22:33:46 2026 -0700"
      },
      "message": "[improve] PIP-467: Convert pulsar-functions module logging from SLF4J to slog (#25508)"
    },
    {
      "commit": "8545ca4d8d7258d31d6cfbd462e2a1ab6e69a402",
      "tree": "4e3d472a760da542d1ca5d44b20a4f1508796fbf",
      "parents": [
        "f688ff748fe49d06ffa0829ce61d51707584f712"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Tue Apr 14 22:15:52 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 22:15:52 2026 -0700"
      },
      "message": "[improve] Add PULSAR_LOG_FORMAT env var for easy JSON logging (#25515)"
    },
    {
      "commit": "f688ff748fe49d06ffa0829ce61d51707584f712",
      "tree": "3fc0a263ee10e73d4e46e6701daf4d1157d35c4d",
      "parents": [
        "daa5f8db6ce4befeda0b71b6e1d4ae73f4d56c11"
      ],
      "author": {
        "name": "Zixuan Liu",
        "email": "nodeces@gmail.com",
        "time": "Wed Apr 15 10:45:02 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 10:45:02 2026 +0800"
      },
      "message": "[improve][broker] Close connection when close consumer write fails (#25520)"
    },
    {
      "commit": "daa5f8db6ce4befeda0b71b6e1d4ae73f4d56c11",
      "tree": "61454010833fce1c6a01fa190513229ae5f74cda",
      "parents": [
        "cf7f9d9d939f28f808c3b0d4f820f8a00b9262cb"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Mon Apr 13 00:18:48 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 15:18:48 2026 +0800"
      },
      "message": "[improve] PIP-467: Convert pulsar-client module logging from SLF4J to slog (#25507)\n\nCo-authored-by: Copilot \u003c175728472+Copilot@users.noreply.github.com\u003e"
    },
    {
      "commit": "cf7f9d9d939f28f808c3b0d4f820f8a00b9262cb",
      "tree": "0cb83f8b2a8933bc6c00b40c18b0f1c0d46dde8a",
      "parents": [
        "089f87f329bb5c576c4a731d95bd8564ca8a66b6"
      ],
      "author": {
        "name": "Abhilash Mandaliya",
        "email": "abhilashmandaliya@gmail.com",
        "time": "Mon Apr 13 11:12:25 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 12 22:42:25 2026 -0700"
      },
      "message": "[improve][all] Upgraded Jackson to 2.21 LTS and fixed a few gradle assemble warnings (#25504)\n\nCo-authored-by: Matteo Merli \u003cmmerli@apache.org\u003e"
    },
    {
      "commit": "089f87f329bb5c576c4a731d95bd8564ca8a66b6",
      "tree": "c80f3de5ce155511e65859cccc119f22250a28b2",
      "parents": [
        "bf459748671ce62f6cb18f0b9e3b68cc06abf4b4"
      ],
      "author": {
        "name": "Zixuan Liu",
        "email": "nodeces@gmail.com",
        "time": "Mon Apr 13 13:05:23 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 12 22:05:23 2026 -0700"
      },
      "message": "[fix][ci] Ensure discard_max_bytes is set to 0 only for existing block devices (#25510)"
    },
    {
      "commit": "bf459748671ce62f6cb18f0b9e3b68cc06abf4b4",
      "tree": "fd52b493a3f8ecf603bd58ab7b9ac56015cc828a",
      "parents": [
        "aec41c4fe88f0b2a4ec01ccb81ce46f97a22bfc9"
      ],
      "author": {
        "name": "void-ptr974",
        "email": "void-ptr974@protonmail.com",
        "time": "Mon Apr 13 10:42:57 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 12 19:42:57 2026 -0700"
      },
      "message": "[fix][test] Fix flaky ExtensibleLoadManagerImpl client reconnection tests: PulsarClientException$AlreadyClosedException: Client already closed (#25509)"
    },
    {
      "commit": "aec41c4fe88f0b2a4ec01ccb81ce46f97a22bfc9",
      "tree": "e5f58775303b3e36805833040284ccb4cb0214d7",
      "parents": [
        "792a76ac762109e6ceab5fc25ae2ccb087ec2ab5"
      ],
      "author": {
        "name": "Paul Gier",
        "email": "paul.gier@ibm.com",
        "time": "Sun Apr 12 00:25:39 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Apr 11 22:25:39 2026 -0700"
      },
      "message": "[improve][broker] update broker error message to include tenant name (#25503)"
    },
    {
      "commit": "792a76ac762109e6ceab5fc25ae2ccb087ec2ab5",
      "tree": "954a1e993e43808e7970806f0ef7a103443980e5",
      "parents": [
        "9855b18ce96f05c49961cbc390ea53337658ca1a"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Fri Apr 10 12:32:14 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 10 12:32:14 2026 -0700"
      },
      "message": "[improve] PIP-467: Convert pulsar-common module logging from SLF4J to slog (#25506)"
    },
    {
      "commit": "9855b18ce96f05c49961cbc390ea53337658ca1a",
      "tree": "3767346b482075cec3ee74d048c5b5f5b22499ee",
      "parents": [
        "a39d241b0883df04ce6294e48d195b1be37e3308"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Fri Apr 10 10:44:27 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 10 10:44:27 2026 -0700"
      },
      "message": "[improve] PIP-467: Convert pulsar-metadata module logging from SLF4J to slog (#25505)"
    },
    {
      "commit": "a39d241b0883df04ce6294e48d195b1be37e3308",
      "tree": "3f955ee196aff4e2572b08df144e515832664ad2",
      "parents": [
        "dfe03c4fc1b0611fbc77698e5c0e328d7ef3242b"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Fri Apr 10 00:29:17 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 10 15:29:17 2026 +0800"
      },
      "message": "[improve] PIP-467: Convert managed-ledger module logging from SLF4J to slog (#25490)"
    },
    {
      "commit": "dfe03c4fc1b0611fbc77698e5c0e328d7ef3242b",
      "tree": "5d2be959acb1f61f24c79fc18bfab4d42ce53083",
      "parents": [
        "c86a0405a5aaa3b27f659dd58f072874f2db5b2b"
      ],
      "author": {
        "name": "Oneby Wang",
        "email": "44369297+oneby-wang@users.noreply.github.com",
        "time": "Fri Apr 10 11:29:04 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 10 11:29:04 2026 +0800"
      },
      "message": "[improve][client] PIP-234: Support sharing the memory limit controller across multiple isolated Pulsar client instances (#25477)"
    },
    {
      "commit": "c86a0405a5aaa3b27f659dd58f072874f2db5b2b",
      "tree": "b02e981503f592277c0593dbb666c0ac209ba329",
      "parents": [
        "12bcd6bcc9e8379c49555b1d40e6103de9b26384"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Thu Apr 09 09:58:42 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 09 09:58:42 2026 -0700"
      },
      "message": "[cleanup][build] Remove unused structured-event-log module (#25492)"
    },
    {
      "commit": "12bcd6bcc9e8379c49555b1d40e6103de9b26384",
      "tree": "04fb8c0210820bca6575a5fc5e9e733025a461b5",
      "parents": [
        "5b2778e8676ede45025b8c94b563b8db258c50fc"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Thu Apr 09 11:17:29 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 09 16:17:29 2026 +0800"
      },
      "message": "[fix][test] Fix flaky ExtensibleLoadManagerTest.startBroker timeout (#25500)"
    },
    {
      "commit": "5b2778e8676ede45025b8c94b563b8db258c50fc",
      "tree": "ac08d9334112877a5aca55b55dc2aa019f65e5ab",
      "parents": [
        "0c86cf0032a558173c390b720d4e7958e9994702"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Wed Apr 08 23:49:31 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 09 14:49:31 2026 +0800"
      },
      "message": "[fix] Upgrade Jetty to 12.1.6 to fix CVE-2026-1605 (#25485)"
    },
    {
      "commit": "0c86cf0032a558173c390b720d4e7958e9994702",
      "tree": "5c0dae30c27c1c3c1afc91abbc59779567694b6c",
      "parents": [
        "37696d2e84771f379583068b4e3a59102c4fa024"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Wed Apr 08 23:47:37 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 09 14:47:37 2026 +0800"
      },
      "message": "[improve] Add context map to log4j2 pattern layouts (#25491)"
    },
    {
      "commit": "37696d2e84771f379583068b4e3a59102c4fa024",
      "tree": "ac4817b1735c8a1e081054f3d26afc0a30a00c51",
      "parents": [
        "0309a99ea266fd7235f4db62d3109d96643d155c"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Wed Apr 08 20:41:57 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 09 11:41:57 2026 +0800"
      },
      "message": "[fix][test] Fix flaky TopicFromMessageTest by using unique topic names (#25494)"
    },
    {
      "commit": "0309a99ea266fd7235f4db62d3109d96643d155c",
      "tree": "97f5cb0d4edd56c36fdfbaf8602880d64caa9b79",
      "parents": [
        "7ce8a8c7a03b2cef1360d05f918436c84d7627fe"
      ],
      "author": {
        "name": "Matteo Merli",
        "email": "mmerli@apache.org",
        "time": "Wed Apr 08 20:41:12 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 09 11:41:12 2026 +0800"
      },
      "message": "[fix][test] Fix flaky InterceptorsTest and ProduceWithMessageIdTest (#25499)"
    },
    {
      "commit": "7ce8a8c7a03b2cef1360d05f918436c84d7627fe",
      "tree": "403cb14e605a35f5da9fa878c18b488dfc949ac8",
      "parents": [
        "104ea57c94b4364e4a290f5794a0d81a5c2c6342"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Thu Apr 09 01:39:36 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 08 15:39:36 2026 -0700"
      },
      "message": "[fix][test] Fix flaky ServerCnxTest.testCreateProducerTimeoutThenCreateSameNamedProducerShouldFail (#25497)"
    },
    {
      "commit": "104ea57c94b4364e4a290f5794a0d81a5c2c6342",
      "tree": "cd76d6aca999609a0e034ff8abefe9ee8efb20f5",
      "parents": [
        "41a3932cbbdf16a88f29734dbd884a76eba4384d"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Thu Apr 09 01:27:05 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 08 15:27:05 2026 -0700"
      },
      "message": "[fix][test] Fix flaky ManagedLedgerTest.testNoRetention and testInvalidateReadHandleWhenDeleteLedger (#25495)"
    },
    {
      "commit": "41a3932cbbdf16a88f29734dbd884a76eba4384d",
      "tree": "476e448cff32be2832d1548e6dfe52aaa913a48a",
      "parents": [
        "d96da971212e17aeba42fde1eb95bb3ff19c90fe"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Thu Apr 09 01:26:46 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 08 15:26:46 2026 -0700"
      },
      "message": "[improve][build] Add Maven publishing conventions for ASF release (#25457)"
    },
    {
      "commit": "d96da971212e17aeba42fde1eb95bb3ff19c90fe",
      "tree": "694b9260131cd38972acb266d71d334972d7d3a0",
      "parents": [
        "04177057217e7b412912553f56d64f7f7e90576c"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Thu Apr 09 00:49:31 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 08 14:49:31 2026 -0700"
      },
      "message": "[fix][test] Fix flaky ModularLoadManagerImplTest and IsolatedBookieEnsemblePlacementPolicyTest (#25496)"
    },
    {
      "commit": "04177057217e7b412912553f56d64f7f7e90576c",
      "tree": "4c61ecee58a8910825a68ac18079eef49fa34dc3",
      "parents": [
        "381fa13b5044bf71fbdfbecf5159d727f70056fe"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Thu Apr 09 00:49:04 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 08 14:49:04 2026 -0700"
      },
      "message": "[fix][test] Fix flaky LeaderElectionServiceTest and PersistentDispatcherFailoverConsumerTest (#25498)"
    },
    {
      "commit": "381fa13b5044bf71fbdfbecf5159d727f70056fe",
      "tree": "c1b4899ad85f6a209aebb59d2ab8566e872ed23d",
      "parents": [
        "0f97cbaa181f3b617d756ee14b2d213fc4b8b251"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Wed Apr 08 22:13:16 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 08 12:13:16 2026 -0700"
      },
      "message": "[fix][test] Fix thread resource leaks in tests and PrometheusMetricsProvider (#25487)"
    },
    {
      "commit": "0f97cbaa181f3b617d756ee14b2d213fc4b8b251",
      "tree": "6cd5e3480e7e937eccc1092ac56b7ca2e8b85f98",
      "parents": [
        "60d9cf558b6d97299b39751d02f5e18145adff97"
      ],
      "author": {
        "name": "Lari Hotari",
        "email": "lhotari@users.noreply.github.com",
        "time": "Wed Apr 08 22:12:47 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 08 12:12:47 2026 -0700"
      },
      "message": "[fix][test] Fix flaky ReplicatorTest.testResumptionAfterBacklogRelaxed (#25493)"
    }
  ],
  "next": "60d9cf558b6d97299b39751d02f5e18145adff97"
}
