1f08c3bdfSopenharmony_ciLTP Release Procedure 2f08c3bdfSopenharmony_ci===================== 3f08c3bdfSopenharmony_ci 4f08c3bdfSopenharmony_ci1. Release preparations 5f08c3bdfSopenharmony_ci----------------------- 6f08c3bdfSopenharmony_ci 7f08c3bdfSopenharmony_ciThe release procedure generally takes a few weeks. In the first week or two, 8f08c3bdfSopenharmony_cipatches that should go into the release are reviewed and possibly merged. These 9f08c3bdfSopenharmony_cipatches are either fixes or patches pointed out by the community. 10f08c3bdfSopenharmony_ci 11f08c3bdfSopenharmony_ciPatch review, when finished, is followed by a git freeze, which is a period 12f08c3bdfSopenharmony_ciwhere only fixes are pushed to the git. During that period community is 13f08c3bdfSopenharmony_ciexpected to run a LTP pre-release tests, reports problems, and/or send fixes to 14f08c3bdfSopenharmony_cithe mailing list. In this period we are especially making sure that there are 15f08c3bdfSopenharmony_cino regressions in the test results on a wide range of distributions and 16f08c3bdfSopenharmony_ciarchitectures. 17f08c3bdfSopenharmony_ci 18f08c3bdfSopenharmony_ciOnce the stabilization period has ended the time has finally come to proceed 19f08c3bdfSopenharmony_ciwith the release. 20f08c3bdfSopenharmony_ci 21f08c3bdfSopenharmony_ci2. Prepare the release notes 22f08c3bdfSopenharmony_ci---------------------------- 23f08c3bdfSopenharmony_ci 24f08c3bdfSopenharmony_ciPart of the preparation is also to write the release notes, which are then 25f08c3bdfSopenharmony_ciadded to the GitHub release and also sent as announcement to various mailing 26f08c3bdfSopenharmony_cilists (see below). 27f08c3bdfSopenharmony_ci 28f08c3bdfSopenharmony_ciHave a look at https://lore.kernel.org/ltp/ZGNiQ1sMGvPU_ETp@yuki/ to get the 29f08c3bdfSopenharmony_ciidea how it should look. 30f08c3bdfSopenharmony_ci 31f08c3bdfSopenharmony_ci3. Tag the git and push changes to github 32f08c3bdfSopenharmony_ci----------------------------------------- 33f08c3bdfSopenharmony_ci 34f08c3bdfSopenharmony_ci[source,sh] 35f08c3bdfSopenharmony_ci-------------------------------------------------------------------- 36f08c3bdfSopenharmony_cicd ltp 37f08c3bdfSopenharmony_ciecho YYYYMMDD > VERSION 38f08c3bdfSopenharmony_cigit commit -S -s -m 'LTP YYYYMMDD' VERSION 39f08c3bdfSopenharmony_cigit tag -s -a YYYYMMDD -m 'LTP YYYYMMDD' 40f08c3bdfSopenharmony_cigit push origin master:master 41f08c3bdfSopenharmony_cigit push origin YYYYMMDD 42f08c3bdfSopenharmony_ci-------------------------------------------------------------------- 43f08c3bdfSopenharmony_ci 44f08c3bdfSopenharmony_ciNOTE: The string YYYYMMDD should be substituted to the current date. 45f08c3bdfSopenharmony_ci 46f08c3bdfSopenharmony_ciNOTE: You can use './tools/tag-release.sh' script to have the above automated. 47f08c3bdfSopenharmony_ci It allows you to verify the tag before pushing it and does other checks. 48f08c3bdfSopenharmony_ci 49f08c3bdfSopenharmony_ci[source,sh] 50f08c3bdfSopenharmony_ci-------------------------------------------------------------------- 51f08c3bdfSopenharmony_ci$ ./tools/tag-release.sh 52f08c3bdfSopenharmony_ci===== git push ===== 53f08c3bdfSopenharmony_cinew tag: 'YYYYMMDD', previous tag: '20230127' 54f08c3bdfSopenharmony_citag YYYYMMDD 55f08c3bdfSopenharmony_ciTagger: Person-who-released LTP <foo@example.com> 56f08c3bdfSopenharmony_ciDate: ... 57f08c3bdfSopenharmony_ci 58f08c3bdfSopenharmony_ciLTP YYYYMMDD 59f08c3bdfSopenharmony_ci-----BEGIN PGP SIGNATURE----- 60f08c3bdfSopenharmony_ci... 61f08c3bdfSopenharmony_ci-----END PGP SIGNATURE----- 62f08c3bdfSopenharmony_ci 63f08c3bdfSopenharmony_cicommit 3ebc2dfa85c2445bb68d8c0d66e33c4da1e1b3a7 64f08c3bdfSopenharmony_cigpg: using RSA key ... 65f08c3bdfSopenharmony_ci... 66f08c3bdfSopenharmony_ciPrimary key fingerprint: ... 67f08c3bdfSopenharmony_ciAuthor: Person-who-released LTP <foo@example.com> 68f08c3bdfSopenharmony_ciDate: ... 69f08c3bdfSopenharmony_ci 70f08c3bdfSopenharmony_ci LTP YYYYMMDD 71f08c3bdfSopenharmony_ci 72f08c3bdfSopenharmony_ci Signed-off-by: Person-who-released LTP <foo@example.com> 73f08c3bdfSopenharmony_ci 74f08c3bdfSopenharmony_cidiff --git a/VERSION b/VERSION 75f08c3bdfSopenharmony_ciindex af4c41fec..ae488c0e7 100644 76f08c3bdfSopenharmony_ci--- a/VERSION 77f08c3bdfSopenharmony_ci+++ b/VERSION 78f08c3bdfSopenharmony_ci@@ -1 +1 @@ 79f08c3bdfSopenharmony_ci-20230127 80f08c3bdfSopenharmony_ci+YYYYMMDD 81f08c3bdfSopenharmony_ci 82f08c3bdfSopenharmony_ciPlease check tag and signature. Proceed? [N/y]: y 83f08c3bdfSopenharmony_ciPushing changes to upstream git. Proceed? [N/y]: y 84f08c3bdfSopenharmony_ci... 85f08c3bdfSopenharmony_ciTo github.com:linux-test-project/ltp.git 86f08c3bdfSopenharmony_ci * [new tag] YYYYMMDD -> YYYYMMDD 87f08c3bdfSopenharmony_ci-------------------------------------------------------------------- 88f08c3bdfSopenharmony_ci 89f08c3bdfSopenharmony_ci4. Prepare tarballs and metadata documentation 90f08c3bdfSopenharmony_ci---------------------------------------------- 91f08c3bdfSopenharmony_ci 92f08c3bdfSopenharmony_ci[source,sh] 93f08c3bdfSopenharmony_ci-------------------------------------------------------------------- 94f08c3bdfSopenharmony_ci# clone already clonned git repository to new folder 95f08c3bdfSopenharmony_cicd .. 96f08c3bdfSopenharmony_cigit clone ltp ltp-full-YYYYMMDD 97f08c3bdfSopenharmony_cicd ltp-full-YYYYMMDD 98f08c3bdfSopenharmony_ci 99f08c3bdfSopenharmony_ci# update all submodules 100f08c3bdfSopenharmony_cigit submodule update --init 101f08c3bdfSopenharmony_ci 102f08c3bdfSopenharmony_ci# Generate configure script 103f08c3bdfSopenharmony_cimake autotools 104f08c3bdfSopenharmony_ci 105f08c3bdfSopenharmony_ci# Generate tarballs 106f08c3bdfSopenharmony_cicd .. 107f08c3bdfSopenharmony_citar -cjf ltp-full-YYYYMMDD.tar.bz2 ltp-full-YYYYMMDD --exclude .git 108f08c3bdfSopenharmony_citar -cJf ltp-full-YYYYMMDD.tar.xz ltp-full-YYYYMMDD --exclude .git 109f08c3bdfSopenharmony_ci 110f08c3bdfSopenharmony_ci# Generate checksums 111f08c3bdfSopenharmony_cimd5 ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.md5 112f08c3bdfSopenharmony_cisha1 ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.sha1 113f08c3bdfSopenharmony_cisha256sum ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.sha256 114f08c3bdfSopenharmony_ci 115f08c3bdfSopenharmony_ci# Generate metadata documentation 116f08c3bdfSopenharmony_ci./configure --with-metadata-generator=asciidoctor 117f08c3bdfSopenharmony_cimake -C metadata 118f08c3bdfSopenharmony_cicp -v docparse/metadata.html ../metadata.YYYYMMDD.html 119f08c3bdfSopenharmony_ci-------------------------------------------------------------------- 120f08c3bdfSopenharmony_ci 121f08c3bdfSopenharmony_ciNOTE: You can use './tools/create-tarballs-metadata.sh' script to have the 122f08c3bdfSopenharmony_ci above automated. All generated files are placed in ltp-release-YYYYMMDD 123f08c3bdfSopenharmony_ci directory. 124f08c3bdfSopenharmony_ci 125f08c3bdfSopenharmony_ci[source,sh] 126f08c3bdfSopenharmony_ci-------------------------------------------------------------------- 127f08c3bdfSopenharmony_ci$ ./tools/create-tarballs-metadata.sh 128f08c3bdfSopenharmony_ci===== git clone ===== 129f08c3bdfSopenharmony_ciCloning into 'ltp-full-YYYYMMDD'... 130f08c3bdfSopenharmony_cidone. 131f08c3bdfSopenharmony_ci===== Update submodules ===== 132f08c3bdfSopenharmony_ciSubmodule 'tools/kirk' (https://github.com/linux-test-project/kirk.git) registered for path 'tools/kirk' 133f08c3bdfSopenharmony_ci... 134f08c3bdfSopenharmony_ci===== Generate configure script ===== 135f08c3bdfSopenharmony_cised -n '1{s:LTP-:m4_define([LTP_VERSION],[:;s:$:]):;p;q}' VERSION > m4/ltp-version.m4 136f08c3bdfSopenharmony_ciaclocal -I m4 137f08c3bdfSopenharmony_ci... 138f08c3bdfSopenharmony_ci===== Generate tarballs ===== 139f08c3bdfSopenharmony_ci===== Generate checksums ===== 140f08c3bdfSopenharmony_ci===== Generate metadata documentation ===== 141f08c3bdfSopenharmony_cichecking for a BSD-compatible install... /usr/bin/install -c 142f08c3bdfSopenharmony_ci... 143f08c3bdfSopenharmony_ci'docparse/metadata.html' -> '/home/foo/ltp-release-YYYYMMDD/metadata.YYYYMMDD.html' 144f08c3bdfSopenharmony_ciGenerated files are in '/home/foo/ltp-release-YYYYMMDD', upload them to github 145f08c3bdfSopenharmony_ci-------------------------------------------------------------------- 146f08c3bdfSopenharmony_ci 147f08c3bdfSopenharmony_ci5. Upload the generated files to GitHub 148f08c3bdfSopenharmony_ci--------------------------------------- 149f08c3bdfSopenharmony_ci 150f08c3bdfSopenharmony_ciClick on https://github.com/linux-test-project/ltp/releases['Releases'] then 151f08c3bdfSopenharmony_ciswitch to https://github.com/linux-test-project/ltp/tags['Tags'], then click on 152f08c3bdfSopenharmony_ci'Add release notes'. There should be 'Attach binaries ...' link at the 153f08c3bdfSopenharmony_cibottom of the page. 154f08c3bdfSopenharmony_ci 155f08c3bdfSopenharmony_ciDon't forget to upload checksums for the tarballs and metadata documentation as well. 156f08c3bdfSopenharmony_ci 157f08c3bdfSopenharmony_ci5. Send release announcement 158f08c3bdfSopenharmony_ci---------------------------- 159f08c3bdfSopenharmony_ci 160f08c3bdfSopenharmony_ciThe announcement is sent to: 161f08c3bdfSopenharmony_ci 162f08c3bdfSopenharmony_ci* ltp at lists.linux.it 163f08c3bdfSopenharmony_ci* linux-kernel at vger.kernel.org 164f08c3bdfSopenharmony_ci* libc-alpha at sourceware.org 165f08c3bdfSopenharmony_ci 166f08c3bdfSopenharmony_ciCCed to: 167f08c3bdfSopenharmony_ci 168f08c3bdfSopenharmony_ci* lwn at lwn.net 169f08c3bdfSopenharmony_ci* akpm at linux-foundation.org 170f08c3bdfSopenharmony_ci* torvalds at linux-foundation.org 171