Hi Kenn,

yes, I can do that. I think that there should be at least one first BIP, I can try to setup one. But (as opposed to my previous proposal) I'll try to setup a fresh one, not the one of [BEAM-8550], because that one already has a PR and rebasing the PR on master for such a long period (and it is likely, that final polishing of the BIP process will take several more months) starts to be costly. I have in mind two fresh candidates, so I'll pick one of them. I think that only setuping a cwiki would not start the process, we need a real-life example of a BIP included in that.

Does that sound ok?

 Jan

On 2/1/20 5:55 AM, Kenneth Knowles wrote:
These stages sound like a great starting point to me. Would you be the volunteer to set up a cwiki page for BIPs?

Kenn

On Mon, Jan 20, 2020 at 3:30 AM Jan Lukavský <je...@seznam.cz <mailto:je...@seznam.cz>> wrote:

    I agree that we can take inspiration from other projects. Besides
    the organizational part (what should be part of BIP, where to
    store it, how to edit it and how to make it available to the whole
    community) - for which the cwiki might be the best option - there
    are still open questions about the lifecycle of a BIP:

     a) when to create one?

      - I feel this might be optional, there might be some upper bound
    of features that are really "too big" or "too controversial", so
    these should undergo the BIP process in all cases, otherwise the
    decision might be part of the proposal, the question is how to
    define those

     b) what are lifecycle stages of a BIP? How to do transitions
    between these stages?

      - From the top of my head this might be:

        a) proposal -- not yet accepted

        b) accepted -- most probably after vote?

        c) in progress -- having assigned JIRA and being worked on

        d) done -- after merge to master

        e) released -- obvious

    WDYT?

     Jan

    On 1/15/20 8:19 PM, Kenneth Knowles wrote:
    Focusing this thread on the BIP process seems wise, without
    changing much else in the same thread. I don't think the BIP
    process has to do with exactly how design docs are written or
    archived, but the ability to *at a glance* understand:

     - what are the high level proposals
     - status of the proposals
     - who to contact
     - how to get to more info (links to design docs, thread, Jiras, etc)

    A page with a table on cwiki is common and seems good for this.
    How we manage such a table would be a possible next step. I think
    they should focus on large changes that need heavyweight process,
    so should encourage lightweight creation. I think adding heavy
    process to smaller changes would be bad.

    ----

    I have looked multiple times at other projects (linked in prior
    thread and in this thread too but gathering them here)

    Spark: https://spark.apache.org/improvement-proposals.html
     - Jira is not good for "at a glance" reading. The title should
    have a short and easy to understand paragraph.

    Kafka:
    
https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Improvement+Proposals
     - Quite a lot of content; I would prefer 10s of proposals. But
    it is readable enough. Table lacks important content like links
    and summaries.
     - Blends the table with a bunch of header material that IMO ets
    in the way

    Flink:
    
https://cwiki.apache.org/confluence/display/FLINK/Flink+Improvement+Proposals
     - Looks very similar to Kafka
     - Target Release is too specific, and actual status is missing

    Airflow:
    
