gnunet-handbook

The GNUnet Handbook
Log | Files | Refs

commit 01aa3ce5ce77ca06ab4657f2e58903f42bedec2d
parent 57e146d7f375860cc3e12ae127c90c215e343a2f
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date:   Thu, 29 Aug 2024 12:45:15 +0200

add release guidelines

Diffstat:
Mdevelopers/style.rst | 92+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 92 insertions(+), 0 deletions(-)

diff --git a/developers/style.rst b/developers/style.rst @@ -451,3 +451,95 @@ In general, you may want to follow the rule \"commit often, push tidy\": You can create smaller, succinct commits with limited meaning on the commit messages. In the end and before you push or merge your branch, you can then squash the commits or rename them. + + +Releases +======== + +In order to make a release, first we make sure that the tests pass for +autotools and meson in a non-experimental gnunet build: + +.. code-block:: console + + $ make check -k + $ meson test --maxfail 0 --print-errorlogs + +If the tests pass we may put the finishing touches on the source tree. +First, make sure the ``contrib/gana`` and ``contrib/handbook`` submodules +are up to date by entering the respective directory and execute: + +.. code-block:: console + + $ git pull origin master + +If any of the submodules was updated, commit the new submodule. + +Then, in order to pre-populate the news file with news hints +from commit messages (see above), we execute + +.. code-block:: console + + $ sh contrib/scripts/update_news.sh v0.22.0 + +``v0.22.0`` is the placeholder for the version number you want to release. +Now edit the ``NEWS`` file to include all the noteworthy changes +you want to add and commit the file. + +You can now tag the release and build the tarball. +Please use named tags. +Then, we can run bootstrap again and make the tarball: + +.. code-block:: console + + $ git tag v0.22.0 -m "GNUnet release v0.22.0" + $ ./bootstrap && make dist + +For meson you may run: + +.. code-block:: console + + $ meson dist --no-tests --formats gztar --allow-dirty + +To distribute the tarballs create a release triplet from the +output of ``make dist`` as defined in the GNU guidelines and +upload them to the FTP (Maintainers only: https://www.gnu.org/prep//maintain/html_node/Automated-FTP-Uploads.html). +For the meson tarball, rename it to ``gnunet-0.22.0-meson.tar.gz``. +This file will also have to signed by a maintainer and uploaded to +https://buildbot.gnunet.org/releases/. + +After the tarballs are uploaded, we need to write the announcement. +For minor releases, we only write a brief statement: + +.. code-block:: text + + See also: https://www.gnunet.org/en/news/2024-06-0.21.2.html + + This is a bugfix release for gnunet 0.21.1. It primarily addresses some + connectivity issues introduced with our new transport subsystem. + + Links + + Source: https://ftpmirror.gnu.org/gnunet/gnunet-0.21.2.tar.gz +(https://ftpmirror.gnu.org/gnunet/gnunet-0.21.2.tar.gz.sig) + Source (meson): +https://buildbot.gnunet.org/gnunet-0.21.2-meson.tar.gz +(https://buildbot.gnunet.org/gnunet-0.21.2-meson.tar.gz.sig) + Detailed list of changes: +https://git.gnunet.org/gnunet.git/log/?h=v0.21.2 + NEWS: https://git.gnunet.org/gnunet.git/tree/NEWS?h=v0.21.2 + The list of closed issues in the bug tracker: +https://bugs.gnunet.org/changelog_page.php?version_id=440 + + The GPG key used to sign is: 3D11063C10F98D14BD24D1470B0998EF86F59B6A + + Note that due to mirror synchronization, not all links may be + functional early after the release. For direct access try + https://ftp.gnu.org/gnu/gnunet/ + +The announcement is posted to ``gnunet-developers@gnu.org`` as well as +``help-gnunet@gnu.org``. + +For major releases, we use a full release announcement. +You can find the template in the ``www.git``. +The full release announcement is sent to +``info-gnu@gnu.org`` as well.