Bruno is committer-like :)

I generally prefer option 2, but would definitely be happy with any of them.

I'm pretty sure I'm personally responsible for some of the wacky import
ordering way back when, before I set my IDE configuration straight. It took
me a while to notice because we never had a checkstyle rule for import
order.
So thank you for proposing this.

Sophie

On Thu, Oct 22, 2020 at 11:17 PM Bruno Cadonna <br...@confluent.io> wrote:

> Hi Dongjin,
>
> Thank you that you put me into the committer section, but I am actually
>   not a committer.
>
> Best,
> Bruno
>
> On 23.10.20 07:46, Dongjin Lee wrote:
> > As of Present:
> >
> > Committers:
> >
> > - Bruno: 2 and 3.
> > - Gwen: (No Specific Preference)
> >
> > Non-Committers:
> >
> > - Brandon: 2.
> > - Dongjin: 2 and 3.
> >
> > Let's hold on for 2 or 3 committers.
> >
> > Best,
> > Dongjin
> >
> > On Fri, Oct 23, 2020 at 10:09 AM Gwen Shapira <g...@confluent.io> wrote:
> >
> >> I don't have any specific preference on the style. But I am glad you
> >> are bringing it up. Every other project I worked on had a specific
> >> import style, and the random import changes in PRs are pretty
> >> annoying.
> >>
> >> On Wed, Oct 14, 2020 at 10:36 PM Dongjin Lee <dong...@apache.org>
> wrote:
> >>>
> >>> Hello. I hope to open a discussion about the import order in Java code.
> >>>
> >>> As Nikolay stated recently[^1], Kafka uses a relatively strict code
> style
> >>> for Java code. However, it misses any rule on import order. For this
> >>> reason, the code formatting settings of every local dev environment are
> >>> different from person to person, resulting in the countless meaningless
> >>> import order changes in the PR.
> >>>
> >>> For example, in `NamedCache.java` in the streams module, the `java.*`
> >>> imports are split into two chunks, embracing the other imports between
> >>> them. So, I propose to define an import order to prevent these kinds of
> >>> cases in the future.
> >>>
> >>> To define the import order, we have to regard the following three
> >>> orthogonal issues beforehand:
> >>>
> >>> a. How to group the type imports?
> >>> b. Whether to sort the imports alphabetically?
> >>> c. Where to place static imports: above the type imports, or below
> them.
> >>>
> >>> Since b and c seem relatively straightforward (sort the imports
> >>> alphabetically and place the static imports below the type imports), I
> >> hope
> >>> to focus the available alternatives on the problem a.
> >>>
> >>> I evaluated the following alternatives and checked how many files are
> get
> >>> effected for each case. (based on commit 1457cc652) And here are the
> >>> results:
> >>>
> >>> *1. kafka, org.apache.kafka, *, javax, java (5 groups): 1222 files.*
> >>>
> >>> ```
> >>>      <module name="ImportOrder">
> >>>        <property name="groups"
> >>> value="kafka,/^org\.apache\.kafka.*$/,*,javax,java"/>
> >>>        <property name="ordered" value="true"/>
> >>>        <property name="separated" value="true"/>
> >>>        <property name="option" value="bottom"/>
> >>>        <property name="sortStaticImportsAlphabetically" value="true"/>
> >>>      </module>
> >>> ```
> >>>
> >>> *2. (kafka|org.apache.kafka), *, javax? (3 groups): 968 files.*
> >>>
> >>> ```
> >>>      <module name="ImportOrder">
> >>>        <property name="groups"
> >> value="(kafka|org\.apache\.kafka),*,javax?"/>
> >>>        <property name="ordered" value="true"/>
> >>>        <property name="separated" value="true"/>
> >>>        <property name="option" value="bottom"/>
> >>>        <property name="sortStaticImportsAlphabetically" value="true"/>
> >>>      </module>
> >>> ```
> >>>
> >>> *3. (kafka|org.apache.kafka), *, javax, java (4 groups): 533 files.*
> >>>
> >>> ```
> >>>      <module name="ImportOrder">
> >>>        <property name="groups"
> >>> value="(kafka|org\.apache\.kafka),*,javax,java"/>
> >>>        <property name="ordered" value="true"/>
> >>>        <property name="separated" value="true"/>
> >>>        <property name="option" value="bottom"/>
> >>>        <property name="sortStaticImportsAlphabetically" value="true"/>
> >>>      </module>
> >>> ```
> >>>
> >>> *4. *, javax? (2 groups): 707 files.*
> >>>
> >>> ```
> >>>      <module name="ImportOrder">
> >>>        <property name="groups" value="*,javax?"/>
> >>>        <property name="ordered" value="true"/>
> >>>        <property name="separated" value="true"/>
> >>>        <property name="option" value="bottom"/>
> >>>        <property name="sortStaticImportsAlphabetically" value="true"/>
> >>>      </module>
> >>> ```
> >>>
> >>> *5. javax?, * (2 groups): 1822 files.*
> >>>
> >>> ```
> >>>      <module name="ImportOrder">
> >>>        <property name="groups" value="javax?,*"/>
> >>>        <property name="ordered" value="true"/>
> >>>        <property name="separated" value="true"/>
> >>>        <property name="option" value="bottom"/>
> >>>        <property name="sortStaticImportsAlphabetically" value="true"/>
> >>>      </module>
> >>> ```
> >>>
> >>> *6. java, javax, * (3 groups): 1809 files.*
> >>>
> >>> ```
> >>>      <module name="ImportOrder">
> >>>        <property name="groups" value="java,javax,*"/>
> >>>        <property name="ordered" value="true"/>
> >>>        <property name="separated" value="true"/>
> >>>        <property name="option" value="bottom"/>
> >>>        <property name="sortStaticImportsAlphabetically" value="true"/>
> >>>      </module>
> >>> ```
> >>>
> >>> I hope to get some feedback on this issue here.
> >>>
> >>> For the WIP PR, please refer here:
> >> https://github.com/apache/kafka/pull/8404
> >>>
> >>> Best,
> >>> Dongjin
> >>>
> >>> [^1]:
> >>>
> >>
> https://lists.apache.org/thread.html/r2bbee24b8a459842a0fc840c6e40958e7158d29f3f2d6c0d223be80b%40%3Cdev.kafka.apache.org%3E
> >>> [^2]:
> >>>
> >>
> https://github.com/apache/kafka/blob/trunk/streams/src/main/java/org/apache/kafka/streams/state/internals/NamedCache.java
> >>>
> >>> --
> >>> *Dongjin Lee*
> >>>
> >>> *A hitchhiker in the mathematical world.*
> >>>
> >>>
> >>>
> >>>
> >>> *github:  <http://goog_969573159/>github.com/dongjinleekr
> >>> <https://github.com/dongjinleekr>keybase:
> >> https://keybase.io/dongjinleekr
> >>> <https://keybase.io/dongjinleekr>linkedin:
> >> kr.linkedin.com/in/dongjinleekr
> >>> <https://kr.linkedin.com/in/dongjinleekr>speakerdeck:
> >> speakerdeck.com/dongjin
> >>> <https://speakerdeck.com/dongjin>*
> >>
> >>
> >>
> >> --
> >> Gwen Shapira
> >> Engineering Manager | Confluent
> >> 650.450.2760 | @gwenshap
> >> Follow us: Twitter | blog
> >>
> >
> >
>

Reply via email to