Skip to content

Commit 22abcd7

Browse files
author
Jonathan Corbet
committed
Merge branch 'maintainer-profile' into docs-next
Patch series from Dan Williams: At last years Plumbers Conference I proposed the Maintainer Entry Profile as a document that a maintainer can provide to set contributor expectations and provide fodder for a discussion between maintainers about the merits of different maintainer policies. For those that did not attend, the goal of the Maintainer Entry Profile is to provide contributors documentation of patch submission considerations that may vary by subsystem. The session introduction was: The first rule of kernel maintenance is that there are no hard and fast rules. That state of affairs is both a blessing and a curse. It has served the community well to be adaptable to the different people and different problem spaces that inhabit the kernel community. However, that variability also leads to inconsistent experiences for contributors, little to no guidance for new contributors, and unnecessary stress on current maintainers. To be clear, the proposed document does not impose or suggest new rules. Instead it provides an outlet to document the existing unwritten policies in effect for a given subsystem. Over time the hope is that some of this variability can be up-levelled to new global process policy, but in the meantime it provides relief for communicating the guidelines that are being imposed on contributors. [jc: resolved merge conflicts with the MAINTAINERS file, added a patch to fix up various RST issues, and added a TOC section for the profiles.]
2 parents 51e46c7 + 0bfa52a commit 22abcd7

File tree

4 files changed

+173
-8
lines changed

4 files changed

+173
-8
lines changed

