Hi , all devs

After this PR: https://github.com/apache/incubator-doris/pull/10134, all 
checkstyle error has been fixed.
So, i want to turn Github workflow 'FE Code Style Checker' to 'Required' after 
this PR be merged.


After #10134 be merged, when compiling fe with `maven`, `CheckStyle` checks are 
done by default. 
This will slightly slow down compilation. If you want to skip checkstyle, 
please use the following command to compile
mvn clean install -DskipTests -Dcheckstyle.skip


Also, you can check your code style seperately by run following command under 
fe directory:
mvn checkstyle:check


At 2022-04-29 13:43:18, "morrysnow" <morrys...@126.com> wrote:
>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
>



Reply via email to