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 <[email protected]> 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ý <[email protected]> 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ý <[email protected]> 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ý <[email protected]> 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 <[email protected]> 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ý <[email protected]> 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 <[email protected]> >>>>>> 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ý <[email protected]> >>>>>>> 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 <[email protected]> >>>>>>> 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 <[email protected]> 于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ý <[email protected]> >>>>>>> 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 >>>>>>> >>>>> >>>>>>> >>>>>>
