[MapServer-dev] Whole code base reformatting

jbo-ads at mailo.com jbo-ads at mailo.com
Thu Sep 28 12:36:26 PDT 2023


+1

Jérome


Le 28/09/2023 à 16:24, Even Rouault via MapServer-dev a écrit :
> Hi,
>
> Below text from https://github.com/MapServer/MapServer/pull/6937:
>
> I propose to apply to Mapserver the same set of tools that have been 
> applied to GDAL and PROJ recently to have consistent code formatting 
> for C/C++ and .py files
>
> This uses the pre-commit tool that installs hooks run by git commit to 
> automatically apply the formatting rules:
>
> - clang-format for C/C++ code using a .clang-format style based on the 
> LLVMStyle with a minimal customization to do 2-space indentation 
> (which is the general practice in Mapserver), and not sorting includes 
> (as this breaks compilation due to includes unfortunately not being 
> clean/standalone, with inconsistencies like "a.h needs a type of b.h, 
> but b.h includes a.h"). Third-party code is excluded from reformating 
> (in .pre-commit-config.yaml)
>
> - black and isort to format Python code
>
> - flake8 to enforce some rules on Python code (with tons of exceptions 
> in .flake8, directly borrowed from the ones of GDAL). I had to 
> manually fixup a few things in the .py files
>
> Cf https://gdal.org/development/rfc/rfc69_cplusplus_formatting.html on 
> how to install pre-commit (one time operation to do), and 
> https://gdal.org/development/dev_practices.html#commit-hooks
>
> A .git-blame-ignore-revs file is also added to identify the 
> reformatting commit as to be ignored for the purpose of "git blame". 
> It needs to be manually declared to git with "git config 
> blame.ignoreRevsFile .git-blame-ignore-revs", for local use (one time 
> operation) but it is automatically pickedup by GitHub.
>
> We should probably apply that to the stable branch as well to make 
> backports easier.
>
> This also adds a .github/workflows/code_checks.yml GitHub Action that 
> runs pre-commit on pull requests to detect violations. Such sitaution 
> shouldn't happen for developers that have already set it up locally, 
> but useful to catch issues coming from casual contributors (e.g. 
> simulation of a commit that would break formatting: 
> https://github.com/rouault/mapserver/actions/runs/6340096023/job/17220740975)
>
> Upon acceptance, I'll add a "Code formatting rules" section to 
> https://mapserver.org/development/index.html to gather all above 
> information
>
> Even
>





More information about the MapServer-dev mailing list