On further thought I like the separate package even more. It allows us to easily isolate all those tests, and not block commits or releases on them.
On Tue, Feb 20, 2018 at 7:45 AM, Reuven Lax <re...@google.com> wrote: > Another idea: we could have a special package for these "unrefined" > contributions. Once the contribution has had time to mature some, it can be > moved to the regular package structure. > > On Tue, Feb 20, 2018 at 7:41 AM, Jean-Baptiste Onofré <j...@nanthrax.net> > wrote: > >> I would add some @ToBeRefined or so 😁 >> Le 20 févr. 2018, à 16:35, Reuven Lax <re...@google.com> a écrit: >>> >>> Hi JB, >>> >>> You're right, I was thinking more about changes to core when talking >>> about the technical-excellence bar. >>> >>> I think there still needs to be some bar for new features and extension, >>> but I also think it can be much lower (as nobody is breaking anything by >>> merging this). An example of where we still need a bar here is tests. If a >>> new IO has a test that the reviewer thinks will be flaky, that flaky test >>> will cause problems for _every_ Beam committer, and it's fair to ask for >>> the test to be changed. >>> >>> Given that the bar is lower for new extensions, I think we need a good >>> way of marking these things so that Beam users know they are not as mature >>> as other parts of Beam. Traditionally we've used @Experimental, but >>> @Experimental has been overloaded to mean other things as well. Maybe we >>> need to introduce a new annotation? >>> >>> Reuven >>> >>> On Tue, Feb 20, 2018 at 5:48 AM, Jean-Baptiste Onofré <j...@nanthrax.net> >>> wrote: >>> >>>> Hi Reuven >>>> >>>> I agree with all your points except maybe in term of bar level, >>>> especially on new features (like extensions or IOs). If the PRs on the core >>>> should be heavily reviewed, I'm more in favor of merging the PR pretty fast >>>> even if not perfect. It's not a technical topic, it's really a contribution >>>> and community topic. >>>> >>>> Thanks anyway, the dashboard is a good idea ! >>>> >>>> Regards >>>> JB >>>> Le 19 févr. 2018, à 19:33, Reuven Lax < re...@google.com> a écrit: >>>>> >>>>> There have been a number of threads on code reviews (most recently on >>>>> a "State of the project" email). These threads have died out without much >>>>> resolution, but I'm not sure that the concerns have gone away. >>>>> >>>>> First of all, I'm of the opinion that a code-review bar for Beam >>>>> commits is critical to success of the project. This is a system with many >>>>> subtle semantics, which might not be obvious at first glance. Beam >>>>> pipelines process user data, and the consequence of certain bugs might >>>>> mean >>>>> corrupting user data and aggregations - something to avoid at all cost if >>>>> we want Beam to be trusted. Finally Beam pipelines often run at extremely >>>>> high scale; while many of our committers have a strong intuition for what >>>>> can go wrong when running at high scale, not everybody who wants to >>>>> contribute will have this experience. >>>>> >>>>> >>>>> However, we also cannot afford to let our policy get in the way of >>>>> building a community. We *must* remain a friendly place to develop >>>>> and contribute. >>>>> >>>>> >>>>> When I look at concerns people have had on on code reviews (and I've >>>>> been browsing most PRs this past year), I see a few common threads: >>>>> >>>>> >>>>> *Review Latency* >>>>> >>>>> Latency on code reviews can be too high. At various times folks (most >>>>> recently, Ahmet and I) have tried to regularly look for stale PRs and ping >>>>> them, but latency still remains high. >>>>> >>>>> >>>>> *Pedantic* >>>>> >>>>> Overly-pedantic comments (change variable names, etc.) can be >>>>> frustrating. The PR author can feel like they are being forced to make >>>>> meaningless changes just so the reviewer will allow merging. Note that >>>>> this >>>>> is sometimes in the eye of the beholder - the reviewer may not think all >>>>> these comments are pedantic. >>>>> >>>>> >>>>> *Don't Do This* >>>>> >>>>> Sometimes a reviewer rejects an entire PR, saying that this should not >>>>> be done. There are various reasons given: this won't scale, this will >>>>> break >>>>> backwards compatibility, this will break a specific runner, etc. The PR >>>>> author may not always understand or agree with these reasons, and this can >>>>> leave hurt feelings. >>>>> >>>>> >>>>> I would like open discussion about ways of making our code-review >>>>> policy more welcoming. I'll seed the discussion with a few ideas: >>>>> >>>>> >>>>> *Code Review Dashboard and Automation* >>>>> >>>>> We should invest in adding a code-review dashboard to our site, >>>>> tracking stale PRs by reviewer. Quick turnaround on code reviews is >>>>> essential building community, so all Beam committers should consider >>>>> reviewing code as important as their own coding. Spark has built a >>>>> PR dashboard (https://spark-prs.appspot.com/) which they’ve found >>>>> better than Github’s dashboard; we could easily fork this dashboard. There >>>>> are also tools that will automatically ping reviewers (mention-bot and hey >>>>> there are two such tools). We can also make sure that new PRs are auto >>>>> assigned a reviewer (e.g. https://github.com/imsky/pull-review) >>>>> >>>>> >>>>> *Code Review Response SLA* >>>>> >>>>> It would be great if we could agree on a response-time SLA for Beam >>>>> code reviews. The response might be “I am unable to do the review until >>>>> next week,” however even that is better than getting no response. >>>>> >>>>> >>>>> *Guideline Document* >>>>> >>>>> I think we should have a guideline document, explaining common reasons >>>>> a reviewer might reject an approach in a PR. e.g. "This will cause >>>>> scaling >>>>> problems," "This will cause problems for XXX runner," "This is backwards >>>>> incompatible." Reviewers can point to this doc as part of their comments, >>>>> along with extra flavor. e.g. “as per the guideline doc, this will cause >>>>> scaling problems, and here’s why.” >>>>> >>>>> >>>>> *Guidelines on Comments* >>>>> >>>>> Not everyone agrees on which comments are pedantic, which makes it >>>>> hard to have specific guidelines here. One general guideline me might >>>>> adopt: if it'll take less time for the reviewer to make the changes >>>>> themselves, it's not an appropriate comment. The reviewer should fix those >>>>> issues a follow-on PR. This adds a bit more burden on reviewers, but >>>>> IMO is worth it to keep Beam a friendly environment. This is especially >>>>> important for first-time contributors, who might otherwise lost interest. >>>>> If the author is a seasoned Beam contributor, we can expect more out of >>>>> them. >>>>> >>>>> >>>>> We should also make sure that these fixups serve as educational >>>>> moments for the new contributor. “Thanks for the contribution! I’ll be >>>>> making some changes during the merge so that the code stays consistent >>>>> across the codebase - keep an eye on them.” >>>>> >>>>> >>>>> Would love to hear more thoughts. >>>>> >>>>> >>>>> Reuven >>>>> >>>>> >>> >