1*0d6140beSAndroid Build Coastguard Worker=============== 2*0d6140beSAndroid Build Coastguard WorkerRelease process 3*0d6140beSAndroid Build Coastguard Worker=============== 4*0d6140beSAndroid Build Coastguard Worker 5*0d6140beSAndroid Build Coastguard WorkerThe document describes the technical aspect of making a flashrom release, 6*0d6140beSAndroid Build Coastguard Workerand it assumes that the team of active core maintainers is in agreement to commence the process. 7*0d6140beSAndroid Build Coastguard Worker 8*0d6140beSAndroid Build Coastguard WorkerTo go through the process, at least two maintainers are needed to be closely involved, 9*0d6140beSAndroid Build Coastguard Workerbecause it includes sending and approving patches in Gerrit. 10*0d6140beSAndroid Build Coastguard Worker 11*0d6140beSAndroid Build Coastguard WorkerSet up the timeline and announce on the mailing list 12*0d6140beSAndroid Build Coastguard Worker==================================================== 13*0d6140beSAndroid Build Coastguard Worker 14*0d6140beSAndroid Build Coastguard WorkerDecide on the bug-fixing and testing window (3-4 weeks), decide exact dates of start and end of the window, 15*0d6140beSAndroid Build Coastguard Workerand announce it on the mailing list. Ideally make an announcement a few weeks in advance. 16*0d6140beSAndroid Build Coastguard Worker 17*0d6140beSAndroid Build Coastguard WorkerDuring the testing and bug-fixing window only bug fixes are merged, and no new features are added. 18*0d6140beSAndroid Build Coastguard WorkerTypically it's fine to push new features for review, and reviews are fine too, 19*0d6140beSAndroid Build Coastguard Workerbut merging new features will be delayed until the release is done. 20*0d6140beSAndroid Build Coastguard Worker*This should be very clearly explained in the announcement.* 21*0d6140beSAndroid Build Coastguard Worker 22*0d6140beSAndroid Build Coastguard WorkerStart testing and bug-fixing window 23*0d6140beSAndroid Build Coastguard Worker=================================== 24*0d6140beSAndroid Build Coastguard Worker 25*0d6140beSAndroid Build Coastguard Worker* Double-check and merge all the patches that are fully ready (see also :ref:`merge-checklist`) 26*0d6140beSAndroid Build Coastguard Worker 27*0d6140beSAndroid Build Coastguard Worker* Update VERSION file to first release candidate. The name pattern is: ``v{version_number}-rc{rc_number}``. 28*0d6140beSAndroid Build Coastguard Worker 29*0d6140beSAndroid Build Coastguard Worker * As an example, the version name of the first release candidate can be ``v1.4.0-rc1``. 30*0d6140beSAndroid Build Coastguard Worker * To update the VERSION file, push a patch to Gerrit, and another maintainer should review and approve. 31*0d6140beSAndroid Build Coastguard Worker 32*0d6140beSAndroid Build Coastguard Worker* After submitting the change to the VERSION file, tag this commit. Tag name should be the same as 33*0d6140beSAndroid Build Coastguard Worker version name, for example above ``v1.4.0-rc1``. 34*0d6140beSAndroid Build Coastguard Worker 35*0d6140beSAndroid Build Coastguard Worker* Write an announcement on the mailing list. Be very clear about: 36*0d6140beSAndroid Build Coastguard Worker 37*0d6140beSAndroid Build Coastguard Worker * start and end date of the window, and what does it mean 38*0d6140beSAndroid Build Coastguard Worker * any help with :ref:`building-and-testing` is very much appreciated 39*0d6140beSAndroid Build Coastguard Worker 40*0d6140beSAndroid Build Coastguard Worker**From this moment and until the release cut, the highest priority is for building and testing on various environments, and bug-fixing.** 41*0d6140beSAndroid Build Coastguard Worker 42*0d6140beSAndroid Build Coastguard WorkerRelease candidates 43*0d6140beSAndroid Build Coastguard Worker================== 44*0d6140beSAndroid Build Coastguard Worker 45*0d6140beSAndroid Build Coastguard WorkerIf any bugs are found and fixed (or reverted), then the second, or third release candidate will be needed. 46*0d6140beSAndroid Build Coastguard WorkerThe process is the same as with the first candidate: 47*0d6140beSAndroid Build Coastguard Worker 48*0d6140beSAndroid Build Coastguard Worker* Update the VERSION file, and submit this 49*0d6140beSAndroid Build Coastguard Worker* Tag the commit which updates the VERSION file 50*0d6140beSAndroid Build Coastguard Worker* Post an announcement on mailing list 51*0d6140beSAndroid Build Coastguard Worker 52*0d6140beSAndroid Build Coastguard WorkerRelease notes 53*0d6140beSAndroid Build Coastguard Worker============= 54*0d6140beSAndroid Build Coastguard Worker 55*0d6140beSAndroid Build Coastguard WorkerDuring the time in-between releases, ideally most updates are accumulated in the doc :doc:`/release_notes/devel`. 56*0d6140beSAndroid Build Coastguard WorkerWhile this doc is helpful, it is not a replacement for a human to go through all development history 57*0d6140beSAndroid Build Coastguard Workersince the previous release and prepare release notes. One maintainer is preparing the release notes 58*0d6140beSAndroid Build Coastguard Workerand sending them for review, and at least one other maintainer needs to review that (it can be more than one reviewer). 59*0d6140beSAndroid Build Coastguard Worker 60*0d6140beSAndroid Build Coastguard WorkerIdeally the patch with release notes should be prepared, reviewed and approved before the release cut, 61*0d6140beSAndroid Build Coastguard Workerso that it can be published by the time of final release announcement. 62*0d6140beSAndroid Build Coastguard Worker 63*0d6140beSAndroid Build Coastguard WorkerFor inspiration to write release notes, have a look at prior art :doc:`/release_notes/index`. 64*0d6140beSAndroid Build Coastguard Worker 65*0d6140beSAndroid Build Coastguard WorkerThere is one section in release notes, Download, which is not possible to complete before the actual release cut. 66*0d6140beSAndroid Build Coastguard WorkerLeave it as TODO, but complete the rest. 67*0d6140beSAndroid Build Coastguard Worker 68*0d6140beSAndroid Build Coastguard WorkerCut the release 69*0d6140beSAndroid Build Coastguard Worker=============== 70*0d6140beSAndroid Build Coastguard Worker 71*0d6140beSAndroid Build Coastguard WorkerWait for at least a week (or two) since the last release candidate. if everything is alright: 72*0d6140beSAndroid Build Coastguard Worker 73*0d6140beSAndroid Build Coastguard Worker* Submit the release notes, and in the same patch restart :doc:`/release_notes/devel` document. 74*0d6140beSAndroid Build Coastguard Worker This way everyone who is syncing the repository by the release tag will have release notes in the tree. 75*0d6140beSAndroid Build Coastguard Worker 76*0d6140beSAndroid Build Coastguard Worker* Update VERSION file to release version, name pattern is: ``v{version_name}`` 77*0d6140beSAndroid Build Coastguard Worker (for example, it can be ``v1.4.0``), and submit this. 78*0d6140beSAndroid Build Coastguard Worker 79*0d6140beSAndroid Build Coastguard Worker* Tag the commit which updates the VERSION file. Tag name should be the same as version name, 80*0d6140beSAndroid Build Coastguard Worker for example above ``v1.4.0``. 81*0d6140beSAndroid Build Coastguard Worker 82*0d6140beSAndroid Build Coastguard Worker* Create the tarball: 83*0d6140beSAndroid Build Coastguard Worker 84*0d6140beSAndroid Build Coastguard Worker * At the moment of writing, the command we use ``meson dist --include-subprojects``, 85*0d6140beSAndroid Build Coastguard Worker more details are in `meson docs <https://mesonbuild.com/Creating-releases.html#creating-releases>`_. 86*0d6140beSAndroid Build Coastguard Worker * Check that tarball name follows the pattern ``flashrom-v{version_name}.tar.xz``, for example ``flashrom-v1.4.0.tar.xz``. 87*0d6140beSAndroid Build Coastguard Worker 88*0d6140beSAndroid Build Coastguard Worker* Sign the tarball, and upload to the server together with the signature. 89*0d6140beSAndroid Build Coastguard Worker 90*0d6140beSAndroid Build Coastguard Worker* Update release notes with the link to download tarball, signature, and fingerprint. Submit this and check that final release notes are published on the website. 91*0d6140beSAndroid Build Coastguard Worker 92*0d6140beSAndroid Build Coastguard Worker* Write the release announcement, don't forget to: 93*0d6140beSAndroid Build Coastguard Worker 94*0d6140beSAndroid Build Coastguard Worker * Link to download the tarball, signature and fingerprint. 95*0d6140beSAndroid Build Coastguard Worker * Say thank you to everyone who is helping and supporting flashrom 96*0d6140beSAndroid Build Coastguard Worker * Add link to published release notes on the website 97*0d6140beSAndroid Build Coastguard Worker 98*0d6140beSAndroid Build Coastguard WorkerStart the next cycle of development 99*0d6140beSAndroid Build Coastguard Worker=================================== 100*0d6140beSAndroid Build Coastguard Worker 101*0d6140beSAndroid Build Coastguard Worker* Update the VERSION file to the development version. For example, the name pattern is: ``v{version_name}-devel``, 102*0d6140beSAndroid Build Coastguard Worker for example ``v1.5.0-devel``, and submit this. 103*0d6140beSAndroid Build Coastguard Worker 104*0d6140beSAndroid Build Coastguard Worker* Submit all the patches that have been ready and waiting. 105*0d6140beSAndroid Build Coastguard Worker 106*0d6140beSAndroid Build Coastguard Worker* Celebrate :) 107