I'm sorry, I stole the number 1 from you. Feel free to give suggestions on the form, so we can get a good template for further BIPs
_/ _/ Alex Van Boxel On Sun, Feb 9, 2020 at 6:43 PM Jan Lukavský <je...@seznam.cz> wrote: > Hi Alex, > > this is cool! Thanks for pushing this topic forward! > > Jan > On 2/9/20 6:36 PM, Alex Van Boxel wrote: > > BIP-1 is available here: > https://cwiki.apache.org/confluence/display/BEAM/%5BBIP-1%5D+Beam+Schema+Options > > _/ > _/ Alex Van Boxel > > > On Sat, Feb 1, 2020 at 9:11 PM Kenneth Knowles <k...@apache.org> wrote: > >> Sounds great. If you scrape recent dev@ for proposals that are not yet >> implemented, I think you will find some, and you could ask them to add as a >> BIP if they are still interested. >> >> Kenn >> >> On Sat, Feb 1, 2020 at 1:11 AM Jan Lukavský <je...@seznam.cz> wrote: >> >>> 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> 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 >>>>>>>> >>>>> >>>>>>>> >>>>>>>