Skip to content

Commit 57e1bac

Browse files
committed
doc: Update release procedure
* Completely rewrite Release preparation (Cyril). * Update command examples. * Document helper scripts. * Update link to the release announcement. * Add hyperlinks to GitHub releases. * Correct typos (Avinesh). Link: https://lore.kernel.org/ltp/12123900.MKNY5bReCh@localhost/T/#u Co-developed-by: Cyril Hrubis <[email protected]> Reviewed-by: Li Wang <[email protected]> Reviewed-by: Avinesh Kumar <[email protected]> Signed-off-by: Petr Vorel <[email protected]>
1 parent 7bb41fd commit 57e1bac

File tree

1 file changed

+127
-24
lines changed

1 file changed

+127
-24
lines changed

doc/LTP-Release-Procedure.asciidoc

Lines changed: 127 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,163 @@
11
LTP Release Procedure
22
=====================
33

4-
This page contains quick summary of what needs to be done to do a LTP release. It's expected that LTP git is frozen and git HEAD was properly tested and that LTP git tree is cloned to a directory named 'ltp'.
4+
1. Release preparations
5+
-----------------------
56
6-
NOTE: The string YYYYMMDD should be substituted to the current date.
7+
The release procedure generally takes a few weeks. In the first week or two,
8+
patches that should go into the release are reviewed and possibly merged. These
9+
patches are either fixes or patches pointed out by the community.
10+
11+
Patch review, when finished, is followed by a git freeze, which is a period
12+
where only fixes are pushed to the git. During that period community is
13+
expected to run a LTP pre-release tests, reports problems, and/or send fixes to
14+
the mailing list. In this period we are especially making sure that there are
15+
no regressions in the test results on a wide range of distributions and
16+
architectures.
17+
18+
Once the stabilization period has ended the time has finally come to proceed
19+
with the release.
20+
21+
2. Prepare the release notes
22+
----------------------------
23+
24+
Part of the preparation is also to write the release notes, which are then
25+
added to the GitHub release and also sent as announcement to various mailing
26+
lists (see below).
27+
28+
Have a look at https://lore.kernel.org/ltp/ZGNiQ1sMGvPU_ETp@yuki/ to get the
29+
idea how it should look.
730

8-
1. Tag the git
9-
--------------
31+
3. Tag the git and push changes to github
32+
-----------------------------------------
1033
1134
[source,sh]
1235
--------------------------------------------------------------------
1336
cd ltp
1437
echo YYYYMMDD > VERSION
15-
git commit -s -m 'LTP YYYYMMDD' VERSION
16-
git tag -a YYYYMMDD -m 'LTP YYYYMMDD'
38+
git commit -S -s -m 'LTP YYYYMMDD' VERSION
39+
git tag -s -a YYYYMMDD -m 'LTP YYYYMMDD'
40+
git push origin master:master
41+
git push origin YYYYMMDD
1742
--------------------------------------------------------------------
1843

19-
2. Push changes to github
20-
-------------------------
44+
NOTE: The string YYYYMMDD should be substituted to the current date.
45+
46+
NOTE: You can use './tools/tag-release.sh' script to have the above automated.
47+
It allows you to verify the tag before pushing it and does other checks.
48+
2149
[source,sh]
2250
--------------------------------------------------------------------
23-
git push
24-
git push --tags
51+
$ ./tools/tag-release.sh
52+
===== git push =====
53+
new tag: 'YYYYMMDD', previous tag: '20230127'
54+
tag YYYYMMDD
55+
Tagger: Person-who-released LTP <[email protected]>
56+
Date: ...
57+
58+
LTP YYYYMMDD
59+
-----BEGIN PGP SIGNATURE-----
60+
...
61+
-----END PGP SIGNATURE-----
62+
63+
commit 3ebc2dfa85c2445bb68d8c0d66e33c4da1e1b3a7
64+
gpg: using RSA key ...
65+
...
66+
Primary key fingerprint: ...
67+
Author: Person-who-released LTP <[email protected]>
68+
Date: ...
69+
70+
LTP YYYYMMDD
71+
72+
Signed-off-by: Person-who-released LTP <[email protected]>
73+
74+
diff --git a/VERSION b/VERSION
75+
index af4c41fec..ae488c0e7 100644
76+
--- a/VERSION
77+
+++ b/VERSION
78+
@@ -1 +1 @@
79+
-20230127
80+
+YYYYMMDD
81+
82+
Please check tag and signature. Proceed? [N/y]: y
83+
Pushing changes to upstream git. Proceed? [N/y]: y
84+
...
85+
To github.com:linux-test-project/ltp.git
86+
* [new tag] YYYYMMDD -> YYYYMMDD
2587
--------------------------------------------------------------------
2688

