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> 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> 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> 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> 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> >>>> 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> >>>>> 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> >>>>> 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> 于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> >>>>> 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 >>>>> >>>>> >>>>> >>>>