xref: /linux/Documentation/driver-api/media/media-committers.rst (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
1*f505e978SMauro Carvalho Chehab.. SPDX-License-Identifier: GPL-2.0
2*f505e978SMauro Carvalho Chehab
3*f505e978SMauro Carvalho Chehab.. _Media Committers:
4*f505e978SMauro Carvalho Chehab
5*f505e978SMauro Carvalho ChehabMedia Committers
6*f505e978SMauro Carvalho Chehab================
7*f505e978SMauro Carvalho Chehab
8*f505e978SMauro Carvalho ChehabWho is a Media Committer?
9*f505e978SMauro Carvalho Chehab-------------------------
10*f505e978SMauro Carvalho Chehab
11*f505e978SMauro Carvalho ChehabA Media Committer is a Media Maintainer with patchwork access who has been
12*f505e978SMauro Carvalho Chehabgranted commit access to push patches from other developers and their own
13*f505e978SMauro Carvalho Chehabpatches to the
14*f505e978SMauro Carvalho Chehab`media-committers <https://gitlab.freedesktop.org/linux-media/media-committers>`_
15*f505e978SMauro Carvalho Chehabtree.
16*f505e978SMauro Carvalho Chehab
17*f505e978SMauro Carvalho ChehabThese commit rights are granted with expectation of responsibility:
18*f505e978SMauro Carvalho Chehabcommitters are people who care about the Linux Kernel as a whole and
19*f505e978SMauro Carvalho Chehababout the Linux media subsystem and want to advance its development. It
20*f505e978SMauro Carvalho Chehabis also based on a trust relationship among other committers, maintainers
21*f505e978SMauro Carvalho Chehaband the Linux Media community.
22*f505e978SMauro Carvalho Chehab
23*f505e978SMauro Carvalho ChehabAs Media Committer you have the following additional responsibilities:
24*f505e978SMauro Carvalho Chehab
25*f505e978SMauro Carvalho Chehab1. Patches you authored must have a ``Signed-off-by``, ``Reviewed-by``
26*f505e978SMauro Carvalho Chehab   or ``Acked-by`` from another Media Maintainer;
27*f505e978SMauro Carvalho Chehab2. If a patch introduces a regression, then that must be corrected as soon
28*f505e978SMauro Carvalho Chehab   as possible. Typically the patch is either reverted, or an additional
29*f505e978SMauro Carvalho Chehab   patch is committed to fix the regression;
30*f505e978SMauro Carvalho Chehab3. If patches are fixing bugs against already released Kernels, including
31*f505e978SMauro Carvalho Chehab   the reverts mentioned above, the Media Committer shall add the needed
32*f505e978SMauro Carvalho Chehab   tags. Please see :ref:`Media development workflow` for more details.
33*f505e978SMauro Carvalho Chehab4. All Media Committers are responsible for maintaining
34*f505e978SMauro Carvalho Chehab   `Patchwork <https://patchwork.linuxtv.org/project/linux-media/list/>`_,
35*f505e978SMauro Carvalho Chehab   updating the state of the patches they review or merge.
36*f505e978SMauro Carvalho Chehab
37*f505e978SMauro Carvalho Chehab
38*f505e978SMauro Carvalho ChehabBecoming a Media Committer
39*f505e978SMauro Carvalho Chehab--------------------------
40*f505e978SMauro Carvalho Chehab
41*f505e978SMauro Carvalho ChehabExisting Media Committers can nominate a Media Maintainer to be granted
42*f505e978SMauro Carvalho Chehabcommit rights. The Media Maintainer must have patchwork access,
43*f505e978SMauro Carvalho Chehabhave been reviewing patches from third parties for some time, and has
44*f505e978SMauro Carvalho Chehabdemonstrated a good understanding of the maintainer's duties and processes.
45*f505e978SMauro Carvalho Chehab
46*f505e978SMauro Carvalho ChehabThe ultimate responsibility for accepting a nominated committer is up to
47*f505e978SMauro Carvalho Chehabthe Media Subsystem Maintainers. The nominated committer must have earned a
48*f505e978SMauro Carvalho Chehabtrust relationship with all Media Subsystem Maintainers, as, by granting you
49*f505e978SMauro Carvalho Chehabcommit rights, part of their responsibilities are handed over to you.
50*f505e978SMauro Carvalho Chehab
51*f505e978SMauro Carvalho ChehabDue to that, to become a Media Committer, a consensus between all Media
52*f505e978SMauro Carvalho ChehabSubsystem Maintainers is required.
53*f505e978SMauro Carvalho Chehab
54*f505e978SMauro Carvalho Chehab.. Note::
55*f505e978SMauro Carvalho Chehab
56*f505e978SMauro Carvalho Chehab   In order to preserve/protect the developers that could have their commit
57*f505e978SMauro Carvalho Chehab   rights granted, denied or removed as well as the subsystem maintainers who
58*f505e978SMauro Carvalho Chehab   have the task to accept or deny commit rights, all communication related to
59*f505e978SMauro Carvalho Chehab   changing commit rights should happen in private as much as possible.
60*f505e978SMauro Carvalho Chehab
61*f505e978SMauro Carvalho Chehab.. _media-committer-agreement:
62*f505e978SMauro Carvalho Chehab
63*f505e978SMauro Carvalho ChehabMedia Committer's agreement
64*f505e978SMauro Carvalho Chehab---------------------------
65*f505e978SMauro Carvalho Chehab
66*f505e978SMauro Carvalho ChehabOnce a nominated committer is accepted by all Media Subsystem Maintainers,
67*f505e978SMauro Carvalho Chehabthey will ask if the developer is interested in the nomination and discuss
68*f505e978SMauro Carvalho Chehabwhat area(s) of the media subsystem the committer will be responsible for.
69*f505e978SMauro Carvalho ChehabThose areas will typically be the same as the areas that the nominated
70*f505e978SMauro Carvalho Chehabcommitter is already maintaining.
71*f505e978SMauro Carvalho Chehab
72*f505e978SMauro Carvalho ChehabWhen the developer accepts being a committer, the new committer shall
73*f505e978SMauro Carvalho Chehabexplicitly accept the Kernel development policies described under its
74*f505e978SMauro Carvalho ChehabDocumentation/, and in particular to the rules in this document, by writing
75*f505e978SMauro Carvalho Chehaban e-mail to media-committers@linuxtv.org, with a declaration of intent
76*f505e978SMauro Carvalho Chehabfollowing the model below::
77*f505e978SMauro Carvalho Chehab
78*f505e978SMauro Carvalho Chehab   I, John Doe, would like to change my status to: Committer
79*f505e978SMauro Carvalho Chehab
80*f505e978SMauro Carvalho Chehab   As Media Maintainer I accept commit rights for the following areas of
81*f505e978SMauro Carvalho Chehab   the media subsystem:
82*f505e978SMauro Carvalho Chehab
83*f505e978SMauro Carvalho Chehab   ...
84*f505e978SMauro Carvalho Chehab
85*f505e978SMauro Carvalho Chehab   For the purpose of committing patches to the media-committers tree,
86*f505e978SMauro Carvalho Chehab   I'll be using my user https://gitlab.freedesktop.org/users/<username>.
87*f505e978SMauro Carvalho Chehab
88*f505e978SMauro Carvalho ChehabFollowed by a formal declaration of agreement with the Kernel development
89*f505e978SMauro Carvalho Chehabrules::
90*f505e978SMauro Carvalho Chehab
91*f505e978SMauro Carvalho Chehab   I agree to follow the Kernel development rules described at:
92*f505e978SMauro Carvalho Chehab
93*f505e978SMauro Carvalho Chehab   https://www.kernel.org/doc/html/latest/driver-api/media/media-committers.rst
94*f505e978SMauro Carvalho Chehab
95*f505e978SMauro Carvalho Chehab   and to the Linux Kernel development process rules.
96*f505e978SMauro Carvalho Chehab
97*f505e978SMauro Carvalho Chehab   I agree to abide by the Code of Conduct as documented in:
98*f505e978SMauro Carvalho Chehab   https://www.kernel.org/doc/html/latest/process/code-of-conduct.rst
99*f505e978SMauro Carvalho Chehab
100*f505e978SMauro Carvalho Chehab   I am aware that I can, at any point of time, retire. In that case, I will
101*f505e978SMauro Carvalho Chehab   send an e-mail to notify the Media Subsystem Maintainers for them to revoke
102*f505e978SMauro Carvalho Chehab   my commit rights.
103*f505e978SMauro Carvalho Chehab
104*f505e978SMauro Carvalho Chehab   I am aware that the Kernel development rules change over time.
105*f505e978SMauro Carvalho Chehab   By doing a new push to media-committers tree, I understand that I agree
106*f505e978SMauro Carvalho Chehab   to follow the rules in effect at the time of the commit.
107*f505e978SMauro Carvalho Chehab
108*f505e978SMauro Carvalho ChehabThat e-mail shall be signed via the Kernel Web of trust with a PGP key cross
109*f505e978SMauro Carvalho Chehabsigned by other Kernel and media developers. As described at
110*f505e978SMauro Carvalho Chehab:ref:`media-developers-gpg`, the PGP signature, together with the gitlab user
111*f505e978SMauro Carvalho Chehabsecurity are fundamental components that ensure the authenticity of the merge
112*f505e978SMauro Carvalho Chehabrequests that will happen at the media-committers.git tree.
113*f505e978SMauro Carvalho Chehab
114*f505e978SMauro Carvalho ChehabIn case the kernel development process changes, by merging new commits to the
115*f505e978SMauro Carvalho Chehab`media-committers tree <https://gitlab.freedesktop.org/linux-media/media-committers>`_,
116*f505e978SMauro Carvalho Chehabthe Media Committer implicitly declares their agreement with the latest
117*f505e978SMauro Carvalho Chehabversion of the documented process including the contents of this file.
118*f505e978SMauro Carvalho Chehab
119*f505e978SMauro Carvalho ChehabIf a Media Committer decides to retire, it is the committer's duty to
120*f505e978SMauro Carvalho Chehabnotify the Media Subsystem Maintainers about that decision.
121*f505e978SMauro Carvalho Chehab
122*f505e978SMauro Carvalho Chehab.. note::
123*f505e978SMauro Carvalho Chehab
124*f505e978SMauro Carvalho Chehab   1. Changes to the kernel media development process shall be announced in
125*f505e978SMauro Carvalho Chehab      the media-committers mailing list with a reasonable review period. All
126*f505e978SMauro Carvalho Chehab      committers are automatically subscribed to that mailing list;
127*f505e978SMauro Carvalho Chehab   2. Due to the distributed nature of the Kernel development, it is
128*f505e978SMauro Carvalho Chehab      possible that kernel development process changes may end being
129*f505e978SMauro Carvalho Chehab      reviewed/merged at the Linux Docs and/or at the Linux Kernel mailing
130*f505e978SMauro Carvalho Chehab      lists, especially for the contents under Documentation/process and for
131*f505e978SMauro Carvalho Chehab      trivial typo fixes.
132*f505e978SMauro Carvalho Chehab
133*f505e978SMauro Carvalho ChehabMedia Core Committers
134*f505e978SMauro Carvalho Chehab---------------------
135*f505e978SMauro Carvalho Chehab
136*f505e978SMauro Carvalho ChehabA Media Core Committer is a Media Core Maintainer with commit rights.
137*f505e978SMauro Carvalho Chehab
138*f505e978SMauro Carvalho ChehabAs described in Documentation/driver-api/media/maintainer-entry-profile.rst,
139*f505e978SMauro Carvalho Chehaba Media Core Maintainer maintains media core frameworks as well, besides
140*f505e978SMauro Carvalho Chehabjust drivers, and so is allowed to change core files and the media subsystem's
141*f505e978SMauro Carvalho ChehabKernel API. The extent of the core committer's grants will be detailed by the
142*f505e978SMauro Carvalho ChehabMedia Subsystem Maintainers when they nominate a Media Core Committer.
143*f505e978SMauro Carvalho Chehab
144*f505e978SMauro Carvalho ChehabExisting Media Committers may become Media Core Committers and vice versa.
145*f505e978SMauro Carvalho ChehabSuch decisions will be taken in consensus among the Media Subsystem
146*f505e978SMauro Carvalho ChehabMaintainers.
147*f505e978SMauro Carvalho Chehab
148*f505e978SMauro Carvalho ChehabMedia committers rules
149*f505e978SMauro Carvalho Chehab----------------------
150*f505e978SMauro Carvalho Chehab
151*f505e978SMauro Carvalho ChehabMedia committers shall do their best efforts to avoid merging patches that
152*f505e978SMauro Carvalho Chehabwould break any existing drivers. If it breaks, fixup or revert patches
153*f505e978SMauro Carvalho Chehabshall be merged as soon as possible, aiming to be merged at the same Kernel
154*f505e978SMauro Carvalho Chehabcycle the bug is reported.
155*f505e978SMauro Carvalho Chehab
156*f505e978SMauro Carvalho ChehabMedia committers shall behave accordingly to the rights granted by
157*f505e978SMauro Carvalho Chehabthe Media Subsystem Maintainers, especially with regards of the scope of changes
158*f505e978SMauro Carvalho Chehabthey may apply directly at the media-committers tree. That scope can
159*f505e978SMauro Carvalho Chehabchange over time on a mutual agreement between Media Committers and
160*f505e978SMauro Carvalho ChehabMedia Subsystem Maintainers.
161*f505e978SMauro Carvalho Chehab
162*f505e978SMauro Carvalho ChehabThe Media Committer workflow is described at :ref:`Media development workflow`.
163*f505e978SMauro Carvalho Chehab
164*f505e978SMauro Carvalho Chehab.. _Maintain Media Status:
165*f505e978SMauro Carvalho Chehab
166*f505e978SMauro Carvalho ChehabMaintaining Media Maintainer or Committer status
167*f505e978SMauro Carvalho Chehab------------------------------------------------
168*f505e978SMauro Carvalho Chehab
169*f505e978SMauro Carvalho ChehabA community of maintainers working together to move the Linux Kernel
170*f505e978SMauro Carvalho Chehabforward is essential to creating successful projects that are rewarding
171*f505e978SMauro Carvalho Chehabto work on. If there are problems or disagreements within the community,
172*f505e978SMauro Carvalho Chehabthey can usually be solved through healthy discussion and debate.
173*f505e978SMauro Carvalho Chehab
174*f505e978SMauro Carvalho ChehabIn the unhappy event that a Media Maintainer or Committer continues to
175*f505e978SMauro Carvalho Chehabdisregard good citizenship (or actively disrupts the project), we may need
176*f505e978SMauro Carvalho Chehabto revoke that person's status. In such cases, if someone suggests the
177*f505e978SMauro Carvalho Chehabrevocation with a good reason, then after discussing this among the Media
178*f505e978SMauro Carvalho ChehabMaintainers, the final decision is taken by the Media Subsystem Maintainers.
179*f505e978SMauro Carvalho Chehab
180*f505e978SMauro Carvalho ChehabAs the decision to become a Media Maintainer or Committer comes from a
181*f505e978SMauro Carvalho Chehabconsensus between Media Subsystem Maintainers, a single Media Subsystem
182*f505e978SMauro Carvalho ChehabMaintainer not trusting the Media Maintainer or Committer anymore is enough
183*f505e978SMauro Carvalho Chehabto revoke their maintenance, Patchwork grants and/or commit rights.
184*f505e978SMauro Carvalho Chehab
185*f505e978SMauro Carvalho ChehabHaving commit rights revoked doesn't prevent Media Maintainers to keep
186*f505e978SMauro Carvalho Chehabcontributing to the subsystem either via the pull request or via email workflow
187*f505e978SMauro Carvalho Chehabas documented at the :ref:`Media development workflow`.
188*f505e978SMauro Carvalho Chehab
189*f505e978SMauro Carvalho ChehabIf a maintainer is inactive for more than a couple of Kernel cycles,
190*f505e978SMauro Carvalho Chehabmaintainers will try to reach you via e-mail. If not possible, they may
191*f505e978SMauro Carvalho Chehabrevoke their maintainer/patchwork and committer rights and update MAINTAINERS
192*f505e978SMauro Carvalho Chehabfile entries accordingly. If you wish to resume contributing as maintainer
193*f505e978SMauro Carvalho Chehablater on, then contact the Media Subsystem Maintainers to ask if your
194*f505e978SMauro Carvalho Chehabmaintenance, Patchwork grants and commit rights can be restored.
195*f505e978SMauro Carvalho Chehab
196*f505e978SMauro Carvalho ChehabReferences
197*f505e978SMauro Carvalho Chehab----------
198*f505e978SMauro Carvalho Chehab
199*f505e978SMauro Carvalho ChehabMuch of this was inspired by/copied from the committer policies of:
200*f505e978SMauro Carvalho Chehab
201*f505e978SMauro Carvalho Chehab- `Chromium <https://chromium.googlesource.com/chromium/src/+/main/docs/contributing.md>`_;
202*f505e978SMauro Carvalho Chehab- `WebKit <https://webkit.org/commit-and-review-policy/>`_;
203*f505e978SMauro Carvalho Chehab- `Mozilla <https://www.mozilla.org/hacking/committer/>`_.
204