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