Lukasz,

Agree, it does overhead, just like checkstyle (already present) does, but
trust me, minimal overhead (please try some of the PRs).
Am unsure about your second point: the error message will point to a line
that, if the user opens it in whatever IDE/editor, will correspond to where
the error happened. Or what do you mean here?

And finally, in this very case diversity does NOT help. We had since (if
not more than) 10 years of published "almost identical" settings on Maven
site for most popular IDEs, but heh: People tend to download them once and
forget (so lag with latest changes), or does not download and produce PRs
with totally wrong formatting, and so on... and ultimately, those settings
are "almost identical", not "100% same".

I don't want to spend my whole morning "setting up and onboarding" a
project (by tweaking IDE, downloading plugins for it, and yada yada yada).
I just want to check out the sources and go with it.

T

On Thu, Oct 13, 2022 at 5:13 PM Łukasz Dywicki <l...@code-house.org> wrote:

> Some of findings I have:
>
> - Static code analysis might be slow, reformatting code will add
> additional time to the build which might not be desired for developer
> experience
> - Error messages produced after reformatting might mistake first time
> contributors who are not familiar with reformatting step done before
> compilation
> - I recently found a plugin for IJ:
> https://github.com/krasa/EclipseCodeFormatter (allows to unify two
> dominant IDEs)
> - Verification of code style might be automated via pull requests, if
> PRs are enforced. Otherwise core developers must take care of their
> habits or commit hooks.
>
> Cheers,
> Łukasz
>
> On 13.10.2022 15:27, Guillaume Nodet wrote:
> > Le jeu. 13 oct. 2022 à 12:50, Olivier Lamy <ol...@apache.org> a écrit :
> >
> >> On Thu, 13 Oct 2022 at 17:47, Tamás Cservenák <ta...@cservenak.net>
> wrote:
> >>>
> >>> Howdy,
> >>>
> >>> to not get lost in implementation details, it is really unimportant
> >>> (spotless, this or that...)
> >>>
> >>> What IS important is that we agree to implement "IDE agnostic source
> >>> formatting", that happens during build
> >>> (by maven plugin). This means _everyone_ will end up with 100% the same
> >>> result.
> >>>
> >>> The only thing that comes to my mind is "sloppy committer" who does not
> >>> build but pushes....
> >>
> >> not sure to understand. You mean formatting sources will be bind to a
> >> phase and be executed automatically?
> >>
> >
> > Yes, I meant "automatic" in opposition to "on demand".  Sorry if that was
> > not clear.
> >
> >
> >>
> >> Wouldn’t it be better to still have a check as today (checkstyle:check
> >> or the used foo-bar-formatter-plugin:check) which checks the sources
> >> at validate phase.
> >> Then in case of failure, the committer can just run
> >> foo-bar-formatted-plugin:format.
> >> So committer can apply some manual changes as well.
> >> this will detect "sloppy" committer as today by simply failing without
> >> adding another plugin running some scm command during the build.
> >>
> >
> > Well, the point is to avoid the multiple round trips between IDE / shell
> to
> > fix all validation issues. Also, you mentioned earlier that IDEs always
> > have some discrepancies in their formatters, and that's exactly the
> reason
> > why having a single reference formatter (i.e. that one that is run during
> > the build) is a good idea imho.
> >
> >
> >>
> >>> Is there some option to have a profile (activated on CI) that detects
> >> there
> >>> are "uncommitted changes" post build?
> >>> As that would mean that sourcetree contains sources NOT formatted, and
> >> that
> >>> CI build did reformat them...
> >>
> >
> > I'd like such a check for PRs.  This would definitely ensure authors have
> > run the build before committing,
> > and most importantly, that the files are correctly formatted.
> >
> >
> >>>
> >>> But even without this step mitigation is simple: someone just rebuilds
> >> HEAD
> >>> and commits...
> >>>
> >>> Thanks
> >>> T
> >>>
> >>> On Thu, Oct 13, 2022 at 8:41 AM Tamás Cservenák <ta...@cservenak.net>
> >> wrote:
> >>>
> >>>> Formatting happens during build, so once merged all we need is to
> merge
> >>>> master into PR branches...
> >>>>
> >>>> T
> >>>>
> >>>> On Thu, Oct 13, 2022 at 8:40 AM Sylwester Lachiewicz <
> >>>> slachiew...@gmail.com> wrote:
> >>>>
> >>>>> What about already open PR with some features or bug fixes.
> >>>>> Don't we should review and merge it before reformatting code -
> >> otherwise
> >>>>> we
> >>>>> will have lots of merge conflicts and over time no one will have
> >> energy to
> >>>>> review it?
> >>>>>
> >>>>> Sylwester
> >>>>>
> >>>>> śr., 12 paź 2022, 18:23 użytkownik Guillaume Nodet <
> gno...@apache.org
> >>>
> >>>>> napisał:
> >>>>>
> >>>>>> I'd like to propose merging the following PRs:
> >>>>>>   * https://github.com/apache/maven-shared-resources/pull/1
> >>>>>>   * https://github.com/apache/maven-site/pull/329
> >>>>>>   * https://github.com/apache/maven/pull/824
> >>>>>>   * https://github.com/apache/maven-resolver/pull/147
> >>>>>> ... and more to come
> >>>>>>
> >>>>>> The idea is to use plugins to automatically reformat the source
> >> code and
> >>>>>> sort imports to obey the maven coding style.
> >>>>>> The first PR adds the necessary resources to maven-shared-resources
> >> : a
> >>>>> new
> >>>>>> header file, as there's a requirement to put the header at the very
> >>>>>> beginning for the import sorter plugin to work correctly (else it
> >>>>> considers
> >>>>>> the license comment to be part of comment headers and screws the
> >>>>>> formatting), and the eclipse xml formatter plugin.
> >>>>>> The second PR updates the web site to point to that file which
> >> would be
> >>>>> in
> >>>>>> git instead of on the maven web site, and also updates the
> >> instruction
> >>>>> for
> >>>>>> IDEA since it has been supporting the eclipse xml config for years
> >> now).
> >>>>>> The third and fourth PRs are updates on maven and maven-resolver to
> >>>>> apply
> >>>>>> those two plugins.
> >>>>>>
> >>>>>> Those plugins have been used on mvnd and maven-build-cache-extension
> >>>>>> already, although they are not using a single shared resource that
> >>>>> would be
> >>>>>> added by the first PR.  Hence mvnd is still using its previous
> >> coding
> >>>>>> style.
> >>>>>>
> >>>>>> Another point is that those plugins are fast and only do not process
> >>>>> files
> >>>>>> if they have been already processed and untouched since the last
> >>>>> build.  So
> >>>>>> from a daily development pov, this is transparent and does not
> >> incur any
> >>>>>> additional processing time during the build (or not much really).
> >>>>>>
> >>>>>> Cheers,
> >>>>>> Guillaume
> >>>>>>
> >>>>>
> >>>>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> >> For additional commands, e-mail: dev-h...@maven.apache.org
> >>
> >>
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
>
>

Reply via email to