@Fabian, Could you cover FLINK-2712 in your pull request? I think that it would be better than split pull request.
Regards, Chiwan Park > On Sep 28, 2015, at 4:51 PM, Fabian Hueske <fhue...@gmail.com> wrote: > > Thanks everybody for the discussion. > I'll prepare a pull request to update the "How to contribute" and "Coding > Guidelines". > > Thanks, > Fabian > > 2015-09-26 9:06 GMT+02:00 Maximilian Michels <m...@apache.org>: > >> Hi Fabian, >> >> This is a very important topic. Thanks for starting the discussion. >> >> 1) JIRA discussion >> >> Absolutely. No new feature should be introduced without a discussion. >> Frankly, I see the problem that sometimes discussions only come up >> when the pull request has been opened. However, this can be overcome >> by the design document. >> >> 2) Design document >> >> +1 for the document. It increases transparency but also helps the >> contributor to think his idea through before starting to code. The >> document could also be written directly in JIRA. That way, it is more >> accessible. JIRA offers mark up; even images can be attached and >> displayed in the JIRA description. >> >> I'd like to propose another section "Limitations" for the design >> document. Breaking API changes should also be listed on a special Wiki >> page. >> >> 3) Coding style >> >> In addition to updating the document, do we want to enforce coding >> styles also by adding new Maven Checkstyle rules? IMHO strict rules >> could cause more annoyances than they actually contribute to the >> readability of the code. Perhaps this should be discussed in a >> separate thread. >> >> +1 for collecting common problems and design patterns to include them >> in the document. I was thinking, that we should also cover some of the >> features of tools and dependencies we heavily use, e.g. Travis, >> Mockito, Guava, Log4j, FlinkMiniCluster, Unit testing vs IT cases, >> etc. >> >> 4 ) Restructuring the how to contribute guide >> >> Good idea to have a meta document that explains how contributing works >> in general, and another document for technical things. >> >> >> Cheers, >> Max >> >> >> On Thu, Sep 24, 2015 at 2:53 PM, Fabian Hueske <fhue...@gmail.com> wrote: >>> >>> Thanks everybody for feedback and comments. >>> >>> Regarding 1) and 2): >>> >>> I like the idea of keeping the discussion of new features and >> improvements >>> in JIRA as Kostas proposed. >>> Our coding guidelines [1] already request a JIRA issue for each pull >>> request. >>> >>> How about we highlight this requirement more prominently and follow this >>> rule more strict from now on. >>> JIRA issues for new features and improvements should clearly specify the >>> scope and requirements for the new feature / improvement. >>> The level of detail is up to the reporter of the issue, but the community >>> can request more detail or change the scope and requirements by >> discussion. >>> When a JIRA issue for a new feature or improvement is opened, the >> community >>> can start a discussion whether the feature is desirable for Flink or not. >>> Any contributor (including the reporter) can also attach a >>> "design-doc-requested" label to the issue. A design document can be >>> proposed by anybody, including the reporter or assignee of the JIRA >> issue. >>> However, the issue cannot be resolved and a corresponding PR not be >> merged >>> before a design document has been accepted by lazy consensus. Hence, an >>> assignee should propose a design doc before starting to code to avoid >> major >>> redesigns of the implementation. >>> >>> This way it is up to the community when to start a discussion about >> whether >>> a feature request is accepted or to request a design document. We can >> make >>> design documents mandatory for changes that touch the public API. >>> >>> Regarding 3): >>> >>> I agree with Vasia, that we should collect suggestions for common >> patterns >>> and also continuously update the coding guidelines. >>> @Henry, I had best practices (exception handling, tests, etc.) in mind. >>> Syntactic code style is important as well, but we should have a separate >>> discussion about that, IMO. >>> >>> Proposal for a design document template: >>> >>> - Overview of general approach >>> - API changes (changed interfaces, new / deprecated configuration >>> parameters, changed behavior) >>> - Main components and classes to touch >>> >>> Cheers, >>> Fabian >>> >>> [1] http://flink.apache.org/coding-guidelines.html >>> <http://flink.apache.org/coding-guidelines.html> >>> >>> 2015-09-24 10:52 GMT+02:00 Chiwan Park <chiwanp...@apache.org>: >>> >>>> Thanks Fabian for starting the discussion. >>>> >>>> +1 for overall approach. >>>> >>>> About (1), expressing that consensus must be required for new feature >> in >>>> “How to contribute” page is very nice. Some pull requests were sent >> without >>>> consensus. The contributors had to rewrote their pull requests. >>>> >>>> Agree with (2), (3) and (4). >>>> >>>> Regards, >>>> Chiwan Park >>>> >>>>> On Sep 24, 2015, at 2:23 AM, Henry Saputra <henry.sapu...@gmail.com> >>>> wrote: >>>>> >>>>> Thanks again, Fabian for starting the discussions. >>>>> >>>>> For (1) and (2) I think it is good idea and will help people to >>>>> understand and follow the author thought process. >>>>> Following up with Stephan's reply, some new features solutions could >>>>> be explained thoroughly in the PR descriptions but some requires >>>>> additional reviews of the proposed design. >>>>> I like the idea of using tag in JIRA whether new features should or >>>>> should not being accompanied by design document. >>>>> >>>>> Agree with (3) and (4). >>>>> As for (3) are you thinking about more of style of code syntax via >>>>> checkstyle updates, or best practices in term of no mutable state if >>>>> possible, throw precise Exception if possible for interfaces, etc. ? >>>>> >>>>> - Henry >>>>> >>>>> >>>>> >>>>> >>>>> On Wed, Sep 23, 2015 at 9:31 AM, Stephan Ewen <se...@apache.org> >> wrote: >>>>>> Thanks, Fabian for driving this! >>>>>> >>>>>> I agree with your points. >>>>>> >>>>>> Concerning Vasia's comment to not raise the bar too high: >>>>>> That is true, the requirements should be reasonable. We can >> definitely >>>> tag >>>>>> issues as "simple" which means they do not require a design >> document. >>>> That >>>>>> should be more for new features and needs not be very detailed. >>>>>> >>>>>> We could also make the inverse, meaning we explicitly tag certain >>>> issues as >>>>>> "requires design document". >>>>>> >>>>>> Greetings, >>>>>> Stephan >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Wed, Sep 23, 2015 at 5:05 PM, Vasiliki Kalavri < >>>> vasilikikala...@gmail.com >>>>>>> wrote: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> I agree with you Fabian. Clarifying these issues in the "How to >>>> Contribute" >>>>>>> guide will save lots of time both to reviewers and contributors. >> It is >>>> a >>>>>>> really disappointing situation when someone spends time >> implementing >>>>>>> something and their PR ends up being rejected because either the >>>> feature >>>>>>> was not needed or the implementation details were never agreed on. >>>>>>> >>>>>>> That said, I think we should also make sure that we don't raise the >>>> bar too >>>>>>> high for simple contributions. >>>>>>> >>>>>>> Regarding (1) and (2), I think we should clarify what kind of >>>>>>> additions/changes require this process to be followed. e.g. do we >> need >>>> to >>>>>>> discuss additions for which JIRAs already exist? Ideas described >> in the >>>>>>> roadmaps? Adding a new algorithm to Gelly/Flink-ML? >>>>>>> >>>>>>> Regarding (3), maybe we can all suggest some examples/patterns that >>>> we've >>>>>>> seen when reviewing PRs and then choose the most common (or all). >>>>>>> >>>>>>> (4) sounds good to me. >>>>>>> >>>>>>> Cheers, >>>>>>> Vasia. >>>>>>> >>>>>>> On 23 September 2015 at 15:08, Kostas Tzoumas <ktzou...@apache.org >>> >>>> wrote: >>>>>>> >>>>>>>> Big +1. >>>>>>>> >>>>>>>> For (1), a discussion in JIRA would also be an option IMO >>>>>>>> >>>>>>>> For (2), let us come up with few examples on what constitutes a >>>> feature >>>>>>>> that needs a design doc, and what should be in the doc (IMO >>>>>>>> architecture/general approach, components touched, interfaces >> changed) >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Wed, Sep 23, 2015 at 2:24 PM, Fabian Hueske <fhue...@gmail.com >>> >>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi everybody, >>>>>>>>> >>>>>>>>> I guess we all have noticed that the Flink community is quickly >>>> growing >>>>>>>> and >>>>>>>>> more and more contributions are coming in. Recently, a few >>>>>>> contributions >>>>>>>>> proposed new features without being discussed on the mailing >> list. >>>> Some >>>>>>>> of >>>>>>>>> these contributions were not accepted in the end. In other cases, >>>> pull >>>>>>>>> requests had to be heavily reworked because the approach taken >> was >>>> not >>>>>>>> the >>>>>>>>> best one. These are situations which should be avoided because >> both >>>> the >>>>>>>>> contributor as well as the person who reviewed the contribution >>>>>>> invested >>>>>>>> a >>>>>>>>> lot of time for nothing. >>>>>>>>> >>>>>>>>> I had a look at our “How to contribute” and “Coding guideline” >> pages >>>>>>> and >>>>>>>>> think, we can improve them. I see basically two issues: >>>>>>>>> >>>>>>>>> 1. The documents do not explain how to propose and discuss new >>>>>>> features >>>>>>>>> and improvements. >>>>>>>>> 2. The documents are quite technical and the structure could be >>>>>>>> improved, >>>>>>>>> IMO. >>>>>>>>> >>>>>>>>> I would like to improve these pages and propose the following >>>>>>> additions: >>>>>>>>> >>>>>>>>> 1. Request contributors and committers to start discussions on >> the >>>>>>>>> mailing list for new features. This discussion should help to >> figure >>>>>>> out >>>>>>>>> whether such a new feature is a good fit for Flink and give first >>>>>>>> pointers >>>>>>>>> for a design to implement it. >>>>>>>>> 2. Require contributors and committers to write design >> documents for >>>>>>>> all >>>>>>>>> new features and major improvements. These documents should be >>>> attached >>>>>>>> to >>>>>>>>> a JIRA issue and follow a template which needs to be defined. >>>>>>>>> 3. Extend the “Coding Style Guides” and add patterns that are >>>>>>> commonly >>>>>>>>> remarked in pull requests. >>>>>>>>> 4. Restructure the current pages into three pages: a general >> guide >>>>>>> for >>>>>>>>> contributions and two guides for how to contribute to code and >>>> website >>>>>>>> with >>>>>>>>> all technical issues (repository, IDE setup, build system, etc.) >>>>>>>>> >>>>>>>>> Looking forward for your comments, >>>>>>>>> Fabian >>>>>>>>> >>>>>>>> >>>>>>> >>>> >>>> >>>> >>>> >>>> >>>> >>