I couldn't stress how much I oppose the sentence "If the compiler
understands the code then IMO we are good."

Sinan is right: This project needs to take calculated risks in order to
move forward to be better.
Yes I agree prioritizing is super important, since Pulsar has *so many*
fronts to be better at.

We need more people on this thread, to get a wide angle on this IMO.


On Sat, Sep 2, 2023 at 7:27 AM Dave Fisher <wave4d...@comcast.net> wrote:

> While I can agree that a consistent style can help I don’t agree that it
> is necessary. If the compiler understands the code then IMO we are good.
>
> I am a bit of a dinosaur since I have keypunched code on cards in my
> career. I’ve played with writing interpreters and specialized languages.
>
> But I’m -0 and if the project prefers strict code style then that is fine
> too!
>
> If anyone agrees with me know that part of consensus building is to
> provide opinions and accept divergent results.
>
> Best,
> Dave
>
> PS. If tisun wants to put on their superhero cape and convert the code
> base then let’s acknowledge that AND let’s consider all of the PRs that are
> now effectively closed.
>
> Sent from my iPhone
>
> > On Sep 1, 2023, at 8:57 PM, SiNan Liu <liusinan1...@gmail.com> wrote:
> >
> > Consistent code style is crucial for a large project. In order to make
> > Pulsar better, I believe we shouldn't be afraid of "risks".
> > By introducing Spotless, we can permanently resolve the issue of
> > inconsistent code style and ensure that all contributors adhere to this
> > rule moving forward.
> > If we don't make these changes now, we might have to deal with changes in
> > over 3000 files today and potentially over 5000 files tomorrow.
> >
> > Thanks,
> > sinan
> >
> >
> > Dave Fisher <wave4d...@comcast.net> 于2023年9月1日周五 12:19写道:
> >
> >> -0. I think it will introduce too much change. We have classes that are
> >> quite large and having to fix code style after making a small correction
> >> seems like a waste of volunteer energy.
> >>
> >> Best,
> >> Dave
> >>
> >> Sent from my iPhone
> >>
> >>>> On Aug 31, 2023, at 9:05 PM, Zixuan Liu <node...@gmail.com> wrote:
> >>>
> >>> This idea looks good to me, but we need to format all codebase to
> >>> avoid conflicts during cherry picking.
> >>>
> >>> +1
> >>>
> >>> Asaf Mesika <asaf.mes...@gmail.com> 于2023年8月31日周四 20:39写道:
> >>>>
> >>>> Opentelemetry-java employs both spotless for coding style
> >>>> You run "./gradlew spotlessCheck" and it shows the problems.
> >>>> You run "./gradlew spotlessApply" to automatically fix it.
> >>>>
> >>>> It also uses errorprone to detect bugs.
> >>>>
> >>>> I wonder if we can run it only in GitHub PRs, so we can instruct it to
> >> run
> >>>> only on files you have changed / added. This is we "throttle" the
> style
> >>>> through files touched.
> >>>>
> >>>>
> >>>>
> >>>>> On Tue, Aug 15, 2023 at 8:31 PM tison <wander4...@gmail.com> wrote:
> >>>>>
> >>>>> These have been discussed that -
> >>>>>
> >>>>> 1.  Cherrypick: we will reformat for all maintained branches.
> >>>>> 2. Commit noise: metadata to filter out during blame.
> >>>>> 3. PR rebased: invincible, while we don't have a large backlog or
> >> active
> >>>>> large pending PR.
> >>>>>
> >>>>> But if our critical mass agree this is not a good tradeoff, there is
> no
> >>>>> issue to "resolve".
> >>>>>
> >>>>> Enrico Olivelli <eolive...@gmail.com>于2023年8月16日 周三00:50写道:
> >>>>>
> >>>>>> Tison,
> >>>>>>
> >>>>>> Il Mar 15 Ago 2023, 16:56 tison <wander4...@gmail.com> ha scritto:
> >>>>>>
> >>>>>>> A demostration for change set -
> >>>>>>> https://github.com/apache/pulsar/pull/20974
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> While I think it is great to start with Spotless for little projects
> >> or
> >>>>>> when you start from scratch,
> >>>>>> appling a patch that changes 3.000+ files will make it very hard to
> >>>>> rebase
> >>>>>> all the pending PRs and also to cherry pick changes to older
> branches
> >>>>> that
> >>>>>> we support.
> >>>>>>
> >>>>>> I think that this is not a good option for Pulsar at this stage.
> >>>>>>
> >>>>>> Maybe if we had a configuration that doesn't change so many
> files....
> >>>>>>
> >>>>>> Enrico
> >>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> If we go forward this direction, it should be picked to branch-3.0
> >> and
> >>>>>>> branch-3.1. Earlier versions can be ported on demand and I'm glad
> to
> >>>>>>> volunteer doing that.
> >>>>>>>
> >>>>>>> Best,
> >>>>>>> tison.
> >>>>>>>
> >>>>>>>
> >>>>>>> PengHui Li <peng...@apache.org> 于2023年7月10日周一 10:00写道:
> >>>>>>>
> >>>>>>>> My concern is how much value it will add.
> >>>>>>>> From my experience, it's fine. The code style
> >>>>>>>> is not consistent but doesn't affect my code reading
> >>>>>>>> and writing much. But it might introduce risks and we
> >>>>>>>> need to pay much effort to the code review.
> >>>>>>>>
> >>>>>>>> Regards,
> >>>>>>>> Penghui
> >>>>>>>>
> >>>>>>>> On Wed, Jul 5, 2023 at 7:39 PM tison <wander4...@gmail.com>
> wrote:
> >>>>>>>>
> >>>>>>>>> ... which seems a GitHub only extension -
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>
> https://github.blog/changelog/2022-03-24-ignore-commits-in-the-blame-view-beta/
> >>>>>>>>>
> >>>>>>>>> Best,
> >>>>>>>>> tison.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> tison <wander4...@gmail.com> 于2023年7月5日周三 19:38写道:
> >>>>>>>>>
> >>>>>>>>>> For the git blame issue, I found also this practice in
> >>>>>> StreamPark[1].
> >>>>>>>>>>
> >>>>>>>>>> cc @Yunze.
> >>>>>>>>>>
> >>>>>>>>>> Best,
> >>>>>>>>>> tison.
> >>>>>>>>>>
> >>>>>>>>>> [1]
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>
> https://github.com/apache/incubator-streampark/blob/cac931ae289e0753892279336e1c4e70e5f7d7c6/.git-blame-ignore-revs
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> Kiryl Valkovich <kiryl_valkovich@teal.tools> 于2023年6月30日周五
> >>>>>> 13:03写道:
> >>>>>>>>>>
> >>>>>>>>>>> My mistake. It looks that for some reason Spotless supports
> >>>>>>>>> .editorconfig
> >>>>>>>>>>> only for ktlint.
> >>>>>>>>>>>
> >>>>>>>>>>> Best,
> >>>>>>>>>>> Kiryl
> >>>>>>>>>>>
> >>>>>>>>>>> From: Kiryl Valkovich <kiryl_valkovich@teal.tools>
> >>>>>>>>>>> Date: Friday, June 30, 2023 at 6:45 AM
> >>>>>>>>>>> To: dev@pulsar.apache.org <dev@pulsar.apache.org>
> >>>>>>>>>>> Subject: Re: [DISCUSS] Consistent code style (esp. ws/indent)
> >>>>> and
> >>>>>>>>>>> autotools
> >>>>>>>>>>> Hi,
> >>>>>>>>>>>
> >>>>>>>>>>> tison, are you going to use .editorconfig for specifying indent
> >>>>>>> rules?
> >>>>>>>>>>>
> >>>>>>>>>>> https://editorconfig.org/
> >>>>>>>>>>>
> >>>>>>>>>>> It looks like Spotless supports it.
> >>>>>>>>>>> https://github.com/diffplug/spotless/issues/734
> >>>>>>>>>>>
> >>>>>>>>>>> Flink and many other ASF projects use it.
> >>>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>
> https://github.com/apache/flink/blob/21eba4ca4cb235a2189c94cdbf3abcec5cde1e6e/.editorconfig
> >>>>>>>>>>>
> >>>>>> https://github.com/search?q=org%3Aapache%20.editorconfig&type=code
> >>>>>>>>>>>
> >>>>>>>>>>> Unlike Spotless, the .editorconfig works out of the box in most
> >>>>> of
> >>>>>>> the
> >>>>>>>>>>> modern code editors.
> >>>>>>>>>>>
> >>>>>>>>>>> Best,
> >>>>>>>>>>> Kiryl
> >>>>>>>>>>>
> >>>>>>>>>>> From: tison <wander4...@gmail.com>
> >>>>>>>>>>> Date: Friday, June 30, 2023 at 3:58 AM
> >>>>>>>>>>> To: Dev <dev@pulsar.apache.org>
> >>>>>>>>>>> Subject: [DISCUSS] Consistent code style (esp. ws/indent) and
> >>>>>>>> autotools
> >>>>>>>>>>> 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
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>> --
> >>>>> Best,
> >>>>> tison.
> >>>>>
> >>
> >>
>
>

Reply via email to