Paul Eggert wrote:
> > Please make sure that a testdir of all of Gnulib still builds:
> >    $ ./gnulib-tool --create-testdir --dir=../testdir-all --with-c++-tests 
> > --without-privileged-tests --single-configure `./all-modules`
> >    $ cd ../testdir-all
> >    $ ./configure
> >    $ make
> >    $ make check
> 
> Thanks for the recipe. Should it be in the Gnulib manual?

The Gnulib manual is for the _users_ of Gnulib. This recipe is for the
_contributors_ / _developers_ of Gnulib, which is why we document it
in the HACKING file.

This recipe takes a couple of minutes. When only one module or a few
modules have changed, a faster recipe can be helpful. Let me document
it as well.


2026-05-09  Bruno Haible  <[email protected]>

        Document another quality assurance recipe.
        * HACKING (Maintaining high quality): Document how to use gnulib-tool
        --create-testdir with --extract-recursive-dependents.

diff --git a/HACKING b/HACKING
index 72c9895c0f..33628eafc0 100644
--- a/HACKING
+++ b/HACKING
@@ -119,7 +119,11 @@ Maintaining high quality
 ========================
 
 It is a good idea to occasionally create a testdir of all of Gnulib:
-  $ rm -rf ../testdir-all; ./gnulib-tool --create-testdir --dir=../testdir-all 
--with-c++-tests --without-privileged-tests `./all-modules`
+
+  $ rm -rf ../testdir-all; \
+    ./gnulib-tool --create-testdir --dir=../testdir-all --with-c++-tests 
--without-privileged-tests \
+                  `./all-modules`
+
 and test this directory on various platforms:
   - Linux/glibc systems,
   - Linux/musl systems,
@@ -165,6 +169,16 @@ There are two continuous integrations that regularly 
perform this testing:
   - Android
   - and other platforms of your choice.
 
+If you want to test changes on a few modules only, say M1 ... Mn, a
+'testdir-all' may be overkill.  For this case, you can create a testdir
+of all potentially affected modules:
+
+  $ rm -rf ../testdir; \
+    ./gnulib-tool --create-testdir --dir=../testdir --with-c++-tests 
--without-privileged-tests \
+                  `./gnulib-tool --extract-recursive-dependents M1 ... Mn`
+
+and then test this directory on various platforms.
+
 
 Coding Style
 ============




Reply via email to