[dev] Style guidelines
Lou Berger
lberger at labn.net
Fri Feb 23 08:24:22 EST 2018
So the other day, I ran indent.pyt on some files and checked in the
changes (https://github.com/FRRouting/frr/pull/1428) and it failed the
CI code police test -- what did I do wrong and how do I avoid it in the
future.
Lou
On 2/22/2018 8:57 PM, Quentin Young wrote:
> Greetings developers, here is a reminder of the style guide and a
> summary of the tools FRR offers you to minimize the effort you spend
> ensuring your patches are compliant.
>
> FRR uses Linux kernel style. You can find that documented here:
> https://www.kernel.org/doc/html/v4.10/process/coding-style.html
>
> FRR’s style requirement is that patches submitted to FRR must comply
> with this style (with some exceptions covered in the docs). You are
> not required to run any tool, any script, etc, before submitting your
> patch. Feel free to do everything by hand if you want. If it complies
> with the style guidelines then from a style standpoint it is fine.
>
> FRR offers you a variety of tools for your convenience to help comply
> with the style guidelines and make it as easy as possible. In no
> particular order these are:
>
> * clang-format configuration file
>
> In the project root there is a file named .clang-format. This is a
> configuration file for the clang-format source formatting tool. This
> tool is part of the LLVM project. If you wish, you can use this tool
> to assist in complying with the style guide. There are good
> integrations for most editors, as well as an integration with git that
> you can use to do things like only format lines introduced in certain
> commits, only format staged changes, etc. Please note that while
> clang-format gets you 95% of the way there it’s not perfect and you
> are still responsible for styling your code properly.
>
> * indent.py
>
> This is a script that takes a filename and formats it with
> clang-format, doing some additional preprocessing to help reduce some
> edge-case mangling that happens with things like DEFUNs and macros. It
> operates on whole files. Usually you’re better off using clang-format
> integrations to format your code as you go.
>
> * tools/checkpatch.sh
>
> This is a script that wraps an adapted version of the Linux kernel’s
> checkpatch.pl script. It takes a git formatted patch or diff file and
> a path to your frr tree and does some magic to warn you about
> potential style issues. It does modify your frr tree in the process
> although it makes a best effort to save your working tree and restore
> it, if you don’t want to use `git stash` for some reason. You can run
> it like this:
>
> cd tools/
> ./checkpatch.sh /path/to/patchfile /path/to/frr/sourcetree
>
> This script is also run by the CI system on new pull requests and its
> output is displayed to assist you with catching style errors. It’s not
> perfect but should catch the majority and have a relatively low false
> positive rate. DEFUNs are ignored so please use common sense when
> formatting these to avoid spending others’ time reviewing style.
>
> As always if you have any questions about style please refer to the
> kernel style guide, if you can’t find the answer to your question
> there ask on slack or this mailing list, and if you have improvements
> to indent.py or checkpatch.sh ideally submit a patch or alternatively
> open a Github issue. Again you are not required to use these tools,
> they are here for your personal convenience. We do not maintain
> clang-format so please don’t open bugs or feature requests about
> clang-format with us.
>
> Quentin
>
>
> _______________________________________________
> dev mailing list
> dev at lists.frrouting.org
> https://lists.frrouting.org/listinfo/dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.frrouting.org/pipermail/dev/attachments/20180223/d7a62e6d/attachment-0001.html>
More information about the dev
mailing list