https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvements+Proposals
     - seems best organized, and the table has more info
     - having sections for the different status proposals in
    different tables is great
     - "InRelease" column is left blank

    It seems there is a lot of redundancy with Jira fields - owner,
    release, etc. I think that redundancy is good. If it is too much
    effort to redundantly manage to write it in the table then it
    probably is not appropriate for heavyweight process. Anything
    that is one simple task that fits in a Jira that can be passed
    around from person to person shouldn't be a BIP. Probably
    anything where we can guess the target version isn't big enough
    for a BIP.

    Kenn

    On Thu, Jan 9, 2020 at 7:59 AM Jan Lukavský <je...@seznam.cz
    <mailto:je...@seznam.cz>> wrote:

        I think that, besides ownership of a feature, a BIP (or
        whatever document or process) should contain the following:

         * description of a problem that the improvement addresses  -
        this is currently often part of design doc

         * description of multiple possible solutions (if multiple
        exist, which is probably mostly the case)

         * justifying choice of a particular solution

         * result of a vote - the vote should cover both (a) do we
        don't this feature in the first place and (b) do we accept
        the proposed solution

        This would probably be iterative process involving multiple
        people, mailing list communication, etc. Pretty much what we
        do now, just there would be a place to keep track of
        decisions made throughout the process. I pretty much think
        that voting on complicated solutions is vital, the soft
        consensus approach is good for "simple" features (what that
        means might be subjective), but might fail for features where
        multiple more or less complex solutions exist. After
        successful PMC vote, the problem simplifies to reviewing
        code, the reviewer doesn't have to think about "do we want
        this feature?". That is given in advance. After we agree on
        the process and the form it should have I can volunteer to
        test it by letting proposal of ordered stateful processing
        pass through it.

        On 1/9/20 9:11 AM, Alex Van Boxel wrote:
        Maybe tweaking the current process a bit is enough. I like
        the Docs for having discussions but there no good as a
        /proper design document/, for the following reasons:

        I see design documents full of discussions and wonder:

          * Who will be the *main owner* and the *co-owners*
            (meaning people that are invested of bringing this
            forward and can *act* as /reviewers/). I think a
            proposal needs especially this: ownership
          * Lack of visibility of final state? Or is it superseded
            by another proposal. A final state could include the
            votes...
          * Does the proposal need amendments. An example,  while
            implementing the proposal, we see that something in the
            design was lacking and needs to be added.

        So the Docs are great, but maybe we should a few mandatory
        blocks and a few rules:

          * *Resolve all discussions* before switching to final state.
          * If new discussions pop up, maybe an amendment needs to
            be made (or correct). Corrections could be added to a
            *changelog* in the beginning.
          * If a new proposal supersedes on, both should be linked
          * Most importantly: Who can act as *owner* end reviewers
            for this proposal.



         _/
        _/ Alex Van Boxel


        On Thu, Jan 9, 2020 at 7:59 AM Kenneth Knowles
        <k...@apache.org <mailto:k...@apache.org>> wrote:

            It does seem that the community would find this useful.
            I agree with Robert that it has downsides and it is not
            appropriate all the time.

            We added https://beam.apache.org/roadmap/ a little while
            ago. I think that the granularity of a BIP is about the
            same as the granularity of what we would want to show to
            users on a roadmap on our public site. So we sort of
            already have this. Perhaps we want to formalize changes
            to the roadmap and only include voted upon approved BIPs
            on the roadmap on the web site. The current roadmap
            should be viewed as a crowd sourced bootstrap, for sure.

            Imagine a roadmap that a company shares with a customer.
            The most important thing is to be extremely clear about
            what is intended to be built, when it is expected, and
            how they can follow the developments. And for the open
            source community, it should be clear what they can
            expect to work on and know that the project / PMC has
            agreed on the feature and will not push back after some
            effort has been put into it.

            Kenn

            On Tue, Dec 17, 2019 at 11:07 AM Jan Lukavský
            <je...@seznam.cz <mailto:je...@seznam.cz>> wrote:

                Hi,

                I feel a "soft consensus" :) that people see some
                benefits of introducing (possibly optional) process
                of proposing new features.

                I think that in order to proceed with this we need
                to agree on goals that we want to achieve. Whether
                the process should or should not be optional, which
                form it should have, and answers on all these other
                questions could be answered after that.

                So, I'll try to state some issues I see with our
                current approach, please feel free to correct any of
                them, or add any other:

                 - due to the "soft consensus" approach, we actually
                delegate the final responsibility of "feature
                acceptance" to reviewer(s) - these might or might
                not be happy with that

                 - by splitting this into
                first-consensus-then-implementation-then-review
                approach, we remove the burden of responsibility of
                respective feature from reviewers - they can focus
                only on the main purpose of the review - that is
                verifying the quality of code

                 - as mentioned before, this brings better
                visibility to (core) features

                 - and last but not least makes it possible to
                prioritize work and build more complex long-term goals

                I think it is essential to have a consensus on
                whether or not these are some points we want to
                target (that is, we see our current approach as
                sub-optimal in these areas) or not.

                Jan

                On 12/17/19 7:08 PM, Pablo Estrada wrote:
                It seems that lots of people see benefit in a more
                formalized BIP process. I think that makes sense,
                though I'd like to give people the freedom to
                choose the medium for their design discussions.

                The projects I'm aware of usually do this through
                wiki-type mediums. We have cwiki, though lots of
                people like working with Gdocs' collaboration
                features. Are there other mediums that could be
                used for this?

                A possible implementation is: We could keep cwiki
                as the 'index' - so anyone proposing a new BIP
                would have to add a new BIP entry in the cwiki, but
                they'd be free to link to a Gdoc from there, or to
                develop the proposal in the cwiki entry itself.

                Thoughts?
                Best
                -P.

                On Tue, Dec 17, 2019 at 9:14 AM Maximilian Michels
                <m...@apache.org <mailto:m...@apache.org>> wrote:

                    The main benefit of BIPs I see is the
                    visibility they create for the
                    project users and contributors.

                    Right now, we have a long unordnered list of
                    design documents. Some of
                    the documents are not even in that list. With
                    BIPs, we would end up with
                    an ordered list "BIP-1, BIP-2, .." which
                    reflects important design
                    decisions over time.

                    Simply assigning an id, makes it a lot more
                    formal. In my eyes, the id
                    assignment would also require that you
                    communicate the changes in a way
                    that the community can accept the proposal,
                    preferably via lazy
                    consensus. All in all, this could help
                    communicate changes in Beam better.

                    JIRA, on the other hand, contains concrete
                    implementation steps and all
                    kinds of other changes.

                    Cheers,
                    Max

                    On 16.12.19 21:41, Robert Bradshaw wrote:
                    > Additional process is a two-edged sword: it
                    can help move stuff
                    > forward, to the correct decision, but it can
                    also add significant
                    > overhead.
                    >
                    > I think there are many proposals for which
                    the existing processes of
                    > deriving consensus (over email, possibly
                    followed by a formal vote or
                    > lazy consensus) are sufficient. However,
                    sometimes they're not.
                    > Specifically, for long-term roadmaps, it
                    would be useful to have them
                    > in a standard place that can be tracked and
                    understood (I don't think
                    > we've been able to use JIRA effectively for
                    this here). I also think
                    > there are some proposals that reach a certain
                    level of complexity that
                    > trying to address them by occasionally
                    responding to email threads as
                    > they come up is insufficient. For these
                    latter, I think there is a
                    > need for commitment for a group of people in
                    the community to commit
                    > to clearly defining and driving a solution to
                    the problem via a more
                    > formal process. Often the one making the
                    proposal has sufficient
                    > motivation, but sometimes what lacks is be
                    (non-sporadic) investment
                    > by those trying to understand, evaluate, and
                    incorporate the proposal.
                    >
                    > So I'm (strongly) +1 for exploring a more
                    formal process, but -1 on
                    > requiring it.
                    >
                    > On Sun, Dec 15, 2019 at 1:07 AM Jan Lukavský
                    <je...@seznam.cz <mailto:je...@seznam.cz>> wrote:
                    >>
                    >> Hi,
                    >>
                    >> thanks for reactions so far. I agree that
                    there are many questions that have to be
                    clarified. I'd propose to split this into two
                    parts:
                    >>
                    >>   a) first reach a consensus that we want
                    this process in the first place
                    >>
                    >>   b) after that, we need to clarify all the
                    details - that will probably be somewhat
                    iterative procedure
                    >>
                    >> I'm not sure if there is something more we
                    need to clarify before we can cast a vote on (a).
                    >>
                    >> Thoughts?
                    >>
                    >>   Jan
                    >>
                    >> On 12/10/19 3:46 PM, Łukasz Gajowy wrote:
                    >>
                    >> +1 for formalizing the process, enhancing it
                    and documenting clearly.
                    >>
                    >> I noticed that Apache Airflow has a cool way
                    of both creating AIPs and keeping track of all
                    of them. There is a "Create new AIP" button on
                    their Confluence. This way, no AIP gets lost
                    and all are kept in one place. Please keep in
                    mind that this is also the problem we want to
                    solve in Beam and try to keep track of all the
                    documents we have so far*. It's certainly good
                    to solve that problem too, if possible.
                    >>
                    >> Also the AIP structure is something that I
                    find nice - There's place for all additional
                    resources, JIRAs, discussion in comments and
                    state of the proposal. Even if we don't choose
                    to use Confluence, we definitely could use a
                    similar template with all that information for
                    our google docs proposals or any other tool we
                    stick to.
                    >>
                    >> Thanks!
                    >>
                    >> *thank you, Ismael and Alexey, for all the
                    reminders under the proposals to add them to
                    Confluence list! :)
                    >>
                    >> wt., 10 gru 2019 o 13:29 jincheng sun
                    <sunjincheng...@gmail.com
                    <mailto:sunjincheng...@gmail.com>> napisał(a):
                    >>>
                    >>> Thanks for bring up this discussion Jan!
                    >>>
                    >>> +1 for cearly define BIP for beam.
                    >>>
                    >>> And I think would be nice to initialize a
                    concept document for BIP. Just a reminder: the
                    document may contains:
                    >>>
                    >>> - How many kinds of improvement in beam.
                    >>> - What kind of improvement should to create
                    a BIP.
                    >>> - What should be included in a BIP.
                    >>> - Who can create the BIP.
                    >>> - Who can participate in the discussion of
                    BIP and who can vote for BIP.
                    >>> - What are the possible limitations of BiP,
                    such as whether it is necessary to complete the
                    dev of BIP  in one release.
                    >>> - How to track a BIP.
                    >>>
                    >>> Here is a question: I found out a policy[1]
                    in beam, but only contains the poilcy of
                    release , my question is does beam have
                    something called Bylaws? Similar as Flink[1].
                    >>>
                    >>> Anyway, I like your proposals Jan :)
                    >>>
                    >>> Best,
                    >>> Jincheng
                    >>> [1] https://beam.apache.org/community/policies/
                    >>> [2]
                    
