At the moment, we have not added anything to our .clang-tidy config
file that doesn't apply to the whole codebase. That is to say, we are
clang-tidy green (but for a recent errant semicolon after a member fn
decl).

On Tue, Nov 29, 2016 at 11:18 AM, Todd Lipcon <t...@cloudera.com> wrote:
> On Kudu we've hooked it up as a precommit, but without any "vote". That is
> to say, it will add a gerrit comment with any warnings/diagnostics, but
> doesn't add a '-1' which prevents merge. This has been useful for pointing
> out style issues or missed optimizations, but we've been able to adopt it
> gradually without a big-bang "tidy everything" kind of commit which can be
> disruptive to in-flight patches.
>
> Typically we expect patch contributors to address the review comments from
> clang-tidy just like they'd address review comments from a human reviewer
> (which might include ignoring the comment if it's just some code that was
> moved from one place to another rather than new code)
>
> Here's an example of the type of comments it leaves:
> https://gerrit.cloudera.org/#/c/5252/1/src/kudu/master/catalog_manager.cc@3296
>
> -Todd
>
> On Tue, Nov 29, 2016 at 10:06 AM, Jim Apple <jbap...@cloudera.com> wrote:
>
>> Also, individual warning can be suppressed with "// NOLINT" (or with
>> "#pragma clang diagnostic ignored" for tidy checks that are also
>> compiler warnings)
>>
>> On Tue, Nov 29, 2016 at 10:01 AM, Sailesh Mukil <sail...@cloudera.com>
>> wrote:
>> > On Tue, Nov 29, 2016 at 9:50 AM, Henry Robinson <he...@apache.org>
>> wrote:
>> >
>> >> On 29 November 2016 at 08:06, Jim Apple <jbap...@cloudera.com> wrote:
>> >>
>> >> > Should we add to our pre-merge testing (aka GVM, aka GVO) some tests
>> >> > that don't run impalad, but only build it or check for correctness?
>> >> >
>> >> > For instance:
>> >> >
>> >> > 1. bin/run_clang_tidy.sh - should we force our code to always be
>> >> > clang-tidy?
>> >> >
>> >>
>> >> I don't have enough experience of the tool to know if this likely to be
>> a
>> >> help or hindrance.
>> >>
>> >>
>> >>
>> > +1 for this. My opinion is unless we foresee some patches that would fail
>> > clang-tidy but still be considered a valid patch by us, we should have
>> this
>> > as a pre-commit test.
>> >
>> >>
>> >> > 2. bin/check-rat-report.py - uses Apache RAT to check that our code
>> >> > has proper license headers
>> >> >
>> >>
>> >> +1
>> >>
>> >>
>> >> >
>> >> > 3. Other buildall.sh options - in the past we have broken -asan,
>> >> > -release, or -so without breaking the pre-commit test.
>> >> >
>> >>
>> >> If all can be tested for 'free' wrt to wall-clock-time, then sure. But
>> if
>> >> that's not possible, I'd only consider building -release, and maybe not
>> >> even that. -asan failures are infrequent enough that I don't expect it
>> to
>> >> be worth the extra time it would add to the pre-commit build.
>> >>
>> >> -so is less important to me.
>> >>
>> >>
>> >> >
>> >> > 4. Docs build
>> >> >
>> >> > I think I can do these without increasing the end-to-end time it takes
>> >> > to run the tests, by doing them in parallel. One issue I see is that
>> >> > committers who see their change as minor and merge it manually,
>> >> > without pre-merge testing, might break clang-tidy or RAT tests.
>> >> >
>> >>
>> >> For that reason, perhaps a separate docs build makes the most sense.
>> >>
>>
>
>
>
> --
> Todd Lipcon
> Software Engineer, Cloudera

Reply via email to