Documentation/maintainer/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,5 @@ additions to this manual.
1212
configure-git
1313
rebasing-and-merging
1414
pull-requests
15+
maintainer-entry-profile
1516

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
.. _maintainerentryprofile:
2+
3+
Maintainer Entry Profile
4+
========================
5+
6+
The Maintainer Entry Profile supplements the top-level process documents
7+
(submitting-patches, submitting drivers...) with
8+
subsystem/device-driver-local customs as well as details about the patch
9+
submission life-cycle. A contributor uses this document to level set
10+
their expectations and avoid common mistakes, maintainers may use these
11+
profiles to look across subsystems for opportunities to converge on
12+
common practices.
13+
14+
15+
Overview
16+
--------
17+
Provide an introduction to how the subsystem operates. While MAINTAINERS
18+
tells the contributor where to send patches for which files, it does not
19+
convey other subsystem-local infrastructure and mechanisms that aid
20+
development.
21+
22+
Example questions to consider:
23+
24+
- Are there notifications when patches are applied to the local tree, or
25+
merged upstream?
26+
- Does the subsystem have a patchwork instance? Are patchwork state
27+
changes notified?
28+
- Any bots or CI infrastructure that watches the list, or automated
29+
testing feedback that the subsystem gates acceptance?
30+
- Git branches that are pulled into -next?
31+
- What branch should contributors submit against?
32+
- Links to any other Maintainer Entry Profiles? For example a
33+
device-driver may point to an entry for its parent subsystem. This makes
34+
the contributor aware of obligations a maintainer may have have for
35+
other maintainers in the submission chain.
36+
37+
38+
Submit Checklist Addendum
39+
-------------------------
40+
List mandatory and advisory criteria, beyond the common "submit-checklist",
41+
for a patch to be considered healthy enough for maintainer attention.
42+
For example: "pass checkpatch.pl with no errors, or warning. Pass the
43+
unit test detailed at $URI".
44+
45+
The Submit Checklist Addendum can also include details about the status
46+
of related hardware specifications. For example, does the subsystem
47+
require published specifications at a certain revision before patches
48+
will be considered.
49+
50+
51+
Key Cycle Dates
52+
---------------
53+
One of the common misunderstandings of submitters is that patches can be
54+
sent at any time before the merge window closes and can still be
55+
considered for the next -rc1. The reality is that most patches need to
56+
be settled in soaking in linux-next in advance of the merge window
57+
opening. Clarify for the submitter the key dates (in terms rc release
58+
week) that patches might considered for merging and when patches need to
59+
wait for the next -rc. At a minimum:
60+
61+
- Last -rc for new feature submissions:
62+
New feature submissions targeting the next merge window should have
63+
their first posting for consideration before this point. Patches that
64+
are submitted after this point should be clear that they are targeting
65+
the NEXT+1 merge window, or should come with sufficient justification
66+
why they should be considered on an expedited schedule. A general
67+
guideline is to set expectation with contributors that new feature
68+
submissions should appear before -rc5.
69+
70+
- Last -rc to merge features: Deadline for merge decisions
71+
Indicate to contributors the point at which an as yet un-applied patch
72+
set will need to wait for the NEXT+1 merge window. Of course there is no
73+
obligation to ever except any given patchset, but if the review has not
74+
concluded by this point the expectation the contributor should wait and
75+
resubmit for the following merge window.
76+
77+
Optional:
78+
79+
- First -rc at which the development baseline branch, listed in the
80+
overview section, should be considered ready for new submissions.
81+
82+
83+
Review Cadence
84+
--------------
85+
One of the largest sources of contributor angst is how soon to ping
86+
after a patchset has been posted without receiving any feedback. In
87+
addition to specifying how long to wait before a resubmission this
88+
section can also indicate a preferred style of update like, resend the
89+
full series, or privately send a reminder email. This section might also
90+
list how review works for this code area and methods to get feedback
91+
that are not directly from the maintainer.
92+
93+
Existing profiles
94+
-----------------
95+
96+
For now, existing maintainer profiles are listed here; we will likely want
97+
to do something different in the near future.
98+
99+
.. toctree::
100+
:maxdepth: 1
101+
102+
../nvdimm/maintainer-entry-profile
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
LIBNVDIMM Maintainer Entry Profile
2+
==================================
3+
4+
Overview
5+
--------
6+
The libnvdimm subsystem manages persistent memory across multiple
7+
architectures. The mailing list, is tracked by patchwork here:
8+
https://patchwork.kernel.org/project/linux-nvdimm/list/
9+
...and that instance is configured to give feedback to submitters on
10+
patch acceptance and upstream merge. Patches are merged to either the
11+
'libnvdimm-fixes', or 'libnvdimm-for-next' branch. Those branches are
12+
available here:
13+
https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git/
14+
15+
In general patches can be submitted against the latest -rc, however if
16+
the incoming code change is dependent on other pending changes then the
17+
patch should be based on the libnvdimm-for-next branch. However, since
18+
persistent memory sits at the intersection of storage and memory there
19+
are cases where patches are more suitable to be merged through a
20+
Filesystem or the Memory Management tree. When in doubt copy the nvdimm
21+
list and the maintainers will help route.
22+
23+
Submissions will be exposed to the kbuild robot for compile regression
24+
testing. It helps to get a success notification from that infrastructure
25+
before submitting, but it is not required.
26+
27+
28+
Submit Checklist Addendum
29+
-------------------------
30+
There are unit tests for the subsystem via the ndctl utility:
31+
https://github.com/pmem/ndctl
32+
Those tests need to be passed before the patches go upstream, but not
33+
necessarily before initial posting. Contact the list if you need help
34+
getting the test environment set up.
35+
36+
### ACPI Device Specific Methods (_DSM)
37+
Before patches enabling for a new _DSM family will be considered it must
38+
be assigned a format-interface-code from the NVDIMM Sub-team of the ACPI
39+
Specification Working Group. In general, the stance of the subsystem is
40+
to push back on the proliferation of NVDIMM command sets, do strongly
41+
consider implementing support for an existing command set. See
42+
drivers/acpi/nfit/nfit.h for the set of support command sets.
43+
44+
45+
Key Cycle Dates
46+
---------------
47+
New submissions can be sent at any time, but if they intend to hit the
48+
next merge window they should be sent before -rc4, and ideally
49+
stabilized in the libnvdimm-for-next branch by -rc6. Of course if a
50+
patch set requires more than 2 weeks of review -rc4 is already too late
51+
and some patches may require multiple development cycles to review.
52+
53+
54+
Review Cadence
55+
--------------
56+
In general, please wait up to one week before pinging for feedback. A
57+
private mail reminder is preferred. Alternatively ask for other
58+
developers that have Reviewed-by tags for libnvdimm changes to take a
59+
look and offer their opinion.

MAINTAINERS

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,10 @@ Descriptions of section entries
102102
Obsolete: Old code. Something tagged obsolete generally means
103103
it has been replaced by a better system and you
104104
should be using that.
105+
P: Subsystem Profile document for more details submitting
106+
patches to the given subsystem. This is either an in-tree file,
107+
or a URI. See Documentation/maintainer/maintainer-entry-profile.rst
108+
for details.
105109
F: *Files* and directories wildcard patterns.
106110
A trailing slash includes all files and subdirectory files.
107111
F: drivers/net/ all files in and below drivers/net
@@ -819,7 +823,7 @@ S: Orphan
819823
F: drivers/usb/gadget/udc/amd5536udc.*
820824

