xref: /aosp_15_r20/external/flashrom/doc/dev_guide/release_process.rst (revision 0d6140be3aa665ecc836e8907834fcd3e3b018fc)
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