Thanks Marco, it would be great to get to a better checker and then turn on
more checks for the things we normally comment on in reviews.

The style guide currently states the following order:


   1. dir2/foo2.h.
   2. C system files.
   3. C++ system files.
   4. Other libraries' .h files.
   5. Your project's .h files.

Generally speaking,we seem to use the following.

   1. dir2/foo2.h - we don't go this
   2. C system files.
   3. C++ system files.
   4. C library files - leveldb
   5. C++ library files - boost, glog, gmock, libev, picojson, protobuf,
   zookeeper
   6. Project's .h files - I think these are all wrapped in .hpp files
   7. Project .hpp files - mesos, stout, libprocess

As Kapil has pointed out on MESOS-2927, all the library files should be
identified by '#include <...>' and all the project files should use
'#include "..."' - i don't know yet if we have been consistent about this.

I have created the stout patch on this basis and plan to incorporate any
comments before moving onto libprocess.

-- Paul

On Thu, Jun 25, 2015 at 3:31 PM, Marco Massenzio <[email protected]>
wrote:

> As I mentioned in the review that Paul submitted, I've been working on
> cpplint.py to make it more Mesos-friendly.
> I have also submitted a few Pull Requests
> <https://github.com/google/styleguide/pulls> to the original github repo,
> but got neither love nor attention.
>
> My fork is here: https://github.com/massenz/styleguide
> and the code in the `master` branch (
> https://github.com/massenz/styleguide/tree/master) has all my changes; it
> currently works well with the existing code (in that, submitted, valid
> Mesos code does not raise errors) apart from the opening brace on a newline
> for multi-line method declarations.
>
> Love to get contributions and pull requests folks, feel free to submit!
>
> An example CPPLINT.cfg that works with the code in `master` is something
> like this:
>
> $ cat CPPLINT.cfg
> # Apache Mesos cpplint custom file
>
> extensions=cpp,hpp
> access_keywords_indent=0
> headers=h,hpp
> custom_headers=mesos,process,stout
> set braces_newline
>
> PS - am I the only one to find it hilarious that code that supposedly
> checks on style correctness is written in some of the least readable, badly
> PEP8-violating Python? :)
>
> *Marco Massenzio*
> *Distributed Systems Engineer*
>
> On Thu, Jun 25, 2015 at 3:18 PM, Paul Brett <[email protected]>
> wrote:
>
> > ​The style guide prescribes the order of header file inclusions for the
> > project and requires that we #include or make explicit forward
> declarations
> > for any functions we use, however we were only  enforcing this at review
> > time manually and not commit time.  I would like to turn on the checks at
> > commit time, so I am in the process of raising changes against stout,
> > libprocess and mesos to bring the code base into compliance.  Once this
> is
> > completed, I propose to update cpplint.py and mesos-style.py to enforce
> the
> > style guide.
> >
> > Anyone interested can comment on the following tickets:
> >
> > https://issues.apache.org/jira/browse/MESOS-2926 Extend
> > mesos-style.py/cpplint.py to check #include files
> > https://issues.apache.org/jira/browse/MESOS-2927 Update mesos #include
> > headers
> > https://issues.apache.org/jira/browse/MESOS-2928 Update stout #include
> > headers
> > https://issues.apache.org/jira/browse/MESOS-2929 Update libprocess
> > #include
> > headers
> > ​
> >
> > -- Paul Brett
> >
>



-- 
-- Paul Brett

Reply via email to