1b8e80941Smrg<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2b8e80941Smrg<html lang="en"> 3b8e80941Smrg<head> 4b8e80941Smrg <meta http-equiv="content-type" content="text/html; charset=utf-8"> 5b8e80941Smrg <title>Releasing process</title> 6b8e80941Smrg <link rel="stylesheet" type="text/css" href="mesa.css"> 7b8e80941Smrg</head> 8b8e80941Smrg<body> 9b8e80941Smrg 10b8e80941Smrg<div class="header"> 11b8e80941Smrg <h1>The Mesa 3D Graphics Library</h1> 12b8e80941Smrg</div> 13b8e80941Smrg 14b8e80941Smrg<iframe src="contents.html"></iframe> 15b8e80941Smrg<div class="content"> 16b8e80941Smrg 17b8e80941Smrg 18b8e80941Smrg<h1>Releasing process</h1> 19b8e80941Smrg 20b8e80941Smrg<ul> 21b8e80941Smrg<li><a href="#overview">Overview</a> 22b8e80941Smrg<li><a href="#schedule">Release schedule</a> 23b8e80941Smrg<li><a href="#pickntest">Cherry-pick and test</a> 24b8e80941Smrg<li><a href="#stagingbranch">Staging branch</a> 25b8e80941Smrg<li><a href="#branch">Making a branchpoint</a> 26b8e80941Smrg<li><a href="#prerelease">Pre-release announcement</a> 27b8e80941Smrg<li><a href="#release">Making a new release</a> 28b8e80941Smrg<li><a href="#announce">Announce the release</a> 29b8e80941Smrg<li><a href="#website">Update the mesa3d.org website</a> 30b8e80941Smrg<li><a href="#bugzilla">Update Bugzilla</a> 31b8e80941Smrg</ul> 32b8e80941Smrg 33b8e80941Smrg 34b8e80941Smrg<h1 id="overview">Overview</h1> 35b8e80941Smrg 36b8e80941Smrg<p> 37b8e80941SmrgThis document uses the convention X.Y.Z for the release number with X.Y being 38b8e80941Smrgthe stable branch name. 39b8e80941Smrg<br> 40b8e80941SmrgMesa provides feature and bugfix releases. Former use zero as patch version (Z), 41b8e80941Smrgwhile the latter have a non-zero one. 42b8e80941Smrg</p> 43b8e80941Smrg 44b8e80941Smrg<p> 45b8e80941SmrgFor example: 46b8e80941Smrg</p> 47b8e80941Smrg<pre> 48b8e80941Smrg Mesa 10.1.0 - 10.1 branch, feature 49b8e80941Smrg Mesa 10.1.4 - 10.1 branch, bugfix 50b8e80941Smrg Mesa 12.0.0 - 12.0 branch, feature 51b8e80941Smrg Mesa 12.0.2 - 12.0 branch, bugfix 52b8e80941Smrg</pre> 53b8e80941Smrg 54b8e80941Smrg 55b8e80941Smrg<h1 id="schedule">Release schedule</h1> 56b8e80941Smrg 57b8e80941Smrg<p> 58b8e80941SmrgReleases should happen on Wednesdays. Delays can occur although those 59b8e80941Smrgshould be kept to a minimum. 60b8e80941Smrg<br> 61b8e80941SmrgSee our <a href="release-calendar.html" target="_parent">calendar</a> 62b8e80941Smrgfor information about how the release schedule is planned, and the 63b8e80941Smrgdate and other details for individual releases. 64b8e80941Smrg</p> 65b8e80941Smrg 66b8e80941Smrg<h2>Feature releases</h2> 67b8e80941Smrg<ul> 68b8e80941Smrg<li>Available approximately every three months. 69b8e80941Smrg<li>Initial timeplan available 2-4 weeks before the planned branchpoint (rc1) 70b8e80941Smrgon the mesa-announce@ mailing list. 71b8e80941Smrg<li>Typically, the final release will happen after 4 72b8e80941Smrgcandidates. Additional ones may be needed in order to resolve blocking 73b8e80941Smrgregressions, though. 74b8e80941Smrg<li>A <a href="#prerelease">pre-release</a> announcement should be available 75b8e80941Smrgapproximately 24 hours before the final (non-rc) release. 76b8e80941Smrg</ul> 77b8e80941Smrg 78b8e80941Smrg<h2>Stable releases</h2> 79b8e80941Smrg<ul> 80b8e80941Smrg<li>Normally available once every two weeks. 81b8e80941Smrg<li>Only the latest branch has releases. See note below. 82b8e80941Smrg<li>A <a href="#prerelease">pre-release</a> announcement should be available 83b8e80941Smrgapproximately 48 hours before the actual release. 84b8e80941Smrg</ul> 85b8e80941Smrg 86b8e80941Smrg<p> 87b8e80941SmrgNote: There is one or two releases overlap when changing branches. For example: 88b8e80941Smrg<br> 89b8e80941SmrgThe final release from the 12.0 series Mesa 12.0.5 will be out around the same 90b8e80941Smrgtime (or shortly after) 13.0.1 is out. 91b8e80941Smrg<br> 92b8e80941SmrgThis also involves that, as a final release may be delayed due to the 93b8e80941Smrgneed of additional candidates to solve some blocking regression(s), 94b8e80941Smrgthe release manager might have to update 95b8e80941Smrgthe <a href="release-calendar.html" target="_parent">calendar</a> with 96b8e80941Smrgadditional bug fix releases of the current stable branch. 97b8e80941Smrg</p> 98b8e80941Smrg 99b8e80941Smrg 100b8e80941Smrg<h1 id="pickntest">Cherry-picking and testing</h1> 101b8e80941Smrg 102b8e80941Smrg<p> 103b8e80941SmrgCommits nominated for the active branch are picked as based on the 104b8e80941Smrg<a href="submittingpatches.html#criteria" target="_parent">criteria</a> as 105b8e80941Smrgdescribed in the same section. 106b8e80941Smrg</p> 107b8e80941Smrg 108b8e80941Smrg<p> 109b8e80941SmrgNomination happens in the mesa-stable@ mailing list. However, 110b8e80941Smrgmaintainer is responsible of checking for forgotten candidates in the 111b8e80941Smrgmaster branch. This is achieved by a combination of ad-hoc scripts and 112b8e80941Smrga casual search for terms such as regression, fix, broken and similar. 113b8e80941Smrg</p> 114b8e80941Smrg 115b8e80941Smrg<p> 116b8e80941SmrgMaintainer is also responsible for testing in various possible permutations of 117b8e80941Smrgthe autoconf and scons build. 118b8e80941Smrg</p> 119b8e80941Smrg 120b8e80941Smrg<h2>Cherry-picking and build/check testing</h2> 121b8e80941Smrg 122b8e80941Smrg<p>Done continuously up-to the <a href="#prerelease">pre-release</a> announcement.</p> 123b8e80941Smrg 124b8e80941Smrg<p> 125b8e80941SmrgDevelopers can request, <em>as an exception</em>, patches to be applied up-to 126b8e80941Smrgthe last one hour before the actual release. This is made <strong>only</strong> 127b8e80941Smrgwith explicit permission/request, and the patch <strong>must</strong> be very 128b8e80941Smrgwell contained. Thus it cannot affect more than one driver/subsystem. 129b8e80941Smrg</p> 130b8e80941Smrg 131b8e80941Smrg<p>Following developers have requested permanent exception</p> 132b8e80941Smrg<ul> 133b8e80941Smrg<li><em>Ilia Mirkin</em> 134b8e80941Smrg<li><em>AMD team</em> 135b8e80941Smrg</ul> 136b8e80941Smrg 137b8e80941Smrg<p>The following must pass:</p> 138b8e80941Smrg<ul> 139b8e80941Smrg<li>meson test, scons and scons check 140b8e80941Smrg<li>Testing with different version of system components - LLVM and others is also 141b8e80941Smrgperformed where possible. 142b8e80941Smrg<li>As a general rule, testing with various combinations of configure 143b8e80941Smrgswitches, depending on the specific patchset. 144b8e80941Smrg</ul> 145b8e80941Smrg 146b8e80941Smrg<p> 147b8e80941SmrgThese are achieved by combination of <a href="basictesting">local testing</a>, 148b8e80941Smrgwhich includes mingw-w64 cross compilation and AppVeyor plus Travis-CI, the 149b8e80941Smrglatter two as part of their Github integration. 150b8e80941Smrg</p> 151b8e80941Smrg 152b8e80941Smrg<p> 153b8e80941SmrgFor Windows related changes, the main contact point is Brian 154b8e80941SmrgPaul. Jose Fonseca can also help as a fallback contact. 155b8e80941Smrg</p> 156b8e80941Smrg 157b8e80941Smrg<p> 158b8e80941SmrgFor Android related changes, the main contact is Tapani 159b8e80941SmrgPälli. Mauro Rossi is collaborating with android-x86 and may 160b8e80941Smrgprovide feedback about the build status in that project. 161b8e80941Smrg</p> 162b8e80941Smrg 163b8e80941Smrg<p> 164b8e80941SmrgFor MacOSX related changes, Jeremy Huddleston Sequoia is currently a 165b8e80941Smrggood contact point. 166b8e80941Smrg</p> 167b8e80941Smrg 168b8e80941Smrg<p> 169b8e80941Smrg<strong>Note:</strong> If a patch in the current queue needs any additional 170b8e80941Smrgfix(es), then they should be squashed together. 171b8e80941Smrg<br> 172b8e80941SmrgThe commit messages and the <code>cherry picked from</code> tags must be preserved. 173b8e80941Smrg</p> 174b8e80941Smrg 175b8e80941Smrg<p> 176b8e80941SmrgThis should be noted in the <a href="#prerelease">pre-announce</a> email. 177b8e80941Smrg</p> 178b8e80941Smrg 179b8e80941Smrg<pre> 180b8e80941Smrg git show b10859ec41d09c57663a258f43fe57c12332698e 181b8e80941Smrg 182b8e80941Smrg commit b10859ec41d09c57663a258f43fe57c12332698e 183b8e80941Smrg Author: Jonas Pfeil <pfeiljonas@gmx.de> 184b8e80941Smrg Date: Wed Mar 1 18:11:10 2017 +0100 185b8e80941Smrg 186b8e80941Smrg ralloc: Make sure ralloc() allocations match malloc()'s alignment. 187b8e80941Smrg 188b8e80941Smrg The header of ralloc needs to be aligned, because the compiler assumes 189b8e80941Smrg ... 190b8e80941Smrg 191b8e80941Smrg (cherry picked from commit cd2b55e536dc806f9358f71db438dd9c246cdb14) 192b8e80941Smrg 193b8e80941Smrg Squashed with commit: 194b8e80941Smrg 195b8e80941Smrg ralloc: don't leave out the alignment factor 196b8e80941Smrg 197b8e80941Smrg Experimentation shows that without alignment factor gcc and clang choose 198b8e80941Smrg ... 199b8e80941Smrg 200b8e80941Smrg (cherry picked from commit ff494fe999510ea40e3ed5827e7818550b6de126) 201b8e80941Smrg</pre> 202b8e80941Smrg 203b8e80941Smrg<h2>Regression/functionality testing</h2> 204b8e80941Smrg 205b8e80941Smrg<p> 206b8e80941SmrgLess often (once or twice), shortly before the pre-release announcement. 207b8e80941SmrgEnsure that testing is redone if Intel devs have requested an exception, as per above. 208b8e80941Smrg</p> 209b8e80941Smrg 210b8e80941Smrg<ul> 211b8e80941Smrg<li><em>no regressions should be observed for Piglit/dEQP/CTS/Vulkan on Intel platforms</em> 212b8e80941Smrg<li><em>no regressions should be observed for Piglit using the swrast, softpipe 213b8e80941Smrgand llvmpipe drivers</em> 214b8e80941Smrg</ul> 215b8e80941Smrg 216b8e80941Smrg<p> 217b8e80941SmrgCurrently testing is performed courtesy of the Intel OTC team and their Jenkins CI setup. Check with the Intel team over IRC how to get things setup. 218b8e80941Smrg</p> 219b8e80941Smrg 220b8e80941Smrg<p> 221b8e80941SmrgInstalling the built driver from the pre-announced RC branch in the 222b8e80941Smrgsystem and making some every day's use until the release may be a good 223b8e80941Smrgidea too. 224b8e80941Smrg</p> 225b8e80941Smrg 226b8e80941Smrg<h1 id="stagingbranch">Staging branch</h1> 227b8e80941Smrg 228b8e80941Smrg<p> 229b8e80941SmrgA live branch, which contains the currently merge/rejected patches is available 230b8e80941Smrgin the main repository under <code>staging/X.Y</code>. For example: 231b8e80941Smrg</p> 232b8e80941Smrg<pre> 233b8e80941Smrg staging/18.1 - WIP branch for the 18.1 series 234b8e80941Smrg staging/18.2 - WIP branch for the 18.2 series 235b8e80941Smrg</pre> 236b8e80941Smrg 237b8e80941Smrg<p> 238b8e80941SmrgNotes: 239b8e80941Smrg</p> 240b8e80941Smrg<ul> 241b8e80941Smrg<li>People are encouraged to test the staging branch and report regressions.</li> 242b8e80941Smrg<li>The branch history is not stable and it <strong>will</strong> be rebased,</li> 243b8e80941Smrg</ul> 244b8e80941Smrg 245b8e80941Smrg 246b8e80941Smrg<h1 id="branch">Making a branchpoint</h1> 247b8e80941Smrg 248b8e80941Smrg<p> 249b8e80941SmrgA branchpoint is made such that new development can continue in parallel to 250b8e80941Smrgstabilisation and bugfixing. 251b8e80941Smrg</p> 252b8e80941Smrg 253b8e80941Smrg<p> 254b8e80941SmrgNote: Before doing a branch ensure that basic build and <code>meson test</code> 255b8e80941Smrgtesting is done and there are little to-no issues. 256b8e80941Smrg<br> 257b8e80941SmrgIdeally all of those should be tackled already. 258b8e80941Smrg</p> 259b8e80941Smrg 260b8e80941Smrg<p> 261b8e80941SmrgCheck if the version number is going to remain as, alternatively 262b8e80941Smrg<code> git mv docs/relnotes/{current,new}.html </code> as appropriate. 263b8e80941Smrg</p> 264b8e80941Smrg 265b8e80941Smrg<p> 266b8e80941SmrgTo setup the branchpoint: 267b8e80941Smrg</p> 268b8e80941Smrg<pre> 269b8e80941Smrg git checkout master # make sure we're in master first 270b8e80941Smrg git tag -s X.Y-branchpoint -m "Mesa X.Y branchpoint" 271b8e80941Smrg git checkout -b X.Y 272b8e80941Smrg git checkout master 273b8e80941Smrg $EDITOR VERSION # bump the version number 274b8e80941Smrg git commit -as 275b8e80941Smrg cp docs/relnotes/{X.Y,X.Y+1}.html # copy/create relnotes template 276b8e80941Smrg git commit -as 277b8e80941Smrg git push origin X.Y-branchpoint X.Y 278b8e80941Smrg</pre> 279b8e80941Smrg 280b8e80941Smrg<p> 281b8e80941SmrgNow go to 282b8e80941Smrg<a href="https://bugs.freedesktop.org/editversions.cgi?action=add&product=Mesa" target="_parent">Bugzilla</a> and add the new Mesa version X.Y. 283b8e80941Smrg</p> 284b8e80941Smrg 285b8e80941Smrg<p> 286b8e80941SmrgCheck that there are no distribution breaking changes and revert them if needed. 287b8e80941SmrgFor example: files being overwritten on install, etc. Happens extremely rarely - 288b8e80941Smrgwe had only one case so far (see commit 2ced8eb136528914e1bf4e000dea06a9d53c7e04). 289b8e80941Smrg</p> 290b8e80941Smrg 291b8e80941Smrg<p> 292b8e80941SmrgProceed to <a href="#release">release</a> -rc1. 293b8e80941Smrg</p> 294b8e80941Smrg 295b8e80941Smrg 296b8e80941Smrg<h1 id="prerelease">Pre-release announcement</h1> 297b8e80941Smrg 298b8e80941Smrg<p> 299b8e80941SmrgIt comes shortly after outstanding patches in the respective branch are pushed. 300b8e80941SmrgDevelopers can check, in brief, what's the status of their patches. They, 301b8e80941Smrgalongside very early testers, are strongly encouraged to test the branch and 302b8e80941Smrgreport any regressions. 303b8e80941Smrg<br> 304b8e80941SmrgIt is followed by a brief period (normally 24 or 48 hours) before the actual 305b8e80941Smrgrelease is made. 306b8e80941Smrg</p> 307b8e80941Smrg 308b8e80941Smrg<p> 309b8e80941SmrgBe aware to add a note to warn about a final release in a series, if 310b8e80941Smrgthat is the case. 311b8e80941Smrg</p> 312b8e80941Smrg 313b8e80941Smrg<h2>Terminology used</h2> 314b8e80941Smrg 315b8e80941Smrg<ul><li>Nominated</ul> 316b8e80941Smrg 317b8e80941Smrg<p> 318b8e80941SmrgPatch that is nominated but yet to to merged in the patch queue/branch. 319b8e80941Smrg</p> 320b8e80941Smrg 321b8e80941Smrg<ul><li>Queued</ul> 322b8e80941Smrg 323b8e80941Smrg<p> 324b8e80941SmrgPatch is in the queue/branch and will feature in the next release. 325b8e80941SmrgBarring reported regressions or objections from developers. 326b8e80941Smrg</p> 327b8e80941Smrg 328b8e80941Smrg<ul><li>Rejected</ul> 329b8e80941Smrg 330b8e80941Smrg<p> 331b8e80941SmrgPatch does not fit the 332b8e80941Smrg<a href="submittingpatches.html#criteria" target="_parent">criteria</a> and 333b8e80941Smrgis followed by a brief information. 334b8e80941Smrg<br> 335b8e80941SmrgThe release maintainer is human so if you believe you've spotted a mistake do 336b8e80941Smrglet them know. 337b8e80941Smrg</p> 338b8e80941Smrg 339b8e80941Smrg<h2>Format/template</h2> 340b8e80941Smrg<pre> 341b8e80941SmrgSubject: [ANNOUNCE] Mesa X.Y.Z release candidate 342b8e80941SmrgTo: mesa-announce@... 343b8e80941SmrgCc: mesa-dev@... 344b8e80941Smrg 345b8e80941SmrgHello list, 346b8e80941Smrg 347b8e80941SmrgThe candidate for the Mesa X.Y.Z is now available. Currently we have: 348b8e80941Smrg - NUMBER queued 349b8e80941Smrg - NUMBER nominated (outstanding) 350b8e80941Smrg - and NUMBER rejected patches 351b8e80941Smrg 352b8e80941Smrg[If applicable: 353b8e80941SmrgNote: this is the final anticipated release in the SERIES series. Users are 354b8e80941Smrgencouraged to migrate to the NEXT_SERIES series in order to obtain future fixes.] 355b8e80941Smrg 356b8e80941SmrgBRIEF SUMMARY OF CHANGES 357b8e80941Smrg 358b8e80941SmrgTake a look at section "Mesa stable queue" for more information. 359b8e80941Smrg 360b8e80941Smrg 361b8e80941SmrgTesting reports/general approval 362b8e80941Smrg-------------------------------- 363b8e80941SmrgAny testing reports (or general approval of the state of the branch) will be 364b8e80941Smrggreatly appreciated. 365b8e80941Smrg 366b8e80941SmrgThe plan is to have X.Y.Z this DAY (DATE), around or shortly after TIME. 367b8e80941Smrg 368b8e80941SmrgIf you have any questions or suggestions - be that about the current patch 369b8e80941Smrgqueue or otherwise, please go ahead. 370b8e80941Smrg 371b8e80941Smrg 372b8e80941SmrgTrivial merge conflicts 373b8e80941Smrg----------------------- 374b8e80941SmrgList of commits where manual intervention was required. 375b8e80941SmrgKeep the authors in the CC list. 376b8e80941Smrg 377b8e80941Smrgcommit SHA 378b8e80941SmrgAuthor: AUTHOR 379b8e80941Smrg 380b8e80941Smrg COMMIT SUMMARY 381b8e80941Smrg 382b8e80941Smrg CHERRY PICKED FROM 383b8e80941Smrg 384b8e80941Smrg 385b8e80941SmrgFor example: 386b8e80941Smrg 387b8e80941Smrgcommit 990f395e007c3204639daa34efc3049f350ee819 388b8e80941SmrgAuthor: Emil Velikov <emil.velikov@collabora.com> 389b8e80941Smrg 390b8e80941Smrg anv: automake: cleanup the generated json file during make clean 391b8e80941Smrg 392b8e80941Smrg (cherry picked from commit 8df581520a823564be0ab5af7dbb7d501b1c9670) 393b8e80941Smrg 394b8e80941Smrg 395b8e80941SmrgCheers, 396b8e80941SmrgEmil 397b8e80941Smrg 398b8e80941Smrg 399b8e80941SmrgMesa stable queue 400b8e80941Smrg----------------- 401b8e80941Smrg 402b8e80941SmrgNominated (NUMBER) 403b8e80941Smrg================== 404b8e80941Smrg 405b8e80941SmrgAUTHOR (NUMBER): 406b8e80941Smrg SHA COMMIT SUMMARY 407b8e80941Smrg 408b8e80941SmrgFor example: 409b8e80941Smrg 410b8e80941SmrgDave Airlie (1): 411b8e80941Smrg 2de85eb radv: fix texturesamples to handle single sample case 412b8e80941Smrg 413b8e80941Smrg 414b8e80941SmrgQueued (NUMBER) 415b8e80941Smrg=============== 416b8e80941Smrg 417b8e80941SmrgAUTHOR (NUMBER): 418b8e80941Smrg COMMIT SUMMARY 419b8e80941Smrg[If applicable: 420b8e80941SmrgSquashed with 421b8e80941Smrg COMMIT SUMMARY] 422b8e80941Smrg 423b8e80941SmrgFor example: 424b8e80941Smrg 425b8e80941SmrgJonas Pfeil (1): 426b8e80941Smrg ralloc: Make sure ralloc() allocations match malloc()'s alignment. 427b8e80941SmrgSquashed with 428b8e80941Smrg ralloc: don't leave out the alignment factor 429b8e80941Smrg 430b8e80941Smrg 431b8e80941SmrgRejected (NUMBER) 432b8e80941Smrg================= 433b8e80941Smrg 434b8e80941SmrgAUTHOR (NUMBER): 435b8e80941Smrg SHA COMMIT SUMMARY 436b8e80941Smrg 437b8e80941SmrgReason: ... 438b8e80941Smrg 439b8e80941SmrgFor example: 440b8e80941Smrg 441b8e80941SmrgEmil Velikov (1) 442b8e80941Smrg a39ad18 configure.ac: honour LLVM_LIBDIR when linking against LLVM 443b8e80941Smrg 444b8e80941SmrgReason: The patch was reverted shortly after it was merged. 445b8e80941Smrg</pre> 446b8e80941Smrg 447b8e80941Smrg 448b8e80941Smrg<h1 id="release">Making a new release</h1> 449b8e80941Smrg 450b8e80941Smrg<p> 451b8e80941SmrgThese are the instructions for making a new Mesa release. 452b8e80941Smrg</p> 453b8e80941Smrg 454b8e80941Smrg<h3>Get latest source files</h3> 455b8e80941Smrg 456b8e80941Smrg<p> 457b8e80941SmrgEnsure the latest code is available - both in your local master and the 458b8e80941Smrgrelevant branch. 459b8e80941Smrg</p> 460b8e80941Smrg 461b8e80941Smrg<h3 id="basictesting">Perform basic testing</h3> 462b8e80941Smrg 463b8e80941Smrg<p> 464b8e80941SmrgMost of the testing should already be done during the 465b8e80941Smrg<a href="#pickntest">cherry-pick</a> and 466b8e80941Smrg<a href="#prerelease">pre-announce</a> stages. 467b8e80941SmrgSo we do a quick 'touch test' 468b8e80941Smrg</p> 469b8e80941Smrg 470b8e80941Smrg<ul> 471b8e80941Smrg<li>meson dist 472b8e80941Smrg<li>scons (from release tarball) 473b8e80941Smrg<li>the produced binaries work 474b8e80941Smrg</ul> 475b8e80941Smrg 476b8e80941Smrg<p> 477b8e80941Smrg Here is one solution: 478b8e80941Smrg</p> 479b8e80941Smrg 480b8e80941Smrg<pre> 481b8e80941Smrg __glxgears_cmd='glxgears 2>&1 | grep -v "configuration file"' 482b8e80941Smrg __es2info_cmd='es2_info 2>&1 | egrep "GL_VERSION|GL_RENDERER|.*dri\.so"' 483b8e80941Smrg __es2gears_cmd='es2gears_x11 2>&1 | grep -v "configuration file"' 484b8e80941Smrg test "x$LD_LIBRARY_PATH" != 'x' && __old_ld="$LD_LIBRARY_PATH" 485b8e80941Smrg export LD_LIBRARY_PATH=`pwd`/test/usr/local/lib/:"${__old_ld}" 486b8e80941Smrg export LIBGL_DRIVERS_PATH=`pwd`/test/usr/local/lib/dri/ 487b8e80941Smrg export LIBGL_DEBUG=verbose 488b8e80941Smrg eval $__glxinfo_cmd 489b8e80941Smrg eval $__glxgears_cmd 490b8e80941Smrg eval $__es2info_cmd 491b8e80941Smrg eval $__es2gears_cmd 492b8e80941Smrg export LIBGL_ALWAYS_SOFTWARE=true 493b8e80941Smrg eval $__glxinfo_cmd 494b8e80941Smrg eval $__glxgears_cmd 495b8e80941Smrg eval $__es2info_cmd 496b8e80941Smrg eval $__es2gears_cmd 497b8e80941Smrg export LIBGL_ALWAYS_SOFTWARE=true 498b8e80941Smrg export GALLIUM_DRIVER=softpipe 499b8e80941Smrg eval $__glxinfo_cmd 500b8e80941Smrg eval $__glxgears_cmd 501b8e80941Smrg eval $__es2info_cmd 502b8e80941Smrg eval $__es2gears_cmd 503b8e80941Smrg # Smoke test DOTA2 504b8e80941Smrg unset LD_LIBRARY_PATH 505b8e80941Smrg test "x$__old_ld" != 'x' && export LD_LIBRARY_PATH="$__old_ld" && unset __old_ld 506b8e80941Smrg unset LIBGL_DRIVERS_PATH 507b8e80941Smrg unset LIBGL_DEBUG 508b8e80941Smrg unset LIBGL_ALWAYS_SOFTWARE 509b8e80941Smrg unset GALLIUM_DRIVER 510b8e80941Smrg export VK_ICD_FILENAMES=`pwd`/src/intel/vulkan/dev_icd.json 511b8e80941Smrg steam steam://rungameid/570 -vconsole -vulkan 512b8e80941Smrg unset VK_ICD_FILENAMES 513b8e80941Smrg</pre> 514b8e80941Smrg 515b8e80941Smrg<h3>Update version in file VERSION</h3> 516b8e80941Smrg 517b8e80941Smrg<p> 518b8e80941SmrgIncrement the version contained in the file VERSION at Mesa's top-level, then 519b8e80941Smrgcommit this change. 520b8e80941Smrg</p> 521b8e80941Smrg 522b8e80941Smrg<h3>Create release notes for the new release</h3> 523b8e80941Smrg 524b8e80941Smrg<p> 525b8e80941SmrgCreate a new file docs/relnotes/X.Y.Z.html, (follow the style of the previous 526b8e80941Smrgrelease notes). Note that the sha256sums section of the release notes should 527b8e80941Smrgbe empty (TBD) at this point. 528b8e80941Smrg</p> 529b8e80941Smrg 530b8e80941Smrg<p> 531b8e80941SmrgTwo scripts are available to help generate portions of the release notes: 532b8e80941Smrg</p> 533b8e80941Smrg 534b8e80941Smrg<pre> 535b8e80941Smrg ./bin/bugzilla_mesa.sh 536b8e80941Smrg ./bin/shortlog_mesa.sh 537b8e80941Smrg</pre> 538b8e80941Smrg 539b8e80941Smrg<p> 540b8e80941SmrgThe first script identifies commits that reference bugzilla bugs and obtains 541b8e80941Smrgthe descriptions of those bugs from bugzilla. The second script generates a 542b8e80941Smrglog of all commits. In both cases, HTML-formatted lists are printed to stdout 543b8e80941Smrgto be included in the release notes. 544b8e80941Smrg</p> 545b8e80941Smrg 546b8e80941Smrg<p> 547b8e80941SmrgCommit these changes and push the branch. 548b8e80941Smrg</p> 549b8e80941Smrg 550b8e80941Smrg<pre> 551b8e80941Smrg git push origin HEAD 552b8e80941Smrg</pre> 553b8e80941Smrg 554b8e80941Smrg 555b8e80941Smrg<h3>Use the release.sh script from xorg <a href="https://cgit.freedesktop.org/xorg/util/modular/">util-modular</a></h3> 556b8e80941Smrg 557b8e80941Smrg<p> 558b8e80941SmrgStart the release process. 559b8e80941Smrg</p> 560b8e80941Smrg 561b8e80941Smrg<pre> 562b8e80941Smrg # For the dist/distcheck, you may want to specify which LLVM to use: 563b8e80941Smrg # export LLVM_CONFIG=/usr/lib/llvm-3.9/bin/llvm-config 564b8e80941Smrg ../relative/path/to/release.sh . # append --dist if you've already done distcheck above 565b8e80941Smrg</pre> 566b8e80941Smrg 567b8e80941Smrg<p> 568b8e80941SmrgPay close attention to the prompts as you might be required to enter your GPG 569b8e80941Smrgand SSH passphrase(s) to sign and upload the files, respectively. 570b8e80941Smrg</p> 571b8e80941Smrg 572b8e80941Smrg<h3>Add the sha256sums to the release notes</h3> 573b8e80941Smrg 574b8e80941Smrg<p> 575b8e80941SmrgEdit docs/relnotes/X.Y.Z.html to add the sha256sums as available in the mesa-X.Y.Z.announce template. Commit this change. 576b8e80941Smrg</p> 577b8e80941Smrg 578b8e80941Smrg<h3>Back on mesa master, add the new release notes into the tree</h3> 579b8e80941Smrg 580b8e80941Smrg<p> 581b8e80941SmrgSomething like the following steps will do the trick: 582b8e80941Smrg</p> 583b8e80941Smrg 584b8e80941Smrg<pre> 585b8e80941Smrg git cherry-pick -x X.Y~1 586b8e80941Smrg git cherry-pick -x X.Y 587b8e80941Smrg</pre> 588b8e80941Smrg 589b8e80941Smrg<p> 590b8e80941SmrgAlso, edit docs/relnotes.html to add a link to the new release notes, 591b8e80941Smrgedit docs/index.html to add a news entry and a note in case of the 592b8e80941Smrglast release in a series, and remove the version from 593b8e80941Smrgdocs/release-calendar.html. Then commit and push: 594b8e80941Smrg</p> 595b8e80941Smrg 596b8e80941Smrg<pre> 597b8e80941Smrg git commit -as -m "docs: update calendar, add news item and link release notes for X.Y.Z" 598b8e80941Smrg git push origin master X.Y 599b8e80941Smrg</pre> 600b8e80941Smrg 601b8e80941Smrg 602b8e80941Smrg<h1 id="announce">Announce the release</h1> 603b8e80941Smrg 604b8e80941Smrg<p> 605b8e80941SmrgUse the generated template during the releasing process. 606b8e80941Smrg</p> 607b8e80941Smrg 608b8e80941Smrg<p> 609b8e80941SmrgAgain, pay attention to add a note to warn about a final release in a 610b8e80941Smrgseries, if that is the case. 611b8e80941Smrg</p> 612b8e80941Smrg 613b8e80941Smrg 614b8e80941Smrg<h1 id="website">Update the mesa3d.org website</h1> 615b8e80941Smrg 616b8e80941Smrg<p> 617b8e80941SmrgAs the hosting was moved to freedesktop, git hooks are deployed to update the 618b8e80941Smrgwebsite. Manually check that it is updated 5-10 minutes after the final <code>git push</code> 619b8e80941Smrg</p> 620b8e80941Smrg 621b8e80941Smrg 622b8e80941Smrg<h1 id="bugzilla">Update Bugzilla</h1> 623b8e80941Smrg 624b8e80941Smrg<p> 625b8e80941SmrgParse through the bugreports as listed in the docs/relnotes/X.Y.Z.html 626b8e80941Smrgdocument. 627b8e80941Smrg<br> 628b8e80941SmrgIf there's outstanding action, close the bug referencing the commit ID which 629b8e80941Smrgaddresses the bug and mention the Mesa version that has the fix. 630b8e80941Smrg</p> 631b8e80941Smrg 632b8e80941Smrg<p> 633b8e80941SmrgNote: the above is not applicable to all the reports, so use common sense. 634b8e80941Smrg</p> 635b8e80941Smrg 636b8e80941Smrg 637b8e80941Smrg</div> 638b8e80941Smrg</body> 639b8e80941Smrg</html> 640