Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Maintainer Handbook: Maintainer Entry Profile

As presented at the 2018 Linux Plumbers conference [1], the Maintainer
Entry Profile (formerly Subsystem Profile) is proposed as a way to reduce
friction between committers and maintainers and encourage conversations
amongst maintainers about common best practices. While coding-style,
submit-checklist, and submitting-drivers lay out some common expectations
there remain local customs and maintainer preferences that vary by
subsystem.

The profile contains documentation of some of the common policy
questions a contributor might have that are local to the subsystem /
device-driver, special considerations for the subsystem, or other
guidelines that are otherwise not covered by the top-level process
documents.

The initial and hopefully non-controversial headings in the profile are:

Overview:
General introduction to how the subsystem operates

Submit Checklist Addendum:
Mechanical items that gate submission staging, or other requirements
that gate patch acceptance.

Key Cycle Dates:
- Last -rc for new feature submissions: Expected lead time for submissions
- Last -rc to merge features: Deadline for merge decisions

Resubmit Cadence: When and preferred method to follow up with the
maintainer

Note that coding style guidelines are explicitly left out of this list.

See Documentation/maintainer/maintainer-entry-profile.rst for more details,
and a follow-on example profile for the libnvdimm subsystem.

[1]: https://linuxplumbersconf.org/event/2/contributions/59/

Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Steve French <stfrench@microsoft.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Tobin C. Harding <me@tobin.cc>
Cc: Olof Johansson <olof@lixom.net>
Cc: Martin K. Petersen <martin.petersen@oracle.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Joe Perches <joe@perches.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Paul Walmsley <paul.walmsley@sifive.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Link: https://lore.kernel.org/r/157462919309.1729495.10585699280061787229.stgit@dwillia2-desk3.amr.corp.intel.com
Signed-off-by: Jonathan Corbet <corbet@lwn.net>

authored by

Dan Williams and committed by
Jonathan Corbet
4699c504 1ca84ed6

+92
+1
Documentation/maintainer/index.rst
··· 12 12 configure-git 13 13 rebasing-and-merging 14 14 pull-requests 15 + maintainer-entry-profile 15 16
+87
Documentation/maintainer/maintainer-entry-profile.rst
··· 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 + Example questions to consider: 22 + - Are there notifications when patches are applied to the local tree, or 23 + merged upstream? 24 + - Does the subsystem have a patchwork instance? Are patchwork state 25 + changes notified? 26 + - Any bots or CI infrastructure that watches the list, or automated 27 + testing feedback that the subsystem gates acceptance? 28 + - Git branches that are pulled into -next? 29 + - What branch should contributors submit against? 30 + - Links to any other Maintainer Entry Profiles? For example a 31 + device-driver may point to an entry for its parent subsystem. This makes 32 + the contributor aware of obligations a maintainer may have have for 33 + other maintainers in the submission chain. 34 + 35 + 36 + Submit Checklist Addendum 37 + ------------------------- 38 + List mandatory and advisory criteria, beyond the common "submit-checklist", 39 + for a patch to be considered healthy enough for maintainer attention. 40 + For example: "pass checkpatch.pl with no errors, or warning. Pass the 41 + unit test detailed at $URI". 42 + 43 + The Submit Checklist Addendum can also include details about the status 44 + of related hardware specifications. For example, does the subsystem 45 + require published specifications at a certain revision before patches 46 + will be considered. 47 + 48 + 49 + Key Cycle Dates 50 + --------------- 51 + One of the common misunderstandings of submitters is that patches can be 52 + sent at any time before the merge window closes and can still be 53 + considered for the next -rc1. The reality is that most patches need to 54 + be settled in soaking in linux-next in advance of the merge window 55 + opening. Clarify for the submitter the key dates (in terms rc release 56 + week) that patches might considered for merging and when patches need to 57 + wait for the next -rc. At a minimum: 58 + - Last -rc for new feature submissions: 59 + New feature submissions targeting the next merge window should have 60 + their first posting for consideration before this point. Patches that 61 + are submitted after this point should be clear that they are targeting 62 + the NEXT+1 merge window, or should come with sufficient justification 63 + why they should be considered on an expedited schedule. A general 64 + guideline is to set expectation with contributors that new feature 65 + submissions should appear before -rc5. 66 + 67 + - Last -rc to merge features: Deadline for merge decisions 68 + Indicate to contributors the point at which an as yet un-applied patch 69 + set will need to wait for the NEXT+1 merge window. Of course there is no 70 + obligation to ever except any given patchset, but if the review has not 71 + concluded by this point the expectation the contributor should wait and 72 + resubmit for the following merge window. 73 + 74 + Optional: 75 + - First -rc at which the development baseline branch, listed in the 76 + overview section, should be considered ready for new submissions. 77 + 78 + 79 + Review Cadence 80 + -------------- 81 + One of the largest sources of contributor angst is how soon to ping 82 + after a patchset has been posted without receiving any feedback. In 83 + addition to specifying how long to wait before a resubmission this 84 + section can also indicate a preferred style of update like, resend the 85 + full series, or privately send a reminder email. This section might also 86 + list how review works for this code area and methods to get feedback 87 + that are not directly from the maintainer.
+4
MAINTAINERS
··· 102 102 Obsolete: Old code. Something tagged obsolete generally means 103 103 it has been replaced by a better system and you 104 104 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. 105 109 F: *Files* and directories wildcard patterns. 106 110 A trailing slash includes all files and subdirectory files. 107 111 F: drivers/net/ all files in and below drivers/net