git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: Robert Schiele <rschiele@gmail.com>,
	Zoltan Klinger <zoltan.klinger@gmail.com>,
	GIT Mailing-list <git@vger.kernel.org>
Subject: Re: Unused #include statements
Date: Thu, 15 Jan 2015 17:38:37 -0500	[thread overview]
Message-ID: <20150115223836.GC19021@peff.net> (raw)
In-Reply-To: <xmqqvbk77u9m.fsf@gitster.dls.corp.google.com>

On Thu, Jan 15, 2015 at 10:50:45AM -0800, Junio C Hamano wrote:

> So the rule might be:
> 
>  - The first #include in C files, except in platform specific
>    compat/ implementations, must be either git-compat-util.h,
>    cache.h or builtin.h.
> 
>  - A C file must directly include the header files that declare the
>    functions and the types it uses, except for the functions and
>    types that are made available to it by including one of the
>    header files it must include by the previous rule.

Yeah, that makes sense (and is what I took away from the existing rule
in CodingGuidelines, but I agree what is there is not very rigorous).

> Optionally, 
> 
>  - A C file must include only one of "git-compat-util.h", "cache.h"
>    or "builtin.h"; e.g. if you include "builtin.h", do not include
>    the other two, but it can consider what is availble in "cache.h"
>    available to it.
> 
> Thoughts?  I am not looking forward to a torrent of patches whose
> sole purpose is to make the existing C files conform to any such
> rule, though.  Clean-up patches that trickle in at a low rate is
> tolerable, but a torrent is too distracting.

I don't think the "optionally" one above is that necessary. Not because
I don't agree with it, but because I do not know that we want to get
into the business of laying out every minute detail and implication.
The CodingGuidelines document is meant to be guidelines, and I do not
want to see arguments like "well, the guidelines do not explicitly
_disallow_ this, so you must accept it or add something to the
guideline". That is a waste of everybody's time.

A general philosophy + good taste (from the submitter and the
maintainer) should ideally be enough. And hopefully would stop a torrent
of "but this file doesn't conform to the letter of CodingGuidelines!".
Maybe it does not, but if there is no tangible benefit besides blindly
following some rules, it is not worth the precious time of developers.

Which isn't to say we shouldn't clarify the document when need be. But I
think what I quoted at the top already is probably a good improvement
over what is there.

-Peff

  reply	other threads:[~2015-01-15 22:38 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-15  3:43 Unused #include statements Zoltan Klinger
2015-01-15  4:14 ` Robert Schiele
2015-01-15  6:33   ` Jeff King
2015-01-15 18:50     ` Junio C Hamano
2015-01-15 22:38       ` Jeff King [this message]
2015-01-15 23:20         ` Junio C Hamano
2015-01-16  0:00           ` Jeff King
2015-01-20  2:08       ` Zoltan Klinger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150115223836.GC19021@peff.net \
    --to=peff@peff.net \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=rschiele@gmail.com \
    --cc=zoltan.klinger@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).