1*49cdfc7eSAndroid Build Coastguard Worker.. SPDX-License-Identifier: GPL-2.0-or-later 2*49cdfc7eSAndroid Build Coastguard Worker 3*49cdfc7eSAndroid Build Coastguard WorkerRelease process 4*49cdfc7eSAndroid Build Coastguard Worker=============== 5*49cdfc7eSAndroid Build Coastguard Worker 6*49cdfc7eSAndroid Build Coastguard WorkerPreparations 7*49cdfc7eSAndroid Build Coastguard Worker------------ 8*49cdfc7eSAndroid Build Coastguard Worker 9*49cdfc7eSAndroid Build Coastguard WorkerThe release procedure generally takes a few weeks. In the first week or two, 10*49cdfc7eSAndroid Build Coastguard Workerpatches that should go into the release are reviewed and possibly merged. These 11*49cdfc7eSAndroid Build Coastguard Workerpatches are either fixes or patches pointed out by the community. 12*49cdfc7eSAndroid Build Coastguard Worker 13*49cdfc7eSAndroid Build Coastguard WorkerPatch review, when finished, is followed by a git freeze, which is a period 14*49cdfc7eSAndroid Build Coastguard Workerwhere only fixes are pushed to the git. During that period community is 15*49cdfc7eSAndroid Build Coastguard Workerexpected to run a LTP pre-release tests, reports problems, and/or send fixes to 16*49cdfc7eSAndroid Build Coastguard Workerthe mailing list. In this period we are especially making sure that there are 17*49cdfc7eSAndroid Build Coastguard Workerno regressions in the test results on a wide range of distributions and 18*49cdfc7eSAndroid Build Coastguard Workerarchitectures. 19*49cdfc7eSAndroid Build Coastguard Worker 20*49cdfc7eSAndroid Build Coastguard WorkerOnce the stabilization period has ended the time has finally come to proceed 21*49cdfc7eSAndroid Build Coastguard Workerwith the release. 22*49cdfc7eSAndroid Build Coastguard Worker 23*49cdfc7eSAndroid Build Coastguard WorkerPrepare the release notes 24*49cdfc7eSAndroid Build Coastguard Worker------------------------- 25*49cdfc7eSAndroid Build Coastguard Worker 26*49cdfc7eSAndroid Build Coastguard WorkerPart of the preparation is also to write the release notes, which are then 27*49cdfc7eSAndroid Build Coastguard Workeradded to the GitHub release and also sent as announcement to various mailing 28*49cdfc7eSAndroid Build Coastguard Workerlists (see below). 29*49cdfc7eSAndroid Build Coastguard Worker 30*49cdfc7eSAndroid Build Coastguard WorkerHave a look at `this release letter <https://lore.kernel.org/ltp/ZGNiQ1sMGvPU_ETp@yuki/>`_ 31*49cdfc7eSAndroid Build Coastguard Workerto get the idea how it should look. 32*49cdfc7eSAndroid Build Coastguard Worker 33*49cdfc7eSAndroid Build Coastguard WorkerTag the git and push changes to github 34*49cdfc7eSAndroid Build Coastguard Worker-------------------------------------- 35*49cdfc7eSAndroid Build Coastguard Worker 36*49cdfc7eSAndroid Build Coastguard Worker.. code-block:: bash 37*49cdfc7eSAndroid Build Coastguard Worker 38*49cdfc7eSAndroid Build Coastguard Worker cd ltp 39*49cdfc7eSAndroid Build Coastguard Worker echo YYYYMMDD > VERSION 40*49cdfc7eSAndroid Build Coastguard Worker git commit -S -s -m 'LTP YYYYMMDD' VERSION 41*49cdfc7eSAndroid Build Coastguard Worker git tag -s -a YYYYMMDD -m 'LTP YYYYMMDD' 42*49cdfc7eSAndroid Build Coastguard Worker git push origin master:master 43*49cdfc7eSAndroid Build Coastguard Worker git push origin YYYYMMDD 44*49cdfc7eSAndroid Build Coastguard Worker 45*49cdfc7eSAndroid Build Coastguard WorkerThe string ``YYYYMMDD`` should be substituted to the current date. 46*49cdfc7eSAndroid Build Coastguard Worker 47*49cdfc7eSAndroid Build Coastguard WorkerYou can use :master:`tools/tag-release.sh` script to have the above automated 48*49cdfc7eSAndroid Build Coastguard Workerprocess. It allows you to verify the tag before pushing it and does other 49*49cdfc7eSAndroid Build Coastguard Workerchecks. 50*49cdfc7eSAndroid Build Coastguard Worker 51*49cdfc7eSAndroid Build Coastguard Worker.. code-block:: bash 52*49cdfc7eSAndroid Build Coastguard Worker 53*49cdfc7eSAndroid Build Coastguard Worker $ ./tools/tag-release.sh 54*49cdfc7eSAndroid Build Coastguard Worker ===== git push ===== 55*49cdfc7eSAndroid Build Coastguard Worker new tag: 'YYYYMMDD', previous tag: '20230127' 56*49cdfc7eSAndroid Build Coastguard Worker tag YYYYMMDD 57*49cdfc7eSAndroid Build Coastguard Worker Tagger: Person-who-released LTP <[email protected]> 58*49cdfc7eSAndroid Build Coastguard Worker Date: ... 59*49cdfc7eSAndroid Build Coastguard Worker 60*49cdfc7eSAndroid Build Coastguard Worker LTP YYYYMMDD 61*49cdfc7eSAndroid Build Coastguard Worker -----BEGIN PGP SIGNATURE----- 62*49cdfc7eSAndroid Build Coastguard Worker ... 63*49cdfc7eSAndroid Build Coastguard Worker -----END PGP SIGNATURE----- 64*49cdfc7eSAndroid Build Coastguard Worker 65*49cdfc7eSAndroid Build Coastguard Worker commit 3ebc2dfa85c2445bb68d8c0d66e33c4da1e1b3a7 66*49cdfc7eSAndroid Build Coastguard Worker gpg: using RSA key ... 67*49cdfc7eSAndroid Build Coastguard Worker ... 68*49cdfc7eSAndroid Build Coastguard Worker Primary key fingerprint: ... 69*49cdfc7eSAndroid Build Coastguard Worker Author: Person-who-released LTP <[email protected]> 70*49cdfc7eSAndroid Build Coastguard Worker Date: ... 71*49cdfc7eSAndroid Build Coastguard Worker 72*49cdfc7eSAndroid Build Coastguard Worker LTP YYYYMMDD 73*49cdfc7eSAndroid Build Coastguard Worker 74*49cdfc7eSAndroid Build Coastguard Worker Signed-off-by: Person-who-released LTP <[email protected]> 75*49cdfc7eSAndroid Build Coastguard Worker 76*49cdfc7eSAndroid Build Coastguard Worker diff --git a/VERSION b/VERSION 77*49cdfc7eSAndroid Build Coastguard Worker index af4c41fec..ae488c0e7 100644 78*49cdfc7eSAndroid Build Coastguard Worker --- a/VERSION 79*49cdfc7eSAndroid Build Coastguard Worker +++ b/VERSION 80*49cdfc7eSAndroid Build Coastguard Worker @@ -1 +1 @@ 81*49cdfc7eSAndroid Build Coastguard Worker -20230127 82*49cdfc7eSAndroid Build Coastguard Worker +YYYYMMDD 83*49cdfc7eSAndroid Build Coastguard Worker 84*49cdfc7eSAndroid Build Coastguard Worker Please check tag and signature. Proceed? [N/y]: y 85*49cdfc7eSAndroid Build Coastguard Worker Pushing changes to upstream git. Proceed? [N/y]: y 86*49cdfc7eSAndroid Build Coastguard Worker ... 87*49cdfc7eSAndroid Build Coastguard Worker To github.com:linux-test-project/ltp.git 88*49cdfc7eSAndroid Build Coastguard Worker * [new tag] YYYYMMDD -> YYYYMMDD 89*49cdfc7eSAndroid Build Coastguard Worker 90*49cdfc7eSAndroid Build Coastguard WorkerPrepare tarballs and metadata documentation 91*49cdfc7eSAndroid Build Coastguard Worker------------------------------------------- 92*49cdfc7eSAndroid Build Coastguard Worker 93*49cdfc7eSAndroid Build Coastguard WorkerThe following procedure will show how to create the release archives and the 94*49cdfc7eSAndroid Build Coastguard Workermetadata documentation: 95*49cdfc7eSAndroid Build Coastguard Worker 96*49cdfc7eSAndroid Build Coastguard Worker.. code-block:: bash 97*49cdfc7eSAndroid Build Coastguard Worker 98*49cdfc7eSAndroid Build Coastguard Worker # clone already clonned git repository to new folder 99*49cdfc7eSAndroid Build Coastguard Worker cd .. 100*49cdfc7eSAndroid Build Coastguard Worker git clone ltp ltp-full-YYYYMMDD 101*49cdfc7eSAndroid Build Coastguard Worker cd ltp-full-YYYYMMDD 102*49cdfc7eSAndroid Build Coastguard Worker 103*49cdfc7eSAndroid Build Coastguard Worker # update all submodules 104*49cdfc7eSAndroid Build Coastguard Worker git submodule update --init 105*49cdfc7eSAndroid Build Coastguard Worker 106*49cdfc7eSAndroid Build Coastguard Worker # Generate configure script 107*49cdfc7eSAndroid Build Coastguard Worker make autotools 108*49cdfc7eSAndroid Build Coastguard Worker 109*49cdfc7eSAndroid Build Coastguard Worker # Generate tarballs 110*49cdfc7eSAndroid Build Coastguard Worker cd .. 111*49cdfc7eSAndroid Build Coastguard Worker tar -cjf ltp-full-YYYYMMDD.tar.bz2 ltp-full-YYYYMMDD --exclude .git 112*49cdfc7eSAndroid Build Coastguard Worker tar -cJf ltp-full-YYYYMMDD.tar.xz ltp-full-YYYYMMDD --exclude .git 113*49cdfc7eSAndroid Build Coastguard Worker 114*49cdfc7eSAndroid Build Coastguard Worker # Generate checksums 115*49cdfc7eSAndroid Build Coastguard Worker md5 ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.md5 116*49cdfc7eSAndroid Build Coastguard Worker sha1 ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.sha1 117*49cdfc7eSAndroid Build Coastguard Worker sha256sum ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.sha256 118*49cdfc7eSAndroid Build Coastguard Worker 119*49cdfc7eSAndroid Build Coastguard Worker # Generate metadata documentation 120*49cdfc7eSAndroid Build Coastguard Worker ./configure --with-metadata-generator=asciidoctor 121*49cdfc7eSAndroid Build Coastguard Worker make -C metadata 122*49cdfc7eSAndroid Build Coastguard Worker cp -v docparse/metadata.html ../metadata.YYYYMMDD.html 123*49cdfc7eSAndroid Build Coastguard Worker 124*49cdfc7eSAndroid Build Coastguard WorkerYou can use :master:`tools/create-tarballs-metadata.sh` script to have the above 125*49cdfc7eSAndroid Build Coastguard Workerprocedure automated. All generated files are placed in the 126*49cdfc7eSAndroid Build Coastguard Worker``ltp-release-YYYYMMDD`` directory. 127*49cdfc7eSAndroid Build Coastguard Worker 128*49cdfc7eSAndroid Build Coastguard Worker.. code-block:: bash 129*49cdfc7eSAndroid Build Coastguard Worker 130*49cdfc7eSAndroid Build Coastguard Worker $ ./tools/create-tarballs-metadata.sh 131*49cdfc7eSAndroid Build Coastguard Worker ===== git clone ===== 132*49cdfc7eSAndroid Build Coastguard Worker Cloning into 'ltp-full-YYYYMMDD'... 133*49cdfc7eSAndroid Build Coastguard Worker done. 134*49cdfc7eSAndroid Build Coastguard Worker ===== Update submodules ===== 135*49cdfc7eSAndroid Build Coastguard Worker Submodule 'tools/kirk' (https://github.com/linux-test-project/kirk.git) registered for path 'tools/kirk' 136*49cdfc7eSAndroid Build Coastguard Worker ... 137*49cdfc7eSAndroid Build Coastguard Worker ===== Generate configure script ===== 138*49cdfc7eSAndroid Build Coastguard Worker sed -n '1{s:LTP-:m4_define([LTP_VERSION],[:;s:$:]):;p;q}' VERSION > m4/ltp-version.m4 139*49cdfc7eSAndroid Build Coastguard Worker aclocal -I m4 140*49cdfc7eSAndroid Build Coastguard Worker ... 141*49cdfc7eSAndroid Build Coastguard Worker ===== Generate tarballs ===== 142*49cdfc7eSAndroid Build Coastguard Worker ===== Generate checksums ===== 143*49cdfc7eSAndroid Build Coastguard Worker ===== Generate metadata documentation ===== 144*49cdfc7eSAndroid Build Coastguard Worker checking for a BSD-compatible install... /usr/bin/install -c 145*49cdfc7eSAndroid Build Coastguard Worker ... 146*49cdfc7eSAndroid Build Coastguard Worker 'docparse/metadata.html' -> '/home/foo/ltp-release-YYYYMMDD/metadata.YYYYMMDD.html' 147*49cdfc7eSAndroid Build Coastguard Worker Generated files are in '/home/foo/ltp-release-YYYYMMDD', upload them to github 148*49cdfc7eSAndroid Build Coastguard Worker 149*49cdfc7eSAndroid Build Coastguard WorkerUpload the generated files to GitHub 150*49cdfc7eSAndroid Build Coastguard Worker------------------------------------ 151*49cdfc7eSAndroid Build Coastguard Worker 152*49cdfc7eSAndroid Build Coastguard WorkerGo to :repo:`tags`. Click on ``Add release notes``. 153*49cdfc7eSAndroid Build Coastguard WorkerThere should be ``Attach binaries ...`` link at the bottom of the page. 154*49cdfc7eSAndroid Build Coastguard Worker 155*49cdfc7eSAndroid Build Coastguard WorkerDon't forget to upload checksums for the tarballs and metadata documentation 156*49cdfc7eSAndroid Build Coastguard Workeras well. 157*49cdfc7eSAndroid Build Coastguard Worker 158*49cdfc7eSAndroid Build Coastguard WorkerSend release announcement 159*49cdfc7eSAndroid Build Coastguard Worker------------------------- 160*49cdfc7eSAndroid Build Coastguard Worker 161*49cdfc7eSAndroid Build Coastguard WorkerThe announcement is sent to: 162*49cdfc7eSAndroid Build Coastguard Worker 163*49cdfc7eSAndroid Build Coastguard Worker* ltp at lists.linux.it 164*49cdfc7eSAndroid Build Coastguard Worker* linux-kernel at vger.kernel.org 165*49cdfc7eSAndroid Build Coastguard Worker* libc-alpha at sourceware.org 166*49cdfc7eSAndroid Build Coastguard Worker 167*49cdfc7eSAndroid Build Coastguard WorkerCCed to: 168*49cdfc7eSAndroid Build Coastguard Worker 169*49cdfc7eSAndroid Build Coastguard Worker* lwn at lwn.net 170*49cdfc7eSAndroid Build Coastguard Worker* akpm at linux-foundation.org 171*49cdfc7eSAndroid Build Coastguard Worker* torvalds at linux-foundation.org 172