+1, the proposal looks good to me!

Thanks,
Penghui

On Thu, Aug 19, 2021 at 3:49 PM Enrico Olivelli <eolive...@gmail.com> wrote:

> Matteo,
> Overall the proposal looks good to me.
> I have a couple of points, about the 'VOTE' and about what is subject to a
> PIP or not.
> I will add my comments inline below
>
> Shall we need a "meta PIP" for this PIP ? Just joking, this discussion is
> probably enough.
>
> Thank you very much, we really needed this !
>
>  I hope we can move the results of this email to the website or to the
> wiki.
>
> Enrico
>
> Il giorno gio 19 ago 2021 alle ore 07:52 Sijie Guo <guosi...@gmail.com> ha
> scritto:
>
> > +1 for standardizing the PIP workflow!
> >
> > The proposal looks good!
> >
> > - Sijie
> >
> > On Wed, Aug 18, 2021 at 10:46 PM Matteo Merli <mme...@apache.org> wrote:
> >
> > > This is a proposal that I promised to send out for a long time.
> > > It should be considered as a draft and I'd love to hear feedback on
> this.
> > >
> > > The motivations to improve the current PIP process are:
> > >  * When PIPs were introduced, the process was intentionally left as
> very
> > >    lightweight and not very strict. It was about the time when the
> first
> > >    contributors outside of Yahoo started to join the project. Now we
> are
> > in
> > >    a different situation, with a much larger community.
> > >
> > >  * The current process doesn't specify a few important things:
> > >    - When is a PIP required?
> > >    - What is the process of creating a PIP?
> > >    - When can we consider the discussion about a PIP to be "done" and
> > what
> > > is
> > >      the outcome?
> > >
> > > The goal of this proposal is not to add bureaucracy or slow-down the
> > > development, rather just ensure a set of clear and precise guidelines
> for
> > > contributors that want to submit proposals and clarification about what
> > > they
> > > can expect.
> > >
> > > This below is the text that I'm proposing. When the proposal is
> accepted
> > > and
> > > the text finalized, it would be included in the Pulsar website, to give
> > > clear
> > > guidelines to every contributor.
> > >
> > > ---------------------------------------------
> > >
> > > ## What is a PIP?
> > >
> > > 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.
> > >
> > > ## What is the goal of a PIP?
> > >
> > > There are several goals for the PIP process:
> > >
> > >  1. Ensure community technical discussion of major changes to the
> Apache
> > > Pulsar
> > >     codebase
> > >
> > >  2. 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.
> > >
> > >  3. Use the PIP document to serve as the starting base on which to
> create
> > > the
> > >     documentation for the new feature.
> > >
> > >  4. 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.
> > >
> > > ## When is a PIP required?
> > >
> > >  * Any new feature for Pulsar brokers or client
> > >  * Any change to the public APIs (Client APIs, REST APIs, Plugin APIs)
> > >  * Any change to the wire protocol APIs
> > >  * Any change to the API of Pulsar CLI tools (eg: new options)
> >
>
> I agree that the CLI is really an API, but sometimes we add options in a
> very straightforward way,
> I am not sure we must require a PIP for every option, especially if we are
> simply exposition some Pulsar Client feature that is not available on the
> CLI tools.
>
> >  * Any change to the semantic of existing functionality, even when
> current
> > >    behavior is incorrect.
> > >  * Any large code change that will touch multiple components
> > >
> > > ## When is a PIP *not* required?
> > >
> > >  * Bug-fixes
> > >  * Simple enhancements that won't affect the APIs or the semantic
> >
>
> I believe that this 'simple' is the key to understanding why a PIP is
> required.
> Probably it is better to keep this document simple and leave to the
> judgment of the reviewers to ask for a PIP or not.
> I am afraid that we will need too many PIPs even for small changes that
> formally are touching the APIs
>
>
> > >  * Documentation changes
> > >  * Website changes
> > >  * Build scripts changes (except: a complete rewrite)
> > >
> > > ## Who can create a PIP?
> > >
> > > Any person willing to contribute to the Apache Pulsar project is
> welcome
> > to
> > > create a PIP.
> > >
> > > ## How does the PIP process work?
> > >
> > > A PIP proposal can be in these states:
> > >  1. **DRAFT**: (Optional) This might be used for contributors to
> > > collaborate and
> > >     to seek feedback on an incomplete version of the proposal.
> > >
> > >  2. **DISCUSSION**: The proposal has been submitted to the community
> for
> > >     feedback and approval.
> > >
> > >  3. **ACCEPTED**: The proposal has been accepted by the Pulsar project.
> > >
> > >  4. **REJECTED**: The proposal has not been accepted by the Pulsar
> > project.
> > >
> > >  5. **IMPLEMENTED**: The implementation of the proposed changes have
> been
> > >     completed and everything has been merged.
> > >
> > >  5. **RELEASED**: The proposed changes have been included in an
> official
> > >     Apache Pulsar release.
> > >
> > > The process works in the following way:
> > >
> > >  1. The author(s) of the proposal will create a GitHub issue ticket
> > > choosing the
> > >     template for PIP proposals.
> > >  2. The author(s) will send a note to the dev@pulsar.apache.org
> mailing
> > > list
> > >     to start the discussion, using subject prefix `[PIP] xxx`.
> > >  3. Based on the discussion and feedback, some changes might be applied
> > by
> > >     authors to the text of the proposal.
> > >  4. Once some consensus is reached, there will be a vote to formally
> > > approve
> > >     the proposal.
> > >     The vote will be held on the dev@pulsar.apache.org mailing list.
> > > Everyone
> > >     is welcome to vote on the proposal, though it will considered to be
> > > binding
> > >     only the vote of PMC members.
> > >     I would be required to have a lazy majority of at least 3 binding
> +1s
> > > votes.
> > >     The vote should stay open for at least 48 hours.
> >
>
> This is too hard from my point of view.
> We need PMC members to vote on a release, this is the ASF rules and this is
> needed to guarantee the quality (at every level, legal, code...) of a
> release.
> I believe that even for an API change when you have 2 or 3 "committers"
> that are supporting the change it is enough.
> Otherwise the process will become like a "release", that usually is
> perceived as a "heavy weight" process.
> If you approve a PIP, and even if you commit some patch about it you can
> always "git revert", so the committer role is enough to approve this kind
> of decisions.
>
> so my proposal is to change "PMC members" to "committers"
>
> Enrico
>
>
> > >  5. When the vote is closed, if the outcome is positive, the state of
> the
> > >     proposal is updated and the Pull Requests associated with this
> > > proposal can
> > >     start to get merged into the master branch.
> > >
> > > All the Pull Requests that are created, should always reference the
> > > PIP-XXX in the
> > > commit log message and the PR title.
> > >
> > > ## Labels of a PIP
> > >
> > > In addition to its current state, the GitHub issue for the PIP will
> also
> > be
> > > tagged with other labels.
> > >
> > > Some examples:
> > >  * Execution status: In progress, Completed, Need Help, ...
> > >  * Targeted Pulsar release: 2.9, 2.10, ...
> > >
> > >
> > > ## Template for a PIP design doc
> > >
> > > ```
> > > ## Motivation
> > >
> > > Explain why this change is needed, what benefits it would bring to
> Apache
> > > Pulsar
> > > and what problem it's trying to solve.
> > >
> > > ## Goal
> > >
> > > Define the scope of this proposal. Given the motivation stated above,
> > what
> > > are
> > > the problems that this proposal is addressing and what other items will
> > be
> > > considering out of scope, perhaps to be left to a different PIP.
> > >
> > > ## API Changes
> > >
> > > Illustrate all the proposed changes to the API or wire protocol, with
> > > examples
> > > of all the newly added classes/methods, including Javadoc.
> > >
> > > ## Implementation
> > >
> > > This should be a detailed description of all the changes that are
> > > expected to be made. It should be detailed enough that any developer
> that
> > > is
> > > familiar with Pulsar internals would be able to understand all the
> parts
> > > of the
> > > code changes for this proposal.
> > >
> > > This should also serve as documentation for any person that is trying
> to
> > > understand or debug the behavior of a certain feature.
> > >
> > >
> > > ## Reject Alternatives
> > >
> > > If there are alternatives that were already considered by the authors
> or,
> > > after the discussion, by the community, and were rejected, please list
> > them
> > > here along with the reason why they were rejected.
> > >
> > > ```
> > >
> > > ---------------------------------------------
> > >
> > > Thanks,
> > > Matteo
> > >
> >
>

Reply via email to