Did their happen to be a short time window where some missing Javadoc
comments went in? I am now seeing precommit fail due to code I didn't
modify.

https://scans.gradle.com/s/nwgb7xegklwqo/console-log?task=:beam-runners-direct-java:checkstyleMain



On Wed, Jan 23, 2019 at 2:34 PM Ruoyun Huang <ruo...@google.com> wrote:

> Trying to understand your suggestion. By saying "break that dependency",
> do you mean moving checkstyle out of Java PreCommit?
>
> currently we do have checkstyle as part of  ":check".  It seems to me
> "check" does minimal amount of essential works (correct me If I am wrong),
> much less than what PreCommit does.
>
> On Wed, Jan 23, 2019 at 12:20 PM Kenneth Knowles <k...@apache.org> wrote:
>
>> It is always a bummer when the Java PreCommit fails due to style
>> checking. Can we get this to run separately and quicker? I notice it
>> depends on compileJava. I cannot remember why that is, but I recall it is a
>> legitimate reason. Nonetheless, can we break that dependency somehow?
>>
>> Kenn
>>
>> On Wed, Jan 16, 2019 at 6:42 PM Ruoyun Huang <ruo...@google.com> wrote:
>>
>>> Hi, everyone,
>>>
>>>
>>> To make sure we move forward to a clean state where we catch violations
>>> in any new PR, we created this change:
>>> https://github.com/apache/beam/pull/7532
>>>
>>> This PR makes checkstyle to report error on missing javadocs. For
>>> existing violations, we explicitly added them as suppression rules, down to
>>> which line in the code.
>>>
>>> The caveat is, once this PR is merged, whoever make update to any file
>>> in the list, will very likely have to fix the existing violation for that
>>> file.  :-) Hope this sounds like a reasonable idea to move forward.
>>>
>>> In the meanwhile, I will try to address the items in the list (if I
>>> can). And over time, I will get back to this and remove those suppressions
>>> no longer needed (created JIRA-6446 for tracking purpose), until all of
>>> them are fixed.
>>>
>>> On Wed, Jan 9, 2019 at 10:57 PM Ruoyun Huang <ruo...@google.com> wrote:
>>>
>>>> created a PR: https://github.com/apache/beam/pull/7454
>>>>
>>>> Note instead of having separated checkstyle specs for Main versus Test,
>>>> this PR simply uses suppression to turn off JavaDocComment for test files.
>>>>
>>>> If this PR draft looks good, then next step I will commit another
>>>> change that:
>>>> 1) throw error on violations (now just warning to keep PR green).
>>>> 2) List all the violations explicitly in a suppression list, and let
>>>> area contributors/owners address and chop things off the list over time.
>>>> Not ideal and quite some manual work, if there is a better way, please let
>>>> me know.
>>>>
>>>> On Wed, Jan 9, 2019 at 7:29 AM Robert Bradshaw <rober...@google.com>
>>>> wrote:
>>>>
>>>>> On Tue, Jan 8, 2019 at 11:15 PM Kenneth Knowles <k...@apache.org>
>>>>> wrote:
>>>>> >
>>>>> > I think @Internal would be a reasonable annotation to exempt from
>>>>> documentation, as that means it is explicitly *not* part of the actual
>>>>> public API, as Ismaël alluded to.
>>>>>
>>>>> We'll probably want a distinct annotation from that. Forced comments,
>>>>> especially forced-by-an-impartial-metric ones, are often lower
>>>>> quality. This is the kind of signal that would be useful to surface to
>>>>> a reviewer who could then (jointly) make the call rather than it being
>>>>> a binary failure/success.
>>>>>
>>>>> > (I'm still on the docs-on-private-too side of things, but realize
>>>>> that's an extreme position)
>>>>>
>>>>> +1 to docs on private things as well, though maybe with not as high
>>>>> priority :).
>>>>>
>>>>> > It is a shame that we chose blacklist (via @Internal) instead of
>>>>> whitelist (via e.g. @Public) for what constitutes an actual supported
>>>>> public method.
>>>>>
>>>>> Probably better than having to re-train others that public doesn't
>>>>> really mean public unless it has a @Public on it. It's harder to
>>>>> "unknowingly" use an @Internal API.
>>>>>
>>>>>
>>>>> > Kenn
>>>>> >
>>>>> > On Tue, Jan 8, 2019 at 1:46 PM Ruoyun Huang <ruo...@google.com>
>>>>> wrote:
>>>>> >>
>>>>> >> To Ismael's question:  When applying such a check (i.e. public
>>>>> method with >30 Loc), our code base shows in total 115 violations.
>>>>> >>
>>>>> >> Thanks for the feedback everyone. As some of you mentioned already,
>>>>> suppress warning is always available whenever contributor/reviewer feels
>>>>> appropriate, instead of been forced to put in low quality comments. This
>>>>> check is more about to help us avoid human errors, in those cases we do
>>>>> want to add meaningful javadocs.
>>>>> >>
>>>>> >> With 5 +1s so far.  I will put together a PR draft.   A bit
>>>>> research is still needed regarding the best practise to apply check to
>>>>> Main/Test in a different way. If anyone has experience on it, please share
>>>>> it with me.
>>>>> >>
>>>>> >>
>>>>> >>
>>>>> >>
>>>>> >>
>>>>> >> On Tue, Jan 8, 2019 at 8:19 AM Ismaël Mejía <ieme...@gmail.com>
>>>>> wrote:
>>>>> >>>
>>>>> >>> -0
>>>>> >>>
>>>>> >>> Same comments than Robert I am particularly worried on how this
>>>>> affect
>>>>> >>> contributors in particular casual ones. Even if the intended idea
>>>>> is
>>>>> >>> good I am also worried that people just write poor comments to get
>>>>> rid
>>>>> >>> of the annoyance.
>>>>> >>>
>>>>> >>> Have you already estimated how hard is the current codebase
>>>>> impacted?
>>>>> >>> Or how many methods will be needed to document before this gets in
>>>>> >>> place?
>>>>> >>>
>>>>> >>> I wouldn't be surprised if many runners or internal parts of the
>>>>> >>> codebase lack comments on public methods considering that the
>>>>> 'public
>>>>> >>> API' of must runners 'is not' the public methods but the specific
>>>>> >>> PipelineOptions, and for some methods (even longer ones) such
>>>>> comments
>>>>> >>> may be trivial.
>>>>> >>>
>>>>> >>> On Tue, Jan 8, 2019 at 5:16 PM Kenneth Knowles <k...@apache.org>
>>>>> wrote:
>>>>> >>> >
>>>>> >>> > +1 I even thought this was already on (at some point).
>>>>> >>> >
>>>>> >>> > On Tue, Jan 8, 2019 at 8:01 AM Scott Wegner <sc...@apache.org>
>>>>> wrote:
>>>>> >>> >>
>>>>> >>> >> I would even propose applying this to non-public methods, but I
>>>>> suspect that would be more controversial.
>>>>> >>> >
>>>>> >>> >
>>>>> >>> > I also would support this. It will improve code quality as well.
>>>>> Often missing doc means something is not well thought-out. It often also
>>>>> indicates a misguided attempt to "share code" without sharing a clear
>>>>> concept.
>>>>> >>> >
>>>>> >>> >> I share Robert's concern for random victims hitting the policy
>>>>> when a method grows from N-1 to N lines. This can easily happen with
>>>>> automatic refactoring + spotless code formatting. For example, renaming a
>>>>> variable to a longer name can introduce new line-breaks. But, I'm think
>>>>> code documentation is valuable enough that it's still worth it.
>>>>> >>> >
>>>>> >>> >
>>>>> >>> > Another perspective is that someone is getting away with missing
>>>>> documentation at N-1. Seems OK. But maybe just allowMissingPropertyJavadoc
>>>>> (from
>>>>> http://checkstyle.sourceforge.net/config_javadoc.html#JavadocMethod)?
>>>>> We can also configure allowedAnnotations but if you are going to go 
>>>>> through
>>>>> the trouble of annotating something, a javadoc comment is just as easy.
>>>>> >>> >
>>>>> >>> > I want to caveat this: I am strongly opposed to any requirements
>>>>> on the contents of the javadoc, which is almost all the time redundant
>>>>> bloat if the description is at all adequate.
>>>>> >>> >
>>>>> >>> > Kenn
>>>>> >>> >
>>>>> >>> >
>>>>> >>> >>
>>>>> >>> >> On Tue, Jan 8, 2019 at 4:03 AM Robert Bradshaw <
>>>>> rober...@google.com> wrote:
>>>>> >>> >>>
>>>>> >>> >>> With the clarification that we're looking at the intersection
>>>>> of
>>>>> >>> >>> public + "big", I think this is a great idea. We should make
>>>>> it clear
>>>>> >>> >>> that this is a lower bar--many private or shorter methods merit
>>>>> >>> >>> documentation as well (but that's harder to automatically
>>>>> detect). The
>>>>> >>> >>> one difficulty with a threshold is that it's painful for the
>>>>> person
>>>>> >>> >>> who does some refactoring or other minor work and turns the
>>>>> (say)
>>>>> >>> >>> 29-line method into a 30-line one. This is a case where as
>>>>> suppression
>>>>> >>> >>> annotation (appropriately used) could be useful.
>>>>> >>> >>>
>>>>> >>> >>> On Tue, Jan 8, 2019 at 1:49 AM Daniel Oliveira <
>>>>> danolive...@google.com> wrote:
>>>>> >>> >>> >
>>>>> >>> >>> > +1
>>>>> >>> >>> >
>>>>> >>> >>> > I like this idea, especially with the line number
>>>>> requirement. The exact number of lines is debatable, but you could go as
>>>>> low as 10 lines and that would exclude any trivial setters and getters.
>>>>> Even better might be if it's possible to configure checkstyle to ignore
>>>>> this for getters and setters (I don't know if checkstyle supports this, 
>>>>> but
>>>>> I know that other tools are able to auto-detect getters and setters).
>>>>> >>> >>> >
>>>>> >>> >>> > I'm not dead-set against having annotation to suppress the
>>>>> comment, but it carries the risk that code will be left un-commented
>>>>> because both the dev and reviewer think it's self-explanatory, and then
>>>>> someone new to the codebase finds it confusing.
>>>>> >>> >>> >
>>>>> >>> >>> > On Mon, Jan 7, 2019 at 11:31 AM Ankur Goenka <
>>>>> goe...@google.com> wrote:
>>>>> >>> >>> >>
>>>>> >>> >>> >> I think it makes sense.
>>>>> >>> >>> >> Having an annotation to suppress this check for a
>>>>> method/class instead of adding trivial comment would be useful.
>>>>> >>> >>> >>
>>>>> >>> >>> >> On Mon, Jan 7, 2019 at 9:53 AM Ruoyun Huang <
>>>>> ruo...@google.com> wrote:
>>>>> >>> >>> >>>
>>>>> >>> >>> >>> Yeah. Agree there is no reason to enforce anything for
>>>>> trivial methods like setter/getter.
>>>>> >>> >>> >>>
>>>>> >>> >>> >>> What I meant is to enforce only for a method that is BOTH
>>>>> 1) public method 2) has longer than N lines.
>>>>> >>> >>> >>>
>>>>> >>> >>> >>> sorry for not making the proposal clear enough in the
>>>>> original message, it should've better titled "enforce ... on non-trivial
>>>>> public methods".
>>>>> >>> >>> >>>
>>>>> >>> >>> >>>
>>>>> >>> >>> >>>
>>>>> >>> >>> >>> On Mon, Jan 7, 2019 at 1:31 AM Robert Bradshaw <
>>>>> rober...@google.com> wrote:
>>>>> >>> >>> >>>>
>>>>> >>> >>> >>>> IMHO, requiring comments on trivial methods like setters
>>>>> and getters
>>>>> >>> >>> >>>> is often a net negative, but setting some standard could
>>>>> be useful.
>>>>> >>> >>> >>>>
>>>>> >>> >>> >>>> On Mon, Jan 7, 2019 at 7:35 AM Jean-Baptiste Onofré <
>>>>> j...@nanthrax.net> wrote:
>>>>> >>> >>> >>>> >
>>>>> >>> >>> >>>> > Hi,
>>>>> >>> >>> >>>> >
>>>>> >>> >>> >>>> > for the presence of a comment on public method, it's a
>>>>> good idea. Now,
>>>>> >>> >>> >>>> > about the number of lines, not sure it's a good idea.
>>>>> I'm thinking about
>>>>> >>> >>> >>>> > the getter/setter which are public. Most of the time,
>>>>> the comment is
>>>>> >>> >>> >>>> > pretty simple (and useless ;)).
>>>>> >>> >>> >>>> >
>>>>> >>> >>> >>>> > Regards
>>>>> >>> >>> >>>> > JB
>>>>> >>> >>> >>>> >
>>>>> >>> >>> >>>> > On 07/01/2019 04:35, Ruoyun Huang wrote:
>>>>> >>> >>> >>>> > > Hi, everyone,
>>>>> >>> >>> >>>> > >
>>>>> >>> >>> >>>> > >
>>>>> >>> >>> >>>> > >     We were wondering whether it is a good idea to
>>>>> make checkstyle
>>>>> >>> >>> >>>> > > enforce public method comments. Our current behavior
>>>>> of JavaDoc check is:
>>>>> >>> >>> >>>> > >
>>>>> >>> >>> >>>> > >  1.
>>>>> >>> >>> >>>> > >
>>>>> >>> >>> >>>> > >     Missing Class javadoc comment is reported as
>>>>> error.
>>>>> >>> >>> >>>> > >
>>>>> >>> >>> >>>> > >  2.
>>>>> >>> >>> >>>> > >
>>>>> >>> >>> >>>> > >     Method comment missing is explicitly allowed. see
>>>>> [1].  It is not
>>>>> >>> >>> >>>> > >     even shown as warning.
>>>>> >>> >>> >>>> > >
>>>>> >>> >>> >>>> > >  3.
>>>>> >>> >>> >>>> > >
>>>>> >>> >>> >>>> > >     The actual javadoc target gives warning when
>>>>> certain tags are
>>>>> >>> >>> >>>> > >     missing in javadoc, but not if the whole comment
>>>>> is missing.
>>>>> >>> >>> >>>> > >
>>>>> >>> >>> >>>> > >
>>>>> >>> >>> >>>> > >    How about we enforce method comments for **1)
>>>>> public method and 2)
>>>>> >>> >>> >>>> > > method that is longer than N lines**. (N=~30 seems a
>>>>> good number,
>>>>> >>> >>> >>>> > > leading to ~50 violations in current repository). I
>>>>> can find out the
>>>>> >>> >>> >>>> > > corresponding contributors to fill in the missing
>>>>> comments, before we
>>>>> >>> >>> >>>> > > turning the check fully on.
>>>>> >>> >>> >>>> > >
>>>>> >>> >>> >>>> > >
>>>>> >>> >>> >>>> > >    One caveat though is that we might want skip this
>>>>> check on test code,
>>>>> >>> >>> >>>> > > but I am not sure yet if our current setup can easily
>>>>> handle separated
>>>>> >>> >>> >>>> > > rules for main code versus test code.
>>>>> >>> >>> >>>> > >
>>>>> >>> >>> >>>> > >
>>>>> >>> >>> >>>> > >     Is this a good idea?  Thoughts and suggestions?
>>>>> >>> >>> >>>> > >
>>>>> >>> >>> >>>> > >
>>>>> >>> >>> >>>> > > [1]
>>>>> >>> >>> >>>> > >
>>>>> https://github.com/apache/beam/blame/5ceffb246c0c38ad68dd208e951a1f39c90ef85c/sdks/java/build-tools/src/main/resources/beam/checkstyle.xml#L111
>>>>> >>> >>> >>>> > >
>>>>> >>> >>> >>>> > >
>>>>> >>> >>> >>>> > > Cheers,
>>>>> >>> >>> >>>> > >
>>>>> >>> >>> >>>> >
>>>>> >>> >>> >>>> > --
>>>>> >>> >>> >>>> > Jean-Baptiste Onofré
>>>>> >>> >>> >>>> > jbono...@apache.org
>>>>> >>> >>> >>>> > http://blog.nanthrax.net
>>>>> >>> >>> >>>> > Talend - http://www.talend.com
>>>>> >>> >>> >>>
>>>>> >>> >>> >>>
>>>>> >>> >>> >>>
>>>>> >>> >>> >>> --
>>>>> >>> >>> >>> ================
>>>>> >>> >>> >>> Ruoyun  Huang
>>>>> >>> >>> >>>
>>>>> >>> >>
>>>>> >>> >>
>>>>> >>> >>
>>>>> >>> >> --
>>>>> >>> >>
>>>>> >>> >>
>>>>> >>> >>
>>>>> >>> >>
>>>>> >>> >> Got feedback? tinyurl.com/swegner-feedback
>>>>> >>
>>>>> >>
>>>>> >>
>>>>> >> --
>>>>> >> ================
>>>>> >> Ruoyun  Huang
>>>>> >>
>>>>>
>>>>
>>>>
>>>> --
>>>> ================
>>>> Ruoyun  Huang
>>>>
>>>>
>>>
>>> --
>>> ================
>>> Ruoyun  Huang
>>>
>>>
>
> --
> ================
> Ruoyun  Huang
>
>

Reply via email to