Great to see general consensus and this finally happening!
I think there is less arguments now about the tool with a consensus towards
`yapf`.
So better just to do a PoC with `yapf` tuned to the Beam's configuration to
see how impacting it would be.
Thanks Michal and Kamil for taking a look into this.

On Thu, Jan 23, 2020 at 10:37 AM Michał Walenia <michal.wale...@polidea.com>
wrote:

> Hi all,
> I created a JIRA issue for this and summarized the available tools
>
> https://issues.apache.org/jira/browse/BEAM-9175
>
> Cheers,
> Michal
>
> On Thu, Jan 23, 2020 at 1:49 AM Udi Meiri <eh...@google.com> wrote:
>
>> Sorry, backing off on this due to time constraints.
>>
>> On Wed, Jan 22, 2020 at 3:39 PM Udi Meiri <eh...@google.com> wrote:
>>
>>> It sounds like there's a consensus for yapf. I volunteer to take this on
>>>
>>> On Wed, Jan 22, 2020, 10:31 Udi Meiri <eh...@google.com> wrote:
>>>
>>>> +1 to autoformatting
>>>>
>>>> On Wed, Jan 22, 2020 at 9:57 AM Luke Cwik <lc...@google.com> wrote:
>>>>
>>>>> +1 to autoformatters. Also the Beam Java SDK went through a one time
>>>>> pass to apply the spotless formatting.
>>>>>
>>>>> On Tue, Jan 21, 2020 at 9:52 PM Ahmet Altay <al...@google.com> wrote:
>>>>>
>>>>>> +1 to autoformatters and yapf. It appears to be a well maintained
>>>>>> project. I do support making a one time pass to apply formatting the 
>>>>>> whole
>>>>>> code base.
>>>>>>
>>>>>> On Tue, Jan 21, 2020 at 5:38 PM Chad Dombrova <chad...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>>
>>>>>>>> It'd be good if there was a way to only apply to violating (or at
>>>>>>>> least changed) lines.
>>>>>>>
>>>>>>>
>>>>>>> I assumed the first thing we’d do is convert all of the code in one
>>>>>>> go, since it’s a very safe operation. Did you have something else in 
>>>>>>> mind?
>>>>>>>
>>>>>>> -chad
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> On Tue, Jan 21, 2020 at 1:56 PM Chad Dombrova <chad...@gmail.com>
>>>>>>>> wrote:
>>>>>>>> >
>>>>>>>> > +1 to autoformatting
>>>>>>>> >
>>>>>>>> > Let me add some nuance to that.
>>>>>>>> >
>>>>>>>> > The way I see it there are 2 varieties of formatters:  those
>>>>>>>> which take the original formatting into consideration (autopep8) and 
>>>>>>>> those
>>>>>>>> which disregard it (yapf, black).
>>>>>>>> >
>>>>>>>> > I much prefer yapf to black, because you have plenty of options
>>>>>>>> to tweak with yapf (enough to make the output a pretty close match to 
>>>>>>>> the
>>>>>>>> current Beam style), and you can mark areas to preserve the original
>>>>>>>> formatting, which could be very useful with Pipeline building with pipe
>>>>>>>> operators.  Please don't pick black.
>>>>>>>> >
>>>>>>>> > autopep8 is more along the lines of spotless in Java -- it only
>>>>>>>> corrects code that breaks the project's style rules.  The big problem 
>>>>>>>> with
>>>>>>>> Beam's current style is that it is so esoteric that autopep8 can't 
>>>>>>>> enforce
>>>>>>>> it -- and I'm not just talking about 2-spaces, which I don't really 
>>>>>>>> have a
>>>>>>>> problem with -- the problem is the use of either 2 or 4 spaces 
>>>>>>>> depending on
>>>>>>>> context (expression start vs hanging indent, etc).  This is my 
>>>>>>>> *biggest*
>>>>>>>> gripe about the current style.  PyCharm doesn't have enough control
>>>>>>>> either.  So, if we can choose a style that can be expressed by flake8 
>>>>>>>> or
>>>>>>>> pycodestyle then we can use autopep8 to enforce it.
>>>>>>>> >
>>>>>>>> > I'd prefer autopep8 to yapf because I like having a little wiggle
>>>>>>>> room to influence the style, but on a big project like Beam all that 
>>>>>>>> wiggle
>>>>>>>> room ends up to minor but noticeable inconsistencies in style 
>>>>>>>> throughout
>>>>>>>> the project.  yapf ensures completely consistent style, but the 
>>>>>>>> tradeoff is
>>>>>>>> that it's sometimes ugly, especially in scenarios with similar repeated
>>>>>>>> entries like argparse, where yapf might insert line breaks in visually
>>>>>>>> inconsistent and unappealing ways depending on the lengths of the 
>>>>>>>> keywords
>>>>>>>> and expressions involved.
>>>>>>>> >
>>>>>>>> > Either way (but especially if we choose yapf) I think it'd be a
>>>>>>>> nice addition to setup a pre-commit [1] config so that people can opt 
>>>>>>>> in to
>>>>>>>> running *lightweight* autofixers prior to commit.  This will not only
>>>>>>>> reduce dev frustration but will also reduce the amount of cpu cycles 
>>>>>>>> that
>>>>>>>> Jenkins spends pointing out lint errors.
>>>>>>>> >
>>>>>>>> > [1] https://pre-commit.com/
>>>>>>>> >
>>>>>>>> > -chad
>>>>>>>> >
>>>>>>>> >
>>>>>>>> >
>>>>>>>> >
>>>>>>>> > On Tue, Jan 21, 2020 at 12:52 PM Ismaël Mejía <ieme...@gmail.com>
>>>>>>>> wrote:
>>>>>>>> >>
>>>>>>>> >> Last time we discussed this there seems not to be much progress
>>>>>>>> into autoformatting.
>>>>>>>> >> This tool looks more tweakable, so maybe it could be more
>>>>>>>> appropriate for Beam's use case.
>>>>>>>> >> https://github.com/google/yapf/
>>>>>>>> >> WDYT?
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >> On Thu, May 30, 2019 at 10:50 AM Łukasz Gajowy <
>>>>>>>> lgaj...@apache.org> wrote:
>>>>>>>> >>>
>>>>>>>> >>> +1 for any autoformatter for Python SDK that does the job. My
>>>>>>>> experience is that since spotless in Java SDK I would never start a new
>>>>>>>> Java project without it. So many great benefits not only for one person
>>>>>>>> coding but for all community.
>>>>>>>> >>>
>>>>>>>> >>> It is a GitHub UI issue that you cannot easily browse past the
>>>>>>>> reformat. It is not actually that hard, but does take a couple extra 
>>>>>>>> clicks
>>>>>>>> to get GitHub to display blame before a reformat. It is easier with the
>>>>>>>> command line. I do a lot of code history digging and the global Java
>>>>>>>> reformat is not really a problem.
>>>>>>>> >>>
>>>>>>>> >>> It's actually one more click on Github but I agree it's not the
>>>>>>>> best way to search the history. The most convenient and clear one I've
>>>>>>>> found so far is in Jetbrains IDEs (Intelij) where you can:
>>>>>>>> >>>
>>>>>>>> >>> right click on line number -> "annotate" -> click again ->
>>>>>>>> "annotate previous revision" -> ...
>>>>>>>> >>>
>>>>>>>> >>> You can also use "compare with" to see the diff between two
>>>>>>>> revisions.
>>>>>>>> >>>
>>>>>>>> >>> Łukasz
>>>>>>>> >>>
>>>>>>>> >>>
>>>>>>>> >>>
>>>>>>>> >>>
>>>>>>>> >>>
>>>>>>>> >>> czw., 30 maj 2019 o 06:15 Kenneth Knowles <k...@apache.org>
>>>>>>>> napisał(a):
>>>>>>>> >>>>
>>>>>>>> >>>> +1 pending good enough tooling (I can't quite tell - seems
>>>>>>>> there are some issues?)
>>>>>>>> >>>>
>>>>>>>> >>>> On Wed, May 29, 2019 at 2:40 PM Katarzyna Kucharczyk <
>>>>>>>> ka.kucharc...@gmail.com> wrote:
>>>>>>>> >>>>>
>>>>>>>> >>>>> What else actually we gain? My guess is faster PR review
>>>>>>>> iteration. We will skip some of conversations about code style.
>>>>>>>> >>>>
>>>>>>>> >>>> ...
>>>>>>>> >>>>>
>>>>>>>> >>>>> Last but not least, new contributor may be less discouraged.
>>>>>>>> When I started contribute I didn’t know how to format my code and I 
>>>>>>>> lost a
>>>>>>>> lot of time to add pylint and adjust IntelliJ. I eventually failed.
>>>>>>>> Currently I write code intuitively and when I don’t forget I rerun tox.
>>>>>>>> >>>>
>>>>>>>> >>>>
>>>>>>>> >>>> This is a huge benefit. This is why I supported it so much for
>>>>>>>> Java. It is a community benefit. You do not have to be a contributor 
>>>>>>>> to the
>>>>>>>> Python SDK to support this. That is why I am writing here. Just 
>>>>>>>> eliminate
>>>>>>>> all discussion of formatting. It doesn't really matter what the 
>>>>>>>> resulting
>>>>>>>> format is, if it is not crazy to read. I strongly oppose maintaining a
>>>>>>>> non-default format.
>>>>>>>> >>>>
>>>>>>>> >>>> Reformating 20k lines or 200k is not hard. The Java global
>>>>>>>> reformat touched 50k lines. It does not really matter how big it is.
>>>>>>>> Definitely do it all at once if you think the tool is good enough. And 
>>>>>>>> you
>>>>>>>> should pin a version, so churn is not a problem. You can upgrade the
>>>>>>>> version and reformat in a PR later and that is also easy.
>>>>>>>> >>>>
>>>>>>>> >>>> It is a GitHub UI issue that you cannot easily browse past the
>>>>>>>> reformat. It is not actually that hard, but does take a couple extra 
>>>>>>>> clicks
>>>>>>>> to get GitHub to display blame before a reformat. It is easier with the
>>>>>>>> command line. I do a lot of code history digging and the global Java
>>>>>>>> reformat is not really a problem.
>>>>>>>> >>>>
>>>>>>>> >>>> Kenn
>>>>>>>> >>>>
>>>>>>>> >>>>
>>>>>>>> >>>>>
>>>>>>>> >>>>> Also everything will be formatted in a same way, so
>>>>>>>> eventually it would be easier to read.
>>>>>>>> >>>>>
>>>>>>>> >>>>> Moreover, as it was mentioned in previous emails - a lot of
>>>>>>>> Jenkins failures won’t take place, so we save time and resources.
>>>>>>>> >>>>>
>>>>>>>> >>>>>
>>>>>>>> >>>>> One of disadvantages is that our pipelines has custom syntax
>>>>>>>> and after formatting they looks a little bit weird, but maybe 
>>>>>>>> extending the
>>>>>>>> only configurable option in Black - lines, from 88 to 110 would be 
>>>>>>>> solution.
>>>>>>>> >>>>>
>>>>>>>> >>>>> Second one is that Black requires Python 3 to be run. I don’t
>>>>>>>> know how big obstacle it would be.
>>>>>>>> >>>>>
>>>>>>>> >>>>>
>>>>>>>> >>>>> I believe there are two options how it would be possible to
>>>>>>>> introduce Black. First: just do it, it will hurt but then it would be 
>>>>>>>> ok
>>>>>>>> (same as a dentist appointment). Of course it may require some work to
>>>>>>>> adjust linters. On the other hand we can do it gradually and start
>>>>>>>> including sdk parts one by one - maybe it will be less painful?
>>>>>>>> >>>>>
>>>>>>>> >>>>>
>>>>>>>> >>>>> As an example I can share one of projects [2] I know that
>>>>>>>> uses Black (they use also other cool checkers and pre-commit [3]). 
>>>>>>>> This is
>>>>>>>> how looks their build with all checks [4].
>>>>>>>> >>>>>
>>>>>>>> >>>>>
>>>>>>>> >>>>> To sum up I believe that if we want improve our coding
>>>>>>>> experience, we should improve our toolset. Black seems be recent and 
>>>>>>>> quite
>>>>>>>> popular tool what makes think they won’t stop developing it.
>>>>>>>> >>>>>
>>>>>>>> >>>>>
>>>>>>>> >>>>> [1]
>>>>>>>> https://stackoverflow.com/questions/4112410/git-change-styling-whitespace-without-changing-ownership-blame
>>>>>>>> >>>>>
>>>>>>>> >>>>>
>>>>>>>> >>>>> [2]  https://github.com/GoogleCloudPlatform/oozie-to-airflow
>>>>>>>> >>>>>
>>>>>>>> >>>>>
>>>>>>>> >>>>> [3] https://pre-commit.com
>>>>>>>> >>>>>
>>>>>>>> >>>>>
>>>>>>>> >>>>> [4]
>>>>>>>> https://travis-ci.org/GoogleCloudPlatform/oozie-to-airflow/builds/538725689
>>>>>>>> >>>>>
>>>>>>>> >>>>>
>>>>>>>> >>>>>
>>>>>>>> >>>>> On Wed, May 29, 2019 at 2:01 PM Robert Bradshaw <
>>>>>>>> rober...@google.com> wrote:
>>>>>>>> >>>>>>
>>>>>>>> >>>>>> Reformatting to 4 spaces seems a non-starter to me, as it
>>>>>>>> would change nearly every single line in the codebase (and the loss of 
>>>>>>>> all
>>>>>>>> context as well as that particular line).
>>>>>>>> >>>>>>
>>>>>>>> >>>>>> This is probably why the 2-space fork exists. However, we
>>>>>>>> don't conform to that either--we use 2 spaces for indentation, but 4 
>>>>>>>> for
>>>>>>>> continuation indentation. (As for the history of this, this goes back 
>>>>>>>> to
>>>>>>>> Google's internal style guide, probably motivated by consistency with 
>>>>>>>> C++,
>>>>>>>> Java, ... and the fact that with an indent level of 4 one ends up 
>>>>>>>> wrapping
>>>>>>>> lines quite frequently (it's telling that black's default line length 
>>>>>>>> is
>>>>>>>> 88)). This turns out to be an easy change to the codebase.
>>>>>>>> >>>>>>
>>>>>>>> >>>>>> Once we move beyond the 2 vs. 4 whitespace thing, I found
>>>>>>>> that this tool introduces a huge amount of vertical whitespace (e.g.
>>>>>>>> closing parentheses on their own line), e.g.
>>>>>>>> >>>>>>
>>>>>>>> >>>>>> def foo(
>>>>>>>> >>>>>>     args
>>>>>>>> >>>>>> ):
>>>>>>>> >>>>>>   if (
>>>>>>>> >>>>>>       long expression)
>>>>>>>> >>>>>>   ):
>>>>>>>> >>>>>>     func(
>>>>>>>> >>>>>>         args
>>>>>>>> >>>>>>     )
>>>>>>>> >>>>>>
>>>>>>>> >>>>>> I wrote a simple post-processor to put closing parentheses
>>>>>>>> on the same lines, as well as omit the newline after "if (", and 
>>>>>>>> disabling
>>>>>>>> formatting of strings, which reduce the churn in our codebase to 15k 
>>>>>>>> lines
>>>>>>>> (adding about 4k) out of 200k total.
>>>>>>>> >>>>>>
>>>>>>>> >>>>>> https://github.com/apache/beam/pull/8712/files
>>>>>>>> >>>>>>
>>>>>>>> >>>>>> It's still very opinionated, often in different ways then
>>>>>>>> me, and doesn't understand the semantics of the code, but possibly
>>>>>>>> something we could live with given the huge advantages of an 
>>>>>>>> autoformatter.
>>>>>>>> >>>>>>
>>>>>>>> >>>>>> An intermediate point would be to allow, but not require,
>>>>>>>> autoformatting of changed lines.
>>>>>>>> >>>>>>
>>>>>>>> >>>>>> As for being beta quality, it looks like it's got a decent
>>>>>>>> number of contributors and in my book being in the python github 
>>>>>>>> project is
>>>>>>>> a strong positive signal. But, due to the above issues, I think we'd 
>>>>>>>> have
>>>>>>>> to maintain a fork. (The code is pretty lightweight, the 2 vs. 4 space
>>>>>>>> issue is a 2-line change, and the rest implemented as a post-processing
>>>>>>>> step (for now, incomplete), so it'd be easy to stay in sync with 
>>>>>>>> upstream.)
>>>>>>>> >>>>>>
>>>>>>>> >>>>>> On Wed, May 29, 2019 at 11:03 AM Ismaël Mejía <
>>>>>>>> ieme...@gmail.com> wrote:
>>>>>>>> >>>>>> >
>>>>>>>> >>>>>> > > I think the question is if it can be configured in a way
>>>>>>>> to fit our
>>>>>>>> >>>>>> > > current linter's style. I don't think it is feasible to
>>>>>>>> reformat the
>>>>>>>> >>>>>> > > entire Python SDK.
>>>>>>>> >>>>>> >
>>>>>>>> >>>>>> > It cannot be configured to do what we actually do because
>>>>>>>> Black is
>>>>>>>> >>>>>> > configurable only to support the standard python codestyle
>>>>>>>> guidelines
>>>>>>>> >>>>>> > (PEP-8) which recommends 4 spaces and is what most
>>>>>>>> projects in the
>>>>>>>> >>>>>> > python world use.
>>>>>>>> >>>>>> >
>>>>>>>> >>>>>> > > Reformatted lines don't allow quick access to the Git
>>>>>>>> history. This
>>>>>>>> >>>>>> > > effect is still visible in the Java SDK. However, I have
>>>>>>>> the feeling
>>>>>>>> >>>>>> > > that this might be less of a problem with Python because
>>>>>>>> the linter has
>>>>>>>> >>>>>> > > more rules than Checkstyle had.
>>>>>>>> >>>>>> >
>>>>>>>> >>>>>> > Yes that’s the bad side effect but there are always
>>>>>>>> tradeoffs we have
>>>>>>>> >>>>>> > to deal with.
>>>>>>>> >>>>>> >
>>>>>>>> >>>>>> >
>>>>>>>> >>>>>> >
>>>>>>>> >>>>>> >
>>>>>>>> >>>>>> > On Wed, May 29, 2019 at 10:52 AM Maximilian Michels <
>>>>>>>> m...@apache.org> wrote:
>>>>>>>> >>>>>> > >
>>>>>>>> >>>>>> > > I think the question is if it can be configured in a way
>>>>>>>> to fit our
>>>>>>>> >>>>>> > > current linter's style. I don't think it is feasible to
>>>>>>>> reformat the
>>>>>>>> >>>>>> > > entire Python SDK.
>>>>>>>> >>>>>> > >
>>>>>>>> >>>>>> > > Reformatted lines don't allow quick access to the Git
>>>>>>>> history. This
>>>>>>>> >>>>>> > > effect is still visible in the Java SDK. However, I have
>>>>>>>> the feeling
>>>>>>>> >>>>>> > > that this might be less of a problem with Python because
>>>>>>>> the linter has
>>>>>>>> >>>>>> > > more rules than Checkstyle had.
>>>>>>>> >>>>>> > >
>>>>>>>> >>>>>> > > -Max
>>>>>>>> >>>>>> > >
>>>>>>>> >>>>>> > > On 29.05.19 10:16, Ismaël Mejía wrote:
>>>>>>>> >>>>>> > > >> My concerns are:
>>>>>>>> >>>>>> > > >> - The product is clearly marked as beta with a big
>>>>>>>> warning.
>>>>>>>> >>>>>> > > >> - It looks like mostly a single person project. For
>>>>>>>> the same reason I also strongly prefer not using a fork for a specific
>>>>>>>> setting. Fork will only have less people looking at it.
>>>>>>>> >>>>>> > > >
>>>>>>>> >>>>>> > > > I suppose the project is marked as beta because it is
>>>>>>>> recent, it was
>>>>>>>> >>>>>> > > > presented in 2018’s pycon, and because some things can
>>>>>>>> change since
>>>>>>>> >>>>>> > > > auto-formatters are pretty tricky beasts, I think beta
>>>>>>>> in that case is
>>>>>>>> >>>>>> > > > like our own ‘@Experimental’. If you look at the
>>>>>>>> contribution page [1]
>>>>>>>> >>>>>> > > > you can notice that it is less and less a single
>>>>>>>> person project, there
>>>>>>>> >>>>>> > > > have been 93 independent contributions since the
>>>>>>>> project became
>>>>>>>> >>>>>> > > > public, and the fact that it is hosted in the python
>>>>>>>> organization
>>>>>>>> >>>>>> > > > github [2] gives some confidence on the project
>>>>>>>> continuity.
>>>>>>>> >>>>>> > > >
>>>>>>>> >>>>>> > > > You are right however about the fact that the main
>>>>>>>> author seems to be
>>>>>>>> >>>>>> > > > the ‘benevolent’ dictator, and in the 2-spaces issue
>>>>>>>> he can seem
>>>>>>>> >>>>>> > > > arbitrary, but he is just following pep8 style guide
>>>>>>>> recommendations
>>>>>>>> >>>>>> > > > [3]. I am curious of why we (Beam) do not follow the 4
>>>>>>>> spaces
>>>>>>>> >>>>>> > > > recommendation of PEP-8 or even Google's own Python
>>>>>>>> style guide [4],
>>>>>>>> >>>>>> > > > So, probably it should be to us to reconsider the
>>>>>>>> current policy to
>>>>>>>> >>>>>> > > > adapt to the standards (and the tool).
>>>>>>>> >>>>>> > > >
>>>>>>>> >>>>>> > > > I did a quick run of black with python 2.7
>>>>>>>> compatibility on
>>>>>>>> >>>>>> > > > sdks/python and got only 4 parsing errors which is
>>>>>>>> positive given the
>>>>>>>> >>>>>> > > > size of our code base.
>>>>>>>> >>>>>> > > >
>>>>>>>> >>>>>> > > > 415 files reformatted, 45 files left unchanged, 4
>>>>>>>> files failed to reformat.
>>>>>>>> >>>>>> > > >
>>>>>>>> >>>>>> > > > error: cannot format
>>>>>>>> >>>>>> > > >
>>>>>>>> /home/ismael/upstream/beam/sdks/python/apache_beam/runners/interactive/display/display_manager.py:
>>>>>>>> >>>>>> > > > Cannot parse: 47:22:   _display_progress = print
>>>>>>>> >>>>>> > > > error: cannot format
>>>>>>>> >>>>>> > > >
>>>>>>>> /home/ismael/upstream/beam/sdks/python/apache_beam/runners/worker/log_handler.py:
>>>>>>>> >>>>>> > > > Cannot parse: 151:18:               file=sys.stderr)
>>>>>>>> >>>>>> > > > error: cannot format
>>>>>>>> >>>>>> > > >
>>>>>>>> /home/ismael/upstream/beam/sdks/python/apache_beam/runners/worker/sdk_worker.py:
>>>>>>>> >>>>>> > > > Cannot parse: 160:34:       print(traceback_string,
>>>>>>>> file=sys.stderr)
>>>>>>>> >>>>>> > > > error: cannot format
>>>>>>>> >>>>>> > > >
>>>>>>>> /home/ismael/upstream/beam/sdks/python/apache_beam/typehints/trivial_inference.py:
>>>>>>>> >>>>>> > > > Cannot parse: 335:51:       print('-->' if pc ==
>>>>>>>> last_pc else '    ',
>>>>>>>> >>>>>> > > > end=' ')
>>>>>>>> >>>>>> > > >
>>>>>>>> >>>>>> > > > I still think this can be positive for the project but
>>>>>>>> well I am
>>>>>>>> >>>>>> > > > barely a contributor to the python code base so I let
>>>>>>>> you the python
>>>>>>>> >>>>>> > > > maintainers to reconsider this, in any case it seems
>>>>>>>> like a good
>>>>>>>> >>>>>> > > > improvement for the project.
>>>>>>>> >>>>>> > > >
>>>>>>>> >>>>>> > > > [1]
>>>>>>>> https://github.com/python/black/graphs/contributors
>>>>>>>> >>>>>> > > > [2] https://github.com/python
>>>>>>>> >>>>>> > > > [3]
>>>>>>>> https://www.python.org/dev/peps/pep-0008/#indentation
>>>>>>>> >>>>>> > > > [4]
>>>>>>>> https://github.com/google/styleguide/blob/gh-pages/pyguide.md#34-indentation
>>>>>>>> >>>>>> > > >
>>>>>>>> >>>>>> > > > On Tue, May 28, 2019 at 11:15 PM Ahmet Altay <
>>>>>>>> al...@google.com> wrote:
>>>>>>>> >>>>>> > > >>
>>>>>>>> >>>>>> > > >> I am in the same boat with Robert, I am in favor of
>>>>>>>> autoformatters but I am not familiar with this one. My concerns are:
>>>>>>>> >>>>>> > > >> - The product is clearly marked as beta with a big
>>>>>>>> warning.
>>>>>>>> >>>>>> > > >> - It looks like mostly a single person project. For
>>>>>>>> the same reason I also strongly prefer not using a fork for a specific
>>>>>>>> setting. Fork will only have less people looking at it.
>>>>>>>> >>>>>> > > >>
>>>>>>>> >>>>>> > > >> IMO, this is in an early stage for us. That said lint
>>>>>>>> issues are real as pointed in the thread. If someone would like to 
>>>>>>>> give it
>>>>>>>> a try and see how it would look like for us that would be interesting.
>>>>>>>> >>>>>> > > >>
>>>>>>>> >>>>>> > > >> On Tue, May 28, 2019 at 4:44 AM Katarzyna Kucharczyk <
>>>>>>>> ka.kucharc...@gmail.com> wrote:
>>>>>>>> >>>>>> > > >>>
>>>>>>>> >>>>>> > > >>> This sounds really good. A lot of Jenkins jobs
>>>>>>>> failures are caused by lint problems.
>>>>>>>> >>>>>> > > >>> I think it would be great to have something similar
>>>>>>>> to Spotless in Java SDK (I heard there is problem with configuring 
>>>>>>>> Black
>>>>>>>> with IntelliJ).
>>>>>>>> >>>>>> > > >>>
>>>>>>>> >>>>>> > > >>> On Mon, May 27, 2019 at 10:52 PM Robert Bradshaw <
>>>>>>>> rober...@google.com> wrote:
>>>>>>>> >>>>>> > > >>>>
>>>>>>>> >>>>>> > > >>>> I'm generally in favor of autoformatters, though I
>>>>>>>> haven't looked at
>>>>>>>> >>>>>> > > >>>> how well this particular one works. We might have
>>>>>>>> to go with
>>>>>>>> >>>>>> > > >>>> https://github.com/desbma/black-2spaces given
>>>>>>>> >>>>>> > > >>>> https://github.com/python/black/issues/378 .
>>>>>>>> >>>>>> > > >>>>
>>>>>>>> >>>>>> > > >>>> On Mon, May 27, 2019 at 10:43 PM Pablo Estrada <
>>>>>>>> pabl...@google.com> wrote:
>>>>>>>> >>>>>> > > >>>>>
>>>>>>>> >>>>>> > > >>>>> This looks pretty good:) I know at least a couple
>>>>>>>> people (myself included) who've been annoyed by having to take care of 
>>>>>>>> lint
>>>>>>>> issues that maybe a code formatter could save us.
>>>>>>>> >>>>>> > > >>>>> Thanks for sharing Ismael.
>>>>>>>> >>>>>> > > >>>>> -P.
>>>>>>>> >>>>>> > > >>>>>
>>>>>>>> >>>>>> > > >>>>>
>>>>>>>> >>>>>> > > >>>>> On Mon, May 27, 2019, 12:24 PM Ismaël Mejía <
>>>>>>>> ieme...@gmail.com> wrote:
>>>>>>>> >>>>>> > > >>>>>>
>>>>>>>> >>>>>> > > >>>>>> I stumbled by chance into Black [1] a python code
>>>>>>>> auto formatter that
>>>>>>>> >>>>>> > > >>>>>> is becoming the 'de-facto' auto-formatter for
>>>>>>>> python, and wanted to
>>>>>>>> >>>>>> > > >>>>>> bring to the ML Is there interest from the python
>>>>>>>> people to get this
>>>>>>>> >>>>>> > > >>>>>> into the build?
>>>>>>>> >>>>>> > > >>>>>>
>>>>>>>> >>>>>> > > >>>>>> The introduction of spotless for Java has been a
>>>>>>>> good improvement and
>>>>>>>> >>>>>> > > >>>>>> maybe the python code base may benefit of this
>>>>>>>> too.
>>>>>>>> >>>>>> > > >>>>>>
>>>>>>>> >>>>>> > > >>>>>> WDYT?
>>>>>>>> >>>>>> > > >>>>>>
>>>>>>>> >>>>>> > > >>>>>> [1] https://github.com/python/black
>>>>>>>>
>>>>>>>
>
> --
>
> Michał Walenia
> Polidea <https://www.polidea.com/> | Software Engineer
>
> M: +48 791 432 002 <+48791432002>
> E: michal.wale...@polidea.com
>
> Unique Tech
> Check out our projects! <https://www.polidea.com/our-work>
>

Reply via email to