27-
3. Prepare tarballs
28-
-------------------
89+
4. Prepare tarballs and metadata documentation
90+
----------------------------------------------
91+
2992
[source,sh]
3093
--------------------------------------------------------------------
94+
# clone already clonned git repository to new folder
3195
cd ..
3296
git clone ltp ltp-full-YYYYMMDD
3397
cd ltp-full-YYYYMMDD
34-
# Update mce-inject submodule
35-
git submodule init
36-
git submodule update
98+
99+
# update all submodules
100+
git submodule update --init
101+
37102
# Generate configure script
38103
make autotools
39-
# Prepare the archives
104+
105+
# Generate tarballs
40106
cd ..
41107
tar -cjf ltp-full-YYYYMMDD.tar.bz2 ltp-full-YYYYMMDD --exclude .git
42108
tar -cJf ltp-full-YYYYMMDD.tar.xz ltp-full-YYYYMMDD --exclude .git
109+
110+
# Generate checksums
111+
md5 ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.md5
112+
sha1 ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.sha1
113+
sha256sum ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.sha256
114+
115+
# Generate metadata documentation
116+
./configure --with-metadata-generator=asciidoctor
117+
make -C metadata
118+
cp -v docparse/metadata.html ../metadata.YYYYMMDD.html
43119
--------------------------------------------------------------------
44120

45-
4. Upload the tarballs to GitHub
46-
--------------------------------
121+
NOTE: You can use './tools/create-tarballs-metadata.sh' script to have the
122+
above automated. All generated files are placed in ltp-release-YYYYMMDD
123+
directory.
47124

48-
Click on 'releases' then switch to 'tags' then click on 'Add release notes' there should be 'Attach binaries ...' link at the bottom of the page.
125+
[source,sh]
126+
--------------------------------------------------------------------
127+
$ ./tools/create-tarballs-metadata.sh
128+
===== git clone =====
129+
Cloning into 'ltp-full-YYYYMMDD'...
130+
done.
131+
===== Update submodules =====
132+
Submodule 'tools/kirk' (https://github.com/linux-test-project/kirk.git) registered for path 'tools/kirk'
133+
...
134+
===== Generate configure script =====
135+
sed -n '1{s:LTP-:m4_define([LTP_VERSION],[:;s:$:]):;p;q}' VERSION > m4/ltp-version.m4
136+
aclocal -I m4
137+
...
138+
===== Generate tarballs =====
139+
===== Generate checksums =====
140+
===== Generate metadata documentation =====
141+
checking for a BSD-compatible install... /usr/bin/install -c
142+
...
143+
'docparse/metadata.html' -> '/home/foo/ltp-release-YYYYMMDD/metadata.YYYYMMDD.html'
144+
Generated files are in '/home/foo/ltp-release-YYYYMMDD', upload them to github
145+
--------------------------------------------------------------------
49146

50-
Don't forget to upload md5 and sha-1 sums for the tarballs as well.
147+
5. Upload the generated files to GitHub
148+
---------------------------------------
149+
150+
Click on https://github.com/linux-test-project/ltp/releases['Releases'] then
151+
switch to https://github.com/linux-test-project/ltp/tags['Tags'], then click on
152+
'Add release notes'. There should be 'Attach binaries ...' link at the
153+
bottom of the page.
154+
155+
Don't forget to upload checksums for the tarballs and metadata documentation as well.
51156

52157
5. Send release announcement
53158
----------------------------
54159
55-
Have a look at http://sourceforge.net/p/ltp/mailman/message/34429656/ to get the idea how it should look.
56-
57-
The announcement is send to:
160+
The announcement is sent to:
58161

59162
* ltp at lists.linux.it
60163
* linux-kernel at vger.kernel.org
@@ -64,4 +167,4 @@ CCed to:
64167

65168
* lwn at lwn.net
66169
* akpm at linux-foundation.org
67-
* torvalds at linux-foundation.org.
170+
* torvalds at linux-foundation.org

0 commit comments

Comments
 (0)