+1 I'll throw in my support for auto-formatting, especially if the entire
project is auto-formatted in advance.

On Wed, Jun 27, 2018 at 10:53 AM Huygaa Batsaikhan <bat...@google.com>
wrote:

> +1. Global auto-formatting is cool!
>
> On Wed, Jun 27, 2018 at 10:17 AM Kenneth Knowles <k...@google.com> wrote:
>
>> I just mean that because of how the tool works. But I guess if there were
>> discretion then two different people could end up with autoformatting that
>> disagrees, so again you get lines in the PR diff that aren't real changes.
>>
>> Kenn
>>
>> On Wed, Jun 27, 2018 at 10:16 AM Raghu Angadi <rang...@google.com> wrote:
>>
>>> On Wed, Jun 27, 2018 at 10:13 AM Kenneth Knowles <k...@google.com> wrote:
>>>
>>>> Nope! No discretion allowed :-)
>>>>
>>>
>>> +1. Fair enough!
>>>
>>>
>>>>
>>>> On Wed, Jun 27, 2018 at 9:57 AM Raghu Angadi <rang...@google.com>
>>>> wrote:
>>>>
>>>>> +1.
>>>>>
>>>>> Wondering if it can be configured to reformat only what we care most
>>>>> about (2 space indentation etc), allowing some discretion on the edges. An
>>>>> example of inconsistent formatting that ends up in my code:
>>>>> ---
>>>>> anObject.someLongMethodName(arg_number_1,
>>>>>                                                        arg_number_2);
>>>>> --- vs ---
>>>>> anObject.anotherMethodName(
>>>>>   arg_number_1,
>>>>>   arg_number_2
>>>>> );
>>>>>
>>>>>
>>>>> On Wed, Jun 27, 2018 at 9:41 AM Lukasz Cwik <lc...@google.com> wrote:
>>>>>
>>>>>> It wasn't clear to me that the intent was to autoformat all the code
>>>>>> from the proposal initially. If thats the case, then the delta is quite
>>>>>> small typically.
>>>>>>
>>>>>> Also, it would be easier if we recommended to users to run run
>>>>>> "./gradlew spotlessApply" which will run spotless on all modules.
>>>>>>
>>>>>> On Wed, Jun 27, 2018 at 9:31 AM Kenneth Knowles <k...@google.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Luke: the proposal here solves exactly what you are talking about.
>>>>>>>
>>>>>>> The problem you describe happens when the PR author uses autoformat
>>>>>>> but the baseline is not already autoformatted. What I am proposing is to
>>>>>>> make sure the baseline is already autoformatted, so PRs never have
>>>>>>> extraneous formatting changes.
>>>>>>>
>>>>>>> Rafael: the default setting on GitHub is "allow edits by
>>>>>>> maintainers" so actually a committer can run spotless on behalf of a
>>>>>>> contributor and push the fixup. I have done this. It also lets a
>>>>>>> committer fix up a good PR and merge it even if the contributor is, say,
>>>>>>> asleep.
>>>>>>>
>>>>>>> Kenn
>>>>>>>
>>>>>>> On Wed, Jun 27, 2018 at 9:24 AM Rafael Fernandez <
>>>>>>> rfern...@google.com> wrote:
>>>>>>>
>>>>>>>> Luke: Anything that helps contributors and reviewers work better
>>>>>>>> together - +1! :D
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Jun 27, 2018 at 9:04 AM Lukasz Cwik <lc...@google.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> If spotless is run against a PR that is already well formatted its
>>>>>>>>> a non-issue as the formatting changes are usually related to the 
>>>>>>>>> change but
>>>>>>>>> I have reviewed a few PRs that have 100s of lines of formatting change
>>>>>>>>> which really obfuscates the work.
>>>>>>>>> Instead of asking contributors to run spotless, can we have a cron
>>>>>>>>> job run it across the project like once a day/week/... and cut a PR?
>>>>>>>>>
>>>>>>>>> On Wed, Jun 27, 2018 at 8:07 AM Kenneth Knowles <k...@google.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Good points, Dan. Checkstyle will still run, but just focused on
>>>>>>>>>> the things that go beyond format.
>>>>>>>>>>
>>>>>>>>>> Kenn
>>>>>>>>>>
>>>>>>>>>> On Wed, Jun 27, 2018 at 8:03 AM Etienne Chauchot <
>>>>>>>>>> echauc...@apache.org> wrote:
>>>>>>>>>>
>>>>>>>>>>> +1 !
>>>>>>>>>>> It's my custom to avoid reformatting to spare meaningless diff
>>>>>>>>>>> burden to the reviewer. Now it will be over, thanks.
>>>>>>>>>>>
>>>>>>>>>>> Etienne
>>>>>>>>>>>
>>>>>>>>>>> Le mardi 26 juin 2018 à 21:15 -0700, Kenneth Knowles a écrit :
>>>>>>>>>>>
>>>>>>>>>>> Hi all,
>>>>>>>>>>>
>>>>>>>>>>> I like readable code, but I don't like formatting it myself. And
>>>>>>>>>>> I _really_ don't like discussing in code review. "Spotless" [1] can 
>>>>>>>>>>> enforce
>>>>>>>>>>> - and automatically apply - automatic formatting for Java, Groovy, 
>>>>>>>>>>> and some
>>>>>>>>>>> others.
>>>>>>>>>>>
>>>>>>>>>>> This is not about style or wanting a particular layout. This is
>>>>>>>>>>> about automation, contributor experience, and streamlining review
>>>>>>>>>>>
>>>>>>>>>>>  - Contributor experience: MUCH better than checkstyle: error
>>>>>>>>>>> message just says "run ./gradlew :beam-your-module:spotlessApply" 
>>>>>>>>>>> instead
>>>>>>>>>>> of telling them to go in and manually edit.
>>>>>>>>>>>
>>>>>>>>>>>  - Automation: You want to use autoformat so you don't have to
>>>>>>>>>>> format code by hand. But if you autoformat a file that was in some 
>>>>>>>>>>> other
>>>>>>>>>>> format, then you touch a bunch of unrelated lines. If the file is 
>>>>>>>>>>> already
>>>>>>>>>>> autoformatted, it is much better.
>>>>>>>>>>>
>>>>>>>>>>>  - Review: Never talk about code formatting ever again. A PR
>>>>>>>>>>> also needs baseline to already be autoformatted or formatting will 
>>>>>>>>>>> make it
>>>>>>>>>>> unclear which lines are really changed.
>>>>>>>>>>>
>>>>>>>>>>> This is already available via applyJavaNature(enableSpotless:
>>>>>>>>>>> true) and it is turned on for SQL and our buildSrc gradle plugins. 
>>>>>>>>>>> It is
>>>>>>>>>>> very nice. There is a JIRA [2] to turn it on for the hold code base.
>>>>>>>>>>> Personally, I think (a) every module could make a different choice 
>>>>>>>>>>> if the
>>>>>>>>>>> main contributors feel strongly and (b) it is objectively better to 
>>>>>>>>>>> always
>>>>>>>>>>> autoformat :-)
>>>>>>>>>>>
>>>>>>>>>>> WDYT? If we do it, it is trivial to add it module-at-a-time or
>>>>>>>>>>> globally. If someone conflicts with a massive autoformat commit, 
>>>>>>>>>>> they can
>>>>>>>>>>> just keep their changes and autoformat them and it is done.
>>>>>>>>>>>
>>>>>>>>>>> Kenn
>>>>>>>>>>>
>>>>>>>>>>> [1]
>>>>>>>>>>> https://github.com/diffplug/spotless/tree/master/plugin-gradle
>>>>>>>>>>> [2] https://issues.apache.org/jira/browse/BEAM-4394
>>>>>>>>>>>
>>>>>>>>>>>

Reply via email to