Fair enough. I still think it's too verbose but most of the feedback was positive, so I don't want to block this.
I think it would be good to model the form with check boxes where possible. For example > The runtime per-record code paths (performance sensitive): *(yes / no / don't know)* could be done as: > [ ] Does not touch the runtime per-record code paths (performance sensitive). (assuming that "Don't know" should be treated as "yes"). Also the examples could be a bit more diverse. They are all targeted towards "engine"-related changes and do not serve as good examples for APIs, libraries, connectors, etc. changes. But I think we can discuss the details on the PR. -- Fabian 2017-07-25 9:13 GMT+02:00 Ufuk Celebi <u...@apache.org>: > Great! :-) If Fabian is also OK with trying it out, I would ask > Stephan to open a PR for this against Flink. > > > On Tue, Jul 25, 2017 at 8:50 AM, Chesnay Schepler <ches...@apache.org> > wrote: > > I'm still apprehensive about it, but don't mind trying it out. It's not > like > > it can break something. > > > > > > On 24.07.2017 18:52, Ufuk Celebi wrote: > >> > >> What's the conclusion of last weeks discussion here? > >> > >> Fabian and Chesnay raised concerns about the introductory text. Are > >> you still concerned? > >> > >> On Wed, Jul 19, 2017 at 10:04 AM, Stephan Ewen <se...@apache.org> > wrote: > >>> > >>> @Chesnay: > >>> > >>> Put text into template => contributor will have to read it > >>> Put link to text into template => most contributors will ignore the > link > >>> > >>> Yes, that is pretty much what my observation from the past is. > >>> > >>> > >>> > >>> On Tue, Jul 18, 2017 at 11:03 PM, Chesnay Schepler <ches...@apache.org > > > >>> wrote: > >>> > >>>> I'm sorry but i can't follow your logic. > >>>> > >>>> Put text into template => contributor will definitely read it > >>>> Put link to text into template => contributor will completely ignore > the > >>>> link > >>>> > >>>> The advantage of the link is we don't duplicate the contribution guide > >>>> in > >>>> the docs and in the template. > >>>> Furthermore, you don't even need to remove something from the > template, > >>>> since it's just a single line. > >>>> > >>>> > >>>> On 18.07.2017 19:25, Stephan Ewen wrote: > >>>> > >>>>> Concerning moving text to the contributors guide: > >>>>> > >>>>> I can only say it again: I believe the contribution guide is almost > >>>>> dead > >>>>> text. Very few people read it. > >>>>> Before the current template was introduced, new contributors rarely > >>>>> gave > >>>>> the pull request a name with Jira number. That is a good indicator > >>>>> about > >>>>> how many read this guide. > >>>>> Putting the test in the template is a way that every one reads it. > >>>>> > >>>>> > >>>>> I am also wondering what the concern is. > >>>>> A new contributor should clearly read through a bit of text, to learn > >>>>> what > >>>>> we look for in contributions. > >>>>> A recurring contributor will not have to read it again, simply remove > >>>>> the > >>>>> text from the pull request message and go on. > >>>>> > >>>>> Where is the disadvantage? > >>>>> > >>>>> > >>>>> On Tue, Jul 18, 2017 at 5:35 PM, Nico Kruber <n...@data-artisans.com > > > >>>>> wrote: > >>>>> > >>>>> I like the new template but also agree with the text being too long > and > >>>>>> > >>>>>> would > >>>>>> move the intro to the contributors guide with a link in the PR > >>>>>> template. > >>>>>> > >>>>>> Regarding the questions to fill out - I'd like the headings to be > >>>>>> short > >>>>>> and > >>>>>> have the affected components last so that documentation is not lost > >>>>>> (although > >>>>>> being more important than this checklist), e.g.: > >>>>>> > >>>>>> * Purpose of the change > >>>>>> * Brief change log > >>>>>> * Verifying the change > >>>>>> * Documentation > >>>>>> * Affected components > >>>>>> > >>>>>> The verification options in the original template look a bit too > large > >>>>>> but > >>>>>> it > >>>>>> stresses what tests should be added, especially for bigger changes. > >>>>>> Can't > >>>>>> think of a way to make it shorter though. > >>>>>> > >>>>>> > >>>>>> Nico > >>>>>> > >>>>>> On Tuesday, 18 July 2017 11:20:41 CEST Chesnay Schepler wrote: > >>>>>> > >>>>>>> I fully agree with Fabian. > >>>>>>> > >>>>>>> Multiple-choice questions provide little value to the reviewer, > since > >>>>>>> the > >>>>>>> validity has to be verified in any case. While text answers have to > >>>>>>> be > >>>>>>> validated as well, > >>>>>>> they give some hint to the reviewer as to how it can be verified > and > >>>>>>> which steps the > >>>>>>> contributor did to do so. > >>>>>>> > >>>>>>> I also agree that it is too long; IMO this is really intimidating > to > >>>>>>> new > >>>>>>> contributors to be greeted with this. > >>>>>>> > >>>>>>> Ideally we only link to the contributors guide and ask 3 questions: > >>>>>>> > >>>>>>> * What is the problem? > >>>>>>> * How was it fixed? > >>>>>>> * How can the fix be verified? > >>>>>>> > >>>>>>> On 18.07.2017 10:47, Fabian Hueske wrote: > >>>>>>> > >>>>>>>> I like the sections about purpose, change log, and verification of > >>>>>>>> the > >>>>>>>> changes. > >>>>>>>> > >>>>>>>> However, I think the proposed template is too much text. This is > >>>>>>>> > >>>>>>> probably > >>>>>>> the reason why the first attempt to establish a PR template failed. > >>>>>>>> > >>>>>>>> I would move most of the introduction and explanations incl. > >>>>>>>> examples > >>>>>>>> > >>>>>>> to > >>>>>>> the "Contribution Guidelines" and only pass a link. > >>>>>>>> > >>>>>>>> IMO, the template should be rather shorter than the current one > and > >>>>>>>> > >>>>>>> only > >>>>>>> have the link, the sections to fill out, and checkboxes. > >>>>>>>> > >>>>>>>> I'm also not sure how much the detailed questions will help. > >>>>>>>> For example even if the question about changed dependencies is > >>>>>>>> answered > >>>>>>>> with "no", the reviewer still has to check that. > >>>>>>>> > >>>>>>>> I think the questions of the current template work differently. > >>>>>>>> A question "Does the PR include tests?" suggests to the > contributor > >>>>>>>> > >>>>>>> that > >>>>>>> those should be included. Same for documentation. > >>>>>>>> > >>>>>>>> Cheers, > >>>>>>>> Fabian > >>>>>>>> > >>>>>>>> 2017-07-18 10:05 GMT+02:00 Tzu-Li (Gordon) Tai > >>>>>>>> <tzuli...@apache.org>: > >>>>>>>> > >>>>>>>>> +1, I like this a lot. > >>>>>>>>> With the previous template, it doesn’t really resonate with what > we > >>>>>>>>> should > >>>>>>>>> care about, and therefore most of the time I think contributors > >>>>>>>>> just > >>>>>>>>> delete > >>>>>>>>> that template and write down something on their own. > >>>>>>>>> > >>>>>>>>> I would also like to add: “Savepoint / checkpoint binary formats” > >>>>>>>>> to > >>>>>>>>> > >>>>>>>> the > >>>>>>> > >>>>>>> potential affect scope check list. > >>>>>>>>> > >>>>>>>>> I think changes to those deserves an independent yes / no check > of > >>>>>>>>> its > >>>>>>>>> own. > >>>>>>>>> > >>>>>>>>> Cheers, > >>>>>>>>> Gordon > >>>>>>>>> > >>>>>>>>> On 18 July 2017 at 3:49:42 PM, Ufuk Celebi (u...@apache.org) > wrote: > >>>>>>>>> > >>>>>>>>> I really like this and vote to change our current template. > >>>>>>>>> > >>>>>>>>> The simple yes/no/... options are a really good idea. I would add > >>>>>>>>> to > >>>>>>>>> your email that the questions will equally help reviewers to > >>>>>>>>> remember > >>>>>>>>> to look at these things, which is just as important. > >>>>>>>>> > >>>>>>>>> When we merge this, we should make sure to strictly follow the > >>>>>>>>> guide. > >>>>>>>>> Ideally, in the long term we can even automate some of the > >>>>>>>>> yes/no/... > >>>>>>>>> questions via a bot... but let's not get ahead of ourselves here > >>>>>>>>> ;-) > >>>>>>>>> > >>>>>>>>> On Mon, Jul 17, 2017 at 6:36 PM, Stephan Ewen <se...@apache.org> > >>>>>>>>> > >>>>>>>> wrote: > >>>>>>> > >>>>>>> Hi all! > >>>>>>>>>> > >>>>>>>>>> I have reflected a bit on the pull requests and on some of the > >>>>>>>>>> recent > >>>>>>>>>> changes to Flink and some of the introduced bugs / regressions > >>>>>>>>>> that > >>>>>>>>>> > >>>>>>>>> we > >>>>>>> > >>>>>>> have > >>>>>>>>> > >>>>>>>>> fixed. > >>>>>>>>>> > >>>>>>>>>> One thing that I think would have helped is to have more > explicit > >>>>>>>>>> information about what the pull request does and how the > >>>>>>>>>> contributor > >>>>>>>>>> > >>>>>>>>> would > >>>>>>>>> > >>>>>>>>> suggest to verify it. I have seen this when contributing to some > >>>>>>>>> other > >>>>>>> > >>>>>>> project and really liked the approach. > >>>>>>>>>> > >>>>>>>>>> It requires that a contributor takes a minute to reflect on what > >>>>>>>>>> was > >>>>>>>>>> touched, and what would be ways to verify that the changes work > >>>>>>>>>> properly. > >>>>>>>>>> Besides being a help to the reviewer, it also makes contributors > >>>>>>>>>> > >>>>>>>>> aware > >>>>>>> > >>>>>>> of > >>>>>>>>>> > >>>>>>>>>> what is important during the review process. > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> I suggest a new pull request template, as attached below, with a > >>>>>>>>>> > >>>>>>>>> preview > >>>>>>> > >>>>>>> here: > >>>>>>>>>> > >>>>>>>>>> https://github.com/StephanEwen/incubator-flink/ > >>>>>>>>>> > >>>>>>>>> blob/pr_template/.github/PULL_REQUEST_TEMPLATE.md > >>>>>>>>> > >>>>>>>>> Don't be scared, it looks long, but a big part is the > introductory > >>>>>>>>> text > >>>>>>> > >>>>>>> (only relevant for new contributors) and the examples contents for > >>>>>>>>> > >>>>>>>>> the > >>>>>>> > >>>>>>> description. > >>>>>>>>>> > >>>>>>>>>> Filling this out for code that is in shape should be a quick > >>>>>>>>>> thing: > >>>>>>>>>> > >>>>>>>>> Remove > >>>>>>>>> > >>>>>>>>> the into and checklist, write a few sentences on what the PR does > >>>>>>>>> (one > >>>>>>> > >>>>>>> should do that anyways) and then pick some yes/no in the > >>>>>>>>> > >>>>>>>>> classification > >>>>>>> > >>>>>>> section. > >>>>>>>>>> > >>>>>>>>>> Curious to hear what you think! > >>>>>>>>>> > >>>>>>>>>> Best, > >>>>>>>>>> Stephan > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> ============================ > >>>>>>>>>> > >>>>>>>>>> Full suggested pull request template: > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> *Thank you very much for contributing to Apache Flink - we are > >>>>>>>>>> happy > >>>>>>>>>> that > >>>>>>>>>> you want to help us improve Flink. To help the community review > >>>>>>>>>> you > >>>>>>>>>> contribution in the best possible way, please go through the > >>>>>>>>>> > >>>>>>>>> checklist > >>>>>>> > >>>>>>> below, which will get the contribution into a shape in which it can > >>>>>>>>> > >>>>>>>>> be > >>>>>>> > >>>>>>> best > >>>>>>>>> > >>>>>>>>> reviewed.* > >>>>>>>>>> > >>>>>>>>>> *Please understand that we do not do this to make contributions > to > >>>>>>>>>> > >>>>>>>>> Flink > >>>>>>> > >>>>>>> a > >>>>>>>>> > >>>>>>>>> hassle. In order to uphold a high standard of quality for code > >>>>>>>>>> > >>>>>>>>>> contributions, while at the same time managing a large number of > >>>>>>>>>> contributions, we need contributors to prepare the contributions > >>>>>>>>>> > >>>>>>>>> well, > >>>>>>> > >>>>>>> and > >>>>>>>>> > >>>>>>>>> give reviewers enough contextual information for the review. > Please > >>>>>>>>> also > >>>>>>> > >>>>>>> understand that contributions that do not follow this guide will > take > >>>>>>>>>> > >>>>>>>>>> longer to review and thus typically be picked up with lower > >>>>>>>>>> priority > >>>>>>>>>> > >>>>>>>>> by > >>>>>>> > >>>>>>> the > >>>>>>>>> > >>>>>>>>> community.* > >>>>>>>>>> > >>>>>>>>>> ## Contribution Checklist > >>>>>>>>>> > >>>>>>>>>> - Make sure that the pull request corresponds to a [JIRA issue]( > >>>>>>>>>> https://issues.apache.org/jira/projects/FLINK/issues). > Exceptions > >>>>>>>>>> > >>>>>>>>> are > >>>>>>> > >>>>>>> made > >>>>>>>>> > >>>>>>>>> for typos in JavaDoc or documentation files, which need no JIRA > >>>>>>>>> issue. > >>>>>>> > >>>>>>> - Name the pull request in the form "[FLINK-1234] [component] Title > >>>>>>>>> > >>>>>>>>> of > >>>>>>> > >>>>>>> the pull request", where *FLINK-1234* should be replaced by the > >>>>>>>>> > >>>>>>>>> actual > >>>>>>> > >>>>>>> issue number. Skip *component* if you are unsure about which is the > >>>>>>>>> > >>>>>>>>> best > >>>>>>> > >>>>>>> component. > >>>>>>>>>> > >>>>>>>>>> Typo fixes that have no associated JIRA issue should be named > >>>>>>>>>> > >>>>>>>>> following > >>>>>>> > >>>>>>> this pattern: `[hotfix] [docs] Fix typo in event time introduction` > >>>>>>>>> > >>>>>>>>> or > >>>>>>> > >>>>>>> `[hotfix] [javadocs] Expand JavaDoc for > PuncuatedWatermarkGenerator`. > >>>>>>>>>> > >>>>>>>>>> - Fill out the template below to describe the changes > contributed > >>>>>>>>>> by > >>>>>>>>>> > >>>>>>>>> the > >>>>>>> > >>>>>>> pull request. That will give reviewers the context they need to do > >>>>>>>>> > >>>>>>>>> the > >>>>>>> > >>>>>>> review. > >>>>>>>>>> > >>>>>>>>>> - Make sure that the change passes the automated tests, i.e., > `mvn > >>>>>>>>>> > >>>>>>>>> clean > >>>>>>> > >>>>>>> verify` > >>>>>>>>>> > >>>>>>>>>> - Each pull request should address only one issue, not mix up > code > >>>>>>>>>> > >>>>>>>>> from > >>>>>>> > >>>>>>> multiple issues. > >>>>>>>>>> > >>>>>>>>>> - Each commit in the pull request has a meaningful commit > message > >>>>>>>>>> (including the JIRA id) > >>>>>>>>>> > >>>>>>>>>> - Once all items of the checklist are addressed, remove the > above > >>>>>>>>>> > >>>>>>>>> text > >>>>>>> > >>>>>>> and this checklist, leaving only the filled out template below. > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> **(The sections below can be removed for hotfixes of typos)** > >>>>>>>>>> > >>>>>>>>>> ## What is the purpose of the change > >>>>>>>>>> > >>>>>>>>>> *(For example: This pull request makes task deployment go > through > >>>>>>>>>> the > >>>>>>>>>> > >>>>>>>>> blob > >>>>>>>>> > >>>>>>>>> server, rather than through RPC. That way we avoid > re-transferring > >>>>>>>>> them > >>>>>>> > >>>>>>> on > >>>>>>>>> > >>>>>>>>> each deployment (during recovery).)* > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> ## Brief change log > >>>>>>>>>> > >>>>>>>>>> *(for example:)* > >>>>>>>>>> - *The TaskInfo is stored in the blob store on job creation time > >>>>>>>>>> as a > >>>>>>>>>> persistent artifact* > >>>>>>>>>> - *Deployments RPC transmits only the blob storage reference* > >>>>>>>>>> - *TaskManagers retrieve the TaskInfo from the blob cache* > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> ## Verifying this change > >>>>>>>>>> > >>>>>>>>>> *(Please pick either of the following options)* > >>>>>>>>>> > >>>>>>>>>> This change is a trivial rework / code cleanup without any test > >>>>>>>>>> coverage. > >>>>>>>>>> > >>>>>>>>>> *(or)* > >>>>>>>>>> > >>>>>>>>>> This change is already covered by existing tests, such as > *(please > >>>>>>>>>> > >>>>>>>>> describe > >>>>>>>>> > >>>>>>>>> tests)*. > >>>>>>>>>> > >>>>>>>>>> *(or)* > >>>>>>>>>> > >>>>>>>>>> This change added tests and can be verified as follows: > >>>>>>>>>> > >>>>>>>>>> *(example:)* > >>>>>>>>>> - *Added integration tests for end-to-end deployment with large > >>>>>>>>>> > >>>>>>>>> payloads > >>>>>>> > >>>>>>> (100MB)* > >>>>>>>>>> > >>>>>>>>>> - *Extended integration test for recovery after master > >>>>>>>>>> (JobManager) > >>>>>>>>>> failure* > >>>>>>>>>> - *Added test that validates that TaskInfo is transferred only > >>>>>>>>>> once > >>>>>>>>>> across recoveries* > >>>>>>>>>> - *Manually verified the change by running a 4 node cluser with > 2 > >>>>>>>>>> JobManagers and 4 TaskManagers, a stateful streaming program, > and > >>>>>>>>>> killing > >>>>>>>>>> one JobManager and to TaskManagers during the execution, > verifying > >>>>>>>>>> > >>>>>>>>> that > >>>>>>> > >>>>>>> recovery happens correctly.* > >>>>>>>>>> > >>>>>>>>>> ## Does this pull request potentially affect one of the > following > >>>>>>>>>> > >>>>>>>>> parts: > >>>>>>> > >>>>>>> - Dependencies (does it add or upgrade a dependency): **(yes / > no)** > >>>>>>>>>> > >>>>>>>>>> - The public API, i.e., is any changed class annotated with > >>>>>>>>>> `@Public(Evolving)`: **(yes / no)** > >>>>>>>>>> - The serializers: **(yes / no / don't know)** > >>>>>>>>>> - The runtime per-record code paths (performance sensitive): > >>>>>>>>>> **(yes > >>>>>>>>>> > >>>>>>>>> / no > >>>>>>> > >>>>>>> / don't know)** > >>>>>>>>>> > >>>>>>>>>> - Anything that affects deployment or recovery: JobManager (and > >>>>>>>>>> its > >>>>>>>>>> components), Checkpointing, Yarn/Mesos, ZooKeeper: **(yes / no / > >>>>>>>>>> > >>>>>>>>> don't > >>>>>>> > >>>>>>> know)**: > >>>>>>>>>> > >>>>>>>>>> ## Documentation > >>>>>>>>>> > >>>>>>>>>> - Does this pull request introduce a new feature? **(yes / no)** > >>>>>>>>>> - If yes, how is the feature documented? **(not applicable / > docs > >>>>>>>>>> / > >>>>>>>>>> JavaDocs / not documented)** > >>>>>>>>>> > > >