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