I've created a very simple PR template based on some input from this email
thread. The PR is found here:
https://github.com/apache/trafficcontrol/pull/2673

My goal was 3-fold:

1. keep it simple
2. capture enough info to help the PR merger and increase the odds of a PR
getting merged in a timely fashion
3. provide a checklist or a reminder for the submitter

Jeremy

On Wed, Feb 28, 2018 at 6:38 PM, Chris Lemmons <alfic...@gmail.com> wrote:

> > Unfortunately, some PRs contain many commits and even with good commit
> messages, it's may be hard to figure out what exactly all the commits are
> trying to accomplish.
>
> This is a solid point and it's part of the point I'm making. If you've
> got a bunch of commits that aren't explained well, then squash them
> and explain them well.
>
> > I can't tell you how many times I've had to read through commit messages
> and/or code to try to figure out what a PR is trying to accomplish and how
> to verify it.
>
> I totally agree. But putting the exposition exclusively in the PR
> means that the reviewer can understand it (a good thing!), but it
> leaves that information behind. It's quite difficult to find the PR in
> which a particular changeset was merged (especially given our
> cherry-picking strategy), so it's much better if we encourage people
> to put that information in the commit itself.
>
> > "Perfect is the enemy of good".
>
> Sure, though I'm not sure we're quite there. It seems we both agree on
> basically which information should be included, I just want some of it
> in the commit message instead.
>
> > I'm just trying to save the reviewer/merger some time.
>
> Agreed. The purpose of the template is to make sure the PR opener
> communicates information that will be most useful and time-saving to
> the reviewer. Likewise, it should save the PR-opener time by a) saving
> a few keystrokes and b) keeping them from having to come back and
> answer questions about stuff they forgot to mention.
>
> What if it looked like this?
>
> *Describe your PR:* _(copy/paste from changeset comments is encouraged!)_
>
> *What's a good way to verify this PR?*
>
> *Check any that apply:*
>
> - [ ] This PR does *not* fix a serious security flaw. (Read more:
> www.apache.org/security )
> - [ ] CHANGELOG.md is updated.
> - [ ] Tests are complete.
> - [ ] Docs are updated.
>
> ...
>
> I think we might be asking for information that would be better gotten
> elsewhere, but I might have a minority opinion on that point.
>
> On Wed, Feb 28, 2018 at 6:00 PM, Dan Kirkwood <dang...@gmail.com> wrote:
> > Chris,
> >
> > "Perfect is the enemy of good".    The point here is to make the PR
> > description good enough to work with,  not perfect.   I appreciate what
> > you're trying to get to,  but from experience, it's not realistic.
> >
> > -dan
> >
> > On Wed, Feb 28, 2018 at 1:31 PM, Chris Lemmons <alfic...@gmail.com>
> wrote:
> >
> >>     `What effect should I expect to see from this change?`
> >>
> >> This is a perfect question, and one that absolutely needs to be
> >> answered. But either
> >>
> >> a) it is answered already in the commit message; or
> >> b) the commit message is insufficient and needs to be `git -amend`ed.
> >>
> >> I definitely wouldn't want a PR that contained that information only
> >> in the PR body,
> >> and there's not a whole lot of value in asking them to re-type it. The
> >> "copy/paste" thing
> >> at the top is already a bit of duplication anyway.
> >>
> >> On Wed, Feb 28, 2018 at 11:03 AM, Dan Kirkwood <dang...@gmail.com>
> wrote:
> >> > followup: rather than
> >> >    `What is the best way to verify this PR? `
> >> >
> >> > what about
> >> >
> >> >     `What effect should I expect to see from this change?`
> >> >
> >> > On Wed, Feb 28, 2018 at 10:25 AM, Dan Kirkwood <dang...@gmail.com>
> >> wrote:
> >> >
> >> >> +1 on keeping it short and to the point...
> >> >>
> >> >> On Wed, Feb 28, 2018 at 10:14 AM, Jeremy Mitchell <
> >> mitchell...@gmail.com>
> >> >> wrote:
> >> >>
> >> >>> Chris, I really wanted the PR template to be less daunting and super
> >> short
> >> >>> and to the point. It's intention is to give a super quick summary of
> >> >>> what's
> >> >>> included in this PR to help the merger...
> >> >>>
> >> >>> Example:
> >> >>>
> >> >>> #### What does this PR do? Is there a related Github issue?
> >> >>>
> >> >>> "See Issue #1245" or "This PR cascade deletes all delivery service
> >> regexes
> >> >>> when a delivery service is deleted"
> >> >>>
> >> >>> #### What is the best way to verify this PR? <-- IMO this is really
> >> >>> important for the merger so I know how to "test" or "verify" the
> >> >>> functionality.
> >> >>>
> >> >>> Hit the DELETE /api/1.3/deliveryservices/:id endpoint and ensure all
> >> >>> entries in the deliveryservice_regex table are deleted for that
> >> delivery
> >> >>> service.
> >> >>>
> >> >>> #### Does your PR include any of the following?
> >> >>>
> >> >>> - [ ] Tests
> >> >>> - [ ] Documentation
> >> >>> - [X] CHANGELOG.md entry
> >> >>>
> >> >>> ^^ I wasn't trying to imply that those last things were required. I
> >> just
> >> >>> wanted to provide a checklist that might be helpful for the
> contributer
> >> >>> and
> >> >>> the merger. For example, I always for get to look for a CHANGELOG.md
> >> >>> entry...
> >> >>>
> >> >>> Jeremy
> >> >>>
> >> >>>
> >> >>> On Tue, Feb 27, 2018 at 9:47 PM, Chris Lemmons <alfic...@gmail.com>
> >> >>> wrote:
> >> >>>
> >> >>> > If there's a relevant GitHub issue, that should be noted in the
> >> >>> > check-in comment, I think. Same for "what does it do?" I don't
> >> usually
> >> >>> > want to spell out steps for someone to verify my stuff because
> those
> >> >>> > are the steps that I took to verify it. The PR is so you can see
> the
> >> >>> > things I didn't see. And the commit list will make the presence of
> >> >>> > tests, documentation, and a changelog entry really obvious.
> >> >>> >
> >> >>> > Taking yours and reformatting a bit, what if we did something like
> >> this?
> >> >>> >
> >> >>> > ...
> >> >>> >
> >> >>> > *Describe your PR:* _(copy/paste from changeset comments is
> >> >>> encouraged!)_
> >> >>> >
> >> >>> >
> >> >>> >
> >> >>> > *Quick Checklist:*
> >> >>> >
> >> >>> > - [ ] Each commit message tells you everything you need to know
> about
> >> >>> > the change. (Squashing can help with this.)
> >> >>> > - [ ] If applicable, the commit message mentions the appropriate
> >> issue
> >> >>> > number.
> >> >>> > - [ ] This PR does *not* fix a serious security flaw. (Read more:
> >> >>> > www.apache.org/security )
> >> >>> > - [ ] Automatic code formatters (like gofmt) have been run.
> >> >>> >
> >> >>> > *Tests:*
> >> >>> >
> >> >>> > - [ ] Are not necessary.
> >> >>> > - [ ] Would be helpful, but aren't in this PR.
> >> >>> > - [ ] Are present, but incomplete.
> >> >>> > - [ ] Are included.
> >> >>> >
> >> >>> > *Doc updates:*
> >> >>> >
> >> >>> > - [ ] Are not necessary.
> >> >>> > - [ ] Would be helpful, but aren't in this PR.
> >> >>> > - [ ] Are present, but incomplete.
> >> >>> > - [ ] Are included.
> >> >>> >
> >> >>> > *If there's no update to CHANGELOG.md, why not?*
> >> >>> >
> >> >>> > *Does this break backward compatibility?*
> >> >>> >
> >> >>> > *Is there anyone specific that ought to take a look at this?*
> >> >>> >
> >> >>> > ...
> >> >>> >
> >> >>> > We want to be friendly to committers, while still getting good
> >> >>> > information for checking PRs. I could be easily convinced that the
> >> >>> > "Tests" or "Doc updates" sections in there are too long, but I
> think
> >> >>> > it should be clear that a potential committer can offer up some
> code
> >> >>> > without hitting 100% on tests, docs, and such.
> >> >>> >
> >> >>> > On Tue, Feb 27, 2018 at 1:24 PM, Jeremy Mitchell <
> >> mitchell...@gmail.com
> >> >>> >
> >> >>> > wrote:
> >> >>> > > How about something like this for a PR template?
> >> >>> > >
> >> >>> > > #### What does this PR do? Is there a relevant Github issue?
> >> >>> > >
> >> >>> > >
> >> >>> > > #### What is the best way to verify this PR?
> >> >>> > >
> >> >>> > >
> >> >>> > > #### Does your PR include any of the following?
> >> >>> > >
> >> >>> > > - [ ] Tests
> >> >>> > > - [ ] Documentation
> >> >>> > > - [ ] CHANGELOG.md entry
> >> >>> > >
> >> >>> > > On Tue, Feb 27, 2018 at 10:46 AM, Jeremy Mitchell <
> >> >>> mitchell...@gmail.com
> >> >>> > >
> >> >>> > > wrote:
> >> >>> > >
> >> >>> > >> With an issue and/or pr template, we will have 6/6 items
> checked:
> >> >>> > >>
> >> >>> > >> https://github.com/apache/incubator-trafficcontrol/community
> >> >>> > >>
> >> >>> > >> I actually think PR templates would be quite helpful. As a
> >> >>> > >> committer/merger, it would be nice to know what problem the PR
> is
> >> >>> > solving
> >> >>> > >> and how to verify the functionality. A PR template could also
> help
> >> >>> > >> contributors ensure that their PRs are complete. I.e. does
> this PR
> >> >>> > includes
> >> >>> > >> tests, documentation, etc.
> >> >>> > >>
> >> >>> > >> I'll take a stab at a couple of templates and run them by the
> >> group.
> >> >>> > >>
> >> >>> > >> Jeremy
> >> >>> > >>
> >> >>> > >> On Wed, Jan 31, 2018 at 1:10 PM, Chris Lemmons <
> >> alfic...@gmail.com>
> >> >>> > wrote:
> >> >>> > >>
> >> >>> > >>> I'm +1 on Issue Templates, for sure. I don't know that PR
> >> templates
> >> >>> > >>> are quite as critical, but it might be nice to have a
> reminder in
> >> >>> > >>> there about verifying that the changelog is updated if
> necessary
> >> and
> >> >>> > >>> documentation for new features is present. If the PR Template
> >> >>> > >>> overwrites the default comment that you get from the commit
> >> body, it
> >> >>> > >>> might be more annoying than valuable, though.
> >> >>> > >>>
> >> >>> > >>> I'm also +1 on hiding these particular files in a .github
> >> directory.
> >> >>> > >>> Unlike CONTRIBUTING and README, they don't provide all that
> much
> >> >>> > >>> benefit for a new person looking for stuff to read.
> >> >>> > >>>
> >> >>> > >>> On Wed, Jan 31, 2018 at 12:17 PM, Durfey, Ryan <
> >> >>> > ryan_dur...@comcast.com>
> >> >>> > >>> wrote:
> >> >>> > >>> > Always +1 on standardization and consistency
> >> >>> > >>> >
> >> >>> > >>> > I still want to circle back and setup project/kanbans for
> >> >>> organizing
> >> >>> > >>> tickets in Github.
> >> >>> > >>> >
> >> >>> > >>> > Ryan Durfey    M | 303-524-5099
> >> >>> > >>> > CDN Support (24x7): 866-405-2993 or cdn_supp...@comcast.com
> >> >>> <mailto:
> >> >>> > >>> cdn_supp...@comcast.com>
> >> >>> > >>> >
> >> >>> > >>> > From: Dewayne Richardson <dewr...@gmail.com>
> >> >>> > >>> > Reply-To: "d...@trafficcontrol.incubator.apache.org" <
> >> >>> > >>> d...@trafficcontrol.incubator.apache.org>
> >> >>> > >>> > Date: Wednesday, January 31, 2018 at 11:15 AM
> >> >>> > >>> > To: "d...@trafficcontrol.incubator.apache.org" <
> >> >>> > >>> d...@trafficcontrol.incubator.apache.org>
> >> >>> > >>> > Subject: Github PR/Issues Format Templates
> >> >>> > >>> >
> >> >>> > >>> > I was working through the go-swagger repo and found a bug.
> I
> >> >>> > submitted
> >> >>> > >>> a
> >> >>> > >>> > new issue and found this interesting approach I think the TC
> >> >>> github
> >> >>> > >>> should
> >> >>> > >>> > adopt, "Issue and PR Templates".  I think the main value
> here
> >> is
> >> >>> > >>> > consistency in our PRs/Issues and user friendly prompts to
> say
> >> >>> "these
> >> >>> > >>> are
> >> >>> > >>> > the data points we need to help you solve your issue".
> >> >>> > >>> >
> >> >>> > >>> > Working example:
> >> >>> > >>> > https://github.com/go-swagger/go-swagger/issues/new
> >> >>> > >>> >
> >> >>> > >>> > Github Doc on how to implement templates:
> >> >>> > >>> > https://github.com/blog/2111-issue-and-pull-request-
> templates
> >> >>> > >>> >
> >> >>> > >>> > If we think it's a good idea, then I'll respond with some
> >> examples
> >> >>> > for
> >> >>> > >>> > Issues and PR's that we can discuss.
> >> >>> > >>> >
> >> >>> > >>> > -Dew
> >> >>> > >>> >
> >> >>> > >>>
> >> >>> > >>
> >> >>> > >>
> >> >>> >
> >> >>>
> >> >>
> >> >>
> >>
>

Reply via email to