+1 Mike On 9/28/23, 3:56 PM, "MapServer-dev on behalf of jbo-ads--- via MapServer-dev" <[email protected] <mailto:[email protected]> on behalf of [email protected] <mailto:[email protected]>> wrote:
+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 > <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 > <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 > <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 > <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 > <https://mapserver.org/development/index.html> to gather all above > information > > Even > _______________________________________________ MapServer-dev mailing list [email protected] <mailto:[email protected]> https://lists.osgeo.org/mailman/listinfo/mapserver-dev <https://lists.osgeo.org/mailman/listinfo/mapserver-dev> _______________________________________________ MapServer-dev mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/mapserver-dev
