Hi, I opened a PR with the discussed changes [1]. Please review, give feedback, and suggest changes.
Cheers, Fabian [1] https://github.com/apache/flink-web/pull/11 2015-09-28 18:02 GMT+02:00 Fabian Hueske <fhue...@gmail.com>: > @Chiwan, sure. Will do that. Thanks for pointing it out :-) > > 2015-09-28 18:00 GMT+02:00 Chiwan Park <chiwanp...@apache.org>: > >> @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 >> >>>>>>>>> >> >>>>>>>> >> >>>>>>> >> >>>> >> >>>> >> >>>> >> >>>> >> >>>> >> >>>> >> >> >> >> >> >> >> >> >