]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Introduce new "tools/" directory
authorPatrick Steinhardt <ps@pks.im>
Thu, 19 Mar 2026 05:33:20 +0000 (06:33 +0100)
committerJunio C Hamano <gitster@pobox.com>
Thu, 19 Mar 2026 13:40:08 +0000 (06:40 -0700)
According to its readme, the "contrib/" directory's main intent is to
collect stuff that is not an official part of Git, either because it is
too specialized or because it is still considered experimental. The
reality tells a bit of a different story though: while it _does_ contain
such things, it also contains other things:

  - Our credential helpers, which are being distributed by many
    packagers nowadays and which can be considered "stable".

  - A bunch of tooling that relates to our build and test
    infrastructure.

Especially the second category is somewhat of a sore spot. You really
wouldn't expect build-related tooling to be considered an optional part
of Git. Quite the opposite.

Create a new top-level "tools/" directory to fix this discrepancy. This
directory will contain all kind of tools that are related to our build
infrastructure and that Git developers are likely to use day to day.

For now, this directory doesn't contain anything yet except for a
readme and a Meson skeleton. This will change in subsequent commits.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Makefile
meson.build
tools/README.md [new file with mode: 0644]
tools/meson.build [new file with mode: 0644]

index f3264d0a37cc5067f99f0bf1db8f2f716560dae3..c7cedbcd7cc31c855409f65d2468daab4a0d325b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1066,11 +1066,13 @@ SOURCES_CMD = ( \
                '*.sh' \
                ':!*[tp][0-9][0-9][0-9][0-9]*' \
                ':!contrib' \
+               ':!tools' \
                2>/dev/null || \
        $(FIND) . \
                \( -name .git -type d -prune \) \
                -o \( -name '[tp][0-9][0-9][0-9][0-9]*' -prune \) \
                -o \( -name contrib -type d -prune \) \
+               -o \( -name tools -type d -prune \) \
                -o \( -name build -type d -prune \) \
                -o \( -name .build -type d -prune \) \
                -o \( -name 'trash*' -type d -prune \) \
index 4b536e012481ca1a2fbf6ef42dbf2bba07292c7e..1d66b5181e97b62889c87a216618cbe5ae75a780 100644 (file)
@@ -2149,6 +2149,7 @@ else
 endif
 
 subdir('contrib')
+subdir('tools')
 
 # Note that the target is intentionally configured after including the
 # 'contrib' directory, as some tool there also have their own manpages.
diff --git a/tools/README.md b/tools/README.md
new file mode 100644 (file)
index 0000000..d732997
--- /dev/null
@@ -0,0 +1,7 @@
+Developer Tooling
+-----------------
+
+This directory is expected to contain all sorts of tooling that
+relates to our build infrastructure. This includes scripts and
+inputs required by our build systems, but also scripts that
+developers are expected to run manually.
diff --git a/tools/meson.build b/tools/meson.build
new file mode 100644 (file)
index 0000000..e69de29