1*49cdfc7eSAndroid Build Coastguard WorkerLTP Release Procedure 2*49cdfc7eSAndroid Build Coastguard Worker===================== 3*49cdfc7eSAndroid Build Coastguard Worker 4*49cdfc7eSAndroid Build Coastguard Worker1. Release preparations 5*49cdfc7eSAndroid Build Coastguard Worker----------------------- 6*49cdfc7eSAndroid Build Coastguard Worker 7*49cdfc7eSAndroid Build Coastguard WorkerThe release procedure generally takes a few weeks. In the first week or two, 8*49cdfc7eSAndroid Build Coastguard Workerpatches that should go into the release are reviewed and possibly merged. These 9*49cdfc7eSAndroid Build Coastguard Workerpatches are either fixes or patches pointed out by the community. 10*49cdfc7eSAndroid Build Coastguard Worker 11*49cdfc7eSAndroid Build Coastguard WorkerPatch review, when finished, is followed by a git freeze, which is a period 12*49cdfc7eSAndroid Build Coastguard Workerwhere only fixes are pushed to the git. During that period community is 13*49cdfc7eSAndroid Build Coastguard Workerexpected to run a LTP pre-release tests, reports problems, and/or send fixes to 14*49cdfc7eSAndroid Build Coastguard Workerthe mailing list. In this period we are especially making sure that there are 15*49cdfc7eSAndroid Build Coastguard Workerno regressions in the test results on a wide range of distributions and 16*49cdfc7eSAndroid Build Coastguard Workerarchitectures. 17*49cdfc7eSAndroid Build Coastguard Worker 18*49cdfc7eSAndroid Build Coastguard WorkerOnce the stabilization period has ended the time has finally come to proceed 19*49cdfc7eSAndroid Build Coastguard Workerwith the release. 20*49cdfc7eSAndroid Build Coastguard Worker 21*49cdfc7eSAndroid Build Coastguard Worker2. Prepare the release notes 22*49cdfc7eSAndroid Build Coastguard Worker---------------------------- 23*49cdfc7eSAndroid Build Coastguard Worker 24*49cdfc7eSAndroid Build Coastguard WorkerPart of the preparation is also to write the release notes, which are then 25*49cdfc7eSAndroid Build Coastguard Workeradded to the GitHub release and also sent as announcement to various mailing 26*49cdfc7eSAndroid Build Coastguard Workerlists (see below). 27*49cdfc7eSAndroid Build Coastguard Worker 28*49cdfc7eSAndroid Build Coastguard WorkerHave a look at https://lore.kernel.org/ltp/ZGNiQ1sMGvPU_ETp@yuki/ to get the 29*49cdfc7eSAndroid Build Coastguard Workeridea how it should look. 30*49cdfc7eSAndroid Build Coastguard Worker 31*49cdfc7eSAndroid Build Coastguard Worker3. Tag the git and push changes to github 32*49cdfc7eSAndroid Build Coastguard Worker----------------------------------------- 33*49cdfc7eSAndroid Build Coastguard Worker 34*49cdfc7eSAndroid Build Coastguard Worker[source,sh] 35*49cdfc7eSAndroid Build Coastguard Worker-------------------------------------------------------------------- 36*49cdfc7eSAndroid Build Coastguard Workercd ltp 37*49cdfc7eSAndroid Build Coastguard Workerecho YYYYMMDD > VERSION 38*49cdfc7eSAndroid Build Coastguard Workergit commit -S -s -m 'LTP YYYYMMDD' VERSION 39*49cdfc7eSAndroid Build Coastguard Workergit tag -s -a YYYYMMDD -m 'LTP YYYYMMDD' 40*49cdfc7eSAndroid Build Coastguard Workergit push origin master:master 41*49cdfc7eSAndroid Build Coastguard Workergit push origin YYYYMMDD 42*49cdfc7eSAndroid Build Coastguard Worker-------------------------------------------------------------------- 43*49cdfc7eSAndroid Build Coastguard Worker 44*49cdfc7eSAndroid Build Coastguard WorkerNOTE: The string `YYYYMMDD` should be substituted to the current date. 45*49cdfc7eSAndroid Build Coastguard Worker 46*49cdfc7eSAndroid Build Coastguard WorkerNOTE: You can use https://github.com/linux-test-project/ltp/blob/master/tools/tag-release.sh[`tools/tag-release.sh`] 47*49cdfc7eSAndroid Build Coastguard Worker script to have the above automated. 48*49cdfc7eSAndroid Build Coastguard Worker It allows you to verify the tag before pushing it and does other checks. 49*49cdfc7eSAndroid Build Coastguard Worker 50*49cdfc7eSAndroid Build Coastguard Worker[source,sh] 51*49cdfc7eSAndroid Build Coastguard Worker-------------------------------------------------------------------- 52*49cdfc7eSAndroid Build Coastguard Worker$ ./tools/tag-release.sh 53*49cdfc7eSAndroid Build Coastguard Worker===== git push ===== 54*49cdfc7eSAndroid Build Coastguard Workernew tag: 'YYYYMMDD', previous tag: '20230127' 55*49cdfc7eSAndroid Build Coastguard Workertag YYYYMMDD 56*49cdfc7eSAndroid Build Coastguard WorkerTagger: Person-who-released LTP <[email protected]> 57*49cdfc7eSAndroid Build Coastguard WorkerDate: ... 58*49cdfc7eSAndroid Build Coastguard Worker 59*49cdfc7eSAndroid Build Coastguard WorkerLTP YYYYMMDD 60*49cdfc7eSAndroid Build Coastguard Worker-----BEGIN PGP SIGNATURE----- 61*49cdfc7eSAndroid Build Coastguard Worker... 62*49cdfc7eSAndroid Build Coastguard Worker-----END PGP SIGNATURE----- 63*49cdfc7eSAndroid Build Coastguard Worker 64*49cdfc7eSAndroid Build Coastguard Workercommit 3ebc2dfa85c2445bb68d8c0d66e33c4da1e1b3a7 65*49cdfc7eSAndroid Build Coastguard Workergpg: using RSA key ... 66*49cdfc7eSAndroid Build Coastguard Worker... 67*49cdfc7eSAndroid Build Coastguard WorkerPrimary key fingerprint: ... 68*49cdfc7eSAndroid Build Coastguard WorkerAuthor: Person-who-released LTP <[email protected]> 69*49cdfc7eSAndroid Build Coastguard WorkerDate: ... 70*49cdfc7eSAndroid Build Coastguard Worker 71*49cdfc7eSAndroid Build Coastguard Worker LTP YYYYMMDD 72*49cdfc7eSAndroid Build Coastguard Worker 73*49cdfc7eSAndroid Build Coastguard Worker Signed-off-by: Person-who-released LTP <[email protected]> 74*49cdfc7eSAndroid Build Coastguard Worker 75*49cdfc7eSAndroid Build Coastguard Workerdiff --git a/VERSION b/VERSION 76*49cdfc7eSAndroid Build Coastguard Workerindex af4c41fec..ae488c0e7 100644 77*49cdfc7eSAndroid Build Coastguard Worker--- a/VERSION 78*49cdfc7eSAndroid Build Coastguard Worker+++ b/VERSION 79*49cdfc7eSAndroid Build Coastguard Worker@@ -1 +1 @@ 80*49cdfc7eSAndroid Build Coastguard Worker-20230127 81*49cdfc7eSAndroid Build Coastguard Worker+YYYYMMDD 82*49cdfc7eSAndroid Build Coastguard Worker 83*49cdfc7eSAndroid Build Coastguard WorkerPlease check tag and signature. Proceed? [N/y]: y 84*49cdfc7eSAndroid Build Coastguard WorkerPushing changes to upstream git. Proceed? [N/y]: y 85*49cdfc7eSAndroid Build Coastguard Worker... 86*49cdfc7eSAndroid Build Coastguard WorkerTo github.com:linux-test-project/ltp.git 87*49cdfc7eSAndroid Build Coastguard Worker * [new tag] YYYYMMDD -> YYYYMMDD 88*49cdfc7eSAndroid Build Coastguard Worker-------------------------------------------------------------------- 89*49cdfc7eSAndroid Build Coastguard Worker 90*49cdfc7eSAndroid Build Coastguard Worker4. Prepare tarballs and metadata documentation 91*49cdfc7eSAndroid Build Coastguard Worker---------------------------------------------- 92*49cdfc7eSAndroid Build Coastguard Worker 93*49cdfc7eSAndroid Build Coastguard Worker[source,sh] 94*49cdfc7eSAndroid Build Coastguard Worker-------------------------------------------------------------------- 95*49cdfc7eSAndroid Build Coastguard Worker# clone already clonned git repository to new folder 96*49cdfc7eSAndroid Build Coastguard Workercd .. 97*49cdfc7eSAndroid Build Coastguard Workergit clone ltp ltp-full-YYYYMMDD 98*49cdfc7eSAndroid Build Coastguard Workercd ltp-full-YYYYMMDD 99*49cdfc7eSAndroid Build Coastguard Worker 100*49cdfc7eSAndroid Build Coastguard Worker# update all submodules 101*49cdfc7eSAndroid Build Coastguard Workergit submodule update --init 102*49cdfc7eSAndroid Build Coastguard Worker 103*49cdfc7eSAndroid Build Coastguard Worker# Generate configure script 104*49cdfc7eSAndroid Build Coastguard Workermake autotools 105*49cdfc7eSAndroid Build Coastguard Worker 106*49cdfc7eSAndroid Build Coastguard Worker# Generate tarballs 107*49cdfc7eSAndroid Build Coastguard Workercd .. 108*49cdfc7eSAndroid Build Coastguard Workertar -cjf ltp-full-YYYYMMDD.tar.bz2 ltp-full-YYYYMMDD --exclude .git 109*49cdfc7eSAndroid Build Coastguard Workertar -cJf ltp-full-YYYYMMDD.tar.xz ltp-full-YYYYMMDD --exclude .git 110*49cdfc7eSAndroid Build Coastguard Worker 111*49cdfc7eSAndroid Build Coastguard Worker# Generate checksums 112*49cdfc7eSAndroid Build Coastguard Workermd5 ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.md5 113*49cdfc7eSAndroid Build Coastguard Workersha1 ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.sha1 114*49cdfc7eSAndroid Build Coastguard Workersha256sum ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.sha256 115*49cdfc7eSAndroid Build Coastguard Worker 116*49cdfc7eSAndroid Build Coastguard Worker# Generate metadata documentation 117*49cdfc7eSAndroid Build Coastguard Worker./configure --with-metadata-generator=asciidoctor 118*49cdfc7eSAndroid Build Coastguard Workermake -C metadata 119*49cdfc7eSAndroid Build Coastguard Workercp -v docparse/metadata.html ../metadata.YYYYMMDD.html 120*49cdfc7eSAndroid Build Coastguard Worker-------------------------------------------------------------------- 121*49cdfc7eSAndroid Build Coastguard Worker 122*49cdfc7eSAndroid Build Coastguard WorkerNOTE: You can use https://github.com/linux-test-project/ltp/blob/master/tools/create-tarballs-metadata.sh[`tools/create-tarballs-metadata.sh`] 123*49cdfc7eSAndroid Build Coastguard Worker script to have the above automated. All generated files are placed in 124*49cdfc7eSAndroid Build Coastguard Worker ltp-release-YYYYMMDD directory. 125*49cdfc7eSAndroid Build Coastguard Worker 126*49cdfc7eSAndroid Build Coastguard Worker[source,sh] 127*49cdfc7eSAndroid Build Coastguard Worker-------------------------------------------------------------------- 128*49cdfc7eSAndroid Build Coastguard Worker$ ./tools/create-tarballs-metadata.sh 129*49cdfc7eSAndroid Build Coastguard Worker===== git clone ===== 130*49cdfc7eSAndroid Build Coastguard WorkerCloning into 'ltp-full-YYYYMMDD'... 131*49cdfc7eSAndroid Build Coastguard Workerdone. 132*49cdfc7eSAndroid Build Coastguard Worker===== Update submodules ===== 133*49cdfc7eSAndroid Build Coastguard WorkerSubmodule 'tools/kirk' (https://github.com/linux-test-project/kirk.git) registered for path 'tools/kirk' 134*49cdfc7eSAndroid Build Coastguard Worker... 135*49cdfc7eSAndroid Build Coastguard Worker===== Generate configure script ===== 136*49cdfc7eSAndroid Build Coastguard Workersed -n '1{s:LTP-:m4_define([LTP_VERSION],[:;s:$:]):;p;q}' VERSION > m4/ltp-version.m4 137*49cdfc7eSAndroid Build Coastguard Workeraclocal -I m4 138*49cdfc7eSAndroid Build Coastguard Worker... 139*49cdfc7eSAndroid Build Coastguard Worker===== Generate tarballs ===== 140*49cdfc7eSAndroid Build Coastguard Worker===== Generate checksums ===== 141*49cdfc7eSAndroid Build Coastguard Worker===== Generate metadata documentation ===== 142*49cdfc7eSAndroid Build Coastguard Workerchecking for a BSD-compatible install... /usr/bin/install -c 143*49cdfc7eSAndroid Build Coastguard Worker... 144*49cdfc7eSAndroid Build Coastguard Worker'docparse/metadata.html' -> '/home/foo/ltp-release-YYYYMMDD/metadata.YYYYMMDD.html' 145*49cdfc7eSAndroid Build Coastguard WorkerGenerated files are in '/home/foo/ltp-release-YYYYMMDD', upload them to github 146*49cdfc7eSAndroid Build Coastguard Worker-------------------------------------------------------------------- 147*49cdfc7eSAndroid Build Coastguard Worker 148*49cdfc7eSAndroid Build Coastguard Worker5. Upload the generated files to GitHub 149*49cdfc7eSAndroid Build Coastguard Worker--------------------------------------- 150*49cdfc7eSAndroid Build Coastguard Worker 151*49cdfc7eSAndroid Build Coastguard WorkerClick on https://github.com/linux-test-project/ltp/releases['Releases'], then 152*49cdfc7eSAndroid Build Coastguard Workerswitch to https://github.com/linux-test-project/ltp/tags['Tags'], then click on 153*49cdfc7eSAndroid Build Coastguard Worker'Add release notes'. There should be 'Attach binaries ...' link at the 154*49cdfc7eSAndroid Build Coastguard Workerbottom of the page. 155*49cdfc7eSAndroid Build Coastguard Worker 156*49cdfc7eSAndroid Build Coastguard WorkerDon't forget to upload checksums for the tarballs and metadata documentation as well. 157*49cdfc7eSAndroid Build Coastguard Worker 158*49cdfc7eSAndroid Build Coastguard Worker5. Send 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