xref: /aosp_15_r20/external/ltp/doc/old/LTP-Release-Procedure.asciidoc (revision 49cdfc7efb34551c7342be41a7384b9c40d7cab7)
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