xref: /openbmc/qemu/docs/devel/maintainers.rst (revision 668725ce6bab12f7d5130fd46d99d0dc6fefe733)
1*668725ceSAlex Bennée.. _maintainers:
2*668725ceSAlex Bennée
3*668725ceSAlex BennéeThe Role of Maintainers
4*668725ceSAlex Bennée=======================
5*668725ceSAlex Bennée
6*668725ceSAlex BennéeMaintainers are a critical part of the project's contributor ecosystem.
7*668725ceSAlex BennéeThey come from a wide range of backgrounds from unpaid hobbyists
8*668725ceSAlex Bennéeworking in their spare time to employees who work on the project as
9*668725ceSAlex Bennéepart of their job. Maintainer activities include:
10*668725ceSAlex Bennée
11*668725ceSAlex Bennée  - reviewing patches and suggesting changes
12*668725ceSAlex Bennée  - collecting patches and preparing pull requests
13*668725ceSAlex Bennée  - tending to the long term health of their area
14*668725ceSAlex Bennée  - participating in other project activities
15*668725ceSAlex Bennée
16*668725ceSAlex BennéeThey are also human and subject to the same pressures as everyone else
17*668725ceSAlex Bennéeincluding overload and burnout. Like everyone else they are subject
18*668725ceSAlex Bennéeto project's :ref:`code_of_conduct` and should also be exemplars of
19*668725ceSAlex Bennéeexcellent community collaborators.
20*668725ceSAlex Bennée
21*668725ceSAlex BennéeThe MAINTAINERS file
22*668725ceSAlex Bennée--------------------
23*668725ceSAlex Bennée
24*668725ceSAlex BennéeThe `MAINTAINERS
25*668725ceSAlex Bennée<https://gitlab.com/qemu-project/qemu/-/blob/master/MAINTAINERS>`__
26*668725ceSAlex Bennéefile contains the canonical list of who is a maintainer. The file
27*668725ceSAlex Bennéeis machine readable so an appropriately configured git (see
28*668725ceSAlex Bennée:ref:`cc_the_relevant_maintainer`) can automatically Cc them on
29*668725ceSAlex Bennéepatches that touch their area of code.
30*668725ceSAlex Bennée
31*668725ceSAlex BennéeThe file also describes the status of the area of code to give an idea
32*668725ceSAlex Bennéeof how actively that section is maintained.
33*668725ceSAlex Bennée
34*668725ceSAlex Bennée.. list-table:: Meaning of support status in MAINTAINERS
35*668725ceSAlex Bennée   :widths: 25 75
36*668725ceSAlex Bennée   :header-rows: 1
37*668725ceSAlex Bennée
38*668725ceSAlex Bennée   * - Status
39*668725ceSAlex Bennée     - Meaning
40*668725ceSAlex Bennée   * - Supported
41*668725ceSAlex Bennée     - Someone is actually paid to look after this.
42*668725ceSAlex Bennée   * - Maintained
43*668725ceSAlex Bennée     - Someone actually looks after it.
44*668725ceSAlex Bennée   * - Odd Fixes
45*668725ceSAlex Bennée     - It has a maintainer but they don't have time to do
46*668725ceSAlex Bennée       much other than throw the odd patch in.
47*668725ceSAlex Bennée   * - Orphan
48*668725ceSAlex Bennée     - No current maintainer.
49*668725ceSAlex Bennée   * - Obsolete
50*668725ceSAlex Bennée     - Old obsolete code, should use something else.
51*668725ceSAlex Bennée
52*668725ceSAlex BennéePlease bear in mind that even if someone is paid to support something
53*668725ceSAlex Bennéeit does not mean they are paid to support you. This is open source and
54*668725ceSAlex Bennéethe code comes with no warranty and the project makes no guarantees
55*668725ceSAlex Bennéeabout dealing with bugs or features requests.
56*668725ceSAlex Bennée
57*668725ceSAlex Bennée
58*668725ceSAlex Bennée
59*668725ceSAlex BennéeBecoming a reviewer
60*668725ceSAlex Bennée-------------------
61*668725ceSAlex Bennée
62*668725ceSAlex BennéeMost maintainers start by becoming subsystem reviewers. While anyone
63*668725ceSAlex Bennéeis welcome to review code on the mailing list getting added to the
64*668725ceSAlex BennéeMAINTAINERS file with a line like::
65*668725ceSAlex Bennée
66*668725ceSAlex Bennée  R: Random Hacker <rhacker@example.com>
67*668725ceSAlex Bennée
68*668725ceSAlex Bennéemarks you as a 'designated reviewer' - expected to provide regular
69*668725ceSAlex Bennéespontaneous feedback. This will ensure that patches touching a given
70*668725ceSAlex Bennéesubsystem will automatically be CC'd to you.
71*668725ceSAlex Bennée
72*668725ceSAlex BennéeBecoming a maintainer
73*668725ceSAlex Bennée---------------------
74*668725ceSAlex Bennée
75*668725ceSAlex BennéeMaintainers are volunteers who put themselves forward or have been
76*668725ceSAlex Bennéeasked by others to keep an eye on an area of code. They have generally
77*668725ceSAlex Bennéedemonstrated to the community, usually via contributions and code
78*668725ceSAlex Bennéereviews, that they have a good understanding of the subsystem. They
79*668725ceSAlex Bennéeare also trusted to make a positive contribution to the project and
80*668725ceSAlex Bennéework well with the other contributors.
81*668725ceSAlex Bennée
82*668725ceSAlex BennéeThe process is simple - simply send a patch to the list that updates
83*668725ceSAlex Bennéethe ``MAINTAINERS`` file. Sometimes this is done as part of a larger
84*668725ceSAlex Bennéeseries when a new sub-system is being added to the code base. This can
85*668725ceSAlex Bennéealso be done by a retiring maintainer who nominates their replacement
86*668725ceSAlex Bennéeafter discussion with other contributors.
87*668725ceSAlex Bennée
88*668725ceSAlex BennéeOnce the patch is reviewed and merged the only other step is to make
89*668725ceSAlex Bennéesure your GPG key is signed.
90*668725ceSAlex Bennée
91*668725ceSAlex Bennée.. _maintainer_keys:
92*668725ceSAlex Bennée
93*668725ceSAlex BennéeMaintainer GPG Keys
94*668725ceSAlex Bennée~~~~~~~~~~~~~~~~~~~
95*668725ceSAlex Bennée
96*668725ceSAlex BennéeGPG is used to sign pull requests so they can be identified as really
97*668725ceSAlex Bennéecoming from the maintainer. If your key is not already signed by
98*668725ceSAlex Bennéemembers of the QEMU community, you should make arrangements to attend
99*668725ceSAlex Bennéea `KeySigningParty <https://wiki.qemu.org/KeySigningParty>`__ (for
100*668725ceSAlex Bennéeexample at KVM Forum) or make alternative arrangements to have your
101*668725ceSAlex Bennéekey signed by an attendee. Key signing requires meeting another
102*668725ceSAlex Bennéecommunity member **in person** [#]_ so please make appropriate
103*668725ceSAlex Bennéearrangements.
104*668725ceSAlex Bennée
105*668725ceSAlex Bennée.. [#] In recent pandemic times we have had to exercise some
106*668725ceSAlex Bennée       flexibility here. Maintainers still need to sign their pull
107*668725ceSAlex Bennée       requests though.
108