> Spotless has an IDEA plugin, but it's for Gradle task only.

I saw this one also 🥲.

>  [1] can be used

Nice, IMO having at least one will suffice 👍🏻.
Thanks,
joohyuk

On Fri, Jun 30, 2023 at 11:43 AM tison <wander4...@gmail.com> wrote:

> > IDE
>
> If using the palantir style, [1] can be used. Spotless has an IDEA plugin
> but it's for Gradle task only.
>
> Best,
> tison.
>
> [1] https://plugins.jetbrains.com/plugin/13180-palantir-java-format
>
>
> Joo Hyuk Kim <beansk...@gmail.com> 于2023年6月30日周五 10:38写道:
>
> > Sounds great.
> >
> > Another thing is about IDE.
> > Pulsar site sort of directs contributors to use IntelliJ as shown in
> > https://pulsar.apache.org/contribute/setup-ide/.
> > It would be nice if there was IDE support (auto-format, or shortkey-base)
> > and we can add it to the setup-ide guide also.
> > Do you know any? Or I can do some research if you don't.
> >
> > Thanks,
> > joohyuk
> >
> > On Fri, Jun 30, 2023 at 10:58 AM tison <wander4...@gmail.com> wrote:
> >
> > > Hi,
> > >
> > > I'd like to propose applying a consistent code style (especially
> > whitespace
> > > and indent) with an autotool Spotless.
> > >
> > > // Background
> > >
> > > Over and over we argue contributors reformat their patch manually for
> > > checkstyle violations, or even whitespace changes that are not detected
> > by
> > > checkstyle. [1]
> > >
> > > A common reason is that such style-only changes increase the burden to
> do
> > > cherry-pick if a later bug fix is made around the code while we often
> do
> > > not pick the style change barely or even it's coupled with an
> unpickable
> > > commit.
> > >
> > > CheckStyle helps in some cases while we don't have a strong rule set
> nor
> > > even apply it to tests (porting bug fix actually include the test).
> > >
> > > Manually fixing style violations can be boring and even annoying.
> That's
> > > why it's effectively "suppressed" in mind.
> > >
> > > An autotool to do the formatting work can help and here comes
> > Spotless[2].
> > > Flink and Curator use it and Flink actually migrated from CheckStyle to
> > > Spotless for its more strict consistent rule set and oneliner format.
> See
> > > their original discussion for the context[3].
> > >
> > > // Proprosal
> > >
> > > Using Spotless as the auto-formatting tool in all around apache/pulsar.
> > > Since it's an auto tool I can cover the task solely.
> > >
> > > // Concerns
> > >
> > > 1. Won't it be yet another noise to the codebase?
> > >
> > > Yes and no. I suggest we pick this change to all maintained versions so
> > > that all of them align with the consistent style. Then from now on, no
> > more
> > > style conflict.
> > >
> > > Flink used the same strategy[4] and even we can do it starting from
> 2.10
> > as
> > > Lari proposed to apply commits from the least recent maintained
> version.
> > I
> > > understand the maintained versions are: 2.10, 2.11, 3.0, and master.
> > >
> > > 2. Can it cover all the rule sets we use in CheckStyle now?
> > >
> > > Let's say we almost don't care what the style is but it's consistent
> and
> > > "not awful".
> > >
> > > The default Google style takes line length = 80 which can be a
> > > disappointment so in Curator I use the palantir style[5] which takes
> line
> > > length = 120 which should keep consistent with current settings.
> > >
> > > A downside is that Spotless Maven plugin cannot detect "forbidden
> > imports"
> > > where we can still use CheckStyle[6] - this is a low-traffic path and
> it
> > > should be fine.
> > >
> > > // Implementation
> > >
> > > 1. Introduce Spotless in the project and apply it around the codebase,
> > for
> > > all maintained versions.
> > > 2. Remove the then redundant CheckStyle rules, while retaining the
> > > forbidden imports part as it's still useful.
> > >
> > > Looking forward to your feedback!
> > >
> > > Best,
> > > tison.
> > >
> > > [1]
> > >
> > >
> >
> https://github.com/apache/pulsar/pull/20642/files#diff-cb9b09b67f54fccdd5155dbbcedd50970ee93d9ee85ade1e6b6984cab64dab5d
> > > [2] https://github.com/diffplug/spotless
> > > [3] https://lists.apache.org/thread/3kjkcz9gj6f8j477d1t3gnbkl61hsb7z
> > > [4] https://lists.apache.org/thread/nxdm0pg84q913w0kxszm502myqcg3db0
> > > [5] https://github.com/palantir/palantir-java-format
> > > [6] https://issues.apache.org/jira/browse/FLINK-32154
> > >
> >
>

Reply via email to