GNU Astronomy Utilities


Previous: , Up: Version controlled source   [Contents][Index]


3.2.2.2 Synchronizing

The bootstrapping script (see Bootstrapping) is not regularly needed: you mainly need it after you have cloned Gnuastro (once) and whenever you want to re-import the files from Gnulib, or Autoconf archives34 (not too common). However, Gnuastro developers are constantly working on Gnuastro and are pushing their changes to the official repository. Therefore, your local Gnuastro clone will soon be out-dated. Gnuastro has two mailing lists dedicated to its developing activities (see Developing mailing lists). Subscribing to them can help you decide when to synchronize with the official repository.

To pull all the most recent work in Gnuastro, run the following command from the top Gnuastro directory:

$ git pull && autoconf -f

GNU Autoconf is part of the GNU build system and will update the ./configure script based on the hand-written configurations (in configure.ac, which is version controlled in Gnuastro). The pulled changes might contain changes in the build system configurations. However, The most important reason for running this command is to generate a version number for your Gnuastro snapshot. This generated version number will include the commit information if you are building Gnuastro from any point in Gnuastro’s history (see Version numbering). Since the version number is included in nearly all outputs of the programs, this can help you later exactly reproduce an old result by checking out the exact point in Gnuastro’s history that produced those results. Therefore, be sure to run ‘autoconf -f’ after every synchronization. You can also run them separately:

$ git pull
$ autoconf -f

If you would like to see what has changed since you last synchronized your local clone, you can take the following steps instead of the simple command above (don’t type anything after #):

$ git checkout master             # Confirm if you are on master.
$ git fetch origin                # Fetch all new commits from server.
$ git log master..origin/master   # See all the new commit messages.
$ git merge origin/master         # Update your master branch.
$ autoconf -f                     # Update ./configure.

By default git log prints the most recent commit first, add the --reverse option to see the changes chronologically. To see exactly what has been changed in the source code along with the commit message, add a -p option to the git log.

If you intend make changes in the code, have a look at Developing to get started easily. Be sure to commit your changes in a separate branch (keep your master branch to follow the official repository) and re-run autoconf -f after the commit. If you intend to send your changes to us (see Contributing to Gnuastro) for the benefit of the whole community. If you send your work to us, you can safely use your commit since it will be ultimately recorded in Gnuastro’s official history. If not, please upload your separate branch to a public hosting service (for example GitLab, see Forking tutorial) and link to it in your report, or run make distcheck and upload the output gnuastro-X.X.X.XXXX.tar.gz to a publicly accessible webpage so your results can be considered scientific (reproducible).


Footnotes

(34)

https://savannah.gnu.org/task/index.php?13993 is defined for you to check if significant (for Gnuastro) updates are made in these repositories, since the last time you pulled from them.


Previous: , Up: Version controlled source   [Contents][Index]