xref: /aosp_15_r20/external/mesa3d/docs/releasing.rst (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard WorkerReleasing Process
2*61046927SAndroid Build Coastguard Worker=================
3*61046927SAndroid Build Coastguard Worker
4*61046927SAndroid Build Coastguard WorkerOverview
5*61046927SAndroid Build Coastguard Worker--------
6*61046927SAndroid Build Coastguard Worker
7*61046927SAndroid Build Coastguard WorkerThis document uses the convention X.Y.Z for the release number with X.Y
8*61046927SAndroid Build Coastguard Workerbeing the stable branch name.
9*61046927SAndroid Build Coastguard Worker
10*61046927SAndroid Build Coastguard WorkerMesa provides feature and bugfix releases. Former use zero as patch
11*61046927SAndroid Build Coastguard Workerversion (Z), while the latter have a non-zero one.
12*61046927SAndroid Build Coastguard Worker
13*61046927SAndroid Build Coastguard WorkerFor example:
14*61046927SAndroid Build Coastguard Worker
15*61046927SAndroid Build Coastguard Worker::
16*61046927SAndroid Build Coastguard Worker
17*61046927SAndroid Build Coastguard Worker   Mesa 10.1.0 - 10.1 branch, feature
18*61046927SAndroid Build Coastguard Worker   Mesa 10.1.4 - 10.1 branch, bugfix
19*61046927SAndroid Build Coastguard Worker   Mesa 12.0.0 - 12.0 branch, feature
20*61046927SAndroid Build Coastguard Worker   Mesa 12.0.2 - 12.0 branch, bugfix
21*61046927SAndroid Build Coastguard Worker
22*61046927SAndroid Build Coastguard Worker.. _schedule:
23*61046927SAndroid Build Coastguard Worker
24*61046927SAndroid Build Coastguard WorkerRelease schedule
25*61046927SAndroid Build Coastguard Worker----------------
26*61046927SAndroid Build Coastguard Worker
27*61046927SAndroid Build Coastguard WorkerReleases should happen on Wednesdays. Delays can occur although those
28*61046927SAndroid Build Coastguard Workershould be kept to a minimum.
29*61046927SAndroid Build Coastguard Worker
30*61046927SAndroid Build Coastguard WorkerSee our :doc:`calendar <release-calendar>` for information about how
31*61046927SAndroid Build Coastguard Workerthe release schedule is planned, and the date and other details for
32*61046927SAndroid Build Coastguard Workerindividual releases.
33*61046927SAndroid Build Coastguard Worker
34*61046927SAndroid Build Coastguard WorkerFeature releases
35*61046927SAndroid Build Coastguard Worker----------------
36*61046927SAndroid Build Coastguard Worker
37*61046927SAndroid Build Coastguard Worker-  Available approximately every three months.
38*61046927SAndroid Build Coastguard Worker-  Feature releases are branched on or around the second Wednesday of
39*61046927SAndroid Build Coastguard Worker   January, April, July, and October.
40*61046927SAndroid Build Coastguard Worker-  Initial time plan available 2-4 weeks before the planned branchpoint
41*61046927SAndroid Build Coastguard Worker   (rc1) on the mesa-announce@ mailing list.
42*61046927SAndroid Build Coastguard Worker-  Typically, the final release will happen after 4 candidates.
43*61046927SAndroid Build Coastguard Worker   Additional ones may be needed in order to resolve blocking
44*61046927SAndroid Build Coastguard Worker   regressions, though.
45*61046927SAndroid Build Coastguard Worker
46*61046927SAndroid Build Coastguard WorkerStable releases
47*61046927SAndroid Build Coastguard Worker---------------
48*61046927SAndroid Build Coastguard Worker
49*61046927SAndroid Build Coastguard Worker-  Normally available once every two weeks.
50*61046927SAndroid Build Coastguard Worker-  Only the latest branch has releases. See note below.
51*61046927SAndroid Build Coastguard Worker
52*61046927SAndroid Build Coastguard Worker.. note::
53*61046927SAndroid Build Coastguard Worker
54*61046927SAndroid Build Coastguard Worker   There is one or two releases overlap when changing branches. For
55*61046927SAndroid Build Coastguard Worker   example:
56*61046927SAndroid Build Coastguard Worker
57*61046927SAndroid Build Coastguard Worker   The final release from the 12.0 series Mesa 12.0.5 will be out around
58*61046927SAndroid Build Coastguard Worker   the same time (or shortly after) 13.0.1 is out.
59*61046927SAndroid Build Coastguard Worker
60*61046927SAndroid Build Coastguard Worker   This also involves that, as a final release may be delayed due to the
61*61046927SAndroid Build Coastguard Worker   need of additional candidates to solve some blocking regression(s), the
62*61046927SAndroid Build Coastguard Worker   release manager might have to update the
63*61046927SAndroid Build Coastguard Worker   :doc:`calendar <release-calendar>` with additional bug fix releases of
64*61046927SAndroid Build Coastguard Worker   the current stable branch.
65*61046927SAndroid Build Coastguard Worker
66*61046927SAndroid Build Coastguard Worker.. _pickntest:
67*61046927SAndroid Build Coastguard Worker
68*61046927SAndroid Build Coastguard WorkerCherry-picking and testing
69*61046927SAndroid Build Coastguard Worker--------------------------
70*61046927SAndroid Build Coastguard Worker
71*61046927SAndroid Build Coastguard WorkerCommits nominated for the active branch are picked as based on the
72*61046927SAndroid Build Coastguard Worker:ref:`criteria <criteria>` as described in the same
73*61046927SAndroid Build Coastguard Workersection.
74*61046927SAndroid Build Coastguard Worker
75*61046927SAndroid Build Coastguard WorkerNominations happen via special tags in the commit messages, and via
76*61046927SAndroid Build Coastguard WorkerGitLab merge requests against the staging branches. There are special
77*61046927SAndroid Build Coastguard Workerscripts used to read the tags.
78*61046927SAndroid Build Coastguard Worker
79*61046927SAndroid Build Coastguard WorkerThe maintainer should watch or be in contact with the Intel CI team, as
80*61046927SAndroid Build Coastguard Workerwell as watch the GitLab CI for regressions.
81*61046927SAndroid Build Coastguard Worker
82*61046927SAndroid Build Coastguard WorkerCherry picking should be done with the '-x' switch (to automatically add
83*61046927SAndroid Build Coastguard Worker"cherry picked from ..." to the commit message):
84*61046927SAndroid Build Coastguard Worker
85*61046927SAndroid Build Coastguard Worker``git cherry-pick -x abcdef12345667890``
86*61046927SAndroid Build Coastguard Worker
87*61046927SAndroid Build Coastguard WorkerDevelopers can request, *as an exception*, patches to be applied up-to
88*61046927SAndroid Build Coastguard Workerthe last one hour before the actual release. This is made **only** with
89*61046927SAndroid Build Coastguard Workerexplicit permission/request, and the patch **must** be very well
90*61046927SAndroid Build Coastguard Workercontained. Thus it cannot affect more than one driver/subsystem.
91*61046927SAndroid Build Coastguard Worker
92*61046927SAndroid Build Coastguard WorkerFollowing developers have requested permanent exception
93*61046927SAndroid Build Coastguard Worker
94*61046927SAndroid Build Coastguard Worker-  *Ilia Mirkin*
95*61046927SAndroid Build Coastguard Worker-  *AMD team*
96*61046927SAndroid Build Coastguard Worker
97*61046927SAndroid Build Coastguard WorkerThe GitLab CI must pass.
98*61046927SAndroid Build Coastguard Worker
99*61046927SAndroid Build Coastguard WorkerFor Windows related changes, the main contact point is Brian Paul. Jose
100*61046927SAndroid Build Coastguard WorkerFonseca can also help as a fallback contact.
101*61046927SAndroid Build Coastguard Worker
102*61046927SAndroid Build Coastguard WorkerFor Android related changes, the main contact is Tapani Pälli. Mauro
103*61046927SAndroid Build Coastguard WorkerRossi is collaborating with Android-x86 and may provide feedback about
104*61046927SAndroid Build Coastguard Workerthe build status in that project.
105*61046927SAndroid Build Coastguard Worker
106*61046927SAndroid Build Coastguard WorkerFor MacOSX related changes, Jeremy Huddleston Sequoia is currently a
107*61046927SAndroid Build Coastguard Workergood contact point.
108*61046927SAndroid Build Coastguard Worker
109*61046927SAndroid Build Coastguard Worker.. note::
110*61046927SAndroid Build Coastguard Worker
111*61046927SAndroid Build Coastguard Worker   If a patch in the current queue needs any additional fix(es),
112*61046927SAndroid Build Coastguard Worker   then they should be squashed together. The commit messages and the
113*61046927SAndroid Build Coastguard Worker   "``cherry picked from``"-tags must be preserved.
114*61046927SAndroid Build Coastguard Worker
115*61046927SAndroid Build Coastguard Worker   .. code-block:: text
116*61046927SAndroid Build Coastguard Worker
117*61046927SAndroid Build Coastguard Worker      git show b10859ec41d09c57663a258f43fe57c12332698e
118*61046927SAndroid Build Coastguard Worker
119*61046927SAndroid Build Coastguard Worker      commit b10859ec41d09c57663a258f43fe57c12332698e
120*61046927SAndroid Build Coastguard Worker      Author: Jonas Pfeil <[email protected]>
121*61046927SAndroid Build Coastguard Worker      Date:   Wed Mar 1 18:11:10 2017 +0100
122*61046927SAndroid Build Coastguard Worker
123*61046927SAndroid Build Coastguard Worker         ralloc: Make sure ralloc() allocations match malloc()'s alignment.
124*61046927SAndroid Build Coastguard Worker
125*61046927SAndroid Build Coastguard Worker         The header of ralloc needs to be aligned, because the compiler assumes
126*61046927SAndroid Build Coastguard Worker         ...
127*61046927SAndroid Build Coastguard Worker
128*61046927SAndroid Build Coastguard Worker         (cherry picked from commit cd2b55e536dc806f9358f71db438dd9c246cdb14)
129*61046927SAndroid Build Coastguard Worker
130*61046927SAndroid Build Coastguard Worker         Squashed with commit:
131*61046927SAndroid Build Coastguard Worker
132*61046927SAndroid Build Coastguard Worker         ralloc: don't leave out the alignment factor
133*61046927SAndroid Build Coastguard Worker
134*61046927SAndroid Build Coastguard Worker         Experimentation shows that without alignment factor GCC and Clang choose
135*61046927SAndroid Build Coastguard Worker         ...
136*61046927SAndroid Build Coastguard Worker
137*61046927SAndroid Build Coastguard Worker         (cherry picked from commit ff494fe999510ea40e3ed5827e7818550b6de126)
138*61046927SAndroid Build Coastguard Worker
139*61046927SAndroid Build Coastguard WorkerRegression/functionality testing
140*61046927SAndroid Build Coastguard Worker--------------------------------
141*61046927SAndroid Build Coastguard Worker
142*61046927SAndroid Build Coastguard Worker-  *no regressions should be observed for Piglit/dEQP/CTS/Vulkan on
143*61046927SAndroid Build Coastguard Worker   Intel platforms*
144*61046927SAndroid Build Coastguard Worker-  *no regressions should be observed for Piglit using the Softpipe
145*61046927SAndroid Build Coastguard Worker   and LLVMpipe drivers*
146*61046927SAndroid Build Coastguard Worker
147*61046927SAndroid Build Coastguard Worker.. _stagingbranch:
148*61046927SAndroid Build Coastguard Worker
149*61046927SAndroid Build Coastguard WorkerStaging branch
150*61046927SAndroid Build Coastguard Worker--------------
151*61046927SAndroid Build Coastguard Worker
152*61046927SAndroid Build Coastguard WorkerA live branch, which contains the currently merge/rejected patches is
153*61046927SAndroid Build Coastguard Workeravailable in the main repository under ``staging/X.Y``. For example:
154*61046927SAndroid Build Coastguard Worker
155*61046927SAndroid Build Coastguard Worker::
156*61046927SAndroid Build Coastguard Worker
157*61046927SAndroid Build Coastguard Worker   staging/18.1 - WIP branch for the 18.1 series
158*61046927SAndroid Build Coastguard Worker   staging/18.2 - WIP branch for the 18.2 series
159*61046927SAndroid Build Coastguard Worker
160*61046927SAndroid Build Coastguard WorkerNotes:
161*61046927SAndroid Build Coastguard Worker
162*61046927SAndroid Build Coastguard Worker-  People are encouraged to test the staging branch and report
163*61046927SAndroid Build Coastguard Worker   regressions.
164*61046927SAndroid Build Coastguard Worker-  The branch history is not stable and it **will** be rebased,
165*61046927SAndroid Build Coastguard Worker
166*61046927SAndroid Build Coastguard WorkerMaking a branchpoint
167*61046927SAndroid Build Coastguard Worker--------------------
168*61046927SAndroid Build Coastguard Worker
169*61046927SAndroid Build Coastguard WorkerA branchpoint is made such that new development can continue in parallel
170*61046927SAndroid Build Coastguard Workerto stabilization and bugfixing.
171*61046927SAndroid Build Coastguard Worker
172*61046927SAndroid Build Coastguard Worker.. note::
173*61046927SAndroid Build Coastguard Worker
174*61046927SAndroid Build Coastguard Worker   Before doing a branch ensure that basic build and ``meson test``
175*61046927SAndroid Build Coastguard Worker   testing is done and there are little to-no issues. Ideally all of those
176*61046927SAndroid Build Coastguard Worker   should be tackled already.
177*61046927SAndroid Build Coastguard Worker
178*61046927SAndroid Build Coastguard WorkerSetup the branchpoint:
179*61046927SAndroid Build Coastguard Worker
180*61046927SAndroid Build Coastguard Worker.. code-block:: sh
181*61046927SAndroid Build Coastguard Worker
182*61046927SAndroid Build Coastguard Worker   # Make sure main can carry on at the new version
183*61046927SAndroid Build Coastguard Worker   $EDITOR VERSION # bump the version number, keeping in mind the wrap around at the end of the year
184*61046927SAndroid Build Coastguard Worker   git commit -asm 'VERSION: bump to X.(Y+1)'
185*61046927SAndroid Build Coastguard Worker   truncate -s0 docs/relnotes/new_features.txt
186*61046927SAndroid Build Coastguard Worker   git commit -asm 'docs: reset new_features.txt'
187*61046927SAndroid Build Coastguard Worker   git push YOUR_FORK
188*61046927SAndroid Build Coastguard Worker
189*61046927SAndroid Build Coastguard WorkerMake a merge request with what you just pushed, and assign it straight
190*61046927SAndroid Build Coastguard Workerto ``@Marge-bot``. Keep an eye on it, as you'll need to wait for it to
191*61046927SAndroid Build Coastguard Workerbe merged.
192*61046927SAndroid Build Coastguard Worker
193*61046927SAndroid Build Coastguard WorkerOnce it has been merged, note the last commit *before* your "VERSION:
194*61046927SAndroid Build Coastguard Workerbump to X.Y" as this is the branchpoint. This is ``$LAST_COMMIT`` in the
195*61046927SAndroid Build Coastguard Workercommand below:
196*61046927SAndroid Build Coastguard Worker
197*61046927SAndroid Build Coastguard Worker.. code-block:: sh
198*61046927SAndroid Build Coastguard Worker
199*61046927SAndroid Build Coastguard Worker   VERSION=X.Y
200*61046927SAndroid Build Coastguard Worker
201*61046927SAndroid Build Coastguard Worker   git tag -s $VERSION-branchpoint -m "Mesa $VERSION branchpoint" $LAST_COMMIT
202*61046927SAndroid Build Coastguard Worker
203*61046927SAndroid Build Coastguard Worker   # Double-check that you tagged the correct commit
204*61046927SAndroid Build Coastguard Worker   git show $VERSION-branchpoint
205*61046927SAndroid Build Coastguard Worker
206*61046927SAndroid Build Coastguard WorkerNow that we have an official branchpoint, let's push the tag and create
207*61046927SAndroid Build Coastguard Workerthe branches:
208*61046927SAndroid Build Coastguard Worker
209*61046927SAndroid Build Coastguard Worker.. code-block:: sh
210*61046927SAndroid Build Coastguard Worker
211*61046927SAndroid Build Coastguard Worker   git push origin $VERSION-branchpoint
212*61046927SAndroid Build Coastguard Worker   git checkout $VERSION-branchpoint
213*61046927SAndroid Build Coastguard Worker   git push origin HEAD:refs/heads/$VERSION
214*61046927SAndroid Build Coastguard Worker   git push origin HEAD:refs/heads/staging/$VERSION
215*61046927SAndroid Build Coastguard Worker   git checkout staging/$VERSION
216*61046927SAndroid Build Coastguard Worker
217*61046927SAndroid Build Coastguard WorkerYou are now on the :ref:`staging branch <stagingbranch>`, where you
218*61046927SAndroid Build Coastguard Workerwill be doing your release maintainer work. This branch can be rebased
219*61046927SAndroid Build Coastguard Workerand altered in way necessary, with the caveat that anything pushed to
220*61046927SAndroid Build Coastguard Workerthe ``X.Y`` branch must not be altered anymore. A convenient command
221*61046927SAndroid Build Coastguard Workerto perform an interactive rebase over everything since the last release is:
222*61046927SAndroid Build Coastguard Worker
223*61046927SAndroid Build Coastguard Worker.. code-block:: sh
224*61046927SAndroid Build Coastguard Worker
225*61046927SAndroid Build Coastguard Worker   git rebase -i mesa-$(cat VERSION)
226*61046927SAndroid Build Coastguard Worker
227*61046927SAndroid Build Coastguard WorkerNow go to
228*61046927SAndroid Build Coastguard Worker`GitLab <https://gitlab.freedesktop.org/mesa/mesa/-/milestones>`__ and
229*61046927SAndroid Build Coastguard Workeradd the new Mesa version X.Y.
230*61046927SAndroid Build Coastguard Worker
231*61046927SAndroid Build Coastguard WorkerCheck that there are no distribution breaking changes and revert them if
232*61046927SAndroid Build Coastguard Workerneeded. For example: files being overwritten on install, etc. Happens
233*61046927SAndroid Build Coastguard Workerextremely rarely - we had only one case so far (see commit
234*61046927SAndroid Build Coastguard Worker2ced8eb136528914e1bf4e000dea06a9d53c7e04).
235*61046927SAndroid Build Coastguard Worker
236*61046927SAndroid Build Coastguard WorkerMaking a new release
237*61046927SAndroid Build Coastguard Worker--------------------
238*61046927SAndroid Build Coastguard Worker
239*61046927SAndroid Build Coastguard WorkerThese are the instructions for making a new Mesa release.
240*61046927SAndroid Build Coastguard Worker
241*61046927SAndroid Build Coastguard WorkerGet latest source files
242*61046927SAndroid Build Coastguard Worker~~~~~~~~~~~~~~~~~~~~~~~
243*61046927SAndroid Build Coastguard Worker
244*61046927SAndroid Build Coastguard WorkerEnsure the latest code is available - both in your local main and the
245*61046927SAndroid Build Coastguard Workerrelevant branch.
246*61046927SAndroid Build Coastguard Worker
247*61046927SAndroid Build Coastguard WorkerPerform basic testing
248*61046927SAndroid Build Coastguard Worker~~~~~~~~~~~~~~~~~~~~~
249*61046927SAndroid Build Coastguard Worker
250*61046927SAndroid Build Coastguard WorkerMost of the testing should already be done during the
251*61046927SAndroid Build Coastguard Worker:ref:`cherry-pick <pickntest>` So we do a quick 'touch test'
252*61046927SAndroid Build Coastguard Worker
253*61046927SAndroid Build Coastguard Worker-  meson dist
254*61046927SAndroid Build Coastguard Worker-  the produced binaries work
255*61046927SAndroid Build Coastguard Worker
256*61046927SAndroid Build Coastguard WorkerHere is one solution:
257*61046927SAndroid Build Coastguard Worker
258*61046927SAndroid Build Coastguard Worker.. code-block:: sh
259*61046927SAndroid Build Coastguard Worker
260*61046927SAndroid Build Coastguard Worker   __glxgears_cmd='glxgears 2>&1 | grep -v "configuration file"'
261*61046927SAndroid Build Coastguard Worker   __es2info_cmd='es2_info 2>&1 | egrep "GL_VERSION|GL_RENDERER|.*dri\.so"'
262*61046927SAndroid Build Coastguard Worker   __es2gears_cmd='es2gears_x11 2>&1 | grep -v "configuration file"'
263*61046927SAndroid Build Coastguard Worker   test "x$LD_LIBRARY_PATH" != 'x' && __old_ld="$LD_LIBRARY_PATH"
264*61046927SAndroid Build Coastguard Worker   export LD_LIBRARY_PATH=`pwd`/test/usr/local/lib/:"${__old_ld}"
265*61046927SAndroid Build Coastguard Worker   export LIBGL_DEBUG=verbose
266*61046927SAndroid Build Coastguard Worker   eval $__glxinfo_cmd
267*61046927SAndroid Build Coastguard Worker   eval $__glxgears_cmd
268*61046927SAndroid Build Coastguard Worker   eval $__es2info_cmd
269*61046927SAndroid Build Coastguard Worker   eval $__es2gears_cmd
270*61046927SAndroid Build Coastguard Worker   export LIBGL_ALWAYS_SOFTWARE=true
271*61046927SAndroid Build Coastguard Worker   eval $__glxinfo_cmd
272*61046927SAndroid Build Coastguard Worker   eval $__glxgears_cmd
273*61046927SAndroid Build Coastguard Worker   eval $__es2info_cmd
274*61046927SAndroid Build Coastguard Worker   eval $__es2gears_cmd
275*61046927SAndroid Build Coastguard Worker   export LIBGL_ALWAYS_SOFTWARE=true
276*61046927SAndroid Build Coastguard Worker   export GALLIUM_DRIVER=softpipe
277*61046927SAndroid Build Coastguard Worker   eval $__glxinfo_cmd
278*61046927SAndroid Build Coastguard Worker   eval $__glxgears_cmd
279*61046927SAndroid Build Coastguard Worker   eval $__es2info_cmd
280*61046927SAndroid Build Coastguard Worker   eval $__es2gears_cmd
281*61046927SAndroid Build Coastguard Worker   # Smoke test DOTA2
282*61046927SAndroid Build Coastguard Worker   unset LD_LIBRARY_PATH
283*61046927SAndroid Build Coastguard Worker   test "x$__old_ld" != 'x' && export LD_LIBRARY_PATH="$__old_ld" && unset __old_ld
284*61046927SAndroid Build Coastguard Worker   unset LIBGL_DEBUG
285*61046927SAndroid Build Coastguard Worker   unset LIBGL_ALWAYS_SOFTWARE
286*61046927SAndroid Build Coastguard Worker   unset GALLIUM_DRIVER
287*61046927SAndroid Build Coastguard Worker   export VK_DRIVER_FILES=`pwd`/test/usr/local/share/vulkan/icd.d/intel_icd.x86_64.json
288*61046927SAndroid Build Coastguard Worker   steam steam://rungameid/570  -vconsole -vulkan
289*61046927SAndroid Build Coastguard Worker   unset VK_DRIVER_FILES
290*61046927SAndroid Build Coastguard Worker
291*61046927SAndroid Build Coastguard WorkerCreate release notes for the new release
292*61046927SAndroid Build Coastguard Worker~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
293*61046927SAndroid Build Coastguard Worker
294*61046927SAndroid Build Coastguard WorkerThe release notes are completely generated by the
295*61046927SAndroid Build Coastguard Worker``bin/gen_release_notes.py`` script. Simply run this script **before**
296*61046927SAndroid Build Coastguard Workerbumping the version. You'll need to come back to this file once the
297*61046927SAndroid Build Coastguard Workertarball is generated to add its SHA256 checksum.
298*61046927SAndroid Build Coastguard Worker
299*61046927SAndroid Build Coastguard WorkerIncrement the version contained in the file ``VERSION`` at Mesa's top-level,
300*61046927SAndroid Build Coastguard Workerthen commit this change and **push the branch** (if you forget to do
301*61046927SAndroid Build Coastguard Workerthis, ``release.sh`` below will fail).
302*61046927SAndroid Build Coastguard Worker
303*61046927SAndroid Build Coastguard WorkerUse the release.sh script from X.Org `util-modular <https://gitlab.freedesktop.org/xorg/util/modular>`__
304*61046927SAndroid Build Coastguard Worker~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
305*61046927SAndroid Build Coastguard Worker
306*61046927SAndroid Build Coastguard WorkerStart the release process.
307*61046927SAndroid Build Coastguard Worker
308*61046927SAndroid Build Coastguard Worker.. code-block:: sh
309*61046927SAndroid Build Coastguard Worker
310*61046927SAndroid Build Coastguard Worker   ../relative/path/to/release.sh . # append --dist if you've already done distcheck above
311*61046927SAndroid Build Coastguard Worker
312*61046927SAndroid Build Coastguard WorkerPay close attention to the prompts as you might be required to enter
313*61046927SAndroid Build Coastguard Workeryour GPG and SSH passphrase(s) to sign and upload the files,
314*61046927SAndroid Build Coastguard Workerrespectively.
315*61046927SAndroid Build Coastguard Worker
316*61046927SAndroid Build Coastguard WorkerEnsure that you do sign the tarballs, that your key is mentioned in the
317*61046927SAndroid Build Coastguard Workerrelease notes, and is published in `release-maintainers-keys.asc
318*61046927SAndroid Build Coastguard Worker<release-maintainers-keys.asc>`__.
319*61046927SAndroid Build Coastguard Worker
320*61046927SAndroid Build Coastguard Worker
321*61046927SAndroid Build Coastguard WorkerAdd the SHA256 checksums to the release notes
322*61046927SAndroid Build Coastguard Worker~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
323*61046927SAndroid Build Coastguard Worker
324*61046927SAndroid Build Coastguard WorkerEdit ``docs/relnotes/X.Y.Z.rst`` to add the SHA256 checksums as available
325*61046927SAndroid Build Coastguard Workerin the ``mesa-X.Y.Z.announce`` template. Commit this change.
326*61046927SAndroid Build Coastguard Worker
327*61046927SAndroid Build Coastguard WorkerDon't forget to push the commits to both the ``staging/X.Y`` branch and
328*61046927SAndroid Build Coastguard Workerthe ``X.Y`` branch:
329*61046927SAndroid Build Coastguard Worker
330*61046927SAndroid Build Coastguard Worker.. code-block:: sh
331*61046927SAndroid Build Coastguard Worker
332*61046927SAndroid Build Coastguard Worker   git push origin HEAD:staging/X.Y
333*61046927SAndroid Build Coastguard Worker   git push origin HEAD:X.Y
334*61046927SAndroid Build Coastguard Worker
335*61046927SAndroid Build Coastguard Worker
336*61046927SAndroid Build Coastguard WorkerBack on mesa main, add the new release notes into the tree
337*61046927SAndroid Build Coastguard Worker~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
338*61046927SAndroid Build Coastguard Worker
339*61046927SAndroid Build Coastguard WorkerSomething like the following steps will do the trick:
340*61046927SAndroid Build Coastguard Worker
341*61046927SAndroid Build Coastguard Worker.. code-block:: sh
342*61046927SAndroid Build Coastguard Worker
343*61046927SAndroid Build Coastguard Worker   git cherry-pick -x X.Y~1
344*61046927SAndroid Build Coastguard Worker   git cherry-pick -x X.Y
345*61046927SAndroid Build Coastguard Worker
346*61046927SAndroid Build Coastguard WorkerThen run the
347*61046927SAndroid Build Coastguard Worker
348*61046927SAndroid Build Coastguard Worker.. code-block:: sh
349*61046927SAndroid Build Coastguard Worker
350*61046927SAndroid Build Coastguard Worker   ./bin/post_version.py X.Y.Z
351*61046927SAndroid Build Coastguard Worker
352*61046927SAndroid Build Coastguard Worker, where X.Y.Z is the version you just made. This will update
353*61046927SAndroid Build Coastguard Workerdocs/relnotes.rst and docs/release-calendar.csv. It will then generate
354*61046927SAndroid Build Coastguard Workera Git commit automatically. Check that everything looks correct and
355*61046927SAndroid Build Coastguard Workerpush:
356*61046927SAndroid Build Coastguard Worker
357*61046927SAndroid Build Coastguard Worker.. code-block:: sh
358*61046927SAndroid Build Coastguard Worker
359*61046927SAndroid Build Coastguard Worker      git push origin main X.Y
360*61046927SAndroid Build Coastguard Worker
361*61046927SAndroid Build Coastguard WorkerAnnounce the release
362*61046927SAndroid Build Coastguard Worker--------------------
363*61046927SAndroid Build Coastguard Worker
364*61046927SAndroid Build Coastguard WorkerUse the generated template during the releasing process.
365*61046927SAndroid Build Coastguard Worker
366*61046927SAndroid Build Coastguard WorkerAgain, pay attention to add a note to warn about a final release in a
367*61046927SAndroid Build Coastguard Workerseries, if that is the case.
368*61046927SAndroid Build Coastguard Worker
369*61046927SAndroid Build Coastguard WorkerUpdate GitLab issues
370*61046927SAndroid Build Coastguard Worker--------------------
371*61046927SAndroid Build Coastguard Worker
372*61046927SAndroid Build Coastguard WorkerParse through the bug reports as listed in the docs/relnotes/X.Y.Z.rst
373*61046927SAndroid Build Coastguard Workerdocument. If there's outstanding action, close the bug referencing the
374*61046927SAndroid Build Coastguard Workercommit ID which addresses the bug and mention the Mesa version that has
375*61046927SAndroid Build Coastguard Workerthe fix.
376*61046927SAndroid Build Coastguard Worker
377*61046927SAndroid Build Coastguard Worker.. note: the above is not applicable to all the reports, so use common sense.
378