This is an automated email from the ASF dual-hosted git repository.
penghui pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new 738b5195b5d [improve][pip] Standardize PIP filenames and add
comprehensive table of contents (#24653)
738b5195b5d is described below
commit 738b5195b5de95ddc028994fb87e37b0c176f062
Author: Penghui Li <[email protected]>
AuthorDate: Thu Aug 21 09:10:48 2025 -0700
[improve][pip] Standardize PIP filenames and add comprehensive table of
contents (#24653)
---
pip/README.md | 117 ++++++++++++++++++++-
pip/{pip_307.md => pip-307-duplicate.md} | 0
...{pip-324-Alpine Docker images.md => pip-324.md} | 0
...{pip-335 Oxia metadata plugin.md => pip-335.md} | 0
...2 OTel client metrics support.md => pip-342.md} | 0
...ic-Policies-Service-Pluggable.md => pip-376.md} | 0
pip/{pip_380.md => pip-380.md} | 0
pip/{pip-381-large-positioninfo.md => pip-381.md} | 0
...le-batch-index-ack-by-default.md => pip-391.md} | 0
...troduce-per-ledger-properties.md => pip-404.md} | 0
pip/{pip-421-client-java-17.md => pip-421.md} | 0
...ate with Broker Configuration.md => pip-427.md} | 0
...ish Timestamps to Topic Stats.md => pip-431.md} | 0
...ed field to EncryptionContext.md => pip-432.md} | 0
14 files changed, 115 insertions(+), 2 deletions(-)
diff --git a/pip/README.md b/pip/README.md
index 216cdd56298..dc2bd8c3b31 100644
--- a/pip/README.md
+++ b/pip/README.md
@@ -115,9 +115,122 @@ email what the PIP was about and gave a link.
### Historical PIPs
You can the view list of PIPs previously managed by GitHub wiki or GitHub
issues
[here](https://github.com/apache/pulsar/wiki#pulsar-improvement-proposals)
-### List of PIPs
+### Current PIPs Table of Contents
+
+The following table lists all current PIPs in this directory, sorted by PIP
number:
+
+| PIP Number | Title |
+|------------|-------|
+| 264 | [Support OpenTelemetry metrics in Pulsar](pip-264.md) |
+| 275 | [Rename numWorkerThreadsForNonPersistentTopic to
topicOrderedExecutorThreadNum](pip-275.md) |
+| 276 | [Add pulsar prefix to topic_load_times metric](pip-276.md) |
+| 277 | [Add current cluster marking to clusters list command](pip-277.md) |
+| 278 | [Pluggable topic compaction service](pip-278.md) |
+| 279 | [Support topic-level policies using TableView API](pip-279.md) |
+| 280 | [Refactor CLI Argument Parsing Logic for Measurement Units using
JCommander's custom converter](pip-280.md) |
+| 281 | [Add notifyError method on PushSource](pip-281.md) |
+| 282 | [Add Key_Shared subscription initial position support](pip-282.md) |
+| 284 | [Migrate topic policies implementation to use TableView](pip-284.md) |
+| 286 | [Support get position based on timestamp with topic
compaction](pip-286.md) |
+| 289 | [Secure Pulsar Connector Configuration](pip-289.md) |
+| 290 | [Support message encryption in WebSocket proxy](pip-290.md) |
+| 292 | [Enforce token expiration time in the Websockets plugin](pip-292.md) |
+| 293 | [Support reader to read compacted data](pip-293.md) |
+| 296 | [Add getLastMessageIds API for Reader](pip-296.md) |
+| 297 | [Support terminating Function & Connector with the fatal
exception](pip-297.md) |
+| 298 | [Support read transaction buffer snapshot segments from
earliest](pip-298.md) |
+| 299 | [Support setting max unacked messages at subscription
level](pip-299.md) |
+| 300 | [Add RedeliverCount field to CommandAck](pip-300.md) |
+| 301 | [Separate load data storage from configuration metadata
store](pip-301.md) |
+| 302 | [Support for TableView with strong read consistency](pip-302.md) |
+| 303 | [Support PartitionedTopicStats exclude publishers and
subscriptions](pip-303.md) |
+| 305 | [Add OpAddEntry and pendingData statistics info in JVM
metrics](pip-305.md) |
+| 307 | [Support key value admin](pip-307.md) |
+| 312 | [Use StateStoreProvider to manage state in Pulsar Functions
endpoints](pip-312.md) |
+| 313 | [Support force unsubscribe using consumer api](pip-313.md) |
+| 315 | [Configurable max delay limit for delayed delivery](pip-315.md) |
+| 318 | [Don't retain null-key messages during topic compaction](pip-318.md) |
+| 320 | [OpenTelemetry Scaffolding](pip-320.md) |
+| 321 | [Split the responsibilities of namespace
replication-clusters](pip-321.md) |
+| 322 | [Pulsar Rate Limiting Refactoring](pip-322.md) |
+| 323 | [Complete Backlog Quota Telemetry](pip-323.md) |
+| 324 | [Switch to Alpine Linux base Docker images](pip-324.md) |
+| 325 | [Support reading from transaction buffer for pending
transaction](pip-325.md) |
+| 326 | [Create a BOM to ease dependency management](pip-326.md) |
+| 327 | [Support force topic loading for unrecoverable errors](pip-327.md) |
+| 329 | [Strategy for maintaining the latest tag to Pulsar docker
images](pip-329.md) |
+| 330 | [getMessagesById gets all messages](pip-330.md) |
+| 335 | [Support Oxia metadata store plugin](pip-335.md) |
+| 337 | [SSL Factory Plugin to customize SSLContext/SSLEngine
generation](pip-337.md) |
+| 339 | [Introducing the --log-topic Option for Pulsar Sinks and
Sources](pip-339.md) |
+| 342 | [Support OpenTelemetry metrics in Pulsar client](pip-342.md) |
+| 343 | [Use picocli instead of jcommander](pip-343.md) |
+| 344 | [Correct the behavior of the public API
pulsarClient.getPartitionsForTopic(topicName)](pip-344.md) |
+| 347 | [add role field in consumer's stat](pip-347.md) |
+| 348 | [Trigger offload on topic load stage](pip-348.md) |
+| 349 | [Add additionalSystemCursorNames ignore list for ttl
check](pip-349.md) |
+| 350 | [Allow to disable the
managedLedgerOffloadDeletionLagInMillis](pip-350.md) |
+| 351 | [Additional options for Pulsar-Test client to support KeyStore based
TLS](pip-351.md) |
+| 352 | [Event time based topic compactor](pip-352.md) |
+| 353 | [Improve transaction message visibility for peek-messages
cli](pip-353.md) |
+| 354 | [apply topK mechanism to ModularLoadManagerImpl](pip-354.md) |
+| 355 | [Enhancing Broker-Level Metrics for Pulsar](pip-355.md) |
+| 356 | [Support Geo-Replication starts at earliest position](pip-356.md) |
+| 357 | [Correct the conf name in load balance module.](pip-357.md) |
+| 358 | [let resource weight work for OverloadShedder,
LeastLongTermMessageRate, ModularLoadManagerImpl.](pip-358.md) |
+| 359 | [Support custom message listener executor for specific
subscription](pip-359.md) |
+| 360 | [Admin API to display Schema metadata](pip-360.md) |
+| 363 | [Add callback parameters to the method:
`org.apache.pulsar.client.impl.SendCallback.sendComplete`.](pip-363.md) |
+| 364 | [Introduce a new load balance algorithm AvgShedder](pip-364.md) |
+| 366 | [Support to specify different config for Configuration and Local
Metadata Store](pip-366.md) |
+| 367 | [Propose a Contributor Repository for Pulsar](pip-367.md) |
+| 368 | [Support lookup based on the lookup properties](pip-368.md) |
+| 369 | [Flag based selective unload on changing
ns-isolation-policy](pip-369.md) |
+| 370 | [configurable remote topic creation in geo-replication](pip-370.md) |
+| 373 | [Add a topic's system prop that indicates whether users have published
TXN messages in before.](pip-373.md) |
+| 374 | [Visibility of messages in receiverQueue for the
consumers](pip-374.md) |
+| 376 | [Make Topic Policies Service Pluggable](pip-376.md) |
+| 378 | [Add ServiceUnitStateTableView abstraction (ExtensibleLoadMangerImpl
only)](pip-378.md) |
+| 379 | [Key_Shared Draining Hashes for Improved Message Ordering](pip-379.md)
|
+| 380 | [Support setting up specific namespaces to skipping the
load-shedding](pip-380.md) |
+| 381 | [Handle large PositionInfo state](pip-381.md) |
+| 383 | [Support granting/revoking permissions for multiple
topics](pip-383.md) |
+| 384 | [ManagedLedger interface decoupling](pip-384.md) |
+| 389 | [Add Producer config compressMinMsgBodySize to improve compression
performance](pip-389.md) |
+| 391 | [Improve Batch Messages Acknowledgment](pip-391.md) |
+| 392 | [Add configuration to enable consistent hashing to select active
consumer for partitioned topic](pip-392.md) |
+| 393 | [Improve performance of Negative Acknowledgement](pip-393.md) |
+| 395 | [Add Proxy configuration to support configurable response headers for
http reverse-proxy](pip-395.md) |
+| 396 | [Align WindowFunction's WindowContext with BaseContext](pip-396.md) |
+| 399 | [Fix Metric Name for Delayed Queue](pip-399.md) |
+| 401 | [Support set batching configurations for Pulsar
Functions&Sources](pip-401.md) |
+| 402 | [Role Anonymizer for Pulsar Logging](pip-402.md) |
+| 404 | [Introduce per-ledger properties](pip-404.md) |
+| 406 | [Introduce metrics related to dispatch throttled events](pip-406.md) |
+| 407 | [Add a newMessage API to create a message with a schema and
transaction](pip-407.md) |
+| 409 | [support producer configuration for retry/dead letter topic
producer](pip-409.md) |
+| 412 | [Support setting messagePayloadProcessor in Pulsar Functions and
Sinks](pip-412.md) |
+| 414 | [Enforce topic consistency check](pip-414.md) |
+| 415 | [Support getting message ID by index](pip-415.md) |
+| 416 | [Add a new topic method to implement trigger offload by size
threshold](pip-416.md) |
+| 420 | [Provides an ability for Pulsar clients to integrate with third-party
schema registry service](pip-420.md) |
+| 421 | [Require Java 17 as the minimum for Pulsar Java client
SDK](pip-421.md) |
+| 422 | [Support global topic-level policy: replicated clusters and new API to
delete topic-level policies](pip-422.md) |
+| 425 | [Support connecting with next available endpoint for multi-endpoint
serviceUrls](pip-425.md) |
+| 427 | [Align pulsar-admin Default for Mark-Delete Rate with Broker
Configuration](pip-427.md) |
+| 428 | [Change TopicPoliciesService interface to fix consistency
issues](pip-428.md) |
+| 429 | [Optimize Handling of Compacted Last Entry by Skipping Payload Buffer
Parsing](pip-429.md) |
+| 430 | [Pulsar Broker cache improvements: refactoring eviction and adding a
new cache strategy based on expected read count](pip-430.md) |
+| 431 | [Add Creation and Last Publish Timestamps to Topic Stats](pip-431.md) |
+| 432 | [Add isEncrypted field to EncryptionContext](pip-432.md) |
+| 433 | [Optimize the conflicts of the replication and automatic creation
mechanisms, including the automatic creation of topics and schemas](pip-433.md)
|
+| 435 | [Add `startTimestamp` and `endTimestamp` for consuming messages in
client cli](pip-435.md) |
+| 436 | [Add decryptFailListener to Consumer](pip-436.md) |
+
+### Additional Information
1. You can view all PIPs (besides the historical ones) as the list of Pull
Requests having title starting with `[improve][pip] PIP-`. Here is the
[link](https://github.com/apache/pulsar/pulls?q=is%3Apr+title%3A%22%5Bpip%5D%5Bdesign%5D+PIP-%22)
for it.
- Merged PR means the PIP was accepted.
- Closed PR means the PIP was rejected.
- Open PR means the PIP was submitted and is in the process of discussion.
-2. You can also take a look at the file in the `pip` folder. Each one is an
approved PIP.
+2. All PIP files in the `pip` folder follow the naming convention `pip-xxx.md`
where `xxx` is the PIP number.
+3. Note: There is also a duplicate file `pip-307-duplicate.md` which contains
different content from the main `pip-307.md`.
diff --git a/pip/pip_307.md b/pip/pip-307-duplicate.md
similarity index 100%
rename from pip/pip_307.md
rename to pip/pip-307-duplicate.md
diff --git a/pip/pip-324-Alpine Docker images.md b/pip/pip-324.md
similarity index 100%
rename from pip/pip-324-Alpine Docker images.md
rename to pip/pip-324.md
diff --git a/pip/pip-335 Oxia metadata plugin.md b/pip/pip-335.md
similarity index 100%
rename from pip/pip-335 Oxia metadata plugin.md
rename to pip/pip-335.md
diff --git a/pip/pip-342 OTel client metrics support.md b/pip/pip-342.md
similarity index 100%
rename from pip/pip-342 OTel client metrics support.md
rename to pip/pip-342.md
diff --git a/pip/pip-376-Topic-Policies-Service-Pluggable.md b/pip/pip-376.md
similarity index 100%
rename from pip/pip-376-Topic-Policies-Service-Pluggable.md
rename to pip/pip-376.md
diff --git a/pip/pip_380.md b/pip/pip-380.md
similarity index 100%
rename from pip/pip_380.md
rename to pip/pip-380.md
diff --git a/pip/pip-381-large-positioninfo.md b/pip/pip-381.md
similarity index 100%
rename from pip/pip-381-large-positioninfo.md
rename to pip/pip-381.md
diff --git a/pip/pip-391-enable-batch-index-ack-by-default.md b/pip/pip-391.md
similarity index 100%
rename from pip/pip-391-enable-batch-index-ack-by-default.md
rename to pip/pip-391.md
diff --git a/pip/pip-404-Introduce-per-ledger-properties.md b/pip/pip-404.md
similarity index 100%
rename from pip/pip-404-Introduce-per-ledger-properties.md
rename to pip/pip-404.md
diff --git a/pip/pip-421-client-java-17.md b/pip/pip-421.md
similarity index 100%
rename from pip/pip-421-client-java-17.md
rename to pip/pip-421.md
diff --git a/pip/pip-427 Align pulsar-admin Default for Mark-Delete Rate with
Broker Configuration.md b/pip/pip-427.md
similarity index 100%
rename from pip/pip-427 Align pulsar-admin Default for Mark-Delete Rate with
Broker Configuration.md
rename to pip/pip-427.md
diff --git a/pip/pip-431 Add Creation and Last Publish Timestamps to Topic
Stats.md b/pip/pip-431.md
similarity index 100%
rename from pip/pip-431 Add Creation and Last Publish Timestamps to Topic
Stats.md
rename to pip/pip-431.md
diff --git a/pip/pip-432 Add isEncrypted field to EncryptionContext.md
b/pip/pip-432.md
similarity index 100%
rename from pip/pip-432 Add isEncrypted field to EncryptionContext.md
rename to pip/pip-432.md