11LTP 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--------------------------------------------------------------------
1336cd ltp
1437echo 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
3195cd ..
3296git clone ltp ltp-full-YYYYMMDD
3397cd 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
38103make autotools
39- # Prepare the archives
104+
105+ # Generate tarballs
40106cd ..
41107tar -cjf ltp-full-YYYYMMDD.tar.bz2 ltp-full-YYYYMMDD --exclude .git
42108tar -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
521575. 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