git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Patrick Steinhardt <ps@pks.im>
To: Ramsay Jones <ramsay@ramsayjones.plus.com>
Cc: GIT Mailing-list <git@vger.kernel.org>,
	Elijah Newren <newren@gmail.com>,
	Derrick Stolee <stolee@gmail.com>,
	Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH v2 1/4] doc: add some missing technical documents
Date: Wed, 8 Oct 2025 08:45:46 +0200	[thread overview]
Message-ID: <aOYImjMXcFkdwar5@pks.im> (raw)
In-Reply-To: <20251002221233.541844-2-ramsay@ramsayjones.plus.com>

On Thu, Oct 02, 2025 at 11:12:13PM +0100, Ramsay Jones wrote:
> Commit bcf7edee09 ("meson: generate articles", 2024-12-27) added the
> generation of the 'howto' and 'technical' documents to the meson build.
> At this time those documents had a '*.txt' file extension, but they were
> renamed with an '*.adoc' extension by commit 1f010d6bdf ("doc: use .adoc
> extension for AsciiDoc files", 2025-01-20), for the most part. For the
> meson build, commit 87eccc3a81 ("meson: fix building technical and howto
> docs", 2025-03-02) fixed the meson.build files, which had not been
> updated when the files were renamed.
> 
> However, the 'Documentation/Makefile' has not been updated to include
> all of the recently added technical documents. In particular, the
> following are built by meson, but not by the Makefile:
> 
>     commit-graph.adoc
>     directory-rename-detection.adoc
>     packfile-uri.adoc
>     remembering-renames.adoc
>     repository-version.adoc
>     rerere.adoc
>     sparse-checkout.adoc
>     sparse-index.adoc
> 
> In order to ensure that both build systems format the same technical
> documents, add the above documents to the TECH_DOCS variable in the
> Documentation/Makefile.

I was wondering whether we also want to have a change like the
following:

diff --git a/Documentation/Makefile b/Documentation/Makefile
index 6fb83d0c6e..666b0b6fbd 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -524,15 +524,20 @@ lint-docs-manpages:
 lint-docs-meson:
 	@# awk acts up when trying to match single quotes, so we use \047 instead.
 	@mkdir -p tmp-meson-diff && \
-	awk "/^manpages = {$$/ {flag=1 ; next } /^}$$/ { flag=0 } flag { gsub(/^  \047/, \"\"); gsub(/\047 : [157],\$$/, \"\"); print }" meson.build | \
+	{ \
+		awk "/^manpages = {$$/ {flag=1 ; next } /^}$$/ { flag=0 } flag { gsub(/^  \047/, \"\"); gsub(/\047 : [157],\$$/, \"\"); print }" meson.build && \
+		awk "/^articles = \[$$/ {flag=1 ; next } /^\]$$/ { flag=0 } flag { gsub(/^  \047/, \"\"); gsub(/\047,$$/, \"\"); print }" technical/meson.build; \
+	} | \
 		grep -v -e '#' -e '^$$' | \
 		sort >tmp-meson-diff/meson.adoc && \
-	ls git*.adoc scalar.adoc | \
+	ls git*.adoc scalar.adoc technical/*.adoc | \
+		xargs -n1 basename | \
 		grep -v -e git-bisect-lk2009.adoc \
 			-e git-pack-redundant.adoc \
 			-e git-tools.adoc \
 			-e git-whatchanged.adoc \
-			>tmp-meson-diff/actual.adoc && \
+			-e api-.*.adoc | \
+			sort >tmp-meson-diff/actual.adoc && \
 	if ! cmp tmp-meson-diff/meson.adoc tmp-meson-diff/actual.adoc; then \
 		echo "Meson man pages differ from actual man pages:"; \
 		diff -u tmp-meson-diff/meson.adoc tmp-meson-diff/actual.adoc; \

This builds on our existing linting rule and would catch any discrepancy
in man pages that we have in "Documentation/technical/" that isn't
listed in Meson.

This check isn't quite complete, there's two things missing:

  - We have an equivalent check in "Documentation/meson.build" that we
    might want to extend to also cover articles.

  - We don't have a check to ensure that our Makefile and Meson are in
    sync.

But regardless of that, the above check surfaces one more missing
article:

    $ make lint-docs-meson
        GEN doc.dep
    make: *** Deleting file 'doc.dep'
    tmp-meson-diff/meson.adoc tmp-meson-diff/actual.adoc differ: byte 3877, line 206
    Meson man pages differ from actual man pages:
    --- tmp-meson-diff/meson.adoc	2025-10-08 08:42:49.864991169 +0200
    +++ tmp-meson-diff/actual.adoc	2025-10-08 08:42:50.072988794 +0200
    @@ -203,6 +203,7 @@
     git-worktree.adoc
     git-write-tree.adoc
     hash-function-transition.adoc
    +large-object-promisors.adoc
     long-running-process-protocol.adoc
     multi-pack-index.adoc
     packfile-uri.adoc
    make: *** [Makefile:526: lint-docs-meson] Error 1

Patrick

  reply	other threads:[~2025-10-08  6:45 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <https://lore.kernel.org/git/bcb3b3a3-bb13-4808-9363-442b5f9be05f@ramsayjones.plus.com/>
2025-10-02 22:12 ` [PATCH v2 0/4] technical docs in make build Ramsay Jones
2025-10-02 22:12   ` [PATCH v2 1/4] doc: add some missing technical documents Ramsay Jones
2025-10-08  6:45     ` Patrick Steinhardt [this message]
2025-10-08 19:00       ` Junio C Hamano
2025-10-08 22:01         ` Ramsay Jones
2025-10-08 22:33           ` Junio C Hamano
2025-10-08 21:56       ` Ramsay Jones
2025-10-02 22:12   ` [PATCH v2 2/4] doc: remembering-renames.adoc: fix asciidoc warnings Ramsay Jones
2025-10-08  3:51     ` Elijah Newren
2025-10-08 21:38       ` Ramsay Jones
2025-10-02 22:12   ` [PATCH v2 3/4] doc: sparse-checkout.adoc: " Ramsay Jones
2025-10-07 12:20     ` Kristoffer Haugsbakk
2025-10-07 22:17       ` Ramsay Jones
2025-10-08  3:57     ` Elijah Newren
2025-10-08 21:54       ` Ramsay Jones
2025-10-02 22:12   ` [PATCH v2 4/4] doc: commit-graph.adoc: fix up some formatting Ramsay Jones
2025-10-02 22:38   ` [PATCH v2 0/4] technical docs in make build Ramsay Jones
2025-10-16 20:02     ` [PATCH v3 " Ramsay Jones
2025-10-16 20:02       ` [PATCH v3 1/4] doc: remembering-renames.adoc: fix asciidoc warnings Ramsay Jones
2025-10-16 20:02       ` [PATCH v3 2/4] doc: sparse-checkout.adoc: " Ramsay Jones
2025-10-16 20:03       ` [PATCH v3 3/4] doc: commit-graph.adoc: fix up some formatting Ramsay Jones
2025-10-16 20:03       ` [PATCH v3 4/4] doc: add large-object-promisors.adoc to the docs build Ramsay Jones
2025-10-17 16:37         ` Ramsay Jones
2025-10-23 19:33       ` [PATCH v3 0/4] technical docs in make build Junio C Hamano
2025-10-23 20:06         ` Ramsay Jones

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=aOYImjMXcFkdwar5@pks.im \
    --to=ps@pks.im \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=newren@gmail.com \
    --cc=ramsay@ramsayjones.plus.com \
    --cc=stolee@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.
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).