diff mbox series

[05/10] Refactor LTP release procedure documentation

Message ID 20240320-new_website-v1-5-79b603c8aea1@suse.com
State Superseded
Headers show
Series New LTP documentation | expand

Commit Message

Andrea Cervesato March 20, 2024, 4:20 p.m. UTC
From: Andrea Cervesato <andrea.cervesato@suse.com>

The LTP release procedure documentation has been rewritten using the RST
format and some typo errors have been fixed.
---
 doc_new/maintainers/ltp_release_procedure.rst | 169 ++++++++++++++++++++++++++
 1 file changed, 169 insertions(+)
diff mbox series

Patch

diff --git a/doc_new/maintainers/ltp_release_procedure.rst b/doc_new/maintainers/ltp_release_procedure.rst
index 808ff2211..f0bc01cee 100644
--- a/doc_new/maintainers/ltp_release_procedure.rst
+++ b/doc_new/maintainers/ltp_release_procedure.rst
@@ -2,3 +2,172 @@ 
 
 Release process
 ===============
+
+Preparations
+------------
+
+The release procedure generally takes a few weeks. In the first week or two,
+patches that should go into the release are reviewed and possibly merged. These
+patches are either fixes or patches pointed out by the community.
+
+Patch review, when finished, is followed by a git freeze, which is a period
+where only fixes are pushed to the git. During that period community is
+expected to run a LTP pre-release tests, reports problems, and/or send fixes to
+the mailing list. In this period we are especially making sure that there are
+no regressions in the test results on a wide range of distributions and
+architectures.
+
+Once the stabilization period has ended the time has finally come to proceed
+with the release.
+
+Prepare the release notes
+-------------------------
+
+Part of the preparation is also to write the release notes, which are then
+added to the GitHub release and also sent as announcement to various mailing
+lists (see below).
+
+Have a look at `this release letter <https://lore.kernel.org/ltp/ZGNiQ1sMGvPU_ETp@yuki/>`_
+to get the idea how it should look.
+
+Tag the git and push changes to github
+--------------------------------------
+
+.. code-block:: bash
+
+    cd ltp
+    echo YYYYMMDD > VERSION
+    git commit -S -s -m 'LTP YYYYMMDD' VERSION
+    git tag -s -a YYYYMMDD -m 'LTP YYYYMMDD'
+    git push origin master:master
+    git push origin YYYYMMDD
+
+The string ``YYYYMMDD`` should be substituted to the current date.
+
+You can use `tools/tag-release.sh <https://github.com/linux-test-project/ltp/blob/master/tools/tag-release.sh>`_
+script to have the above automated process.
+It allows you to verify the tag before pushing it and does other checks.
+
+.. code-block:: bash
+
+    $ ./tools/tag-release.sh
+    ===== git push =====
+    new tag: 'YYYYMMDD', previous tag: '20230127'
+    tag YYYYMMDD
+    Tagger: Person-who-released LTP <foo@example.com>
+    Date:   ...
+
+    LTP YYYYMMDD
+    -----BEGIN PGP SIGNATURE-----
+    ...
+    -----END PGP SIGNATURE-----
+
+    commit 3ebc2dfa85c2445bb68d8c0d66e33c4da1e1b3a7
+    gpg:                using RSA key ...
+    ...
+    Primary key fingerprint: ...
+    Author: Person-who-released LTP <foo@example.com>
+    Date:   ...
+
+        LTP YYYYMMDD
+
+        Signed-off-by: Person-who-released LTP <foo@example.com>
+
+    diff --git a/VERSION b/VERSION
+    index af4c41fec..ae488c0e7 100644
+    --- a/VERSION
+    +++ b/VERSION
+    @@ -1 +1 @@
+    -20230127
+    +YYYYMMDD
+
+    Please check tag and signature. Proceed? [N/y]: y
+    Pushing changes to upstream git. Proceed? [N/y]: y
+    ...
+    To github.com:linux-test-project/ltp.git
+     * [new tag]             YYYYMMDD -> YYYYMMDD
+
+Prepare tarballs and metadata documentation
+-------------------------------------------
+
+The following procedure will show how to create the release archives and the
+metadata documentation:
+
+.. code-block:: bash
+
+    # clone already clonned git repository to new folder
+    cd ..
+    git clone ltp ltp-full-YYYYMMDD
+    cd ltp-full-YYYYMMDD
+
+    # update all submodules
+    git submodule update --init
+
+    # Generate configure script
+    make autotools
+
+    # Generate tarballs
+    cd ..
+    tar -cjf ltp-full-YYYYMMDD.tar.bz2 ltp-full-YYYYMMDD --exclude .git
+    tar -cJf ltp-full-YYYYMMDD.tar.xz ltp-full-YYYYMMDD --exclude .git
+
+    # Generate checksums
+    md5 ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.md5
+    sha1 ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.sha1
+    sha256sum ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.sha256
+
+    # Generate metadata documentation
+    ./configure --with-metadata-generator=asciidoctor
+    make -C metadata
+    cp -v docparse/metadata.html ../metadata.YYYYMMDD.html
+
+You can use `tools/create-tarballs-metadata.sh <https://github.com/linux-test-project/ltp/blob/master/tools/create-tarballs-metadata.sh>`_
+script to have the above procedure automated. All generated files are placed
+in the ``ltp-release-YYYYMMDD`` directory.
+
+.. code-block:: bash
+
+    $ ./tools/create-tarballs-metadata.sh
+    ===== git clone =====
+    Cloning into 'ltp-full-YYYYMMDD'...
+    done.
+    ===== Update submodules =====
+    Submodule 'tools/kirk' (https://github.com/linux-test-project/kirk.git) registered for path 'tools/kirk'
+    ...
+    ===== Generate configure script =====
+    sed -n '1{s:LTP-:m4_define([LTP_VERSION],[:;s:$:]):;p;q}' VERSION > m4/ltp-version.m4
+    aclocal -I m4
+    ...
+    ===== Generate tarballs =====
+    ===== Generate checksums =====
+    ===== Generate metadata documentation =====
+    checking for a BSD-compatible install... /usr/bin/install -c
+    ...
+    'docparse/metadata.html' -> '/home/foo/ltp-release-YYYYMMDD/metadata.YYYYMMDD.html'
+    Generated files are in '/home/foo/ltp-release-YYYYMMDD', upload them to github
+
+Upload the generated files to GitHub
+------------------------------------
+
+Click on `Releases <https://github.com/linux-test-project/ltp/releases>`_, then
+switch to `Tags <https://github.com/linux-test-project/ltp/tags>`_. Click on
+'Add release notes'.  There should be 'Attach binaries ...' link at the
+bottom of the page.
+
+Don't forget to upload checksums for the tarballs and metadata documentation
+as well.
+
+Send release announcement
+-------------------------
+
+The announcement is sent to:
+
+* ltp at lists.linux.it
+* linux-kernel at vger.kernel.org
+* libc-alpha at sourceware.org
+
+CCed to:
+
+* lwn at lwn.net
+* akpm at linux-foundation.org
+* torvalds at linux-foundation.org