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