I agree with Christopher about avoiding strict guidelines for reviews but having some loose guidelines/advice for reviewers.
One thing that I have found helpful is when reviewers communicate how strongly they feel about a change: - If the change is optional: Could add a unit test for this class - If the change is suggested: A unit test should be added for this class - If the change is required: I am -1 on this PR until a unit test is added for this class. As a reviewer, I really like using "Could" before my PR comments. It lets me suggest whatever change I want without forcing the contributor to make these changes if they disagree. On Mon, Jun 5, 2017 at 12:00 PM Christopher <ctubb...@apache.org> wrote: > I'm not entirely sure what such specific guidelines hope to achieve. I'm in > favor of having some "things to look for" guidelines, but I don't think > strict guidelines are going to work, because it elevates rules over the > human element. I don't think we can be too prescriptive about what things a > contributor *should* do, or what a reviewer *should* check for, because > everybody has unique volunteer time constraints, expertise, and passions. > > I'm also concerned about long-term maintenance of any such documentation, > which seems likely to quickly get out of date as the community itself > evolves, if we are too specific. Any such guidelines should be maintainable > by being succinct, generic, and flexible. I'm thinking something like: > > 1. Follow the ASF Code of Conduct [link] > 2. Ensure build passes (captures most checks; can rely on Travis CI) > [suggested build command-line] > 3. Check for style and formatting failures, or uncommitted changes from the > build tooling after a build > 5. Consider semver rules [link], especially when contributing to > maintenance branches > 6. Add tests when appropriate > 7. Be willing to discuss performance impact, API design, style choices > > The key thing about contributing and reviewing is being willing to engage > in polite discussion about any part of the contribution. Too much > specificity will result in docs which don't apply to majority of > circumstances, or docs which become out-of-date quickly, or docs which > nobody reads because they are too complicated or long. The upfront costs of > trying to make sure you comply with all possible guidelines may also be a > deterrence from contributing. It's much easier to be willing to receive > friendly feedback than it is to try to make sure you take care of any > possible thing somebody might result in a change suggestion. > > On Mon, Jun 5, 2017 at 11:25 AM Marc P. <marc.par...@gmail.com> wrote: > > > Dave, > > I don't agree that stylistic changes are something to ignore. There may > > be cases where something is confusing to others and thus should be called > > out. This is difficult to blatantly avoid. > > > > I can't agree with number two either since a PR can be a form of > > requirements elicitation and such there are cases in which there are new > > preconditions on the ticket. While your "not block of acceptance" may > > sometimes apply I don't think it goes to fitting a community of > developers, > > where you can discuss your differences. In the case of number one and two > > developers reviewing will pick their battles and perhaps other reviewers > > can chime in on the importance of said feature. What is the purpose of > > limiting this discussion my claiming it cannot impact acceptance? > > > > Bad code begets bad code and if a developer wants to take issue with > > code, they should be allowed to discuss this within the PR. Further, > > inconsistency begets inconsistency, so wild departures from the norm > should > > be something a reviewer has the levity to discuss. > > > > While discussion should lead to ticket creation we should avoid > creating > > features that need a portion completed to be used in production > > successfully. > > > > > > > > > > On Mon, Jun 5, 2017 at 11:08 AM, Dave Marion <dlmar...@comcast.net> > wrote: > > > > > I propose that we define a set of guidelines to use when reviewing pull > > > requests. In doing so, contributors will be able to determine potential > > > issues in their code possibly reducing the number of changes that occur > > > before acceptance. Here's an example to start the discussion: > > > > > > > > > Items a reviewer should look for: > > > > > > 1. Adherence to code formatting rules (link to formatting rules) > > > > > > 2. Unit tests required > > > > > > 3. Threading issues > > > > > > 4. Performance implications > > > > > > > > > Items that should not block acceptance: > > > > > > 1. Stylistic changes that have no performance benefit > > > > > > 2. Addition of features outside the scope of the ticket (moving the > goal > > > post, discussion should lead to ticket creation) > > > > > >