xref: /aosp_15_r20/external/ltp/doc/maintainers/ltp_release_procedure.rst (revision 49cdfc7efb34551c7342be41a7384b9c40d7cab7)
1*49cdfc7eSAndroid Build Coastguard Worker.. SPDX-License-Identifier: GPL-2.0-or-later
2*49cdfc7eSAndroid Build Coastguard Worker
3*49cdfc7eSAndroid Build Coastguard WorkerRelease process
4*49cdfc7eSAndroid Build Coastguard Worker===============
5*49cdfc7eSAndroid Build Coastguard Worker
6*49cdfc7eSAndroid Build Coastguard WorkerPreparations
7*49cdfc7eSAndroid Build Coastguard Worker------------
8*49cdfc7eSAndroid Build Coastguard Worker
9*49cdfc7eSAndroid Build Coastguard WorkerThe release procedure generally takes a few weeks. In the first week or two,
10*49cdfc7eSAndroid Build Coastguard Workerpatches that should go into the release are reviewed and possibly merged. These
11*49cdfc7eSAndroid Build Coastguard Workerpatches are either fixes or patches pointed out by the community.
12*49cdfc7eSAndroid Build Coastguard Worker
13*49cdfc7eSAndroid Build Coastguard WorkerPatch review, when finished, is followed by a git freeze, which is a period
14*49cdfc7eSAndroid Build Coastguard Workerwhere only fixes are pushed to the git. During that period community is
15*49cdfc7eSAndroid Build Coastguard Workerexpected to run a LTP pre-release tests, reports problems, and/or send fixes to
16*49cdfc7eSAndroid Build Coastguard Workerthe mailing list. In this period we are especially making sure that there are
17*49cdfc7eSAndroid Build Coastguard Workerno regressions in the test results on a wide range of distributions and
18*49cdfc7eSAndroid Build Coastguard Workerarchitectures.
19*49cdfc7eSAndroid Build Coastguard Worker
20*49cdfc7eSAndroid Build Coastguard WorkerOnce the stabilization period has ended the time has finally come to proceed
21*49cdfc7eSAndroid Build Coastguard Workerwith the release.
22*49cdfc7eSAndroid Build Coastguard Worker
23*49cdfc7eSAndroid Build Coastguard WorkerPrepare the release notes
24*49cdfc7eSAndroid Build Coastguard Worker-------------------------
25*49cdfc7eSAndroid Build Coastguard Worker
26*49cdfc7eSAndroid Build Coastguard WorkerPart of the preparation is also to write the release notes, which are then
27*49cdfc7eSAndroid Build Coastguard Workeradded to the GitHub release and also sent as announcement to various mailing
28*49cdfc7eSAndroid Build Coastguard Workerlists (see below).
29*49cdfc7eSAndroid Build Coastguard Worker
30*49cdfc7eSAndroid Build Coastguard WorkerHave a look at `this release letter <https://lore.kernel.org/ltp/ZGNiQ1sMGvPU_ETp@yuki/>`_
31*49cdfc7eSAndroid Build Coastguard Workerto get the idea how it should look.
32*49cdfc7eSAndroid Build Coastguard Worker
33*49cdfc7eSAndroid Build Coastguard WorkerTag the git and push changes to github
34*49cdfc7eSAndroid Build Coastguard Worker--------------------------------------
35*49cdfc7eSAndroid Build Coastguard Worker
36*49cdfc7eSAndroid Build Coastguard Worker.. code-block:: bash
37*49cdfc7eSAndroid Build Coastguard Worker
38*49cdfc7eSAndroid Build Coastguard Worker    cd ltp
39*49cdfc7eSAndroid Build Coastguard Worker    echo YYYYMMDD > VERSION
40*49cdfc7eSAndroid Build Coastguard Worker    git commit -S -s -m 'LTP YYYYMMDD' VERSION
41*49cdfc7eSAndroid Build Coastguard Worker    git tag -s -a YYYYMMDD -m 'LTP YYYYMMDD'
42*49cdfc7eSAndroid Build Coastguard Worker    git push origin master:master
43*49cdfc7eSAndroid Build Coastguard Worker    git push origin YYYYMMDD
44*49cdfc7eSAndroid Build Coastguard Worker
45*49cdfc7eSAndroid Build Coastguard WorkerThe string ``YYYYMMDD`` should be substituted to the current date.
46*49cdfc7eSAndroid Build Coastguard Worker
47*49cdfc7eSAndroid Build Coastguard WorkerYou can use :master:`tools/tag-release.sh` script to have the above automated
48*49cdfc7eSAndroid Build Coastguard Workerprocess. It allows you to verify the tag before pushing it and does other
49*49cdfc7eSAndroid Build Coastguard Workerchecks.
50*49cdfc7eSAndroid Build Coastguard Worker
51*49cdfc7eSAndroid Build Coastguard Worker.. code-block:: bash
52*49cdfc7eSAndroid Build Coastguard Worker
53*49cdfc7eSAndroid Build Coastguard Worker    $ ./tools/tag-release.sh
54*49cdfc7eSAndroid Build Coastguard Worker    ===== git push =====
55*49cdfc7eSAndroid Build Coastguard Worker    new tag: 'YYYYMMDD', previous tag: '20230127'
56*49cdfc7eSAndroid Build Coastguard Worker    tag YYYYMMDD
57*49cdfc7eSAndroid Build Coastguard Worker    Tagger: Person-who-released LTP <[email protected]>
58*49cdfc7eSAndroid Build Coastguard Worker    Date:   ...
59*49cdfc7eSAndroid Build Coastguard Worker
60*49cdfc7eSAndroid Build Coastguard Worker    LTP YYYYMMDD
61*49cdfc7eSAndroid Build Coastguard Worker    -----BEGIN PGP SIGNATURE-----
62*49cdfc7eSAndroid Build Coastguard Worker    ...
63*49cdfc7eSAndroid Build Coastguard Worker    -----END PGP SIGNATURE-----
64*49cdfc7eSAndroid Build Coastguard Worker
65*49cdfc7eSAndroid Build Coastguard Worker    commit 3ebc2dfa85c2445bb68d8c0d66e33c4da1e1b3a7
66*49cdfc7eSAndroid Build Coastguard Worker    gpg:                using RSA key ...
67*49cdfc7eSAndroid Build Coastguard Worker    ...
68*49cdfc7eSAndroid Build Coastguard Worker    Primary key fingerprint: ...
69*49cdfc7eSAndroid Build Coastguard Worker    Author: Person-who-released LTP <[email protected]>
70*49cdfc7eSAndroid Build Coastguard Worker    Date:   ...
71*49cdfc7eSAndroid Build Coastguard Worker
72*49cdfc7eSAndroid Build Coastguard Worker        LTP YYYYMMDD
73*49cdfc7eSAndroid Build Coastguard Worker
74*49cdfc7eSAndroid Build Coastguard Worker        Signed-off-by: Person-who-released LTP <[email protected]>
75*49cdfc7eSAndroid Build Coastguard Worker
76*49cdfc7eSAndroid Build Coastguard Worker    diff --git a/VERSION b/VERSION
77*49cdfc7eSAndroid Build Coastguard Worker    index af4c41fec..ae488c0e7 100644
78*49cdfc7eSAndroid Build Coastguard Worker    --- a/VERSION
79*49cdfc7eSAndroid Build Coastguard Worker    +++ b/VERSION
80*49cdfc7eSAndroid Build Coastguard Worker    @@ -1 +1 @@
81*49cdfc7eSAndroid Build Coastguard Worker    -20230127
82*49cdfc7eSAndroid Build Coastguard Worker    +YYYYMMDD
83*49cdfc7eSAndroid Build Coastguard Worker
84*49cdfc7eSAndroid Build Coastguard Worker    Please check tag and signature. Proceed? [N/y]: y
85*49cdfc7eSAndroid Build Coastguard Worker    Pushing changes to upstream git. Proceed? [N/y]: y
86*49cdfc7eSAndroid Build Coastguard Worker    ...
87*49cdfc7eSAndroid Build Coastguard Worker    To github.com:linux-test-project/ltp.git
88*49cdfc7eSAndroid Build Coastguard Worker     * [new tag]             YYYYMMDD -> YYYYMMDD
89*49cdfc7eSAndroid Build Coastguard Worker
90*49cdfc7eSAndroid Build Coastguard WorkerPrepare tarballs and metadata documentation
91*49cdfc7eSAndroid Build Coastguard Worker-------------------------------------------
92*49cdfc7eSAndroid Build Coastguard Worker
93*49cdfc7eSAndroid Build Coastguard WorkerThe following procedure will show how to create the release archives and the
94*49cdfc7eSAndroid Build Coastguard Workermetadata documentation:
95*49cdfc7eSAndroid Build Coastguard Worker
96*49cdfc7eSAndroid Build Coastguard Worker.. code-block:: bash
97*49cdfc7eSAndroid Build Coastguard Worker
98*49cdfc7eSAndroid Build Coastguard Worker    # clone already clonned git repository to new folder
99*49cdfc7eSAndroid Build Coastguard Worker    cd ..
100*49cdfc7eSAndroid Build Coastguard Worker    git clone ltp ltp-full-YYYYMMDD
101*49cdfc7eSAndroid Build Coastguard Worker    cd ltp-full-YYYYMMDD
102*49cdfc7eSAndroid Build Coastguard Worker
103*49cdfc7eSAndroid Build Coastguard Worker    # update all submodules
104*49cdfc7eSAndroid Build Coastguard Worker    git submodule update --init
105*49cdfc7eSAndroid Build Coastguard Worker
106*49cdfc7eSAndroid Build Coastguard Worker    # Generate configure script
107*49cdfc7eSAndroid Build Coastguard Worker    make autotools
108*49cdfc7eSAndroid Build Coastguard Worker
109*49cdfc7eSAndroid Build Coastguard Worker    # Generate tarballs
110*49cdfc7eSAndroid Build Coastguard Worker    cd ..
111*49cdfc7eSAndroid Build Coastguard Worker    tar -cjf ltp-full-YYYYMMDD.tar.bz2 ltp-full-YYYYMMDD --exclude .git
112*49cdfc7eSAndroid Build Coastguard Worker    tar -cJf ltp-full-YYYYMMDD.tar.xz ltp-full-YYYYMMDD --exclude .git
113*49cdfc7eSAndroid Build Coastguard Worker
114*49cdfc7eSAndroid Build Coastguard Worker    # Generate checksums
115*49cdfc7eSAndroid Build Coastguard Worker    md5 ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.md5
116*49cdfc7eSAndroid Build Coastguard Worker    sha1 ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.sha1
117*49cdfc7eSAndroid Build Coastguard Worker    sha256sum ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.sha256
118*49cdfc7eSAndroid Build Coastguard Worker
119*49cdfc7eSAndroid Build Coastguard Worker    # Generate metadata documentation
120*49cdfc7eSAndroid Build Coastguard Worker    ./configure --with-metadata-generator=asciidoctor
121*49cdfc7eSAndroid Build Coastguard Worker    make -C metadata
122*49cdfc7eSAndroid Build Coastguard Worker    cp -v docparse/metadata.html ../metadata.YYYYMMDD.html
123*49cdfc7eSAndroid Build Coastguard Worker
124*49cdfc7eSAndroid Build Coastguard WorkerYou can use :master:`tools/create-tarballs-metadata.sh` script to have the above
125*49cdfc7eSAndroid Build Coastguard Workerprocedure automated. All generated files are placed in the
126*49cdfc7eSAndroid Build Coastguard Worker``ltp-release-YYYYMMDD`` directory.
127*49cdfc7eSAndroid Build Coastguard Worker
128*49cdfc7eSAndroid Build Coastguard Worker.. code-block:: bash
129*49cdfc7eSAndroid Build Coastguard Worker
130*49cdfc7eSAndroid Build Coastguard Worker    $ ./tools/create-tarballs-metadata.sh
131*49cdfc7eSAndroid Build Coastguard Worker    ===== git clone =====
132*49cdfc7eSAndroid Build Coastguard Worker    Cloning into 'ltp-full-YYYYMMDD'...
133*49cdfc7eSAndroid Build Coastguard Worker    done.
134*49cdfc7eSAndroid Build Coastguard Worker    ===== Update submodules =====
135*49cdfc7eSAndroid Build Coastguard Worker    Submodule 'tools/kirk' (https://github.com/linux-test-project/kirk.git) registered for path 'tools/kirk'
136*49cdfc7eSAndroid Build Coastguard Worker    ...
137*49cdfc7eSAndroid Build Coastguard Worker    ===== Generate configure script =====
138*49cdfc7eSAndroid Build Coastguard Worker    sed -n '1{s:LTP-:m4_define([LTP_VERSION],[:;s:$:]):;p;q}' VERSION > m4/ltp-version.m4
139*49cdfc7eSAndroid Build Coastguard Worker    aclocal -I m4
140*49cdfc7eSAndroid Build Coastguard Worker    ...
141*49cdfc7eSAndroid Build Coastguard Worker    ===== Generate tarballs =====
142*49cdfc7eSAndroid Build Coastguard Worker    ===== Generate checksums =====
143*49cdfc7eSAndroid Build Coastguard Worker    ===== Generate metadata documentation =====
144*49cdfc7eSAndroid Build Coastguard Worker    checking for a BSD-compatible install... /usr/bin/install -c
145*49cdfc7eSAndroid Build Coastguard Worker    ...
146*49cdfc7eSAndroid Build Coastguard Worker    'docparse/metadata.html' -> '/home/foo/ltp-release-YYYYMMDD/metadata.YYYYMMDD.html'
147*49cdfc7eSAndroid Build Coastguard Worker    Generated files are in '/home/foo/ltp-release-YYYYMMDD', upload them to github
148*49cdfc7eSAndroid Build Coastguard Worker
149*49cdfc7eSAndroid Build Coastguard WorkerUpload the generated files to GitHub
150*49cdfc7eSAndroid Build Coastguard Worker------------------------------------
151*49cdfc7eSAndroid Build Coastguard Worker
152*49cdfc7eSAndroid Build Coastguard WorkerGo to :repo:`tags`. Click on ``Add release notes``.
153*49cdfc7eSAndroid Build Coastguard WorkerThere should be ``Attach binaries ...`` link at the bottom of the page.
154*49cdfc7eSAndroid Build Coastguard Worker
155*49cdfc7eSAndroid Build Coastguard WorkerDon't forget to upload checksums for the tarballs and metadata documentation
156*49cdfc7eSAndroid Build Coastguard Workeras well.
157*49cdfc7eSAndroid Build Coastguard Worker
158*49cdfc7eSAndroid Build Coastguard WorkerSend 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