From: Jakub Narebski <jnareb@gmail.com>
To: Jeff King <peff@peff.net>
Cc: "Thomas Rast" <trast@student.ethz.ch>,
git@vger.kernel.org, "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"Jonathan Nieder" <jrnieder@gmail.com>,
"Junio C Hamano" <gitster@pobox.com>,
"Sverre Rabbelier" <srabbelier@gmail.com>
Subject: Re: [RFC PATCH v2 0/3] Documentation: refactor config variable descriptions
Date: Wed, 27 Oct 2010 12:56:15 +0200 [thread overview]
Message-ID: <201010271256.16836.jnareb@gmail.com> (raw)
In-Reply-To: <201010251749.04784.jnareb@gmail.com>
On Mon, 25 Oct 2010, Jakub Narebski wrote:
> On Mon, 25 Oct 2010, Jeff King wrote:
>> On Mon, Oct 25, 2010 at 02:44:06PM +0200, Jakub Narebski wrote:
>>>> 2. You recursively follow includes via include::. This means that the
>>>> make rule is not accurate. E.g., try:
>>> [...]
>>> We do that: see 'doc.dep' target in Documentation/Makefile. We just
>>> need for this target to also add dependencies for config-vars.txt
>>> (perhaps separate mode for make-config-list.perl, or perhaps
>>> build-docdep.perl should be config-vars-src.txt aware...).
>>
>> Yeah, that would definitely work.
The part of patch (commit) touching Documentation/Makefile could look
like this:
-- 8< --
diff --git a/Documentation/Makefile b/Documentation/Makefile
index e117bc4..351aa9c 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -212,9 +212,12 @@ install-html: html
#
# Determine "include::" file references in asciidoc files.
#
-doc.dep : $(wildcard *.txt) build-docdep.perl
+doc.dep : $(wildcard *.txt) build-docdep.perl make-config-list.perl
$(QUIET_GEN)$(RM) $@+ $@ && \
$(PERL_PATH) ./build-docdep.perl >$@+ $(QUIET_STDERR) && \
+ $(PERL_PATH) ./make-config-list.perl --deps=config-vars.txt \
+ --mainlist=config-vars-src.txt $(MAN_TXT) \
+ >>$@+ $(QUIET_STDERR) && \
mv $@+ $@
-include doc.dep
@@ -320,6 +323,11 @@ howto-index.txt: howto-index.sh $(wildcard howto/*.txt)
'$(SHELL_PATH_SQ)' ./howto-index.sh $(wildcard howto/*.txt) >$@+ && \
mv $@+ $@
+config-vars.txt: config-vars-src.txt $(MAN_TXT) make-config-list.perl
+ $(PERL_PATH) ./make-config-list.perl \
+ --mainlist=$< --ignore=$@ $(MAN_TXT) >$@+ && \
+ mv $@+ $@
+
$(patsubst %,%.html,$(ARTICLES)) : %.html : %.txt
$(QUIET_ASCIIDOC)$(ASCIIDOC) $(ASCIIDOC_EXTRA) -b xhtml11 $*.txt
-- >8 --
Note that while in rule for config-vars.txt target we can use automatic
variables, we have to spell filenames in full in the part of doc.dep
rules that generate dependency for config-vars.txt. Note also that we
have to keep those explicit and implicit filenames in sync across those
two rules.
> Though simpler would be just to not use or turn off following includes,
> as it turned out that it doesn't matter to follow includes in manpages:
> if we include with config variables, it is to also include it in
> config-vars-src.txt.
>
> Well, assuming that we don't have to follow includes in config-vars-src.txt;
> otherwise we have to generate line in doc.dep for that include anyway.
Decision time!!!
There are two possible approaches:
1. Don't follow includes in manpages (in manpage sources), and don't follow
includes in config-vars-src.txt
Advantages:
* Less code to write and maintain
* No need to keep filenames in rule for config-vars.txt and for doc.dep
in sync.
Disadvantages:
* Theoretically fragile: it depends on two assumptions:
A. If file included in manpage contains description of config vars,
then this file would be included also in config-vars-src.txt
B. For config variables inside file(s) included by config-vars-src.txt,
if they are present in individual manpage, it is done by inclusion
of said file.
Those assumptions are two sides of the same coin, and can be written
as: file included in manpagee can contain config variables if and only
if it is included in config-vars-src.txt
2. Follow includes both in manpages and in config-vars-src.txt, and
generate dependencies for config-vars.txt
Advantages:
* More generic solution
Disadvantages:
* Need to keep rules for doc.dep and for config-vars.txt in sync, as
described above
* config-vars.txt rule has more dependencies.
Now, which one to choose?
--
Jakub Narebski
Poland
next prev parent reply other threads:[~2010-10-27 10:56 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-22 5:02 [RFC PATCH v2 0/3] Documentation: refactor config variable descriptions Thomas Rast
2010-10-22 5:02 ` [RFC PATCH v2 3/3] Documentation: move format.* documentation to format-patch Thomas Rast
[not found] ` <c3f621cd062b2c4f80aa2e8dadcfddbc042aefaa.1287690696.git.trast@student.ethz.ch>
2010-10-22 8:18 ` [RFC PATCH v2 1/3] Documentation: Move variables from config.txt to separate file Jakub Narebski
[not found] ` <8145782bddf60325909f328337cb76d25c4402cf.1287690696.git.trast@student.ethz.ch>
2010-10-22 6:19 ` [RFC PATCH v2 2/3] Documentation: complete config list from other manpages Jakub Narebski
2010-10-22 14:31 ` Jakub Narebski
2010-10-23 22:24 ` [PATCH] " Thomas Rast
2010-10-23 22:30 ` Jakub Narebski
2010-10-24 14:36 ` Jakub Narebski
2010-10-24 20:44 ` [RFC PATCH v3 2/3] " Jakub Narebski
2010-10-24 20:55 ` [RFC PATCH v3 2/3 (amend)] " Jakub Narebski
2010-10-22 15:17 ` [RFC PATCH v2 0/3] Documentation: refactor config variable descriptions Jakub Narebski
2010-10-22 15:53 ` Jeff King
2010-10-24 1:24 ` Thomas Rast
2010-10-25 15:04 ` Jeff King
2010-10-25 12:44 ` Jakub Narebski
2010-10-25 15:11 ` Jeff King
2010-10-25 15:49 ` Jakub Narebski
2010-10-27 10:56 ` Jakub Narebski [this message]
2010-11-02 13:42 ` Jens Lehmann
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201010271256.16836.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@gmail.com \
--cc=peff@peff.net \
--cc=srabbelier@gmail.com \
--cc=trast@student.ethz.ch \
/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.
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 NNTP newsgroup(s).