You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by te...@apache.org on 2023/01/11 03:39:10 UTC
[pulsar-site] 01/01: Update release note
This is an automated email from the ASF dual-hosted git repository.
technoboy pushed a commit to branch release-2.11.0
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git
commit f87d46889cf9614e2b91d7a31e652e6765b956de
Author: Jiwe Guo <te...@apache.org>
AuthorDate: Wed Jan 11 11:38:57 2023 +0800
Update release note
---
release-notes/versioned/client-cpp-2.11.0.md | 34 ++
release-notes/versioned/client-java-2.11.0.md | 47 ++
release-notes/versioned/client-python-2.11.0.md | 17 +
release-notes/versioned/client-websocket-2.11.0.md | 10 +
release-notes/versioned/pulsar-2.11.0.md | 554 +++++++++++++++++++++
releases.json | 1 +
6 files changed, 663 insertions(+)
diff --git a/release-notes/versioned/client-cpp-2.11.0.md b/release-notes/versioned/client-cpp-2.11.0.md
new file mode 100644
index 00000000000..8ca4e5660d1
--- /dev/null
+++ b/release-notes/versioned/client-cpp-2.11.0.md
@@ -0,0 +1,34 @@
+---
+id: client-cpp-2.11.0
+title: Client CPP 2.11.0
+sidebar_label: Client CPP 2.11.0
+---
+
+- [feature][C++] Add basic authentication [#15822](https://github.com/apache/pulsar/pull/15822)
+- [feature][C++] Support multiple brokers in service URL [#17162](https://github.com/apache/pulsar/pull/17162)
+- [improve][C++] Use an atomic state_ instead of the lock to improve performance [#16940](https://github.com/apache/pulsar/pull/16940)
+- [improve][C++] Add producerId to the log of closed producer [#17079](https://github.com/apache/pulsar/pull/17079)
+- [improve][C++] Add getLastMessageIdAsync in Consumer [#16182](https://github.com/apache/pulsar/pull/16182)
+- [improve][C++] Rename function name: pulsar_producer_configuration_set_crypto_failure_action [#16031](https://github.com/apache/pulsar/pull/16031)
+- [improve][C++] Unblock all threads when Pulsar client is closed [#15726](https://github.com/apache/pulsar/pull/15726)
+- [improve][C++] Avoid race condition causing double callback on close [#15508](https://github.com/apache/pulsar/pull/15508)
+- [improve][C++] Add subscription properties to consumer for cpp [#15020](https://github.com/apache/pulsar/pull/15020)
+- [improve][C++] Use an atomic state_ instead of the lock to improve performance [#16940](https://github.com/apache/pulsar/pull/16940)
+- [improve][C++] Reset havePendingPingRequest flag for any data received from broker [#17658](https://github.com/apache/pulsar/pull/17658)
+- [cleanup][C++] Remove the flaky and meaningless tests [#15271](https://github.com/apache/pulsar/pull/15271)
+- [fix][C++] Fix potential segfault when resending messages [#17395](https://github.com/apache/pulsar/pull/17395)
+- [fix][C++] Support retry and apply operation timeout for lookup requests [#17410](https://github.com/apache/pulsar/pull/17410)
+- [fix][C++] Fix multi-topics consumer close segmentation fault [#17239](https://github.com/apache/pulsar/pull/17239)
+- [fix][C++] Wait until event loop terminates when closing the Client [#15316](https://github.com/apache/pulsar/pull/15316)
+- [fix][C++] Fix rpm and deb packaging [#17064](https://github.com/apache/pulsar/pull/17064)
+- [fix][C++] Fix getLastMessageIdAsync returns ResultNotConnected after seek [#16943](https://github.com/apache/pulsar/pull/16943)
+- [fix][C++] Generate correct well-known OpenID configuration URL [#15928](https://github.com/apache/pulsar/pull/15928)
+- [fix][C++] Fix single message metadata not set correctly [#15072](https://github.com/apache/pulsar/pull/15072)
+- [fix][C++] Fix UnknownError might be returned for a partitioned producer [#15161](https://github.com/apache/pulsar/pull/15161)
+- [fix][C++] Fix connection is not closed when broker closes the connection to proxy[#14070](https://github.com/apache/pulsar/pull/14070)
+- [fix][C++] Fix send callback might not be invoked in key based batching [#14898](https://github.com/apache/pulsar/pull/14898)
+- [fix][C++] Fix C++ client compile error because of keyword optional is redundant in PaddingDemo.proto [#14862](https://github.com/apache/pulsar/pull/14862)
+- [fix][C++] Fix segmentation fault when creating socket failed [#14834](https://github.com/apache/pulsar/pull/14834)
+- [fix][C++] Fix the race condition of connect timeout task [#14823](https://github.com/apache/pulsar/pull/14823)
+- [fix][C++] Fix producer is never destructed until client is closed [#14797](https://github.com/apache/pulsar/pull/14797)
+- [fix][C++] Close messages_ when PartitionedConsumer is closed [#16887](https://github.com/apache/pulsar/pull/16887)
\ No newline at end of file
diff --git a/release-notes/versioned/client-java-2.11.0.md b/release-notes/versioned/client-java-2.11.0.md
new file mode 100644
index 00000000000..6e4e4406858
--- /dev/null
+++ b/release-notes/versioned/client-java-2.11.0.md
@@ -0,0 +1,47 @@
+---
+id: client-java-2.11.0
+title: Client Java 2.11.0
+sidebar_label: Client Java 2.11.0
+---
+
+- [feature][Java] Support Reader Interceptor [#14729](https://github.com/apache/pulsar/pull/14729)
+- [improve][Java] Refactor SchemaHash to reduce call of hashFunction in SchemaHash [#17948](https://github.com/apache/pulsar/pull/17948)
+- [improve][Java] Send CloseConsumer on client timeout [#16616](https://github.com/apache/pulsar/pull/16616)
+- [improve][Java] Make DeadLetterPolicy deserializable [#16513](https://github.com/apache/pulsar/pull/16513)
+- [improve][Java] Improve performance of multi-topic consumer with more than one IO thread [#16336](https://github.com/apache/pulsar/pull/16336)
+- [improve][Java] Add initialization for the OpSendMsg [#16256](https://github.com/apache/pulsar/pull/16256)
+- [improve][Java] Replace ScheduledExecutor to improve performance of message consumption [#16236](https://github.com/apache/pulsar/pull/16236)
+- [improve][Java] Returns immutable data set when using TableView [#14833](https://github.com/apache/pulsar/pull/14833)
+- [improve][Java] Switch to rely on Netty for Hostname Verification [#15824](https://github.com/apache/pulsar/pull/15824)
+- [improve][Java] Remove sensitive msg from consumer/producer stats log [#15483](https://github.com/apache/pulsar/pull/15483)
+- [improve][Java] Add pending messages information while printing the producer stats [#15440](https://github.com/apache/pulsar/pull/15440)
+- [improve][Java] Check consumer schema null in advance [#15327](https://github.com/apache/pulsar/pull/15327)
+- [improve][Java] Avoid timer task run before previous subscribe complete [#14818](https://github.com/apache/pulsar/pull/14818)
+- [improve][Java] Optimize pause when creating sub consumers in multi-topic consumer [#14566](https://github.com/apache/pulsar/pull/14566)
+- [cleanup][Java] Reduce code duplication in admin client [#16377](https://github.com/apache/pulsar/pull/16377)
+- [cleanup][Java] Remove redundant check for chunked message TotalChunkMsgSize in ConsumerImpl [#16797](https://github.com/apache/pulsar/pull/16797)
+- [fix][Java] Unwrap completion exception for Lookup Services [#17717](https://github.com/apache/pulsar/pull/17717)
+- [fix][Java] Fixed ack failure in ReaderImpl due to null messageId [#17728](https://github.com/apache/pulsar/pull/17728)
+- [fix][Java] Fix scheduledExecutorProvider not shutdown [#17527](https://github.com/apache/pulsar/pull/17527)
+- [fix][Java] Fix the message present in incoming queue after go to DLQ [#17326](https://github.com/apache/pulsar/pull/17326)
+- [fix][Java] Fix reach redeliverCount client can't send messages to DLQ [#17287](https://github.com/apache/pulsar/pull/17287)
+- [fix][Java] Fix reach redeliverCount client can't send batch messags [#17317](https://github.com/apache/pulsar/pull/17317)
+- [fix][Java] LastBatchSendNanoTime initialization [#17058](https://github.com/apache/pulsar/pull/17058)
+- [fix][Java] Fixed inactive cnx channel causing the request to fail to time out and fail to return [#17051](https://github.com/apache/pulsar/pull/17051)
+- [fix][Java] Release semaphore before discarding messages in batchMessageContainer [#17019](https://github.com/apache/pulsar/pull/17019)
+- [fix][Java] Fix subscription topic name error [#16719](https://github.com/apache/pulsar/pull/16719)
+- [fix][Java] Release memory usage for invalid messages [#16835](https://github.com/apache/pulsar/pull/16835)
+- [fix][Java] Fix client memory limit currentUsage leak and semaphore release duplicated in ProducerImpl [#16837](https://github.com/apache/pulsar/pull/16837)
+- [fix][Java] Add message key if exists to deadLetter messages [#16615](https://github.com/apache/pulsar/pull/16615)
+- [fix][Java] Fix large messages sometimes cannot be split into chunks [#16196](https://github.com/apache/pulsar/pull/16196)
+- [fix][Java] Only trigger the batch receive timeout when having pending batch receives requests [#16160](https://github.com/apache/pulsar/pull/16160)
+- [fix][Java] Fix the startMessageId can't be respected as the ChunkMessageID [#16154](https://github.com/apache/pulsar/pull/16154)
+- [fix][Java] Fix auto cluster failover can't resolve host bug [#16152](https://github.com/apache/pulsar/pull/16152)
+- [fix][Java] Prevent the trigger from running concurrently in the memory limit controller [#15737](https://github.com/apache/pulsar/pull/15737)
+- [fix][Java] Fix messages sent by producers without schema cannot be decoded [#15622](https://github.com/apache/pulsar/pull/15622)
+- [fix][Java] Fix flaky BatchMessageTest by initializing lastBatchSendNanoTime [#15406](https://github.com/apache/pulsar/pull/15406)
+- [fix][Java] Fix inconsistent parameter of TopicPolicies.getSubscriptionDispatchRate [#15293](https://github.com/apache/pulsar/pull/15293)
+- [fix][Java] Fix typo in ConsumerBuilder [#15194](https://github.com/apache/pulsar/pull/15194)
+- [fix][Java] Fix performance regression with message listener [#15162](https://github.com/apache/pulsar/pull/15162)
+- [fix][Java] ConsumerBuilderImpl can not set null to deadLetterPolicy [#14980](https://github.com/apache/pulsar/pull/14980)
+- [fix][Java] Fix message publishing stuck when enabling batch [#14870](https://github.com/apache/pulsar/pull/14870)
diff --git a/release-notes/versioned/client-python-2.11.0.md b/release-notes/versioned/client-python-2.11.0.md
new file mode 100644
index 00000000000..5ac29fa099e
--- /dev/null
+++ b/release-notes/versioned/client-python-2.11.0.md
@@ -0,0 +1,17 @@
+---
+id: client-python-2.11.0
+title: Client Python 2.11.0
+sidebar_label: Client Python 2.11.0
+---
+
+- [improve][Python] Add getLastMessageIdAsync C binding [#16255](https://github.com/apache/pulsar/pull/16255)
+- [improve][Python] Use MacOS 10.15 as the target OS version for Python wheel files [#15788](https://github.com/apache/pulsar/pull/15788)
+- [improve][Python] Adjust scripts to build wheel files for Python 3.7 on Mac [#15407](https://github.com/apache/pulsar/pull/15407)
+- [improve][Python] Change python cp35-cp35m lib build version to manylinux1 [#15180](https://github.com/apache/pulsar/pull/15180)
+- [improve][Python] Generate universal2 wheel files for MacOS [#15054](https://github.com/apache/pulsar/pull/15054)
+- [improve][Python] Add script to generate Wheel files for macOS [#15024](https://github.com/apache/pulsar/pull/15024)
+- [improve][Python] Add build for wheels on Alpine Linux [#15016](https://github.com/apache/pulsar/pull/15016)
+- [improve][Python] Add build for ARM64 on Linux and Python 3.10 [#15004](https://github.com/apache/pulsar/pull/15004)
+- [cleanup][Python] Remove dependencies only need by Python2 [#15460](https://github.com/apache/pulsar/pull/15460)
+- [cleanup][Python] Remove scripts to create wheel files in vagrant VMs [#15459](https://github.com/apache/pulsar/pull/15459)
+- [fix][Python] Remove reserved keys when JsonSchema is being encoded [#15947](https://github.com/apache/pulsar/pull/15947)
\ No newline at end of file
diff --git a/release-notes/versioned/client-websocket-2.11.0.md b/release-notes/versioned/client-websocket-2.11.0.md
new file mode 100644
index 00000000000..5564ba49c59
--- /dev/null
+++ b/release-notes/versioned/client-websocket-2.11.0.md
@@ -0,0 +1,10 @@
+---
+id: client-websocket-2.11.0
+title: Client Websocket 2.11.0
+sidebar_label: Client Websocket 2.11.0
+---
+
+- [feature][WebSocket] Support encryption in websocket proxy [#16234](https://github.com/apache/pulsar/pull/16234)
+- [improve][WebSocket] Add KeyStore support in WebSocket, Function Worker HTTPS Servers [#15084](https://github.com/apache/pulsar/pull/15084)
+- [fix][WebSocket] Fix MultiTopicReader#getConsumer ClassCastException [#15534](https://github.com/apache/pulsar/pull/15534)
+- [fix][WebSocket] Fix ClassCastException when user create MultiTopicReader [#14316](https://github.com/apache/pulsar/pull/14316)
\ No newline at end of file
diff --git a/release-notes/versioned/pulsar-2.11.0.md b/release-notes/versioned/pulsar-2.11.0.md
new file mode 100644
index 00000000000..07d70d7bb8e
--- /dev/null
+++ b/release-notes/versioned/pulsar-2.11.0.md
@@ -0,0 +1,554 @@
+---
+id: pulsar-2.11.0
+title: Apache Pulsar 2.11.0
+sidebar_label: Apache Pulsar 2.11.0
+---
+
+#### 2022-08-16
+
+### Important notice
+- Rename Pulsar txn metrics to specify OpenMetrics [#16581](https://github.com/apache/pulsar/pull/16581)
+- Rename Pulsar schema metrics to specify OpenMetrics [#16610](https://github.com/apache/pulsar/pull/16610)
+- Rename Pulsar lb metrics to specify OpenMetrics [#16611](https://github.com/apache/pulsar/pull/16611)
+- Remove jul-to-slf4j #16320 [#16320](https://github.com/apache/pulsar/pull/16320)
+- Fix get non-persistent topics issue in Namespaces [#16170](https://github.com/apache/pulsar/pull/16170)
+- Fix producer/consume permission can’t get schema [#15956](https://github.com/apache/pulsar/pull/15956)
+- Add verification for configured default backlog quota and retention [#15441](https://github.com/apache/pulsar/pull/15441)
+- Fix ineffective broker LoadBalance [#15314](https://github.com/apache/pulsar/pull/15314)
+- Ensure the deletion consistency of topic and schema [#14608](https://github.com/apache/pulsar/pull/14608)
+- Transaction cumulative ack redeliver change [#14371](https://github.com/apache/pulsar/pull/14371)
+- Bump prometheus client version from 0.5.0 to 0.15.0 [#13785](https://github.com/apache/pulsar/pull/13785)
+- [PIP-158] Split client TLS transport encryption from authentication [#15634](https://github.com/apache/pulsar/pull/15634)
+- [PIP-155] Remove Python 2 support [#15376](https://github.com/apache/pulsar/pull/15376)
+- [PIP-156] Build Pulsar Server on Java 17 [#15264](https://github.com/apache/pulsar/pull/15264)
+- [PIP-162] Enable system topic by default [#15619](https://github.com/apache/pulsar/pull/15619)
+
+### PIPs
+- [PIP 37] Support chunking with Shared subscription [#16202](https://github.com/apache/pulsar/pull/16202)
+- [PIP-74] Pulsar client memory limits [#14400](https://github.com/apache/pulsar/pull/14400)
+- [PIP-81] Split createNewMetadataLedger into multiple methods for reuse [#15425](https://github.com/apache/pulsar/pull/15425)
+- [PIP 97] Update Authentication Interfaces to Include Async Authentication Methods [#12104](https://github.com/apache/pulsar/pull/12104)
+- [PIP-100] Support pluggable topic factory [#12235](https://github.com/apache/pulsar/pull/12235)
+- [PIP-105] Store Subscription properties [#15757](https://github.com/apache/pulsar/pull/15757)
+- [PIP-117] Change Pulsar standalone defaults [#15478](https://github.com/apache/pulsar/pull/15478)
+- [PIP-132] Include message header size when checking maxMessageSize for non-batch messages on the client side [#14007](https://github.com/apache/pulsar/pull/14007)
+- [PIP-136] Sync Pulsar metadata across multiple clouds [#16425](https://github.com/apache/pulsar/pull/16425)
+- [PIP-143] Support split bundle by specified boundaries [#13796](https://github.com/apache/pulsar/pull/13796)
+- [PIP-145] Improve performance of regex subscriptions [#14505](https://github.com/apache/pulsar/pull/14505)
+- [PIP-146] ManagedCursorInfo compression [#14542](https://github.com/apache/pulsar/pull/14542)
+- [PIP 149] Make the REST Admin API fully async [#14365](https://github.com/apache/pulsar/issues/14365)
+- [PIP-152] Support subscription level dispatch rate limiter setting [#15295](https://github.com/apache/pulsar/issues/15295)
+- [PIP-153] Optimize metadataPositions in MLPendingAckStore [#15137](https://github.com/apache/pulsar/pull/15137)
+- [PIP-160] Make transactions work more efficiently by aggregation operation for transaction log and pending ack store [#15370](https://github.com/apache/pulsar/issues/15370)
+- [PIP-161] Exclusive Producer: ability to fence out an existing Producer [#15488](https://github.com/apache/pulsar/pull/15488)
+- [PIP-163] Add lowWaterMark check before appending entry to TB [#15424](https://github.com/apache/pulsar/pull/15424)
+- [PIP-166] Add MANUAL delivery semantics for Functions [#16279](https://github.com/apache/pulsar/pull/16279)
+- [PIP-179] Support the admin API to check unknown request parameters [#16135](https://github.com/apache/pulsar/issues/16135)
+- [PIP-181] Pulsar Shell [#16250](https://github.com/apache/pulsar/issues/16250)
+- [PIP-184] Topic specific consumer priorityLevel [#16715](https://github.com/apache/pulsar/issues/16715)
+- [PIP-187] Add API to analyze a subscription backlog and provide an accurate value [#16545](https://github.com/apache/pulsar/issues/16545)
+- [PIP-201] Extensions mechanism for Pulsar Admin CLI tools [#17158](https://github.com/apache/pulsar/issues/17158)
+
+### Broker
+- [PIP 81] Split the individual acknowledgments into multiple entries
+ - Add range set wrapper to support record dirty ledgers [#15607](https://github.com/apache/pulsar/pull/15607)
+ - Notifications for faster topic discovery [#16062](https://github.com/apache/pulsar/pull/16062)
+ - Split createNewMetadataLedger into multiple methods for reuse [#15425](https://github.com/apache/pulsar/pull/15425)
+- [PIP 105] Store Subscription properties
+ - Store Subscription properties [#15757](https://github.com/apache/pulsar/pull/15757)
+ - Pulsar Admin: create subscription with Properties [#15503](https://github.com/apache/pulsar/pull/15503)
+ - Fix error on recycled SubscriptionPropertiesList [#15335](https://github.com/apache/pulsar/pull/15335)
+- [PIP 160] Make transactions work more efficiently by aggregation operation for transaction log and pending ack store
+ - Pending ack log store enables the batch feature [#16707](https://github.com/apache/pulsar/pull/16707)
+ - Metrics stats of Transaction buffered writer [#16758](https://github.com/apache/pulsar/pull/16758)
+ - Transaction buffered writer supports Timer [#16727](https://github.com/apache/pulsar/pull/16727)
+ - Transaction log store enables the batch feature [#16685](https://github.com/apache/pulsar/pull/16685)
+ - Protocol changes and configuration changes for transaction batch log [#16617](https://github.com/apache/pulsar/pull/16617)
+ - Txn buffered writer for transaction log batch [#16428](https://github.com/apache/pulsar/pull/16428)
+- [PIP 145] Improve performance of regex subscriptions
+ - Enable evaluating subscription pattern on broker side [#14804](https://github.com/apache/pulsar/pull/14804)
+ - Notifications for faster topic discovery [#16062](https://github.com/apache/pulsar/pull/16062)
+- [PIP-156] Build Pulsar Server on Java 17
+ - Build changes by dropping some required checks [#15496](https://github.com/apache/pulsar/pull/15496)
+ - Build Pulsar Server on Java 17 [#15264](https://github.com/apache/pulsar/pull/15264)
+- Ledger handle leak when update schema [#17283](https://github.com/apache/pulsar/pull/17283)
+- After the broker is restarted, the cache dynamic configuration is invalid [#17035](https://github.com/apache/pulsar/pull/17035)
+- Fix if dynamicConfig item in ZK do not exist in broker cause NPE [#17705](https://github.com/apache/pulsar/pull/17705)
+- Cleanup state when lock revalidation gets LockBusyException [#17700](https://github.com/apache/pulsar/pull/17700)
+- Fix parsing partitionedKey with Base64 encode issue [#17687](https://github.com/apache/pulsar/pull/17687)
+- Fix namespace backlog quota check with retention [#17706](https://github.com/apache/pulsar/pull/17706)
+- Set revalidateAfterReconnection true for certain failures [#17664](https://github.com/apache/pulsar/pull/17664)
+- ServerCnx: log at warning level when topic not found [#16225](https://github.com/apache/pulsar/pull/16225)
+- Correctly handle list configuration values [#17661](https://github.com/apache/pulsar/pull/17661)
+- Allow to configure and disable the size of lookahead for detecting fixed delays in messages [#17907](https://github.com/apache/pulsar/pull/17907)
+- Fix the broker shutdown issue after Zookeeper node crashed [#17909](https://github.com/apache/pulsar/pull/17909)
+- Fix the wrong NIC speed rate unit [#17890](https://github.com/apache/pulsar/pull/17890)
+- Make BookieId work with PulsarRegistrationDriver [#17762](https://github.com/apache/pulsar/pull/17762)
+- Prevent new connection request when broker is closing [#17314](https://github.com/apache/pulsar/pull/17314)
+- Prevent partitioned metadata lookup request when broker is closing [#17315](https://github.com/apache/pulsar/pull/17315)
+- Consumer can't consume messages because there has two sames topics in one broker [#17526](https://github.com/apache/pulsar/pull/17526)
+- Fix broker irrational behavior when it is closing [#17085](https://github.com/apache/pulsar/pull/17085)
+- Fix NPE when ResourceGroupService execute scheduled task [#17840](https://github.com/apache/pulsar/pull/17840)
+- Optimize getting ledger and entry id from entry [#17108](https://github.com/apache/pulsar/pull/17108)
+- Unregister topic policy listener if managed ledger close failed [#17652](https://github.com/apache/pulsar/pull/17652)
+- Cancel the loadShedding task when closing pulsar service [#17632](https://github.com/apache/pulsar/pull/17632)
+- Topic policy reader can't recover when get any exception [#17562](https://github.com/apache/pulsar/pull/17562)
+- Multiple consumer dispatcher stuck when unackedMessages greater than maxUnackedMessages [#17483](https://github.com/apache/pulsar/pull/17483)
+- Fix memoryLimitController currentUsage and MaxQueueSize semaphore leak when batchMessageContainer add message exception [#17276](https://github.com/apache/pulsar/pull/17276)
+- Fix arithmetic exception for LeastResourceUsageWithWeight strategy [#17149](https://github.com/apache/pulsar/pull/17149)
+- Fix update topic remove properties [#17231](https://github.com/apache/pulsar/pull/17231)
+- Fix ack with txn compute ackedCount error [#17016](https://github.com/apache/pulsar/pull/17016)
+- Improve cursor.getNumberOfEntries if isUnackedRangesOpenCacheSetEnabled=true [#17465](https://github.com/apache/pulsar/pull/17465)
+- Fix dispatch duplicated messages with Exclusive mode [#17237](https://github.com/apache/pulsar/pull/17237)
+- Remove internalUpdateOffloadPolicies to keep the same behavior update topic policy [#17236](https://github.com/apache/pulsar/pull/17236)
+- Fix update topic remove properties [#17231](https://github.com/apache/pulsar/pull/17231)
+- Fix arithmetic exception for LeastResourceUsageWithWeight strategy [#17149](https://github.com/apache/pulsar/pull/17149)
+- Fix pulsarLedgerIdGenerator can't delete index path when zk metadata store config rootPath [#17192](https://github.com/apache/pulsar/pull/17192)
+- Make deleteTopicPolicies serialized is executed when close topic [#15811](https://github.com/apache/pulsar/pull/15811)
+- Avoid messages being repeatedly replayed with SHARED subscriptions (streaming dispatcher) [#17163](https://github.com/apache/pulsar/pull/17163)
+- Optimize the shutdown sequence of broker service when it close [#16756](https://github.com/apache/pulsar/pull/16756)
+- Add ServerCnx state check before server handle request [#17084](https://github.com/apache/pulsar/pull/17084)
+- Pass subscriptionName to auth service [#17123](https://github.com/apache/pulsar/pull/17123)
+- Support loadBalancerSheddingIntervalMinutes dynamic configuration [#16408](https://github.com/apache/pulsar/pull/16408)
+- Fix out of order data replication [#17154](https://github.com/apache/pulsar/pull/17154)
+- Fix schema does not replicate successfully [#17049](https://github.com/apache/pulsar/pull/17049)
+- Streaming dispatcher stuck after reading the first entry with SHARED subscriptions [#17143](https://github.com/apache/pulsar/pull/17143)
+- Fix calculate avg message per entry [#17046](https://github.com/apache/pulsar/pull/17046)
+- Fix bundle-data metadata leak because bundle stats was not cleaned up [#17095](https://github.com/apache/pulsar/pull/17095)
+- Duplicate ByteBuffer when Caching Backlogged Consumers [#17105](https://github.com/apache/pulsar/pull/17105)
+- Fix offload read handle NPE [#17056](https://github.com/apache/pulsar/pull/17056)
+- Move the state check forward [#17020](https://github.com/apache/pulsar/pull/17020)
+- Improve naming for delete topic error [#16965](https://github.com/apache/pulsar/pull/16965)
+- Increment topic stats outbound message counters and update rate after messages have been written to the TCP/IP connection [#17043](https://github.com/apache/pulsar/pull/17043)
+- Prevent StackOverFlowException in SHARED subscription [#16968](https://github.com/apache/pulsar/pull/16968)
+- Improve the package download process [#16365](https://github.com/apache/pulsar/pull/16365)
+- Skip mis-configured resource usage(>100%) in load balancer [#16937](https://github.com/apache/pulsar/pull/16937)
+- Not allow terminating system topic [#17006](https://github.com/apache/pulsar/pull/17006)
+- Follow up on #16968 to restore some behavior in PersistentDispatcherMultipleConsumers [#17018](https://github.com/apache/pulsar/pull/17018)
+- Remove exception log when access status.html [#17025](https://github.com/apache/pulsar/pull/17025)
+- Remove unnecessary lock on the stats thread [#16983](https://github.com/apache/pulsar/pull/16983)
+- Fix memory leak if entry exists in cache [#16996](https://github.com/apache/pulsar/pull/16996)
+- Fix ConcurrentModificationException when ModularLoadManagerImpl start [#16953](https://github.com/apache/pulsar/pull/16953)
+- Split TLS transport encryption support from authentication [#16819](https://github.com/apache/pulsar/pull/16819)
+- Support start multiple bookies for BKCluster [#16847](https://github.com/apache/pulsar/pull/16847)
+- Fix MaxQueueSize semaphore release leak in createOpSendMsg [#16915](https://github.com/apache/pulsar/pull/16915)
+- PulsarLedgerManager to pass correct error code to BK client [#16857](https://github.com/apache/pulsar/pull/16857)
+- Improve get the basic authentication config [#16526](https://github.com/apache/pulsar/pull/16526)
+- Change delete pending ack position from foreach to firstKey [#16927](https://github.com/apache/pulsar/pull/16927)
+- Adapt basic authentication configuration with prefix [#16935](https://github.com/apache/pulsar/pull/16935)
+- Fix misleading -c option in pulsar standalone [#16838](https://github.com/apache/pulsar/pull/16838)
+- Fix rack awareness cache expiration data race [#16825](https://github.com/apache/pulsar/pull/16825)
+- Fix Repeated messages of shared dispatcher [#16812](https://github.com/apache/pulsar/pull/16812)
+- Avoid IllegalStateException while client_version is not set [#16788](https://github.com/apache/pulsar/pull/16788)
+- Optimize concurrent collection's shrink logic [#16754](https://github.com/apache/pulsar/pull/16754)
+- Support clear old bookie data for BKCluster [#16744](https://github.com/apache/pulsar/pull/16744)
+- Fix consumer does not abide by the max unacks limitation for Key_Shared subscription [#16718](https://github.com/apache/pulsar/pull/16718)
+- Avoid ConcurrentModificationException for ModularLoadManagerImpl.cleanupDeadBrokersData() [#16690](https://github.com/apache/pulsar/pull/16690)
+- Retry to delete the namespace if new topics created during the namespace deletion [#16676](https://github.com/apache/pulsar/pull/16676)
+- Fix consumer does not abide by the max unacks limitation for Shared subscription [#16670](https://github.com/apache/pulsar/pull/16670)
+- Support for get token from HTTP params [#16650](https://github.com/apache/pulsar/pull/16650)
+- Make defaultOffloader create after offloaderStats overrides [#16638](https://github.com/apache/pulsar/pull/16638)
+- BadVersionException when splitting bundles, delay 100ms and try again [#16612](https://github.com/apache/pulsar/pull/16612)
+- PulsarLedgerManager: add missed return statement [#16607](https://github.com/apache/pulsar/pull/16607)
+- The configuration loadBalancerNamespaceMaximumBundles is invalid [#16552](https://github.com/apache/pulsar/pull/16552)
+- Retry when DistributedIdGenerator has BadVersion error [#16491](https://github.com/apache/pulsar/pull/16491)
+- Fixed error when delayed messages trackers state grows to >1.5GB [#16490](https://github.com/apache/pulsar/pull/16490)
+- Fix RawReader hasMessageAvailable returns true when no messages [#16443](https://github.com/apache/pulsar/pull/16443)
+- Fix No such ledger exception [#16420](https://github.com/apache/pulsar/pull/16420)
+- Add config maxUnloadBundleNumPerShedding for UniformLoadShedder [#16409](https://github.com/apache/pulsar/pull/16409)
+- Fix etcd cluster error and add test for etcd cluster [#16309](https://github.com/apache/pulsar/pull/16309)
+- Skip reading more entries for a pending read with no more entries [#16400](https://github.com/apache/pulsar/pull/16400)
+- Recycle OpReadEntry in some corner cases [#16399](https://github.com/apache/pulsar/pull/16399)
+- Add dynamic configuration for UniformLoadShedder [#16391](https://github.com/apache/pulsar/pull/16391)
+- Fix RawReader out of order [#16390](https://github.com/apache/pulsar/pull/16390)
+- Create the cursor ledger lazily to improve the subscribe performance [#16389](https://github.com/apache/pulsar/pull/16389)
+- Release the entry in getEarliestMessagePublishTimeOfPos [#16386](https://github.com/apache/pulsar/pull/16386)
+- Update CPU ResourceUsage before updating SystemResourceUsage usage [#16366](https://github.com/apache/pulsar/pull/16366)
+- Use shared broker client scheduled executor provider [#16338](https://github.com/apache/pulsar/pull/16338)
+- Do not use IO thread for consumerFlow in Shared subscription [#16304](https://github.com/apache/pulsar/pull/16304)
+- Provide new load balance placement strategy implementation based on the least resource usage with weight [#16281](https://github.com/apache/pulsar/pull/16281)
+- Fix TopicTransactionBuffer ledger apend marker throw ManagedLedgerAlreadyClosedException [#16265](https://github.com/apache/pulsar/pull/16265)
+- Avoid go through all the consumers to get the message ack owner [#16245](https://github.com/apache/pulsar/pull/16245)
+- Reduce the consumers list sort by priority level [#16243](https://github.com/apache/pulsar/pull/16243)
+- Reduce the re-schedule message read operation for PersistentDispatcherMultipleConsumers [#16241](https://github.com/apache/pulsar/pull/16241)
+- Fix NPE when invoke replaceBookie. [#16239](https://github.com/apache/pulsar/pull/16239)
+- Fix getInternalStats occasional lack of LeaderInfo again [#16238](https://github.com/apache/pulsar/pull/16238)
+- Fix NPE when drop backlog for time limit [#16235](https://github.com/apache/pulsar/pull/16235)
+- Improve error msg when client is unauthorized [#16224](https://github.com/apache/pulsar/pull/16224)
+- Fix compaction subscription acknowledge Marker msg issue [#16205](https://github.com/apache/pulsar/pull/16205)
+- Fix subscribe dispatcher limiter not be initialized [#16175](https://github.com/apache/pulsar/pull/16175)
+- Use LinkedHashSet for config items of type Set to preserve elements order [#16138](https://github.com/apache/pulsar/pull/16138)
+- Fix topic dispatch rate limiter not init on broker-level [#16084](https://github.com/apache/pulsar/pull/16084)
+- Fix NPE when get /admin/v2/namespaces/public/default/maxTopicsPerNamespace [#16076](https://github.com/apache/pulsar/pull/16076)
+- Add config to allow deliverAt time to be strictly honored [#16068](https://github.com/apache/pulsar/pull/16068)
+- Add switch for enable/disable distribute bundles evenly in LoadManager [#16059](https://github.com/apache/pulsar/pull/16059)
+- Fix thread safety issues in accessing ManagedCursorContainer.heap ArrayList [#16049](https://github.com/apache/pulsar/pull/16049)
+- Make invalid namespace and topic name logs more descriptive [#16047](https://github.com/apache/pulsar/pull/16047)
+- Terminate JVM when initialize-cluster-metadata command fails [#16039](https://github.com/apache/pulsar/pull/16039)
+- Avoid storing MessageMetadata instances returned by peekMessageMetadata [#15983](https://github.com/apache/pulsar/pull/15983)
+- Fix topic policies update not check message expiry [#15941](https://github.com/apache/pulsar/pull/15941)
+- Fix reach max tenants error if the tenant already exists [#15932](https://github.com/apache/pulsar/pull/15932)
+- Close transactionBufferClient before closing the internal Pulsar client [#15922](https://github.com/apache/pulsar/pull/15922)
+- Remove topic -> namespace cache of LedgerOffloaderStatsImpl [#15869](https://github.com/apache/pulsar/pull/15869)
+- Fix NPE when ledger id not found in OpReadEntry [#15837](https://github.com/apache/pulsar/pull/15837)
+- Fix topic-level replicator rate limiter not init [#15825](https://github.com/apache/pulsar/pull/15825)
+- Fix NPE in MessageDeduplication [#15820](https://github.com/apache/pulsar/pull/15820)
+- Configure DLog Bookie, Pulsar, and Admin clients via pass through config [#15818](https://github.com/apache/pulsar/pull/15818)
+- Fix the broker close hanged issue [#15755](https://github.com/apache/pulsar/pull/15755)
+- Disable memory limit controller in internal Pulsar clients [#15752](https://github.com/apache/pulsar/pull/15752)
+- Add timeout for unload namespace bundle [#15719](https://github.com/apache/pulsar/pull/15719)
+- Support schemaValidationEnforced on topic level [#15712](https://github.com/apache/pulsar/pull/15712)
+- Fix NPE when put value to RangeCache [#15707](https://github.com/apache/pulsar/pull/15707)
+- Fast return if ack cumulative illegal [#15695](https://github.com/apache/pulsar/pull/15695)
+- Fix creating producer failure when set backlog quota [#15663](https://github.com/apache/pulsar/pull/15663)
+- Fix logging in shutdown when broker shutdown [#15626](https://github.com/apache/pulsar/pull/15626)
+- Fix MetadataStoreException$NotFoundException while doing topic lookup [#15633](https://github.com/apache/pulsar/pull/15633)
+- Use dispatchRateLimiterLock to update dispatchRateLimiter [#15601](https://github.com/apache/pulsar/pull/15601)
+- Add .yaml suffix support for broker filter config file [#15600](https://github.com/apache/pulsar/pull/15600)
+- Add newline to the end of standalone.conf [#15591](https://github.com/apache/pulsar/pull/15591)
+- Add decode InputStream for Schema [#16659](https://github.com/apache/pulsar/pull/16659)
+- Create "standalone" cluster when starting standalone server [#15583](https://github.com/apache/pulsar/pull/15583)
+- Close publishLimiter when disable it [#15520](https://github.com/apache/pulsar/pull/15520)
+- Enable SO_REUSEADDR on listen sockets for broker,proxy [#15517](https://github.com/apache/pulsar/pull/15517)
+- Fix to avoid TopicStatsImpl NPE even if producerName is null [#15502](https://github.com/apache/pulsar/pull/15502)
+- Close connection if a ping or pong message cannot be sent [#15382](https://github.com/apache/pulsar/pull/15382)
+- Introduce BitRateUnit for calculate bitrate [#15435](https://github.com/apache/pulsar/pull/15435)
+- Add verification for configured default backlog quota and retention [#15441](https://github.com/apache/pulsar/pull/15441)
+- Change unnecessary atomic to basic type [#15369](https://github.com/apache/pulsar/pull/15369)
+- Support shrink for ConcurrentSortedLongPairSet [#15354](https://github.com/apache/pulsar/pull/15354)
+- Use shrink map for message redelivery [#15342](https://github.com/apache/pulsar/pull/15342)
+- Fix precision error in UsageUnit [#15322](https://github.com/apache/pulsar/pull/15322)
+- Optimized namespace-level dispatcherRateLimiter update [#15315](https://github.com/apache/pulsar/pull/15315)
+- Fix wrong unit of NIC speed on Linux [#15304](https://github.com/apache/pulsar/pull/15304)
+- Fix totalEntries calculation problem in AbstractBaseDispatcher#filterEntriesForConsumere [#15298](https://github.com/apache/pulsar/pull/15298)
+- Fix resource group does not report usage [#15292](https://github.com/apache/pulsar/pull/15292)
+- Tidy up the system topic [#15252](https://github.com/apache/pulsar/pull/15252)
+- Fix race condition between timeout and completion in OpAddEntry [#15233](https://github.com/apache/pulsar/pull/15233)
+- Improve skipping of DNS resolution when creating AuthenticationDataHttp instance [#15228](https://github.com/apache/pulsar/pull/15228)
+- Skip unnecessary DNS resolution when creating AuthenticationDataHttp instance [#15221](https://github.com/apache/pulsar/pull/15221)
+- Fix MessageDeduplication#inactiveProducers may not be persistence correctly [#15206](https://github.com/apache/pulsar/pull/15206)
+- Cancel fencedTopicMonitoringTask when topic closed normally [#15202](https://github.com/apache/pulsar/pull/15202)
+- Fix npe when doCacheEviction [#15184](https://github.com/apache/pulsar/pull/15184)
+- Make health check fail if dead locked threads are detected [#15155](https://github.com/apache/pulsar/pull/15155)
+- Fix parameter saslJaasBrokerSectionName in broker.conf [#15110](https://github.com/apache/pulsar/pull/15110)
+- Fix potential to add duplicated consumer [#15051](https://github.com/apache/pulsar/pull/15051)
+- Fix rewind failed when redeliverUnacknowledgedMessages [#15046](https://github.com/apache/pulsar/pull/15046)
+- Fix race condition in updating lastMarkDeleteEntry field [#15031](https://github.com/apache/pulsar/pull/15031)
+- Avoid heartbeat topic to offload [#15008](https://github.com/apache/pulsar/pull/15008)
+- Evict cache data according to the slowest markDeletedPosition [#14985](https://github.com/apache/pulsar/pull/14985)
+- Return if reset in progress [#14978](https://github.com/apache/pulsar/pull/14978)
+- Dynamic update broker-level subscribe-rate limter [#14890](https://github.com/apache/pulsar/pull/14890)
+- Fix wrong state for non-durable cursor [#14869](https://github.com/apache/pulsar/pull/14869)
+- Support advertised listeners for HTTP and HTTPS services [#14839](https://github.com/apache/pulsar/pull/14839)
+- Support dynamic update between non-zero values of topicPublisherThrottlingTickTimeMillis [#14782](https://github.com/apache/pulsar/pull/14782)
+- Support dynamic update between non-zero values of brokerPublisherThrottlingTickTimeMillis [#14759](https://github.com/apache/pulsar/pull/14759)
+- Fix incorrect entryId in warn log when reading entry from tiered storage [#14685](https://github.com/apache/pulsar/pull/14685)
+- Optimize PositionImpl toString, compareTo and hashCode methods [#14678](https://github.com/apache/pulsar/pull/14678)
+- Improve readability of ManagedCursorImpl source code [#14617](https://github.com/apache/pulsar/pull/14617)
+- Intercept ACK command by BrokerInterceptor [#14616](https://github.com/apache/pulsar/pull/14616)
+- Add filteredMsgCount for pulsar-admin broker-stats topics [#14531](https://github.com/apache/pulsar/pull/14531)
+- Fix NPE when subscription is already removed [#14363](https://github.com/apache/pulsar/pull/14363)
+- Fix backpressure handling in Jetty web server configuration [#14353](https://github.com/apache/pulsar/pull/14353)
+- Optimize find nics process [#14340](https://github.com/apache/pulsar/pull/14340)
+- Support pass http auth status [#14044](https://github.com/apache/pulsar/pull/14044)
+- Support caching to drain backlog consumers [#12258](https://github.com/apache/pulsar/pull/12258)
+- Strict bookie affinity group strategy [#12025](https://github.com/apache/pulsar/pull/12025)
+
+### Clients
+- [PIP 74] Pulsar client memory limits
+ - Support auto scaled consumer receiver queue [#14494](https://github.com/apache/pulsar/pull/14494)
+ - Support dynamic limit of consumer receiver queue [#14400](https://github.com/apache/pulsar/pull/14400)
+ - Support consumer client memory limit [#15216](https://github.com/apache/pulsar/pull/15216)
+- [Java] Unwrap completion exception for Lookup Services [#17717](https://github.com/apache/pulsar/pull/17717)
+- [Java] Fixed ack failure in ReaderImpl due to null messageId [#17728](https://github.com/apache/pulsar/pull/17728)
+- [Java] Refactor SchemaHash to reduce call of hashFunction in SchemaHash [#17948](https://github.com/apache/pulsar/pull/17948)
+- [Java] Fix scheduledExecutorProvider not shutdown [#17527](https://github.com/apache/pulsar/pull/17527)
+- [Java] LastBatchSendNanoTime initialization [#17058](https://github.com/apache/pulsar/pull/17058)
+- [Java] Fix inactive cnx channel causing the request to fail to time out and fail to return [#17051](https://github.com/apache/pulsar/pull/17051)
+- [Java] Release semaphore before discarding messages in batchMessageContainer [#17019](https://github.com/apache/pulsar/pull/17019)
+- [Java] Reduce code duplication in admin client [#16377](https://github.com/apache/pulsar/pull/16377)
+- [Java] Remove redundant check for chunked message TotalChunkMsgSize in ConsumerImpl [#16797](https://github.com/apache/pulsar/pull/16797)
+- [Java] Fix client memory limit currentUsage leak and semaphore release duplicated in ProducerImpl [#16837](https://github.com/apache/pulsar/pull/16837)
+- [Java] Release memory usage for invalid messages [#16835](https://github.com/apache/pulsar/pull/16835)
+- [Java] Fix subscription topic name error [#16719](https://github.com/apache/pulsar/pull/16719)
+- [Java] Send CloseConsumer on client timeout [#16616](https://github.com/apache/pulsar/pull/16616)
+- [Java] Add message key if exists to deadLetter messages [#16615](https://github.com/apache/pulsar/pull/16615)
+- [Java] Make DeadLetterPolicy deserializable [#16513](https://github.com/apache/pulsar/pull/16513)
+- [Java] Improve performance of multi-topic consumer with more than one IO thread [#16336](https://github.com/apache/pulsar/pull/16336)
+- [Java] Add initialization for the OpSendMsg [#16256](https://github.com/apache/pulsar/pull/16256)
+- [Java] Replace ScheduledExecutor to improve performance of message consumption [#16236](https://github.com/apache/pulsar/pull/16236)
+- [Java] Fix large messages sometimes cannot be split into chunks [#16196](https://github.com/apache/pulsar/pull/16196)
+- [Java] Only trigger the batch receive timeout when having pending batch receives requests [#16160](https://github.com/apache/pulsar/pull/16160)
+- [Java] Fix the startMessageId can't be respected as the ChunkMessageID [#16154](https://github.com/apache/pulsar/pull/16154)
+- [Java] Fix auto cluster failover can't resolve host bug [#16152](https://github.com/apache/pulsar/pull/16152)
+- [Java] Switch to rely on Netty for Hostname Verification [#15824](https://github.com/apache/pulsar/pull/15824)
+- [Java] Prevent the trigger from running concurrently in the memory limit controller [#15737](https://github.com/apache/pulsar/pull/15737)
+- [Java] Fix messages sent by producers without schema cannot be decoded [#15622](https://github.com/apache/pulsar/pull/15622)
+- [Java] Remove sensitive msg from consumer/producer stats log [#15483](https://github.com/apache/pulsar/pull/15483)
+- [Java] Add pending messages information while printing the producer stats [#15440](https://github.com/apache/pulsar/pull/15440)
+- [Java] Fix flaky BatchMessageTest by initializing lastBatchSendNanoTime [#15406](https://github.com/apache/pulsar/pull/15406)
+- [Java] Check consumer schema null in advance [#15327](https://github.com/apache/pulsar/pull/15327)
+- [Java] Fix inconsistent parameter of TopicPolicies.getSubscriptionDispatchRate [#15293](https://github.com/apache/pulsar/pull/15293)
+- [Java] Fix typo in ConsumerBuilder [#15194](https://github.com/apache/pulsar/pull/15194)
+- [Java] Fix performance regression with message listener [#15162](https://github.com/apache/pulsar/pull/15162)
+- [Java] ConsumerBuilderImpl can not set null to deadLetterPolicy [#14980](https://github.com/apache/pulsar/pull/14980)
+- [Java] Fix message publishing stuck when enabling batch [#14870](https://github.com/apache/pulsar/pull/14870)
+- [Java] Return immutable data set when using TableView [#14833](https://github.com/apache/pulsar/pull/14833)
+- [Java] Avoid timer task run before previous subscribe complete [#14818](https://github.com/apache/pulsar/pull/14818)
+- [Java] Support Reader Interceptor [#14729](https://github.com/apache/pulsar/pull/14729)
+- [Java] Optimize pause when creating sub consumers in multi-topic consumer [#14566](https://github.com/apache/pulsar/pull/14566)
+- [C++] Reset havePendingPingRequest flag for any data received from broker [#17658](https://github.com/apache/pulsar/pull/17658)
+- [C++] Fix potential segfault when resending messages [#17395](https://github.com/apache/pulsar/pull/17395)
+- [C++] Support multiple brokers in service URL [#17162](https://github.com/apache/pulsar/pull/17162)
+- [C++] Support retry and apply operation timeout for lookup requests [#17410](https://github.com/apache/pulsar/pull/17410)
+- [C++] Use an atomic state_ instead of the lock to improve performance [#16940](https://github.com/apache/pulsar/pull/16940)
+- [C++] Fix multi-topics consumer close segmentation fault [#17239](https://github.com/apache/pulsar/pull/17239)
+- [C++] Fix rpm and deb packaging [#17064](https://github.com/apache/pulsar/pull/17064)
+- [C++] Add producerId to the log of closed producer [#17079](https://github.com/apache/pulsar/pull/17079)
+- [C++] Add basic authentication [#15822](https://github.com/apache/pulsar/pull/15822)
+- [C++] Add getLastMessageIdAsync in Consumer [#16182](https://github.com/apache/pulsar/pull/16182)
+- [C++] Rename function name: pulsar_producer_configuration_set_crypto_failure_action [#16031](https://github.com/apache/pulsar/pull/16031)
+- [C++] Generate correct well-known OpenID configuration URL [#15928](https://github.com/apache/pulsar/pull/15928)
+- [C++] Unblock all threads when Pulsar client is closed [#15726](https://github.com/apache/pulsar/pull/15726)
+- [C++] Avoid race condition causing double callback on close [#15508](https://github.com/apache/pulsar/pull/15508)
+- [C++] Wait until event loop terminates when closing the Client [#15316](https://github.com/apache/pulsar/pull/15316)
+- [C++] Remove the flaky and meaningless tests [#15271](https://github.com/apache/pulsar/pull/15271)
+- [C++] Fix UnknownError might be returned for a partitioned producer [#15161](https://github.com/apache/pulsar/pull/15161)
+- [C++] Fix single message metadata not set correctly [#15072](https://github.com/apache/pulsar/pull/15072)
+- [C++] Add subscription properties to consumer for cpp [#15020](https://github.com/apache/pulsar/pull/15020)
+- [C++] Fix connection is not closed when broker closes the connection to proxy[#14070](https://github.com/apache/pulsar/pull/14070)
+- [C++] Fix send callback might not be invoked in key based batching [#14898](https://github.com/apache/pulsar/pull/14898)
+- [C++] Fix C++ client compile error because of keyword optional is redundant in PaddingDemo.proto [#14862](https://github.com/apache/pulsar/pull/14862)
+- [C++] Fix segmentation fault when creating socket failed [#14834](https://github.com/apache/pulsar/pull/14834)
+- [C++] Fix the race condition of connect timeout task [#14823](https://github.com/apache/pulsar/pull/14823)
+- [C++] Fix producer is never destructed until client is closed [#14797](https://github.com/apache/pulsar/pull/14797)
+- [C++] Close messages_ when PartitionedConsumer is closed [#16887](https://github.com/apache/pulsar/pull/16887)
+- [Python] Add basic authentication [#17482](https://github.com/apache/pulsar/pull/17482)
+- [Python] Add getLastMessageIdAsync C binding [#16255](https://github.com/apache/pulsar/pull/16255)
+- [Python] Remove reserved keys when JsonSchema is being encoded [#15947](https://github.com/apache/pulsar/pull/15947)
+- [Python] Use MacOS 10.15 as the target OS version for Python wheel files [#15788](https://github.com/apache/pulsar/pull/15788)
+- [Python] Remove dependencies only needed by Python 2 [#15460](https://github.com/apache/pulsar/pull/15460)
+- [Python] Remove scripts to create wheel files in vagrant VMs [#15459](https://github.com/apache/pulsar/pull/15459)
+- [Python] Adjust scripts to build wheel files for Python 3.7 on Mac [#15407](https://github.com/apache/pulsar/pull/15407)
+- [Python] Change python cp35-cp35m lib build version to manylinux1 [#15180](https://github.com/apache/pulsar/pull/15180)
+- [Python] Generate universal2 wheel files for macOS [#15054](https://github.com/apache/pulsar/pull/15054)
+- [Python] Add scripts to generate wheel files for macOS [#15024](https://github.com/apache/pulsar/pull/15024)
+- [Python] Add build for wheels on Alpine Linux [#15016](https://github.com/apache/pulsar/pull/15016)
+- [Python] Add build for ARM64 on Linux and Python 3.10 [#15004](https://github.com/apache/pulsar/pull/15004)
+
+### Pulsar IO and Pulsar Functions
+- [Functions] Ensure InternalConfigurationData data model is compatible across different versions [#17690](https://github.com/apache/pulsar/pull/17690)
+- [Functions] Add the ability to customize logging level for Go & Python functions [#16939](https://github.com/apache/pulsar/pull/16939)
+- [Functions] Use the schema set by the Function when it returns a Record [#17142](https://github.com/apache/pulsar/pull/17142)
+- [Functions] Make mandatory to provide a schema in Context::newOutputRecordBuilder [#17118](https://github.com/apache/pulsar/pull/17118)
+- [Functions] Fixed error when user starts with the pulsar functions local runner [#16565](https://github.com/apache/pulsar/pull/16565)
+- [Functions] Fix netty.DnsResolverUtil compat issue on JDK9+ for the function Runtimes [#16423](https://github.com/apache/pulsar/pull/16423)
+- [Functions] Ensure bytes are a well-formed UTF-8 byte sequence when decoding the FunctionState bytes to string [#16199](https://github.com/apache/pulsar/pull/16199)
+- [Functions] Support Record<?> as Function output type [#16041](https://github.com/apache/pulsar/pull/16041)
+- [Functions] Configure DLog Bookie, Pulsar, and Admin clients via pass through config [#15818](https://github.com/apache/pulsar/pull/15818)
+- [Functions] Disable memory limit controller in internal Pulsar clients [#15752](https://github.com/apache/pulsar/pull/15752)
+- [Functions] Provide default error handler for function log appender [#15728](https://github.com/apache/pulsar/pull/15728)
+- [Functions] Support disabling non-TLS service port [#15328](https://github.com/apache/pulsar/pull/15328)
+- [Functions] Check executor null when close the FileSource [#15247](https://github.com/apache/pulsar/pull/15247)
+- [Functions] Fix UserConfigFunction example [#15240](https://github.com/apache/pulsar/pull/15240)
+- [Functions] Add a cache of versioned KeyValueSchemaImpl [#15122](https://github.com/apache/pulsar/pull/15122)
+- [Functions] Add KeyStore support in WebSocket, Function Worker HTTPS Servers [#15084](https://github.com/apache/pulsar/pull/15084)
+- [Functions] Handle NPE when getLeader returns null [#15058](https://github.com/apache/pulsar/pull/15058)
+- [Functions] Remove internal dependency: pulsar-functions-instance [#14925](https://github.com/apache/pulsar/pull/14925)
+- [Functions] Allow a Function<GenericObject,?> to access the original Schema of the Message and use it [#14847](https://github.com/apache/pulsar/pull/14847)
+- [Functions] Fix pulsar-managed runtimes failed start function with package URL from package management service [#14814](https://github.com/apache/pulsar/pull/14814)
+- [Functions] Set function channel to idle to prevent DNS resolution of deleted pod [#14750](https://github.com/apache/pulsar/pull/14750)
+- [Functions] Remove extra call to gi.stats.incrTotalProcessedSuccessfully() [#12316](https://github.com/apache/pulsar/pull/12316)
+- [Functions] Fix python instance not process zip file correctly [#16697](https://github.com/apache/pulsar/pull/16697)
+- [Functions] Missing assertion in KubernetesRuntimeTest::verifyJavaInstance [#16747](https://github.com/apache/pulsar/pull/16747)
+- [IO Connector] Kinesis sink: fix NPE with KeyValue schema and no value [#17959](https://github.com/apache/pulsar/pull/17959)
+- [IO Connector] IOConfigUtils support required and defaultValue annotations [#16785](https://github.com/apache/pulsar/pull/16785)
+- [IO Connector] Fixed Kafka source config for pulsar-io-kafka when consumerConfigProperties is null [#16731](https://github.com/apache/pulsar/pull/16731)
+- [IO Connector] Add reader config to pulsar-io-debezium and pulsar-io-kafka-connect-adaptor [#16675](https://github.com/apache/pulsar/pull/16675)
+- [IO Connector] Support transactions for JDBC connector [#16468](https://github.com/apache/pulsar/pull/16468)
+- [IO Connector] JDBC sinks: support upsert and row deletion [#16448](https://github.com/apache/pulsar/pull/16448)
+- [IO Connector] Add getSourceConfig method on SourceContext [#16305](https://github.com/apache/pulsar/pull/16305)
+- [IO Connector] KCA sinks: fix offset mapping when sanitizeTopicName=true [#15950](https://github.com/apache/pulsar/pull/15950)
+- [IO Connector] Allow pulsar_tool_env.sh PULSAR_MEM to be Overridden [#15868](https://github.com/apache/pulsar/pull/15868)
+- [IO Connector] JDBC sinks: support Avro specific datatypes [#15845](https://github.com/apache/pulsar/pull/15845)
+- [IO Connector] Sink support custom acknowledge type [#15491](https://github.com/apache/pulsar/pull/15491)
+- [IO Connector] Add getSinkConfig method to SinkContext [#15482](https://github.com/apache/pulsar/pull/15482)
+- [IO Connector] Handle Avro collections native types (GenericData.Array and Utf8 map keys) [#15432](https://github.com/apache/pulsar/pull/15432)
+- [IO Connector] Handle Avro collections native types (GenericData.Array and Utf8 map keys) [#15430](https://github.com/apache/pulsar/pull/15430)
+- [IO Connector] Add hashed id support [#15428](https://github.com/apache/pulsar/pull/15428)
+- [IO Connector] ElasticSearch Sink: option to output canonical key fields (JSON and Avro) [#15426](https://github.com/apache/pulsar/pull/15426)
+- [IO Connector] Replaced "Device" with "measurement" [#15416](https://github.com/apache/pulsar/pull/15416)
+- [IO Connector] Enable bulk flushing scheduling by default [#15244](https://github.com/apache/pulsar/pull/15244)
+- [IO Connector] Set sinkType in config file [#15174](https://github.com/apache/pulsar/pull/15174)
+- [IO Connector] Add a cache of versioned KeyValueSchemaImpl [#15122](https://github.com/apache/pulsar/pull/15122)
+- [IO Connector] Support 4paradigm/OpenMLDB jdbc sink connector [#15064](https://github.com/apache/pulsar/pull/15064)
+- [IO Connector] ElasticSearch Sink: option to disable SSL certificate validation [#14997](https://github.com/apache/pulsar/pull/14997)
+- [IO Connector] Add FULL_MESSAGE_IN_JSON_EXPAND_VALUE message format to Kinesis sink [#14929](https://github.com/apache/pulsar/pull/14929)
+
+### Observability
+- [Broker] Fix EntryFilter stats [#17605](https://github.com/apache/pulsar/pull/17605)
+- [Broker] Add per-subscription EntryFilter metrics [#16932](https://github.com/apache/pulsar/pull/16932)
+- [Broker] Expose topic level storage write and read rate metrics [#16855](https://github.com/apache/pulsar/pull/16855)
+- [Broker] Rename Pulsar lb metrics to specify OpenMetrics [#16611](https://github.com/apache/pulsar/pull/16611)
+- [Broker] Rename Pulsar schema metrics to specify OpenMetrics [#16610](https://github.com/apache/pulsar/pull/16610)
+- [Broker] Rename Pulsar txn metrics to specify OpenMetrics [#16581](https://github.com/apache/pulsar/pull/16581)
+- [Broker] Optimise msgOutCounter and bytesOutCounter [#16214](https://github.com/apache/pulsar/pull/16214)
+- [Broker] Fail to expose managed ledger client stats to prometheus if bookkeeperClientExposeStatsToPrometheus is true [#16219](https://github.com/apache/pulsar/pull/16219)
+- [Broker] Add metrics for pulsar web service thread pool [#14742](https://github.com/apache/pulsar/pull/14742)
+- [Broker] Add support of PrometheusRawMetricsProvider for the Pulsar-Proxy [#14681](https://github.com/apache/pulsar/pull/14681)
+- [Broker] Add filteredMsgCount for pulsar-admin broker-stats topics [#14531](https://github.com/apache/pulsar/pull/14531)
+- [Broker] Improve /metrics endpoint performance [#14453](https://github.com/apache/pulsar/pull/14453)
+- [Broker] Offloader metrics [#13833](https://github.com/apache/pulsar/pull/13833)
+- [Broker] Improve /metrics endpoint performance [#14453](https://github.com/apache/pulsar/pull/14453)
+- [Broker] Add metrics for InMemoryDelayedDeliveryTracker's memory usage [#15867](https://github.com/apache/pulsar/pull/15867)
+
+### CLI
+- [Pulsar Admin] Add SNI header when tlsHostnameVerification is not enabled [#17543](https://github.com/apache/pulsar/pull/17543)
+- [Pulsar Admin] Unset namespace policy to improve deleting namespace [#17033](https://github.com/apache/pulsar/pull/17033)
+- [Pulsar Admin] Reduce PartitionedStats local REST call [#16916](https://github.com/apache/pulsar/pull/16916)
+- [Pulsar Admin] Make some police methods async in Namespaces [#16881](https://github.com/apache/pulsar/pull/16881)
+- [Pulsar Admin] Expose the last consumed flow timestamp for consumer stats [#16817](https://github.com/apache/pulsar/pull/16817)
+- [Pulsar Admin] Make some methods async in Namespaces [#16814](https://github.com/apache/pulsar/pull/16814)
+- [Pulsar Admin] Dynamic configuration for check unknown request parameters [#16781](https://github.com/apache/pulsar/pull/16781)
+- [Pulsar Admin] Make offload police methods async in Namespaces [#16760](https://github.com/apache/pulsar/pull/16760)
+- [Pulsar Admin] Support the admin API to check unknown request [#16577](https://github.com/apache/pulsar/pull/16577)
+- [Pulsar Admin] Make getBacklogQuotaMap method async in Namespaces [#16504](https://github.com/apache/pulsar/pull/16504)
+- [Pulsar Admin] Make GetMessageIdByTimestamp pure async [#16446](https://github.com/apache/pulsar/pull/16446)
+- [Pulsar Admin] Make splitNamespaceBundle and getTopicHashPositions async [#16411](https://github.com/apache/pulsar/pull/16411)
+- [Pulsar Admin] Make AutoSubscriptionCreation async [#16329](https://github.com/apache/pulsar/pull/16329)
+- [Pulsar Admin] Make SubscriptionExpirationTime method async [#16328](https://github.com/apache/pulsar/pull/16328)
+- [Pulsar Admin] Make some method on permission async [#16324](https://github.com/apache/pulsar/pull/16324)
+- [Pulsar Admin] Make unloadNamespaceBundle async [#16313](https://github.com/apache/pulsar/pull/16313)
+- [Pulsar Admin] Make Namespaces.deleteNamespaceBundle async [#16287](https://github.com/apache/pulsar/pull/16287)
+- [Pulsar Admin] Make deleteTopic method async [#16232](https://github.com/apache/pulsar/pull/16232)
+- [Pulsar Admin] Make compactionStatus method async [#16231](https://github.com/apache/pulsar/pull/16231)
+- [Pulsar Admin] Make terminate method async [#16227](https://github.com/apache/pulsar/pull/16227)
+- [Pulsar Admin] Make getList async [#16221](https://github.com/apache/pulsar/pull/16221)
+- [Pulsar Admin] Make getPartitionedTopicList method async [#16217](https://github.com/apache/pulsar/pull/16217)
+- [Pulsar Admin] Improve documentation for unackedMessages stat [#16213](https://github.com/apache/pulsar/pull/16213)
+- [Pulsar Admin] Make internalPeekNthMessage method async [#16192](https://github.com/apache/pulsar/pull/16192)
+- [Pulsar Admin] Fix get non-persistent topics issue in Namespaces [#16170](https://github.com/apache/pulsar/pull/16170)
+- [Pulsar Admin] Make getInternalStats method async [#16141](https://github.com/apache/pulsar/pull/16141)
+- [Pulsar Admin] Fix get-publish-rete Admin API handle exception behavior [#16001](https://github.com/apache/pulsar/pull/16001)
+- [Pulsar Admin] Release LookupRequestSemaphore before returning data [#15974](https://github.com/apache/pulsar/pull/13549)
+- [Pulsar Admin] Fix producer/consume permission can’t get schema [#15956](https://github.com/apache/pulsar/pull/15956)
+- [Pulsar Admin] Make publish rate and dispatch rate operation async [#15946](https://github.com/apache/pulsar/pull/15946)
+- [Pulsar Admin] Support to get topic properties [#15944](https://github.com/apache/pulsar/pull/15944)
+- [Pulsar Admin] New API to get subscription properties [#16095](https://github.com/apache/pulsar/pull/16095)
+- [Pulsar Admin] Make some operation subscription dispatchRate methods in Namespaces async [#15880](https://github.com/apache/pulsar/pull/15880)
+- [Pulsar Admin] Make some methods in SchemasResourceBase async [#15821](https://github.com/apache/pulsar/pull/15821)
+- [Pulsar Admin] Make some operation replication clusters async [#15760](https://github.com/apache/pulsar/pull/15760)
+- [Pulsar Admin] Make some methods of ClusterBase pure async [#15685](https://github.com/apache/pulsar/pull/15685)
+- [Pulsar Admin] Allow creating builtin functions in pulsar-admin CLI [#15671](https://github.com/apache/pulsar/pull/15671)
+- [Pulsar Admin] Enable users to specify TTL options in units other than seconds [#15657](https://github.com/apache/pulsar/pull/15657)
+- [Pulsar Admin] Make some operation SubscribeRate methods in Namespaces async [#15656](https://github.com/apache/pulsar/pull/15656)
+- [Pulsar Admin] Add transaction admin to get recover time in stats [#15654](https://github.com/apache/pulsar/pull/15654)
+- [Pulsar Admin] Make some operation auto topic creation in Namespaces async [#15621](https://github.com/apache/pulsar/pull/15621)
+- [Pulsar Admin] Add topic name and sub name for NotFound error message [#15606](https://github.com/apache/pulsar/pull/15606)
+- [Pulsar Admin] Make some methods in ResourceQuotasBase async [#15605](https://github.com/apache/pulsar/pull/15605)
+- [Pulsar Admin] Make some methods in TenantsBase async [#15603](https://github.com/apache/pulsar/pull/15603)
+- [Pulsar Admin] Make some operation messageTTL methods in Namespaces async [#15577](https://github.com/apache/pulsar/pull/15577)
+- [Pulsar Admin] Enable users to specify some time options in units other than seconds [#15563](https://github.com/apache/pulsar/pull/15563)
+- [Pulsar Admin] Make some methods of ClusterBase pure async [#15527](https://github.com/apache/pulsar/pull/15527)
+- [Pulsar Admin] Support filtering system topic when get list [#15410](https://github.com/apache/pulsar/pull/15410)
+- [Pulsar Admin] Make some methods of ClusterBase pure async [#15358](https://github.com/apache/pulsar/pull/15358)
+- [Pulsar Admin] Make some methods of ClusterBase pure async [#15318](https://github.com/apache/pulsar/pull/15318)
+- [Pulsar Admin] Add admin api updateTransactionCoordinatorNumber [#15296](https://github.com/apache/pulsar/pull/15296)
+- [Pulsar Admin] Put validateTopicOwnershipAsync before validateTopicOperationAsync [#15265](https://github.com/apache/pulsar/pull/15265)
+- [Pulsar Admin] Remove duplication validateTopicOwnershipAsync [#15120](https://github.com/apache/pulsar/pull/15410)
+- [Pulsar Admin] Fix pulsar-admin not prompting message when there is a 500 error [#14856](https://github.com/apache/pulsar/pull/14856)
+- [Pulsar Admin] Add get active brokers api without cluster name [#14702](https://github.com/apache/pulsar/pull/14702)
+- [Pulsar Admin] Grab contextual stacktrace for sync methods [#14620](https://github.com/apache/pulsar/pull/14620)
+- [Pulsar Admin] Correct status message prompt [#14603](https://github.com/apache/pulsar/pull/14603)
+- [Pulsar CLI] Pulsar shell: allow to create a new config (--file) with a relative path [#17675](https://github.com/apache/pulsar/pull/17675)
+- [Pulsar CLI] Fix Pulsar shell custom commands execution [#17479](https://github.com/apache/pulsar/pull/17479)
+- [Pulsar CLI] CLI extensions: rename default location to 'cliextensions' [#17435](https://github.com/apache/pulsar/pull/17435)
+- [Pulsar CLI] Add a separate TLS transport encryption configuration [#16930](https://github.com/apache/pulsar/pull/16930)
+- [Pulsar CLI] Fix incorrect description for producing messages [#16876](https://github.com/apache/pulsar/pull/16876)
+- [Pulsar CLI] Use NoSplitter for subscription properties [#16862](https://github.com/apache/pulsar/pull/16862)
+- [Pulsar CLI] Add TLS provider support [#16700](https://github.com/apache/pulsar/pull/16700)
+- [Pulsar CLI] Support getEarliestTimeInBacklog at getPartitionedStats method [#16388](https://github.com/apache/pulsar/pull/16388)
+- [Pulsar CLI] Add query options to the get topics in Namespace [#16167](https://github.com/apache/pulsar/pull/16167)
+- [Pulsar CLI] Add cli cmd for subscription level dispatch-rate-limiter [#15862](https://github.com/apache/pulsar/pull/15862)
+- [Pulsar CLI] Disable Pulsar client memory limit by default [#15748](https://github.com/apache/pulsar/pull/15748)
+- [Pulsar CLI] Fix check on create function class name [#15700](https://github.com/apache/pulsar/pull/15862)
+- [Pulsar CLI] Support filtering system topic when get list [#15410](https://github.com/apache/pulsar/pull/15410)
+- [Pulsar CLI] Change the default for max-connections from 100 to 1 [#15387](https://github.com/apache/pulsar/pull/15387)
+- [Pulsar CLI] Add short name for full name in admin cli [#14301](https://github.com/apache/pulsar/pull/14301)
+- [Client Tool] Using int instead of long in python scripts [#17215](https://github.com/apache/pulsar/pull/17215)
+- [Client Tool] Fix using directory '?' in the docker image [#17185](https://github.com/apache/pulsar/pull/17185)
+- [Client Tool] Handle ctrl-d and exit the shell [#17204](https://github.com/apache/pulsar/pull/17204)
+- [Client Tool] Add tlsTrustCertFilePath as CLI argument for pulsar-client-tool [#16961](https://github.com/apache/pulsar/pull/16961)
+- [Perf Tool] Able to set maxLookupRequest for pulsar-perf [#16967](https://github.com/apache/pulsar/pull/16967)
+
+### Others
+- [Proxy] Fix refresh client auth [#17831](https://github.com/apache/pulsar/pull/17831)
+- [Proxy] Update proxy lookup throw exception type [#17600](https://github.com/apache/pulsar/pull/17600)
+- [Proxy] Add TLS transport encryption for broker client [#16833](https://github.com/apache/pulsar/pull/16833)
+- [Proxy] Fix client service URL [#16834](https://github.com/apache/pulsar/pull/16834)
+- [Proxy] Consolidate Netty channel flushes to mitigate syscall overhead [#16372](https://github.com/apache/pulsar/pull/16372)
+- [Proxy] Do not preserve host when forwarding admin requests [#16342](https://github.com/apache/pulsar/pull/16342)
+- [Proxy] Switch to rely on Netty for Hostname Verification [#15824](https://github.com/apache/pulsar/pull/15824)
+- [Proxy] Support zero-copy of NIC to NIC on Proxy [#15678](https://github.com/apache/pulsar/pull/15678)
+- [Proxy] Add support of PrometheusRawMetricsProvider for the Pulsar-Proxy [#14681](https://github.com/apache/pulsar/pull/14681)
+- [Proxy] Fail proxy startup if brokerServiceURL is missing scheme [#14682](https://github.com/apache/pulsar/pull/14682)
+- [Proxy] Suggestion put brokerProxyAllowedTargetPorts in proxy.conf [#15069](https://github.com/apache/pulsar/pull/15069)
+- [Proxy] Exit if proxy service fails to start [#15076](https://github.com/apache/pulsar/pull/15076)
+- [Proxy] Fix DNS server denial-of-service issue when DNS entry expires [#15403](https://github.com/apache/pulsar/pull/15403)
+- [Proxy] Remove unnecessary blocking DNS lookup in LookupProxyHandler [#15415](https://github.com/apache/pulsar/pull/15415)
+- [WebSocket] Fix MultiTopicReader#getConsumer ClassCastException [#15534](https://github.com/apache/pulsar/pull/15534)
+- [WebSocket] Add KeyStore support in WebSocket, Function Worker HTTPS Servers [#15084](https://github.com/apache/pulsar/pull/15084)
+- [WebSocket] Fix ClassCastException when user create MultiTopicReader [#14316](https://github.com/apache/pulsar/pull/14316)
+- [WebSocket] Support encryption in websocket proxy [#16234](https://github.com/apache/pulsar/pull/16234)
+- [Package Management] Fix the new path /data introduced regression [#15367](https://github.com/apache/pulsar/pull/15367)
+- [Schema] Add decode InputStream for Schema [#16659](https://github.com/apache/pulsar/pull/16659)
+- [Schema] Expose timestamp field for SchemaData&SchemaInfo [#16380](https://github.com/apache/pulsar/pull/16380)
+- [Schema] Add classLoader field for SchemaDefinition [#15915](https://github.com/apache/pulsar/pull/15915)
+- [Schema] Fix conversion of TimestampMillisConversion has no effect when Jsr310Conversion enabled [#15863](https://github.com/apache/pulsar/pull/15863)
+- [Schema] Ensure the deletion consistency of topic and schema [#14608](https://github.com/apache/pulsar/pull/14608)
+- [Tiered Storage] Shared subscription: improvement with offloaded ledgers [#16417](https://github.com/apache/pulsar/pull/16417)
+- [Tiered Storage] Fix the wrong secret key name get from env [#15814](https://github.com/apache/pulsar/pull/15814)
+- [Tiered Storage] Add pure S3 provider for the offloader [#15710](https://github.com/apache/pulsar/pull/15710)
+- [Tiered Storage] Reduce CPU usage when offloading ledgers [#15063](https://github.com/apache/pulsar/pull/15063)
+- [Tiered Storage] Fix potential NPE in MockManagedLedger [#15006](https://github.com/apache/pulsar/pull/15006)
+- [Tiered Storage] Add API to scan objects on Tiered Storage [#14930](https://github.com/apache/pulsar/pull/14930)
+- [Tiered Storage] Fix incorrect entryId in warn log when reading entry from tiered storage [#14685](https://github.com/apache/pulsar/pull/14685)
+- Remove cmd-line level test retries [#16524](https://github.com/apache/pulsar/pull/16524)
+- Fix potentially incompatible Java opts caused by IS_JAVA_8 [#15444](https://github.com/apache/pulsar/pull/15444)
+- Remove obsolete jdk11 and errorprone-jdk11 maven profiles [#15505](https://github.com/apache/pulsar/pull/15505)
+- Remove internal dependency: pulsar-functions-instance [#14925](https://github.com/apache/pulsar/pull/14925)
+- Enable retries for apt-get when building Pulsar docker image [#14513](https://github.com/apache/pulsar/pull/15505)
+- Migrate Docker images and CI to Java 17 [#14355](https://github.com/apache/pulsar/pull/14355)
+
+### Library updates
+- Upgrade to Jetty to 9.4.48.v20220622 [#16520](https://github.com/apache/pulsar/pull/16520)
+- Bump maven-dependency-plugin to 3.3.0 [#16318](https://github.com/apache/pulsar/pull/16318)
+- Bump os-maven-plugin version from 1.4.1.Final to 1.7.0 [#16308](https://github.com/apache/pulsar/pull/16308)
+- Bump presto.version to run PrestoServer on JDK11+ [#16163](https://github.com/apache/pulsar/pull/16163)
+- Update fastjson version to 1.2.83 [#16148](https://github.com/apache/pulsar/pull/16148)
+- Bump PyYAML from 5.3.1 to 5.4.1 to solve CVE-2020-14343 [#15989](https://github.com/apache/pulsar/pull/15989)
+- Bump spring version to 5.3.20 to solve CVE-2022-22970 [#15699](https://github.com/apache/pulsar/pull/15699)
+- Bump snappy zstd version to fix CompressorCodecBackwardCompatTest on Apple M1 [#15698](https://github.com/apache/pulsar/pull/15698)
+- Athenz: do not use uber-jar and bump to 1.10.50 to remove jackson-databind shaded dependency [#14884](https://github.com/apache/pulsar/pull/14884)
+- Remove --illegal-access errors resulting from Google Guice - Pulsar IO, Offloaders and Pulsar SQL - Bump Guice to 5.1.0 [#14300](https://github.com/apache/pulsar/pull/14300)
+- Bump prometheus client version from 0.5.0 to 0.15.0 [#13785](https://github.com/apache/pulsar/pull/13785)
+- Upgrade log4j2 version to 2.18.0 [#16884](https://github.com/apache/pulsar/pull/16884
+
+### Documentation
+
+This section only highlights the availability of docs serving existing feature.
+
+- Add docs about [system topic](https://pulsar.apache.org/docs/next/concepts-messaging#system-topic) [#14795](https://github.com/apache/pulsar/pull/14795)
+- Add a comprehensive reference table about [YAML configurations](https://pulsar.apache.org/docs/next/functions-cli) of Pulsar Functions [#15389](https://github.com/apache/pulsar/pull/15389)
+- Add instructions about [how to run CI from fork](https://pulsar.apache.org/contributing/#ci-testing-in-your-fork) to the Contribution Guide [#15535](https://github.com/apache/pulsar/pull/15535)
+- Add docs about [basic authentication](https://pulsar.apache.org/docs/next/security-basic-auth) [#15734](https://github.com/apache/pulsar/pull/15734)
+- Add docs about [isolation deployments](https://pulsar.apache.org/docs/next/administration-isolation) [#15802](https://github.com/apache/pulsar/pull/15802)
+- Information architecture redesigns and improvements for [Pulsar Functions](https://pulsar.apache.org/docs/next/functions-overview) and add a new topic about [how to get started](https://pulsar.apache.org/docs/next/functions-quickstart) [#15975](https://github.com/apache/pulsar/pull/15975)
+- Add docs about [anti-affinity namespace distribution across failure domains](https://pulsar.apache.org/docs/next/administration-load-balance#distribute-anti-affinity-namespaces-across-failure-domains) [#16069](https://github.com/apache/pulsar/pull/16069)
+- Add an introductory table about [BookKeeper recovery metrics](https://pulsar.apache.org/docs/next/reference-metrics#replication-metrics) [#16554](https://github.com/apache/pulsar/pull/16554)
+- Publish REST API docs for [lookup](https://pulsar.apache.org/lookup-rest-api/?version=master) related operations [#16621](https://github.com/apache/pulsar/pull/16621)
+- Add more concepts and user tasks about [bookie isolation](https://pulsar.apache.org/docs/next/administration-isolation-bookie) [#16843](https://github.com/apache/pulsar/pull/16843)
+- Use 2.8.x/2.9.x/2.10.x doc set instead of version-specific doc set [#17074](https://github.com/apache/pulsar/pull/17074)
+
+> For the comprehensive list of doc-related improvements in 2.11.0, you can go to [GitHub](https://github.com/apache/pulsar/pulls?q=is%3Apr+milestone%3A2.11.0+label%3Adoc+is%3Aclosed). A special thanks to the following contributors (alphabetic Github IDs) who helped add docs for Pulsar 2.11.0.
+> [704237006](https://github.com/704237006), [AlphaWang](https://github.com/AlphaWang), [Anonymitaet](https://github.com/Anonymitaet), [asafm](https://github.com/asafm), [cbornet](https://github.com/cbornet), [codelipenghui](https://github.com/codelipenghui), [coderzc](https://github.com/coderzc), [Demogorgon314](https://github.com/Demogorgon314), [ericsyh](https://github.com/ericsyh), [fantapsody](https://github.com/fantapsody), [futeng](https://github.com/futeng), [hangc0276](https://g [...]
diff --git a/releases.json b/releases.json
index 2476ab3697a..5473c058037 100644
--- a/releases.json
+++ b/releases.json
@@ -1,4 +1,5 @@
[
+ "2.11.0",
"2.10.3",
"2.10.2",
"2.10.1",