Hi, devs I want to add Step 0 before all steps.
Step 0: Add checkstyle action to github action to check pr style. This action checks incremental code and adds comment to pr automatically. Action: https://github.com/dbelyaev/action-checkstyle <https://github.com/dbelyaev/action-checkstyle> Demo: https://github.com/morrySnow/test_checkstyle/pull/5 <https://github.com/morrySnow/test_checkstyle/pull/5> > 2022年4月29日 13:40,morrysnow <morrys...@126.com> 写道: > > Hi, mingyu > > 1. Check license is needed for local check. > 2. Add a rule to forbidden static import is ok for me > >> 2022年4月28日 21:34,陈明雨 <morning...@163.com> 写道: >> >> That would be great! >> Some suggestion about the rules: >> >> >>> d. license header check >> For now, we use skywalking-eyes to check license header, is this rule still >> needed? >> >> >>> adjust the order of import to "static, org.apache.doris, third party, java" >> Better not using static import >> >> >> >> >> -- >> >> 此致!Best Regards >> 陈明雨 Mingyu Chen >> >> Email: >> chenmin...@apache.org >> >> >> >> >> >> 在 2022-04-28 17:14:34,"morrysnow" <morrys...@126.com> 写道: >>> Hi, devs, >>> >>> I split adding java check style into 5 steps. I’m willing to get feedback >>> about it. >>> >>> CheckStyle and Spotless will modify about 10k lines. >>> >>> Step 1: >>> >>> 1. Add Spotless plugin and do some simple format(1198 files changed, 3205 >>> insertions(+), 4350 deletions(-)) >>> a. end with new line >>> b. trim trailing whitespace >>> c. replace tab indent with 4 spaces indent >>> d. license header check >>> e. adjust the order of import to "static, org.apache.doris, third >>> party, java" >>> f. remove unused imports >>> g. make sure all files are encoding by utf-8 >>> h. make sure all files line ending by LF >>> >>> 2. Add checkstyle rules but set default severity to warning to avoid >>> compile failed. >>> >>> 3. set some rules' severity to error in Checkstyle since no lines in doris >>> break these rules(0 files, 0 lines) >>> a. Merge conflicts unresolved >>> b. Avoid using corresponding octal or Unicode escape >>> c. Avoid Escaped Unicode Characters >>> d. No Line Wrap >>> e. Package Name >>> f. Type Name >>> g. Annotation Location >>> h. Interface Type Parameter >>> i. CatchParameterName >>> j. Pattern Variable Name >>> k. Record Component Name >>> l. Record Type Parameter Name >>> m. Method Type Parameter Name >>> >>> 4. Set below rules severity to error in Checkstyle since these had done by >>> splotless(12 files, 177 lines) >>> a. Redundant Import >>> b. Custom Import Order >>> c. Unused Imports >>> d. Avoid Star Import >>> e. tab character in file >>> f. Newline At End Of File >>> g. Trailing whitespace found >>> >>> >>> >>> Step 2: (241 files, 962 lines (with Step 1)) >>> >>> 1. Set below rules' severity to error in Checkstyle, all rules are import >>> to make sure the code is correct >>> a. Need Braces >>> b. Equals Hash Code >>> c. Missing Switch Default >>> d. Fall Through >>> e. No Finalizer >>> >>> >>> 2. Set below rules' severity to error in Checkstyle, all rules are about >>> name >>> a. Member Name >>> b. Constant Name >>> c. Parameter Name >>> d. LambdaParameterName >>> e. Local Variable Name >>> f. Class Type Parameter Name >>> g. Static Variable Name >>> h. Method Name >>> j. Abbreviation As Word In Name >>> >>> >>> Step 3: (605 files, 6008 lines (with Step 1 and Step 2)) >>> >>> 1. Set below rules' severity to error in Checkstyle, all rules are about >>> whitespace >>> a. Empty Block >>> b. Left Curly >>> c. Right Curly >>> d. White space Around >>> e. Generic Whitespace >>> f. Indentation >>> g. No Whitespace Before Case Default Colon >>> h. Method Param Pad >>> i. Whitespace >>> j. Paren Pad >>> k. Extra newline >>> l. Extra newline at end of block >>> m. Empty Statement >>> n. Empty Catch Block >>> o. Comments Indentation >>> >>> 2. Set below rules' severity to error in Checkstyle, all rules are about >>> the position of the newline >>> a. Line Length 120 >>> b. Operator Wrap >>> c. One Statement Per Line >>> d. Multiple Variable Declarations >>> >>> >>> Step 4: (674 files, 6730 lines (with Step 1, Step 2 and Step 3)) >>> >>> 1. Set below rules' severity to error in Checkstyle >>> a. Array Type Style >>> b. Upper Ell >>> c. Modifier Order >>> d. Empty Line Separator >>> e. Separator Wrap >>> f. Overload Methods Declaration Order >>> g. Variable Declaration Usage Distance >>> i. One Top Level Class >>> >>> >>> Step 5: >>> >>> 1. Add java doc check to CheckStyle and set severity to warning. >>> >>> 2. Fix java doc warning gradually >>> >>> >>>> 2022年4月28日 00:39,morrysnow <morrys...@126.com> 写道: >>>> >>>> Hi, devs >>>> >>>> I summarized all the rules I wanted to add. I examined the number of lines >>>> of code affected by all the rules and categorized them by importance. >>>> >>>> The link is here: >>>> https://github.com/apache/incubator-doris/issues/8985#issuecomment-1111214162 >>>> >>>> <https://github.com/apache/incubator-doris/issues/8985#issuecomment-1111214162> >>>> >>>> I would like to be able to submit them in multiple patches. The principle >>>> of patch splitting is as follows. Those with low impact and high >>>> importance are submitted first and sets the severity to Error. The Javadoc >>>> commits last and sets the severity to Warning. >>>> >>>> >>>>> 2022年4月18日 16:09,vin jake <jakevin...@gmail.com> 写道: >>>>> >>>>> Hi, there is a new PR about format doris. >>>>> https://github.com/apache/incubator-doris/pull/9072 >>>>> >>>>> I think it's time to ensure what checkstyle rules we should add for fe. >>>>> >>>>> All people who care about format rule can put up your thoughts. >>>>> >>>>> We can add it in the issue: >>>>> https://github.com/apache/incubator-doris/issues/8985 >>>>> >>>>> >>>>> On Thu, Apr 14, 2022 at 6:52 PM vin jake <jakevin...@gmail.com> wrote: >>>>> >>>>>> great, I will trim it in my PR. >>>>>> >>>>>> checkstyle.xml need more discussion >>>>>> >>>>>> On Thu, Apr 14, 2022 at 5:48 PM morrysnow <morrys...@126.com> wrote: >>>>>> >>>>>>> I agree with u. >>>>>>> >>>>>>> For the first point, I want to list rules first, and then change >>>>>>> checkstyle.xml. >>>>>>> >>>>>>> For the second point, original change information in git is not lost, we >>>>>>> just need to do blame on the version prior to the ‘code style’ commit >>>>>>> and >>>>>>> some gui tools could list history of one file. Anyway, it is not very >>>>>>> convenience. >>>>>>> >>>>>>>> 2022年4月14日 17:35,Shuo Wang <wangshuo...@gmail.com> 写道: >>>>>>>> >>>>>>>> In general, I believe that we should do some work to make the code >>>>>>>> clean >>>>>>>> and readable. >>>>>>>> >>>>>>>> My concern is: >>>>>>>> 1. We should have an agreement on the code style specification in the >>>>>>>> community at first. >>>>>>>> 2. If the many lines of code change after applying the code style rule, >>>>>>> we >>>>>>>> would lose the original changelog via `git blame`. >>>>>>>> >>>>>>>> vin jake <jakevin...@gmail.com> 于2022年4月14日周四 17:12写道: >>>>>>>> >>>>>>>>> I have add it in PR >>>>>>> https://github.com/apache/incubator-doris/pull/8987 >>>>>>>>> >>>>>>>>> On Thu, Apr 14, 2022 at 4:37 PM morrysnow <morrys...@126.com> wrote: >>>>>>>>> >>>>>>>>>> Hi, devs, >>>>>>>>>> >>>>>>>>>> Currently, we only have two rules in checkstyle.xml in fe. These are >>>>>>> all >>>>>>>>>> about import. So, the code style in fe is very casual. >>>>>>>>>> I want to add more rules to checkstyle.xml in fe to Improve code >>>>>>>>>> readability, and adjust all fe code to satisfy new code style step by >>>>>>>>> step. >>>>>>>>>> What do you think about it? If this is a good idea. I will research >>>>>>> which >>>>>>>>>> rules apply to our code and put together a list. >>>>>>>>>> >>>>>>>>>> --------------------------------------------------------------------- >>>>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@doris.apache.org >>>>>>>>>> For additional commands, e-mail: dev-h...@doris.apache.org >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>> >>>>>>> >>>>>>> --------------------------------------------------------------------- >>>>>>> To unsubscribe, e-mail: dev-unsubscr...@doris.apache.org >>>>>>> For additional commands, e-mail: dev-h...@doris.apache.org >>>>>>> >>>>>>> >>>> >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: dev-unsubscr...@doris.apache.org >>> For additional commands, e-mail: dev-h...@doris.apache.org