+1 As someone who reviews Druid release candidates but does not develop Druid code, I wish that “mvn test” would “just work”. I can imagine that first-time and occasional contributors are in a similar boat to me.
I know this is not an easy thing to achieve, because the test suite also has to work for more experienced contributors. Julian > On Apr 25, 2019, at 11:42 AM, David Glasser <glas...@apollographql.com> wrote: > > As a new contributor, I've actually really appreciated the careful and high > quality code reviews I've received (primarily from Jihoon). > > The real source of friction for me has not been the feedback from > developers, but the painfulness of running the tests. > > - Figuring out how to locally run the full suite of tests that CI will run > is not super documented. > - Understanding how to just run the tests that are most relevant to your > change (either from CLI or IntelliJ) isn't well documented. It's > especially unclear what things can be perfectly successfully run from > IntelliJ's own test runners and what things really require you to run them > through Maven. (Druid is also the first time I've used Maven directly and > it's a huge challenge for me to understand what's going on and how to run > it properly.) > - Many of the tests are just very slow and maybe could be parallelized > better? > > It's enough of a pain that I often when iterating wouldn't even bother > trying to run tests manually but would just push to GitHub and let Travis > run it instead. But Travis itself is very slow and while it's somewhat > parallelized, it's not super parallelized — and as a lowly PR author I > can't even kill the overall job if I push a new version of the PR or if a > sub-job already failed. So this would frequently add "round trip" times of > half an hour or more in the middle of trying to take the good advice from > reviewers to heart. > > So while I agree that it would be great to move as many of the checks as > possible into CI from "core dev teams mind", I'd also encourage folks with > more time and expertise than I have now to put effort into making the CI > experience faster and easier. (I wonder if some of the issues could just > be solved with money, eg running on more powerful Travis machines or > parallelizing the slower tests even further onto a larger number of > containers. I've also generally found in my own work that CircleCI at > least feels faster and easier to work with than Travis FWIW.) > > --dave > > On Mon, Apr 22, 2019 at 7:44 PM Gian Merlino <g...@apache.org> wrote: > >> Hey Druids, >> >> Sometimes I feel like this too: >> https://twitter.com/julianhyde/status/1108502471830204416. >> >> I believe our code review process today has too much friction in it, and >> that we can work to reduce it. The two main frictions I see are code >> reviews not happening in a timely manner, and code reviews sometimes >> descending into a swamp of nit-picks. The good news, at least, is that we >> are not the first development team to have these problems, and that they >> can be solved. I've written some thoughts below about principles that I >> think might help. I am not necessarily proposing making these the law of >> the land, but am hoping to start a discussion about how we can generally >> improve things. >> >> 1) "Let robots handle style checks." Encode Druid's code style in >> checkstyle or other tools, and avoid making subjective style comments >> directly as humans. If we can't figure out how to set up automated >> verification for a particular style point, then give it up. Rationale: >> authors can self-check style when checking is automated. Also, it's better >> for robots to enforce style, because software development is a social >> endeavor, and people don't mind style nit-picking from robots as much as >> they do from humans. >> >> 2) "Write down what really matters." I suggest we put together a short, >> highly visible list of things that should be considered commit-blockers for >> patches. Not a list of best practices, but a list of true blockers. "Short" >> is in service of point (3), below. "Highly visible" is so it can act as a >> shared set of values. My suggested list would be correctness of >> implementation, documentation of new or changed functionality, tests for >> reasonably testable functionality, avoidance of excessive additional >> maintenance burden, and avoidance of breaking existing use cases (including >> things that would break clusters that run at large scale, or that would >> break rolling updates). Some of these points are subjective but I think >> it's still a good start. Rationale: authors will know what is expected of >> them, which should generally improve PR quality, and speed up review. Also, >> similar to the previous point: people are generally happy to follow what >> they perceive as community-maintained standards, but not as happy to follow >> what they perceive as the opinion of a single reviewer. >> >> 3) "Minimize hoop-jumping." We should make an effort to avoid the '74 >> one-line emails' problem. Endeavor to make fewer and fewer comments as the >> number of rounds of review of a PR gets higher. Endeavor to keep the number >> of rounds of review from getting too high. Authors can help here by >> explaining their decisions clearly, and by avoiding making large changes in >> their patches after review has started. Reviewers can help by making their >> first review as comprehensive as possible, to avoid the need to bring up >> brand-new points on later rounds of review. Reviewers can also help by >> writing out changes they're asking for explicitly (suggest a new comment, >> doc wording, method name, etc). Reviewers can also help by noting in a >> review comment when a suggestion is just a suggestion -- useful because >> many authors are likely to interpret an unqualified comment as a commit >> blocker. Rationale: the more rounds of review a PR goes through, and the >> more a review feels like a collection of disconnected 1-liner comments, the >> more it makes the original author feel as if he or she is being made to >> jump through hoops. This makes people less likely to contribute in the >> future, and damages efforts to build community. >> >> 4) "Pitch in on reviews." A relatively small number of committers are doing >> most of the code reviews. These people have limited time, and it means that >> PRs often stay in the review queue for a while without anyone looking at >> them. Any committer can pitch in, and in fact, even non-committers can >> (although their votes are nonbinding, their reviews are still helpful for >> social reasons). So anyone interested in reviewing is encouraged to do so. >> Rationale: improves bandwidth, prevents burning out the small number of >> volunteers that participate in reviews. >> >> Looking forward to seeing what people in the community think. >> >> Gian >> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@druid.apache.org For additional commands, e-mail: dev-h...@druid.apache.org