+1. 【please pay attention】, If no -1, I will merge the PR [1] (+70K and
-69K lines of codes).

I have tried the commands for solving conflicts. No much work to do.

[1] https://github.com/apache/iotdb/pull/2684

Best,
-----------------------------------
Xiangdong Huang
School of Software, Tsinghua University

 黄向东
清华大学 软件学院


jincheng sun <sunjincheng...@gmail.com> 于2021年2月15日周一 下午2:32写道:

> Hi,
>
> I applied Spotless and Google Java format in the [1] branch, which contains
> two commits, one is the POM configuration of spotless, and the other is the
> change after the code is automatically formatted. I'm glad to see that we
> have automatically fixed many of our problems of mixing 2-space and 4-space
> in indents.
>
> I have merged one PR to spotless branch by following steps:
>
> # `asf` is repo of Apache IoTDD
> git fetch asf pull/2667/head:PR2667
> git checkout PR2667
> git cherry-pick 5ef3baaf1915095b74773b110a8f9e4e3c82429b
> mvn com.diffplug.spotless:spotless-maven-plugin:check
> mvn com.diffplug.spotless:spotless-maven-plugin:apply
> git add .
> git commit -m 'Apply spotless'
> git rebase asf_spotless
> // Resolve your conflict
> git rebase --continue
> // After squash your commits
> gck asf_spotless
> git merge PR2667
> git push asf asf_spotless:spotless
>
> If you agree to apply Spotless, I will create JIRA. and OPEN the PR for
> apply Spotless add related documents. The document will involve some
> configuration instructions, such as IDEA configuration:
>
> 1. Install google-java-format plugin
> 2. In the plugin settings, enable the plugin and change the code style to
> "GOOGLE" (2-space indents)
> 3. Install the Save Actions plugin
> 4. Enable the plugin, along with "Optimize imports" and "Reformat file"
> 5. In the "Save Actions" settings page, setup a "File Path Inclusion" for
> `.*\.java`. 6. ...
>
> and other config items, such as "importOrder" etc.
>
> What are your thoughts?
>
> Best,
> Jincheng
>
> [1] https://github.com/apache/iotdb/tree/spotless
>
>
>
> jincheng sun <sunjincheng...@gmail.com> 于2021年2月12日周五 上午7:20写道:
>
> > Hi,
> >
> > Thank you all for the feedback Chris,Dawei and Xiangdong!
> >
> > @Chris You're right. We don't want developers to pay too much attention
> to
> > code styles, so I would like to make more efforts to make code styles
> > automatic, transparent to developers (try our best), when we have
> finished
> > the agreed configuration of Spotless,  ` mvn spotless:check ` and `mvn
> > spotless:apply ` can do check and correct work for us.
> >
> > @Dawei Thank you very much for trying and sharing the advanced functions
> > of Spotless. About the problems you encounter, configuring the version of
> > GoogleJavaformat should be able to solve the problem. The version 1.7 of
> > GoogleJavaformat can work well on JDK1.8:
> >
> > <configuration>
> >       <java>
> >          <googleJavaFormat>
> >             <version>1.7</version>
> >             ...
> >          </googleJavaFormat>
> >          ...
> >          ...
> >       <java>
> > </configuration>
> >
> > @Xiangdong  You're right. Spotless will bring some changes for history
> > code, fortunately, Spotless can automatically apply the style and helped
> to
> > easily rebase the PRs, and there is an useful feature in Spotless is
> > "ratchet" [1]  With this, we can set up Spotless to only apply it's rules
> > to files that were changed after a configured commit. This would allow a
> > gradual application of the new coding style instead of one big change.
> Of
> > course, I'd like to provide a PoC to let you see the changes after the
> > plug-in of Spotless has applied.
> >
> > Thanks again for all of your feedback. I'd like to show a PoC later.
> >
> > Best,
> > Jincheng
> >
> > [1]
> >
> https://github.com/diffplug/spotless/blob/main/plugin-maven/README.md#ratchet
> >
> >
> > Xiangdong Huang <saint...@gmail.com> 于2021年2月10日周三 下午10:19写道:
> >
> >> Take away:
> >> I opt for uniforming the code style.  But we have to consider how
> >> to maintain current opened PRs (we have about 40+ PRs) to solve
> potential
> >> conflicts.
> >>
> >> Details:
> >> I opt for uniforming the code style.
> >> In some PRs, we can find many lines are changed just because the indent
> is
> >> changed...
> >>
> >> Yes we are using google style, and we have a maven checkstyle plugin,
> >> indeed.
> >>
> >> If you see files under `target`, you can find the checkout-style.xml
> file.
> >> Or, if you add `<consoleOutput>true</consoleOutput>` to the
> configuration
> >> of the plugin (about line 769 in pom.xml), and run `mvn validate`,
> >> we can see many warnings on the console..
> >> If we want to require all contributors obey the style, the
> >> " <violationSeverity>warning</violationSeverity> " configuration is
> >> needed,
> >> which will
> >> lead to the build failed if there is any violation.
> >>
> >> The current plugin does not modify the source files automatically but
> >> Spotless plugin can do that.
> >>
> >> However, if too many codes are changed, we have to consider the impact
> of
> >> tracing the history of codes, and we have to consider how to manually
> >> maintain current opened PRs (we have about 40+ PRs) to solve
> confliction.
> >>
> >> I'd like to preview the changes caused by the plugin. Can you show a
> patch
> >> file or a snippet?
> >>
> >> Best,
> >> -----------------------------------
> >> Xiangdong Huang
> >> School of Software, Tsinghua University
> >>
> >>  黄向东
> >> 清华大学 软件学院
> >>
> >>
> >> Dawei Liu <atoi...@163.com> 于2021年2月10日周三 下午10:05写道:
> >>
> >> > Hi jincheng,
> >> >
> >> >
> >> > Thank you very much for starting this discussion
> >> >
> >> >
> >> > I found a nice feature in the tool that automatically
> >> > </removesUnusedImports>,
> >> > which is a common problem in reviews because the IDE collapses imports
> >> by
> >> > default.
> >> >
> >> >
> >> > Unfortunately, it didn't work in my local (JDK 1.8), and he told me:
> >> > Com/Google/googlejavaformat/Java/JavaFormatterOptions has had been
> >> > compiled by a more recent version of the Java Runtime (class file
> >> version
> >> > 55.0).
> >> > This version of the Java Runtime only recognizes the class file
> versions
> >> > up to 52.0
> >> >
> >> >
> >> > Do I need to upgrade my JDK?
> >> >
> >> >
> >> > Dawei
> >> > On 02/9/2021 16:14,Christofer Dutz<christofer.d...@c-ware.de> wrote:
> >> > Perhaps it's just me, but ...
> >> >
> >> > If discussing formatting issues has been consuming a lot of your
> time, I
> >> > would consider this time wasted. Especially as for newcomers this is
> >> > particularly frustrating if you sort of provide the solution for a
> real
> >> > problem and your response is "Yeah .... thanks fort hat ... but we
> use 4
> >> > spaces indentation and curly braces at the END of EVERY condition" ...
> >> I've
> >> > been in that situation multiple times and some times just wen't away
> >> cause
> >> > I just thought "WTF ... are these folks serious? I don't wanna be part
> >> of
> >> > such a group".
> >> >
> >> > Of course would an automated plugin help. In Go I am seeing this
> happen
> >> > auotmatically all the time. But we should ask ourselves, if paying too
> >> much
> >> > attention to some formatting rules is good.
> >> >
> >> > But ... that's just my personal opinion.
> >> >
> >> > Chris
> >> >
> >> >
> >> > -----Ursprüngliche Nachricht-----
> >> > Von: jincheng sun <sunjincheng...@gmail.com>
> >> > Gesendet: Dienstag, 9. Februar 2021 07:39
> >> > An: dev@iotdb.apache.org
> >> > Betreff: [DISCUSS] I would like to propose using Spotless for IoTDB
> >> coding
> >> > style check
> >> >
> >> > Hi folks,
> >> >
> >> > I found that many projects use Spotless to save the time of both
> >> > contributors and reviewers.
> >> >
> >> > I like Spotless[1] because it can be used to both check and apply a
> >> style.
> >> > Then we need a formatter(e.g.: google-java-format) that works with
> >> > Spotless. The pretty good thing about Spotless is that it serves as a
> >> > verifier for CI but can also apply the configured style automatically.
> >> That
> >> > is, for the programmer all we should to do is `mvn spotless:apply` to
> >> fix
> >> > any style violations.
> >> >
> >> > We also have to decide on a coding style if we decide to use Spotless.
> >> and
> >> > I would propose google-java-format. (It's seems IoTDB project already
> >> > prefer Google's code specification, at present, iotdb uses GoogleStyle
> >> [2])
> >> >
> >> > So what benefits will Spotless bring us:
> >> >
> >> > - No longer fussy about the coding style in reviews, which makes it
> >> easier
> >> > for reviewers and contributors to understand
> >> > - There is no need to fix check style errors manually because Spotless
> >> can
> >> > fix them automatically
> >> >
> >> > Currently, Spotless has been used in many projects, such as: Apache
> Beam
> >> > [3], Apache Flink [4], Apache Kafka [5] Apache avro [6] etc.
> >> >
> >> > In short words, I believe that the introduction of Spotless will save
> >> us a
> >> > lot of time and focus more on the development of features.
> >> > If you agree to use Spotless, I will create the JIRA. for tracking and
> >> add
> >> > the detailed design and POC. What are your thoughts?
> >> >
> >> > ---------
> >> > Finally, on the occasion of the Chinese Lunar New Year, I wish
> community
> >> > of IoTDB better and better. I wish you a happy new year, all the best
> >> for
> >> > 2021. :)
> >> > ㊗️福大家,牛年大吉!
> >> >
> >> > Best,
> >> > Jincheng
> >> > 2021.02.09
> >> >
> >> > [1] https://github.com/diffplug/spotless
> >> > [2] https://github.com/apache/iotdb/blob/master/java-google-style.xml
> >> > [3]
> >> >
> >> >
> >>
> https://github.com/apache/beam/blob/b74fcf7b30d956fb42830d652a57b265a1546973/buildSrc/build.gradle#L23
> >> > [4]
> >> >
> >> >
> >>
> https://github.com/apache/flink/blob/4a5ef8af0bbc49d738717ae477576c172e60e62c/pom.xml#L159
> >> > [5]
> >> >
> >> >
> >>
> https://github.com/apache/kafka/blob/42a9355e606bd2bbdb7fd0dd348805e6666dc189/build.gradle#L44
> >> > [6]
> >> >
> >> >
> >>
> https://github.com/apache/avro/blob/8026c8ffe4ef67ab419dba73910636bf2c1a691c/lang/java/pom.xml#L307-L334
> >> >
> >>
> >
>

Reply via email to