From 32929d2ac4b8b093e3dcf7a3f52c5c99858244b2 Mon Sep 17 00:00:00 2001 From: Thien-Thi Nguyen Date: Mon, 6 Jun 2022 09:44:58 -0400 Subject: Add subsection "What to put in bootstrap" to developer manual This describes the general bootstrap flow, and furthermore describes the exchange.git/src/include/taler_signatures.h generation process. --- taler-developer-manual.rst | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'taler-developer-manual.rst') diff --git a/taler-developer-manual.rst b/taler-developer-manual.rst index b7f2ac4e..c4870c2c 100644 --- a/taler-developer-manual.rst +++ b/taler-developer-manual.rst @@ -149,6 +149,47 @@ all developers should probably subscribe to the low-volume Taler mailinglist. There are separate low-volume mailinglists for gnunet-developers (@gnu.org) and for libmicrohttpd (@gnu.org). +What to put in bootstrap +------------------------ + +Each repository has a ``bootstrap`` script, which contains commands for the +developer to run after a repository checkout (i.e., after ``git clone`` or +``git pull``). +Typically, this updates and initializes submodules, prepares the tool chain, +and runs ``autoreconf``. +The last step generates the ``configure`` script, whether for immediate use or +for inclusion in the distribution tarball. + +One common submodule is ``contrib/gana``, which pulls from the +`GNUnet GANA repository https://git.gnunet.org/gana.git/`_. +For example, in the +`Taler exchange repository https://git.taler.net/exchange.git`_, +the bootstrap script eventually runs the ``git submodule update`` command +early on, and later runs script ``./contrib/gana.sh``, which in turn +runs script ``./contrib/gana-update.sh``, which performs various tasks, +such as generating the file ``src/include/taler_signatures.h``. + +Thus, to update that file, you need to: + +- (in GANA repo) Find a suitable (unused) name and number for the Signature + Purposes database. + +- Add it to GANA, in ``gnunet-signatures/registry.rec``. + (You can check for uniqueness with the ``recfix`` utility.) + +- Commit the change, and push it to the GANA Git repo. + +- (in Taler Repo) Change directory to ``contrib/gana`` and run + command ``git pull`` there. + +- Bootstrap, configure, do ``make install``, ``make check``, etc. + (Basically, make sure the change does not break anything.) + +- Commit the submodule change, and push it to the Taler exchange Git repo. + +A similiar procedure is required for other databases in GANA. +See file ``README`` in the various directories for specific instructions. + Debian and Ubuntu Repositories ============================== -- cgit v1.2.3