https://cwiki.apache.org/confluence/display/FLINK/Flink+Bylaws#FlinkBylaws-Approvals
                    >>>
                    >>>
                    >>> David Morávek <david.mora...@gmail.com
                    <mailto:david.mora...@gmail.com>>
                    于2019年12月10日周二 下午2:33写道:
                    >>>>
                    >>>> Hi Jan,
                    >>>>
                    >>>> I think this is more pretty much what we
                    currently do, just a little bit more
                    transparent for the community. If the process
                    is standardized, it can open doors for bigger
                    contributions from people not familiar with the
                    process. Also it's way easier to track progress
                    of BIPs, than documents linked from the mailing
                    list.
                    >>>>
                    >>>> Big +1 ;)
                    >>>>
                    >>>> D.
                    >>>>
                    >>>> On Sun, Dec 8, 2019 at 12:42 PM Jan
                    Lukavský <je...@seznam.cz
                    <mailto:je...@seznam.cz>> wrote:
                    >>>>>
                    >>>>> Hi,
                    >>>>>
                    >>>>> I'd like to revive a discussion that was
                    taken some year and a half ago
                    >>>>> [1], which included a concept of "BIP"
                    (Beam Improvement Proposal) - an
                    >>>>> equivalent of "FLIP" (flink), "KIP"
                    (kafka), "SPIP" (spark), and so on.
                    >>>>>
                    >>>>> The discussion then ended without any
                    (public) conclusion, so I'd like
                    >>>>> to pick up from there. There were
                    questions related to:
                    >>>>>
                    >>>>>    a) how does the concept of BIP differ
                    from simple plain JIRA?
                    >>>>>
                    >>>>>    b) what does it bring to the community?
                    >>>>>
                    >>>>> I'd like to outline my point of view on
                    both of these aspects (they are
                    >>>>> related).
                    >>>>>
                    >>>>> BIP differs from JIRA by definition of a
                    process:
                    >>>>>
                    >>>>>      BIP -> vote -> consensus -> JIRA ->
                    implementation
                    >>>>>
                    >>>>> This process (although it might seem a
                    little unnecessary formal) brings
                    >>>>> the following benefits:
                    >>>>>
                    >>>>>    i) improves community's overall
                    awareness of planned and in-progress
                    >>>>> features
                    >>>>>
                    >>>>>    ii) makes it possible to prioritize
                    long-term goals (create "roadmap"
                    >>>>> that was mentioned in the referred thread)
                    >>>>>
                    >>>>>    iii) by casting explicit vote on each
                    improvement proposal diminishes
                    >>>>> the probability of wasted work - as
                    opposed to our current state, where
                    >>>>> it is hard to tell when there is a
                    consensus and what actions need to be
                    >>>>> done in order to reach one if there isn't
                    >>>>>
                    >>>>>    iv) BIPs that eventually pass a vote
                    can be regarded as "to be
                    >>>>> included in some short term" and so new
                    BIPs can build upon them,
                    >>>>> without the risk of having to be
                    redefined if their dependency for
                    >>>>> whatever reason don't make it to the
                    implementation
                    >>>>>
                    >>>>> Although this "process" might look rigid
                    and corporate, it actually
                    >>>>> brings better transparency and overall
                    community health. This is
                    >>>>> especially important as the community
                    grows and becomes more and more
                    >>>>> distributed. There are many, many open
                    questions in this proposal that
                    >>>>> need to be clarified, my current intent
                    is to grab a grasp about how the
                    >>>>> community feels about this.
                    >>>>>
                    >>>>> Looking forward to any comments,
                    >>>>>
                    >>>>>    Jan
                    >>>>>
                    >>>>> [1]
                    >>>>>
                    
https://lists.apache.org/thread.html/4e1fffa2fde8e750c6d769bf4335853ad05b360b8bd248ad119cc185%40%3Cdev.beam.apache.org%3E
                    >>>>>

Reply via email to