The PIP is a “Pulsar Improvement Proposal” and it's the mechanism used to propose changes to the Apache Pulsar codebases.
The changes might be in terms of new features, large code refactoring, changes to APIs.
In practical terms, the PIP defines a process in which developers can submit a design doc, receive feedback and get the “go ahead” to execute.
There are several goals for the PIP process:
Ensure community technical discussion of major changes to the Apache Pulsar codebase
Provide clear and thorough design documentation of the proposed changes. Make sure every Pulsar developer will have enough context to effectively perform a code review of the Pull Requests.
Use the PIP document to serve as the starting base on which to create the documentation for the new feature.
Have greater scrutiny to changes are affecting the public APIs to reduce chances of introducing breaking changes or APIs that are not expressing an ideal semantic.
It is not a goal for PIP to add undue process or slow-down the development.
Any person willing to contribute to the Apache Pulsar project is welcome to create a PIP.
A PIP proposal can be in these states:
DRAFT: (Optional) This might be used for contributors to collaborate and to seek feedback on an incomplete version of the proposal.
DISCUSSION: The proposal has been submitted to the community for feedback and approval.
ACCEPTED: The proposal has been accepted by the Pulsar project.
REJECTED: The proposal has not been accepted by the Pulsar project.
IMPLEMENTED: The implementation of the proposed changes have been completed and everything has been merged.
RELEASED: The proposed changes have been included in an official Apache Pulsar release.
The process works in the following way:
[DISCUSS] PIP-xxx: {PIP TITLE}
. The discussion need to happen in the mailing list. Please avoid discussing it using GitHub comments in the PIP GitHub issue, as it creates two tracks of feedback.All the Pull Requests that are created, should always reference the PIP-XXX in the commit log message and the PR title.
In addition to its current state, the GitHub issue for the PIP will also be tagged with other labels.
Some examples:
Read the template file.