On Tue, Jul 23, 2019 at 2:50 PM Bryce Seager van Dyk <bvan...@mozilla.com>
wrote:

> On Sunday, July 21, 2019 at 10:18:02 PM UTC-7, Karl Tomlinson wrote:
> > Near the top of
> >
> https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style
> > there is
> > > New code should try to conform to these standards, so it is as
> > > easy to maintain as existing code. [...]
> > >
> > > This article is particularly for those new to the Mozilla
> > > codebase [...]"  Before requesting a review, please read over
> > > this document, making sure that your code conforms to
> > > recommendations."
> > >
> > > Firefox code base uses the Google Coding style for C++ code [2]
> >
> > On reading over the document, the reader finds a number of
> > additional guidelines, some of which are complementary or
> > orthogonal to Google style and some of which are contradictory.
> >
> > Can we clarify which documents have precedence so that we can
> > spell this out clearly on this page, please?
> >
> > "we would like to convert entirely to this [Google C++] coding
> > style -- perhaps with some exceptions for Mozilla-specific
> > constraints". [1]
> > Would the Mozilla coding style be the appropriate place to list
> > such exceptions?
> > The existing recording of a recent resolution [3] on this page
> > seems helpful to me.
> >
> > The reason to think this page might not be the appropriate place
> > is because [1]
> > > we will retire the Mozilla C/C++ coding style.  The intention
> > > behind retiring the current Mozilla style is to just stop
> > > maintaining it as an active coding style going forward, but the
> > > documentation for this coding style will be kept intact.
> >
> > What is the motivation for keeping intact the legacy coding style?
> > Is it to guide those contributing in code that has not yet moved
> > to Google style?  I wonder how useful that would be given "we now
> > have significant inconsistencies in the style of our codebase"
> > [1]?
> >
> > If it is useful to keep intact the documentation of legacy style,
> > can we distinguish which are the guidelines that should apply only
> > to older code?
> >
> > "we are not aiming to enforce any naming conventions at this time"
> > [1] but both the Google and Mozilla style guides have
> > (conflicting) naming conventions.  Can we clarify which, if any,
> > naming guidelines apply to new and older code?
> >
> > The other piece of the equation here is [1]
> > > our precise coding style will be the result of formatting our
> > > tree with clang-format, so by definition our code, when
> > > formatted with clang-format, will be following our new coding
> > > style.
> >
> > clang-format doesn't provide compliance with all guidelines in the
> > Google style, but it does have precedence, because the only option
> > to override is `// clang-format off`.  clang-format has its own
> > preferences for formatting, many of which are not documented in
> > the Google style guide.
> >
> > Would it be appropriate for the Mozilla coding style page to
> > indicate that `./mach clang-format` defines the formatting of C++
> > code and the Google style guide provides other guidelines, which
> > should be followed in new code unless there is an exception
> > listed?
> >
> >
> https://developer.mozilla.org/en-US/docs/Mozilla/Using_CXX_in_Mozilla_code
> > is another page with more guidelines.  I assume we would expect
> > these to be consistent with those on the Mozilla coding style
> > page.  I assume "Using C++ in Mozilla code" would take precedence
> > over Google style?
> >
> > [1]
> >
> https://groups.google.com/forum/#!msg/mozilla.dev.platform/VCLB1Lz4yXc/dNoNVzmlCQAJ
> > [2]
> > https://google.github.io/styleguide/cppguide.html
> > [3]
> > https://groups.google.com/forum/#!topic/mozilla.dev.platform/0NFBXe6VnfM
>
> My opinions (C++ specific) having revised a small amount of the style
> guide recently: the less documents that need to be consulted, the better.
> Non exhaustive reasons I'd prefer we keep docs lean:
> - People may not be aware of a doc.
> - It can be hard to determine which docs take precedence. Need docs for
> our docs.
> - Minimize places to bitrot.
>
> Following on, I would like our style page ([1] above) to, ideally, offer
> clarifications and, rarely and in clearly stated cases, supersede the
> Google style. I wouldn't mind if other pages with C++ style rules where
> trimmed and merged into this one. I think the guide needs some more work to
> get to this point because:
> - Old historical content that can now be cut or revised has not yet been.
> - C++ style is sprinkled throughout the guide, not just in an isolated C++
> section.
> - There are general styling rules that apply to C++ and other areas that
> are hard to revise.
> - C++ style is also splintered across other pages.
>

A lot (most?) of the cruft you mention above is just remnants of the old
coding style...


> Does `./mach clang-format` ever perform formatting inconsistent with
> Google style? If so, does it do so in a lot of cases? If not, I like the
> idea of our style guide indicating that Google style should be used, unless
> where noted in our guide, and having our guide specify those cases, along
> with any exceptions where manual styling is required.
>

FWIW, if ./mach clang-format ever performs formatting inconsistent with the
Google style, the correct forum for reporting and discussing that is *not*
Mozilla, but rather the LLVM project <
https://bugs.llvm.org/enter_bug.cgi?product=clang&component=Formatter>.
We're explicitly not trying to maintain either the Google C++ Style or
clang-format downstream.  :-)


> I think the current style docs will continue to be referenced and updated
> for the near future. Depending on the motivation for and desire to have a
> historical record, perhaps creating a separate location for one would be
> worthwhile.
>

Yep, that makes perfect sense to me.

-- 
Ehsan
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to