Thanks for the summary, Yu. Hi all,
Just want to loop back on this thread. The META-FLIP actually does not change much in the current FLIP process. It did add a few more details that are currently not explicitly written down in the FLIP wiki page. More specifically: 1. In general FLIPs should be completed in a reasonable amount of time, rather than lasting for many releases. 2. FLIPs should be immutable. Changes to FLIPs need a new vote processes. 3. FLIPs should be concrete in terms of interfaces, semantic and behaviours, rather than conceptual. 4. At least one committer should shepherd a FLIP. By default that will be the author him/herself if the author is a committer. Otherwise, that will be one of the committer who voted +1 on the FLIP. For the last point, I am not quite sure about how this Shepherding is related to the FLIP voting. Or should shepherding be a necessary thing in order to start the voting process. Any idea on how to make this work? Thanks, Jiangjie (Becket) Qin On Thu, Jul 11, 2019 at 12:29 PM Yu Li <car...@gmail.com> wrote: > Thanks for the summary and bring the discussion to public again Becket! > > Looking through the whole thread I think later discussion has covered a > broader scope than what Aljoscha initially proposed (strict voting process > for FLIP), and please allow me to categorize the topics to help decide how > to conclude the thread: > > The very initial one: > * Stick voting process for FLIP > - Definition of a passing vote: lazy majority (more than 3 binding +1s) > rather than lazy consensus @Aljosha (all others agreed) > - Whose votings are counted as "binding": from both PMCs and > committers @Jark @Stephan @David > (My 2 cents around this topic: I suggest to encourage more non-binding > votes to supply more inputs to our PMCs/committers and prevent the binding > votes only representing a small group, although non-binding votes don't > count) > > The extended ones: > * The standard of FLIP (definition, scope, etc.) > - Definition: does the long-existing standard still stands or need some > update? should we have a blacklist about what's NOT a FLIP? @Chesnay > @jincheng @Gordon @Hequn > - Timeline Scope: should the FLIP be scoped to fit into a single > release? @David @Becket > - Dos and Don'ts: FLIP should be concrete in terms of interfaces, > semantic and behaviors, not conceptual. FLIP should become immutable after > voting, and change it requiring a new iteration of the > process @Becket @Aljoscha > - We'd better explicitly write down our Flink bylaw @Robert @Becket > > * How to better follow up a FLIP > - Should a committer be assigned to shepherd the FLIP if it's created by > a contributor? @Kurt @Biao > - There must be a wiki for a FLIP no matter it's accepted or not, for > later tracking and future discussion @Aljoscha @Becket > > FWIW, there should be no doubt to conclude the initial proposal on stick > voting process for FLIP, while I'm not sure whether we could also conclude > the other two in this single thread or they worth new separate discuss > threads? Thanks. > > Best Regards, > Yu > > > On Thu, 11 Jul 2019 at 09:33, Becket Qin <becket....@gmail.com> wrote: > > > Hi Robert, > > > > That is a great point. > > > > Completely agree that we should have our own bylaws. Technically speaking > > it should come before FLIP process as FLIP refers to the voting process > > definition. Kafka's bylaws is a good reference. It has been in place for > > years and seems working well. Maybe we can use that as a base version and > > make revisions if needed. I can create a bylaws wiki page as a base > version > > for discussion. We may highlight and link to it on the "How to > contribute" > > page after that is finalized. Every time when we grant permission to new > > contributors, we should refer them to that page. > > > > The FLIP process itself seems clear enough to me. Once we have our > bylaws, > > we probably just need more attention on the execution side. Usually what > > happens is that someone proposes an idea either in a Jira ticket / > mailing > > list. Those who are familiar with the process will simply ask for a FLIP > if > > needed. > > > > Thanks, > > > > Jiangjie (Becket) Qin > > > > > > > > On Wed, Jul 10, 2019 at 11:55 PM Robert Metzger <rmetz...@apache.org> > > wrote: > > > > > Thanks for your summary Becket. > > > > > > Your list of items makes sense to me. > > > I wonder if we should start working on some project Bylaws to write > down > > > how we want to work together. I really like your thoughts around > > "sticking > > > to the process" to make us more efficient and approachable for new > > > contributors. > > > But we should try to make the process (FLIP) and rules (bylaws) as > > visible > > > as possible. Future (and probably even current) contributors will not > be > > > aware of this discussion, so we need to make the results more > prominent. > > > > > > > > > > > > On Tue, Jul 9, 2019 at 4:29 PM Becket Qin <becket....@gmail.com> > wrote: > > > > > > > Hi Aljoscha, > > > > > > > > Thanks for the quick response. Yes, you are right. I meant "Voted and > > > > accepted FLIPs should be immutable". Sorry for the confusion. > > > > > > > > Thanks, > > > > > > > > Jiangjie (Becket) Qin > > > > > > > > On Tue, Jul 9, 2019 at 10:09 PM Aljoscha Krettek < > aljos...@apache.org> > > > > wrote: > > > > > > > > > +1 to what Becket said. > > > > > > > > > > I have one comment on 5.: I think you meant that they should be > > > immutable > > > > > once they have been voted on and accepted. During the initial > > proposal > > > > and > > > > > discussion they will change, of course. At least that’s what I > think > > > > > > > > > > Aljoscha > > > > > > > > > > > On 9. Jul 2019, at 11:29, Becket Qin <becket....@gmail.com> > wrote: > > > > > > > > > > > > This discussion thread has been quiet for some time. It looks > most > > > > people > > > > > > think sticking to a strict voting process is a good idea. > > > > > > > > > > > > In addition to that, there are a few related details that are > also > > > > > > discussed, I listed them below and personally I am +1 on all of > > them. > > > > > > > > > > > > 1. Stick to the current definition of major changes. > > > > > > 2. Committers have binding votes on FLIPs. > > > > > > 3. In general FLIPs should be completed in a reasonable amount of > > > time, > > > > > > rather than lasting for many releases. > > > > > > 4. Always discuss FLIPs based on FLIP wiki page. Google docs can > be > > > > used > > > > > as > > > > > > handy tools to explain ideas, but FLIP ideas should always be > > > > documented > > > > > as > > > > > > a FLIP wiki, regardless whether they are accepted or not. > > > > > > 5. FLIPs should be immutable. Changes to FLIPs need a new vote > > > > processes. > > > > > > 6. FLIPs should be concrete in terms of interfaces, semantic and > > > > > behaviors, > > > > > > rather than conceptual. > > > > > > > > > > > > It'll be good to hear what do people think. If there is no > further > > > > > > objection, I'd suggest to conclude this discussion in 72 hours > and > > > move > > > > > to > > > > > > a lazy majority voting. (For decisions like this, maybe only > votes > > > from > > > > > > PMCs should be considered as binding?) > > > > > > > > > > > > Thanks, > > > > > > > > > > > > Jiangjie (Becket) Qin > > > > > > > > > > > > On Fri, Jun 28, 2019 at 10:33 AM Congxian Qiu < > > > qcx978132...@gmail.com> > > > > > > wrote: > > > > > > > > > > > >> Thanks a lot for bringing this up, Aljoscha. > > > > > >> > > > > > >> +1 for sticking to the "lazy majority" vote process. > > > > > >> > > > > > >> In my opinion, after the "lazy majority" vote process, we will > > have > > > a > > > > > >> community consensus about the accepted FLIP. > > > > > >> > > > > > >> Best, > > > > > >> Congxian > > > > > >> > > > > > >> > > > > > >> Becket Qin <becket....@gmail.com> 于2019年6月28日周五 上午10:06写道: > > > > > >> > > > > > >>> Thanks a lot for bringing this up, Aljoscha. > > > > > >>> > > > > > >>> Big +1 to the following: > > > > > >>> > > > > > >>> 1. Stick to a strict FLIP voting process. > > > > > >>> In practice, I rarely see a FLIP with a voting thread. In fact, > > the > > > > > >> search > > > > > >>> in mail archive > > > > > >>> < > > > > > >>> > > > > > >> > > > > > > > > > > > > > > > http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/template/NamlServlet.jtp?macro=search_page&node=1&query=subject%3AVOTE%2CFLIP&days=0 > > > > > >>>> > > > > > >>> gives > > > > > >>> only 3 FLIPs with voting thread, and unfortunately none of them > > has > > > > met > > > > > >> the > > > > > >>> lazy majority requirements, which needs 3 binding votes. > However, > > > we > > > > > have > > > > > >>> 11 adopted-but-unreleased FLIPs and 16 released FLIPs. > > > > > >>> Even though we claimed *"These proposals are more serious than > > code > > > > > >> changes > > > > > >>> and more serious even than release votes.", *we did not really > > > treat > > > > > them > > > > > >>> seriously. The missing voting process effectively put the > efforts > > > of > > > > > FLIP > > > > > >>> in vain. This leads to a few consequences: > > > > > >>> a) The conclusion of the FLIP is never really finalized. People > > may > > > > > >> change > > > > > >>> the FLIP at wish during the implementation. > > > > > >>> b) Some "adopted" FLIPs only have conceptual ideas instead of > > > > necessary > > > > > >>> concrete interfaces, which leaves a lot of problems in the > > > > > implementation > > > > > >>> phase. > > > > > >>> c) New contributors are completely confused on how to > contribute. > > > The > > > > > >>> voting threads seems died, and magically someone else's code > got > > > > > checked > > > > > >> in > > > > > >>> without a passed FLIP. These "good citizens" may feel excluded > > and > > > > > simply > > > > > >>> leave the chaos. > > > > > >>> d) API changes / user sensible behavior changes may be checked > in > > > > > without > > > > > >>> being carefully inspected. To fix them, hacky tricks has to be > > made > > > > in > > > > > >>> order to keep backwards compatibility. > > > > > >>> > > > > > >>> So a huge +1 to stick to the FLIP voting process. > > > > > >>> > > > > > >>> 2. Stick to the definition of major changes. Generally speaking > > any > > > > > user > > > > > >>> sensible changes should go through a FLIP. > > > > > >>> - Some changes may be small from the size of patch > > perspective, > > > > but > > > > > >> the > > > > > >>> impact could be huge. Take metric as an example, imagine a > cloud > > > > > service > > > > > >>> provider who relies on a metric to do alerting or bill their > > > > customer. > > > > > >> Any > > > > > >>> change to such metrics will have huge impact on them. > > > > > >>> - Sometimes there might be no "interface" change per se, but > > the > > > > > >>> behavior of a method is slightly changed. Even that can be very > > > > > annoying > > > > > >> to > > > > > >>> some users. So I think any user sensible changes should go > > through > > > a > > > > > >> FLIP. > > > > > >>> > > > > > >>> 3. Generally speaking, make each FLIP completable in a > reasonable > > > > > amount > > > > > >> of > > > > > >>> time. Some large changes may need multiple FLIPs. > > > > > >>> - I agree with David that a long lasting FLIP can be > > problematic > > > as > > > > > it > > > > > >>> could become obsolete before the work is done. And might need > to > > > make > > > > > >>> changes to the original proposal multiple times. It might be a > > > little > > > > > >>> difficult to have a standard to say what kind of FLIP is a long > > > > lasting > > > > > >>> FLIP. > > > > > >>> - Sometimes long lasting FLIP may be necessary, e.g. a big > new > > > > module > > > > > >> / > > > > > >>> functionality, etc. Those FLIPs are rare and usually more > > > > independent. > > > > > We > > > > > >>> may need to treat them case by case. > > > > > >>> > > > > > >>> 4. Take the votes from both committers and PMCs as binding. > > > > > >>> > > > > > >>> > > > > > >>> In addition, I'd like to propose the following: > > > > > >>> > > > > > >>> 1. Always discuss the FLIP based on a FLIP wiki page instead > of a > > > > > Google > > > > > >>> doc. It is perfectly fine to use google doc to explain stuff, > but > > > the > > > > > >> FLIP > > > > > >>> wiki page is the official source for the proposal. The > discussion > > > and > > > > > >> vote > > > > > >>> needs to be based on that. > > > > > >>> > > > > > >>> According to the process of FLIP > > > > > >>> < > > > > > >>> > > > > > >> > > > > > > > > > > > > > > > https://cwiki.apache.org/confluence/display/FLINK/Flink+Improvement+Proposals#FlinkImprovementProposals-Process > > > > > >>>> , > > > > > >>> one should create a FLIP wiki page "before" starting a > discussion > > > ML > > > > > >>> thread. The discussion is supposed to be happen in ML but based > > on > > > > the > > > > > >> FLIP > > > > > >>> wiki. This process has some benefits: > > > > > >>> a) Since all the FLIP proposals must give necessary > > information > > > > such > > > > > >> as > > > > > >>> public interface change / behavior change / migration plan and > > > such, > > > > > the > > > > > >>> authors are enforced to think about them. > > > > > >>> b) Even if a FLIP is finally rejected, we have all the > history > > > of > > > > > it. > > > > > >>> These are valuable assets of the project and would give a good > > > > > reference > > > > > >>> for later contributors. > > > > > >>> > > > > > >>> However, in practice, what people usually do is to have a > Google > > > doc > > > > > for > > > > > >>> discussion and only create a FLIP wiki page after that idea is > > > > accepted > > > > > >> by > > > > > >>> the community. There might be a few caveats in this: > > > > > >>> a) The Google docs may be organized in various ways and > something > > > > > >> important > > > > > >>> might be missing. This sometimes harms the review efficiency as > > > > people > > > > > >>> might have to ask some basic questions. > > > > > >>> b) More importantly, the rejected proposals will be silently > lost > > > > > without > > > > > >>> any history - later contributors will not be able to know what > > > > happened > > > > > >>> before, and there is no guarantee that the google docs will > > always > > > be > > > > > >>> accessible. > > > > > >>> c) From process perspective, one may be confused on whether a > > > > > discussion > > > > > >>> thread on the FLIP wiki is still needed if people have agreed > on > > > the > > > > > >> google > > > > > >>> doc. (At least I always feel a little awkward after the google > > doc > > > > has > > > > > >> been > > > > > >>> agreed upon) > > > > > >>> > > > > > >>> 2. The public interface change proposal should be concrete in > > each > > > > > FLIP, > > > > > >>> instead of conceptual. This avoids surprises in the > > implementation > > > > > phase. > > > > > >>> > > > > > >>> 3. Adopted FLIP should mostly be "immutable". Any change to an > > > > adopted > > > > > >> FLIP > > > > > >>> requires a new voting process. For minor changes, a Lazy > Approval > > > > > process > > > > > >>> can be applied, i.e. announce the change in the voting ML > thread, > > > get > > > > > at > > > > > >>> least one binding +1. In case of any -1, a new lazy majority > vote > > > is > > > > > >>> required. > > > > > >>> > > > > > >>> As someone deeply involved in Kafka and KIP process design and > > > > > >> execution, I > > > > > >>> saw how critical it is to the healthiness of such projects > > keeping > > > > > going > > > > > >>> through tons of changes. I believe that the FLIP process could > > > play a > > > > > >> more > > > > > >>> effective role to organize major changes and improve the > overall > > > > > >>> contribution efficiency, code quality / stability of Flink. To > > > > achieve > > > > > >>> that, we really have to take the FLIP process seriously, follow > > it > > > by > > > > > >>> ourselves and mentor the community to do the same. > > > > > >>> > > > > > >>> Thanks, > > > > > >>> > > > > > >>> Jiangjie (Becket) Qin > > > > > >>> > > > > > >>> On Thu, Jun 27, 2019 at 10:28 PM Stephan Ewen < > se...@apache.org> > > > > > wrote: > > > > > >>> > > > > > >>>> +1 to re-think the FLIP process a bit. > > > > > >>>> > > > > > >>>> I think more explicit approval is certainly a good idea. > > > > > >>>> Who can vote on FLIPs is a question to be answered, though. I > > > think > > > > > >> PMCs > > > > > >>>> only would be a bit too strict. > > > > > >>>> > > > > > >>>> On Thu, Jun 27, 2019 at 11:38 AM Hequn Cheng < > > > chenghe...@gmail.com> > > > > > >>> wrote: > > > > > >>>> > > > > > >>>>> Hi all, > > > > > >>>>> > > > > > >>>>> Thanks for raising the nice discussion @Aljoscha. > > > > > >>>>> > > > > > >>>>> +1 to sticking to the "lazy majority" voting process. > > > > > >>>>> It is good to get more people involved in the design > discussion > > > and > > > > > >> get > > > > > >>>>> enough binding votes. > > > > > >>>>> > > > > > >>>>> As for the scope of the FLIP, previous replies show a lot of > > good > > > > > >>>> thoughts. > > > > > >>>>> On the other hand, I think we can also define some scope that > > > which > > > > > >>>> should > > > > > >>>>> *not* be a FLIP. > > > > > >>>>> Sometimes it is easier for us to list a blacklist. > > > > > >>>>> > > > > > >>>>> Best, Hequn > > > > > >>>>> > > > > > >>>>> On Thu, Jun 27, 2019 at 5:27 PM Biao Liu <mmyy1...@gmail.com > > > > > > wrote: > > > > > >>>>> > > > > > >>>>>> Hi community, > > > > > >>>>>> > > > > > >>>>>> Thanks Aljoscha for bringing us this discussion. > > > > > >>>>>> > > > > > >>>>>> As Aljoscha said, "lazy majority" is always the voting rule > of > > > > > >> FLIP. > > > > > >>> It > > > > > >>>>>> seems that people just ignored or didn't realized this rule. > > > > > >>>>>> My concern is that what we can do to make sure developers > will > > > > obey > > > > > >>> the > > > > > >>>>>> rules. > > > > > >>>>>> I think Kurt has given a good suggestion. Since the > community > > is > > > > > >>>> growing > > > > > >>>>>> bigger and bigger, maybe we need some volunteers to host the > > > > > >> progress > > > > > >>>> of > > > > > >>>>>> FLIP. Like start a discussion/voting in ML or update the > sheet > > > of > > > > > >>> FLIP > > > > > >>>>>> document [1]. > > > > > >>>>>> > > > > > >>>>>> 1. > > > > > >>>>>> > > > > > >>>>>> > > > > > >>>>> > > > > > >>>> > > > > > >>> > > > > > >> > > > > > > > > > > > > > > > https://cwiki.apache.org/confluence/display/FLINK/Flink+Improvement+Proposals > > > > > >>>>>> > > > > > >>>>>> > > > > > >>>>>> > > > > > >>>>>> Dawid Wysakowicz <dwysakow...@apache.org> 于2019年6月27日周四 > > > 下午2:56写道: > > > > > >>>>>> > > > > > >>>>>>> Hi all, > > > > > >>>>>>> > > > > > >>>>>>> I do very much agree with the statement from Aljosha's > > initial > > > > > >>>> message, > > > > > >>>>>>> which is currently also expressed in the description page > of > > a > > > > > >>> FLIP. > > > > > >>>>>>> > > > > > >>>>>>> These will stick around for quite a while after they’re > > > > > >> implemented > > > > > >>>> and > > > > > >>>>>> the PMC (and the committers) has the burden of maintaining > > > them. I > > > > > >>>> think > > > > > >>>>>> that therefore FLIP votes are even move important than > release > > > > > >> votes, > > > > > >>>>>> because they steer the long time direction of Flink. > > > > > >>>>>>> > > > > > >>>>>>> > > > > > >>>>>>> Therefore I think we should enforce following the lazy > > majority > > > > > >>>>> approach. > > > > > >>>>>>> I will probably just repeat what was already said, but I do > > > think > > > > > >>>> this > > > > > >>>>>>> would make the decisions more visible, easier to reference > in > > > > > >> case > > > > > >>> of > > > > > >>>>>>> related decisions, and also this would show if the > community > > > has > > > > > >>>>> capacity > > > > > >>>>>>> to implement the FLIP. Nowadays, even if a FLIP is > "accepted" > > > it > > > > > >>>> might > > > > > >>>>> be > > > > > >>>>>>> just stale because there are no committers that have the > > > capacity > > > > > >>> to > > > > > >>>>> help > > > > > >>>>>>> with the changes. > > > > > >>>>>>> > > > > > >>>>>>> Another, maybe an orthogonal issue, is that we could maybe > > use > > > > > >> this > > > > > >>>>>>> process for agreeing on a scope of a release. I think it > > might > > > > > >> make > > > > > >>>>> sense > > > > > >>>>>>> to construct a release plan of an accepted FLIPs. This > would > > > > > >>> enforce > > > > > >>>>>> better > > > > > >>>>>>> scoping of FLIPs, as they would have to fit into a single > > > > > >> release. > > > > > >>> In > > > > > >>>>> my > > > > > >>>>>>> opinion FLIPs that spawn multiple releases(thus even over > > > > > >> multiple > > > > > >>>>> years) > > > > > >>>>>>> are rarely relevant in the future anymore, as the project > > > evolves > > > > > >>> and > > > > > >>>>> it > > > > > >>>>>>> usually makes sense to revisit the original proposal > anyway. > > > This > > > > > >>>> would > > > > > >>>>>>> have the benefits that: > > > > > >>>>>>> > > > > > >>>>>>> - we have a clear scope for a release rather than just a > > > vague > > > > > >>>> list > > > > > >>>>> of > > > > > >>>>>>> features that we want to have. > > > > > >>>>>>> - the whole community is on the same page what a certain > > > > > >> feature > > > > > >>>>> means > > > > > >>>>>>> - the scope does not change drastically during the > > > development > > > > > >>>>> period > > > > > >>>>>>> > > > > > >>>>>>> As for what should and what should not deserve a FLIP, I > > > actually > > > > > >>>> quite > > > > > >>>>>>> like the definition in the FLIPs page[1]. I think it does > > make > > > > > >>> sense > > > > > >>>> to > > > > > >>>>>>> have a FLIP, and as a result a voting process, for any > > *public* > > > > > >> or > > > > > >>>>> major > > > > > >>>>>>> change. I agree with Gordon. Even if the change is trivial > it > > > > > >> might > > > > > >>>>>> affect > > > > > >>>>>>> external systems/users and it is also a commitment from the > > > > > >>>> community. > > > > > >>>>>>> Therefore I think they deserve a vote. > > > > > >>>>>>> > > > > > >>>>>>> Lastly, I think Jark raised a valid point. We should have a > > > clear > > > > > >>>>>>> understanding what binding votes in this case mean. I think > > it > > > > > >>> makes > > > > > >>>>>> sense > > > > > >>>>>>> to consider PMC's and committers' votes as binding for > FLIPs > > > > > >>> voting. > > > > > >>>>>>> Otherwise we would lose the aspect of committing to help > with > > > > > >>> getting > > > > > >>>>> the > > > > > >>>>>>> FLIP into the codebase. > > > > > >>>>>>> > > > > > >>>>>>> To sum up I would opt for enforcing the lazy majority. I > > would > > > > > >>>> suggest > > > > > >>>>> to > > > > > >>>>>>> consider constructing a release plan with a list of > accepted > > > > > >> FLIPs. > > > > > >>>>>>> > > > > > >>>>>>> Best, > > > > > >>>>>>> > > > > > >>>>>>> Dawid > > > > > >>>>>>> > > > > > >>>>>>> > > > > > >>>>>>> [1] > > > > > >>>>>>> > > > > > >>>>>> > > > > > >>>>> > > > > > >>>> > > > > > >>> > > > > > >> > > > > > > > > > > > > > > > https://cwiki.apache.org/confluence/display/FLINK/Flink+Improvement+Proposals#FlinkImprovementProposals-Whatisconsidereda%22majorchange%22thatneedsaFLIP > > > > > >>>>>>> ? > > > > > >>>>>>> On 27/06/2019 04:15, Jark Wu wrote: > > > > > >>>>>>> > > > > > >>>>>>> +1 for sticking to the lazy majority voting. > > > > > >>>>>>> > > > > > >>>>>>> A question from my side, the 3+1 votes are binding votes > > which > > > > > >> only > > > > > >>>>>> active > > > > > >>>>>>> (i.e. non-emeritus) committers and PMC members have? > > > > > >>>>>>> > > > > > >>>>>>> > > > > > >>>>>>> Best, > > > > > >>>>>>> Jark > > > > > >>>>>>> > > > > > >>>>>>> > > > > > >>>>>>> On Wed, 26 Jun 2019 at 19:07, Tzu-Li (Gordon) Tai < > > > > > >>>> tzuli...@apache.org > > > > > >>>>>> > > > > > >>>>>> <tzuli...@apache.org> > > > > > >>>>>>> wrote: > > > > > >>>>>>> > > > > > >>>>>>> > > > > > >>>>>>> +1 to enforcing lazy majority voting for future FLIPs, > > starting > > > > > >>> from > > > > > >>>>>> FLIPs > > > > > >>>>>>> that are still currently under discussion (by the time > we've > > > > > >> agreed > > > > > >>>> on > > > > > >>>>>> the > > > > > >>>>>>> FLIP voting process). > > > > > >>>>>>> > > > > > >>>>>>> My two cents concerning "what should and shouldn't be a > > FLIP": > > > > > >>>>>>> > > > > > >>>>>>> I can understand Chesnay's argument about how some FLIPs, > > while > > > > > >>>> meeting > > > > > >>>>>> the > > > > > >>>>>>> criteria defined by the FLIP guidelines, feel to not be > > > > > >>> sufficiently > > > > > >>>>>> large > > > > > >>>>>>> to justify a FLIP. > > > > > >>>>>>> As a matter of fact, the FLIP guidelines explicitly mention > > > that > > > > > >>>>> "Exposed > > > > > >>>>>>> Monitoring Information" is considered public interface; I > > guess > > > > > >>> that > > > > > >>>>> was > > > > > >>>>>>> why this FLIP came around in the first place. > > > > > >>>>>>> I was also hesitant in whether or not the recent FLIP about > > > keyed > > > > > >>>> state > > > > > >>>>>>> snapshot binary format unification (FLIP-41) deserves to > be a > > > > > >> FLIP, > > > > > >>>>> since > > > > > >>>>>>> the complexity of the change is rather small. > > > > > >>>>>>> > > > > > >>>>>>> However, with the fact that these changes indeed touch the > > > > > >> general > > > > > >>>>> public > > > > > >>>>>>> interface of Flink, the scope (including all potential 3rd > > > party > > > > > >>>>>> projects) > > > > > >>>>>>> is strictly speaking hard to define. > > > > > >>>>>>> Outcomes of such changes, even if the complexity of the > > change > > > is > > > > > >>>>> rather > > > > > >>>>>>> trivial, can still stick around for quite a while. > > > > > >>>>>>> In this case, IMO the value of proposing a FLIP for such a > > > change > > > > > >>> is > > > > > >>>>> less > > > > > >>>>>>> about discussing design or implementation details, and more > > on > > > > > >> the > > > > > >>>> fact > > > > > >>>>>>> that said change requires an official vote for approval > from > > > the > > > > > >>>>>> community. > > > > > >>>>>>> > > > > > >>>>>>> Best, > > > > > >>>>>>> Gordon > > > > > >>>>>>> > > > > > >>>>>>> On Wed, Jun 26, 2019 at 5:50 PM Chesnay Schepler < > > > > > >>> ches...@apache.org > > > > > >>>>> > > > > > >>>>> < > > > > > >>>>>> ches...@apache.org> > > > > > >>>>>>> wrote: > > > > > >>>>>>> > > > > > >>>>>>> > > > > > >>>>>>> The FLIP guidelines disagree with your first point. > > > > > >>>>>>> > > > > > >>>>>>> The guidelines are a bit contradictory as at some places we > > say > > > > > >>> that > > > > > >>>>>>> FLIPs are for major features, and in other places say they > > are > > > > > >> for > > > > > >>>> any > > > > > >>>>>>> changes to the public API. > > > > > >>>>>>> This very point came up in the recent FLIP about > > standardizing > > > > > >>>> metrics. > > > > > >>>>>>> Metrics are somewhat part of the public API, and thus you > can > > > > > >>>> interpret > > > > > >>>>>>> the guidelines to say that you need a FLIP. But in terms of > > > > > >> scope, > > > > > >>> I > > > > > >>>>>>> believed it to not be sufficiently large to justify a FLIP. > > > > > >>>>>>> > > > > > >>>>>>> Overall I'm very much in favor of sticking to the lazy > > majority > > > > > >>>> voting > > > > > >>>>>>> scheme and enforcing it, > > > > > >>>>>>> but I do think we have to reevaluate what changes require a > > > FLIP > > > > > >>> and > > > > > >>>>>>> which don't. > > > > > >>>>>>> > > > > > >>>>>>> On 26/06/2019 11:37, Aljoscha Krettek wrote: > > > > > >>>>>>> > > > > > >>>>>>> Hi All, > > > > > >>>>>>> > > > > > >>>>>>> When we originally introduced the FLIP process (which is > > based > > > on > > > > > >>> the > > > > > >>>>>>> > > > > > >>>>>>> KIP process from Kafka and refers to the Kafka bylaws for > how > > > > > >> votes > > > > > >>>>> work) > > > > > >>>>>>> voting was set to be “lazy majority”. This means that a > FLIP > > > vote > > > > > >>>>>>> > > > > > >>>>>>> "requires > > > > > >>>>>>> > > > > > >>>>>>> 3 binding +1 votes and more binding +1 votes than -1 votes” > > > > > >> [1][2]. > > > > > >>>>>>> Currently, we treat FLIP votes more like “lazy Approval”, > > i.e. > > > if > > > > > >>>> there > > > > > >>>>>>> > > > > > >>>>>>> are > > > > > >>>>>>> > > > > > >>>>>>> no -1 votes FLIP are often accepted, if there is a VOTE > > thread > > > at > > > > > >>>> all. > > > > > >>>>>>> > > > > > >>>>>>> I propose that we stick to the original process or update > our > > > > > >> FLIP > > > > > >>>>>>> > > > > > >>>>>>> document to a voting scheme that we agree on. I’m in favour > > of > > > > > >>>> sticking > > > > > >>>>>>> with “lazy majority”, for these reasons: > > > > > >>>>>>> > > > > > >>>>>>> 1. FLIPs should typically be used for deeper changes of > > Flink. > > > > > >>> These > > > > > >>>>>>> > > > > > >>>>>>> will stick around for quite a while after they’re > implemented > > > and > > > > > >>> the > > > > > >>>>> PMC > > > > > >>>>>>> (and the committers) has the burden of maintaining them. I > > > think > > > > > >>> that > > > > > >>>>>>> therefore FLIP votes are even move important than release > > > votes, > > > > > >>>>> because > > > > > >>>>>>> they steer the long time direction of Flink. > > > > > >>>>>>> > > > > > >>>>>>> 2. Requiring at least 3 +1 votes means that there is more > > work > > > > > >>> needed > > > > > >>>>>>> > > > > > >>>>>>> for getting a FLIP accepted. I think this is a good thing > > > because > > > > > >>> it > > > > > >>>>> will > > > > > >>>>>>> require people to be more involved in the direction of the > > > > > >> project. > > > > > >>>> And > > > > > >>>>>>> > > > > > >>>>>>> if > > > > > >>>>>>> > > > > > >>>>>>> there are not enough +1 votes on a FLIP, this is a signal > > that > > > > > >>> there > > > > > >>>> is > > > > > >>>>>>> > > > > > >>>>>>> not > > > > > >>>>>>> > > > > > >>>>>>> enough interest in the feature or that there is not enough > > > > > >>> bandwidth > > > > > >>>>> for > > > > > >>>>>>> working on a feature. > > > > > >>>>>>> > > > > > >>>>>>> 3. This is more an “optics” thing, but I think having clear > > > rules > > > > > >>> and > > > > > >>>>>>> > > > > > >>>>>>> sticking to them makes it easier for an international > > community > > > > > >>> (like > > > > > >>>>> the > > > > > >>>>>>> Apache Flink community) to work together and collaborate. > If > > > > > >> there > > > > > >>> is > > > > > >>>>>>> preferential treatment for certain parts of the community > > that > > > > > >>> makes > > > > > >>>> it > > > > > >>>>>>> hard for other parts to participate and get into the > > community > > > > > >> and > > > > > >>>>>>> understand the workings of it. > > > > > >>>>>>> > > > > > >>>>>>> As a side note, I like the FLIP process because they are a > > > place > > > > > >>>> where > > > > > >>>>>>> > > > > > >>>>>>> we can keep track of important decisions and they are a > place > > > > > >> that > > > > > >>> we > > > > > >>>>> can > > > > > >>>>>>> point to when there is uncertainty about a certain feature > in > > > the > > > > > >>>>> future. > > > > > >>>>>>> For example FLIP-28 [3] (which is now discarded) would be a > > > place > > > > > >>>> where > > > > > >>>>>>> > > > > > >>>>>>> we > > > > > >>>>>>> > > > > > >>>>>>> record the decision that we want Flink to be Scala free in > > the > > > > > >> long > > > > > >>>>> term. > > > > > >>>>>>> We could then point to this in the future. There are some > > > > > >> decisions > > > > > >>>> in > > > > > >>>>>>> Flink that are somewhat hidden in ML discussions or Jira > > > issues, > > > > > >>> and > > > > > >>>>>>> therefore hard to find, for example the decision to > > eventually > > > > > >>> phase > > > > > >>>>> out > > > > > >>>>>>> the DataSet API, or the decision to drop the older Python > > APIs, > > > > > >> or > > > > > >>>> the > > > > > >>>>>>> semantics of savepoints and checkpoints. Some FLIPs might > not > > > be > > > > > >>>> about > > > > > >>>>>>> implementing a certain feature but just a general direction > > > that > > > > > >> we > > > > > >>>>> want > > > > > >>>>>>> > > > > > >>>>>>> to > > > > > >>>>>>> > > > > > >>>>>>> take. I think we should have more of these. > > > > > >>>>>>> > > > > > >>>>>>> What do you think? > > > > > >>>>>>> > > > > > >>>>>>> Best, > > > > > >>>>>>> Aljoscha > > > > > >>>>>>> > > > > > >>>>>>> [1] > > > > > >>>>>>> > > > > > >>>>>>> > > > > > >>>>>> > > > > > >>>>> > > > > > >>>> > > > > > >>> > > > > > >> > > > > > > > > > > > > > > > https://cwiki.apache.org/confluence/display/FLINK/Flink+Improvement+Proposals > > > > > >>>>>>> > > > > > >>>>>>> [2] > > > > > >>>>>>> > > > > > >>>>>>> > > > > > >>>>>> > > > > > >>>>> > > > > > >>>> > > > > > >>> > > > > > >> > > > > > > > > > > > > > > > https://cwiki.apache.org/confluence/display/KAFKA/Bylaws#Bylaws-Approvals > > > > > >>>>>>> > > > > > >>>>>>> [3] > > > > > >>>>>>> > > > > > >>>>>>> > > > > > >>>>>> > > > > > >>>>> > > > > > >>>> > > > > > >>> > > > > > >> > > > > > > > > > > > > > > > https://cwiki.apache.org/confluence/display/FLINK/FLIP-28%3A+Long-term+goal+of+making+flink-table+Scala-free > > > > > >>>>>>> > > > > > >>>>>>> > > > > > >>>>>> > > > > > >>>>> > > > > > >>>> > > > > > >>> > > > > > >> > > > > > > > > > > > > > > > > > > > >