821825
AMD GEODE PROCESSOR/CHIPSET SUPPORT
822-
P: Andres Salomon <[email protected]>
826+
M: Andres Salomon <[email protected]>
823827
L: [email protected] (moderated for non-subscribers)
824828
W: http://www.amd.com/us-en/ConnectivitySolutions/TechnicalResources/0,,50_2334_2452_11363,00.html
825829
S: Supported
@@ -9301,6 +9305,7 @@ M: Dan Williams <[email protected]>
93019305
M: Vishal Verma <[email protected]>
93029306
M: Dave Jiang <[email protected]>
93039307
9308+
P: Documentation/nvdimm/maintainer-entry-profile.rst
93049309
Q: https://patchwork.kernel.org/project/linux-nvdimm/list/
93059310
S: Supported
93069311
F: drivers/nvdimm/blk.c
@@ -9311,6 +9316,7 @@ M: Vishal Verma <[email protected]>
93119316
M: Dan Williams <[email protected]>
93129317
M: Dave Jiang <[email protected]>
93139318
9319+
P: Documentation/nvdimm/maintainer-entry-profile.rst
93149320
Q: https://patchwork.kernel.org/project/linux-nvdimm/list/
93159321
S: Supported
93169322
F: drivers/nvdimm/btt*
@@ -9320,6 +9326,7 @@ M: Dan Williams <[email protected]>
93209326
M: Vishal Verma <[email protected]>
93219327
M: Dave Jiang <[email protected]>
93229328
9329+
P: Documentation/nvdimm/maintainer-entry-profile.rst
93239330
Q: https://patchwork.kernel.org/project/linux-nvdimm/list/
93249331
S: Supported
93259332
F: drivers/nvdimm/pmem*
@@ -9339,6 +9346,7 @@ M: Dave Jiang <[email protected]>
93399346
M: Keith Busch <[email protected]>
93409347
M: Ira Weiny <[email protected]>
93419348
9349+
P: Documentation/nvdimm/maintainer-entry-profile.rst
93429350
Q: https://patchwork.kernel.org/project/linux-nvdimm/list/
93439351
T: git git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git
93449352
S: Supported
@@ -10204,7 +10212,6 @@ F: drivers/staging/media/tegra-vde/
1020410212

1020510213
MEDIA INPUT INFRASTRUCTURE (V4L/DVB)
1020610214
M: Mauro Carvalho Chehab <[email protected]>
10207-
P: LinuxTV.org Project
1020810215
1020910216
W: https://linuxtv.org
1021010217
Q: http://patchwork.kernel.org/project/linux-media/list/
@@ -13609,7 +13616,6 @@ S: Maintained
1360913616
F: arch/mips/ralink
1361013617

1361113618
RALINK RT2X00 WIRELESS LAN DRIVER
13612-
P: rt2x00 project
1361313619
M: Stanislaw Gruszka <[email protected]>
1361413620
M: Helmut Schaa <[email protected]>
1361513621
@@ -13945,7 +13951,6 @@ S: Supported
1394513951
F: drivers/net/ethernet/rocker/
1394613952

1394713953
ROCKETPORT DRIVER
13948-
P: Comtrol Corp.
1394913954
W: http://www.comtrol.com
1395013955
S: Maintained
1395113956
F: Documentation/driver-api/serial/rocket.rst
@@ -14836,15 +14841,13 @@ F: drivers/video/fbdev/simplefb.c
1483614841
F: include/linux/platform_data/simplefb.h
1483714842

1483814843
SIMTEC EB110ATX (Chalice CATS)
14839-
P: Ben Dooks
14840-
P: Vincent Sanders <[email protected]>
14844+
M: Vincent Sanders <[email protected]>
1484114845
M: Simtec Linux Team <[email protected]>
1484214846
W: http://www.simtec.co.uk/products/EB110ATX/
1484314847
S: Supported
1484414848

1484514849
SIMTEC EB2410ITX (BAST)
14846-
P: Ben Dooks
14847-
P: Vincent Sanders <[email protected]>
14850+
M: Vincent Sanders <[email protected]>
1484814851
M: Simtec Linux Team <[email protected]>
1484914852
W: http://www.simtec.co.uk/products/EB2410ITX/
1485014853
S: Supported

0 commit comments

Comments
 (0)