+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