From patchwork Wed May 8 11:39:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: George Dunlap X-Patchwork-Id: 10935519 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2B58D13AD for ; Wed, 8 May 2019 11:41:57 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1629D289C6 for ; Wed, 8 May 2019 11:41:57 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0723C289DA; Wed, 8 May 2019 11:41:57 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 3FE35289C6 for ; Wed, 8 May 2019 11:41:56 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hOKvW-0006gs-Tt; Wed, 08 May 2019 11:39:58 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hOKvV-0006gn-KY for xen-devel@lists.xenproject.org; Wed, 08 May 2019 11:39:57 +0000 X-Inumbo-ID: ff25afa8-7185-11e9-94af-ff7e1711e4ec Received: from SMTP03.CITRIX.COM (unknown [162.221.156.55]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id ff25afa8-7185-11e9-94af-ff7e1711e4ec; Wed, 08 May 2019 11:39:54 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.60,445,1549929600"; d="scan'208";a="85260701" From: George Dunlap To: Date: Wed, 8 May 2019 12:39:47 +0100 Message-ID: <20190508113947.11920-1-george.dunlap@citrix.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Subject: [Xen-devel] [PATCH] MAINTAINERS: Add explicit check-in policy section X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Lars Kurth , Stefano Stabellini , Wei Liu , Konrad Wilk , Andrew Cooper , Tim Deegan , George Dunlap , Julien Grall , Jan Beulich , Ian Jackson Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP The "nesting" section in the MAINTAINERS file was not initially intended to describe the check-in policy for patches, but only how nesting worked; but since there was no check-in policy, it has been acting as a de-facto policy. One problem with this is that the policy is not complete: It doesn't cover open objections, time to check-in, or so on. The other problem with the policy is that, as written, it doesn't account for maintainers submitting patches to files which they themselves maintain. This is fine for situations where there are are multiple maintaniers, but not for situations where there is only one maintianer. Add an explicit "Check-in policy" section to the MAINTAINERS document to serve as the canonical reference for the check-in policy. Move paragraphs not explicitly related to nesting into it. While here, "promote" the "The meaning of nesting" section title. Signed-off-by: George Dunlap --- CC: Ian Jackson CC: Wei Liu CC: Andrew Cooper CC: Jan Beulich CC: Tim Deegan CC: Konrad Wilk CC: Stefano Stabellini CC: Julien Grall CC: Lars Kurth This is a follow-up to the discussion in `[PATCH for-4.12] passthrough/vtd: Drop the "workaround_bios_bug" logic entirely`, specifically Message-ID: <5C9CF25A020000780022291B@prv1-mh.provo.novell.com> This encodes my understanding of the policy, and what I think is the best one. A second approach would be: 1. In order to get a change to a given file committed, it must have an Ack or Review from at least one maintainer of that file other than the submitter. 2. In the case where a file has only one maintainer, it must have an Ack or Review from a "nested" maintainer. I.e., if I submitted something to x86/mm, it would require an Ack from Jan or Andy, or (in exceptional circumstances) The Rest; but an Ack from (say) Roger or Juergen wouldn't suffice. A third approach would be to say that in the case of multiple maintainers, the maintainers themselves can decide to mandate the other maintainer's Ack. For instance, Dario and I could agree that we don't need each others' ack for changes to the scheduler, but Andy and Jan could agree that they do need each other's Ack for changes to the x86 code. --- MAINTAINERS | 46 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 40 insertions(+), 6 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index e43388ddb0..65ba35f02d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -99,7 +99,46 @@ Descriptions of section entries: One regex pattern per line. Multiple K: lines acceptable. -The meaning of nesting: + Check-in policy + =============== + +In order for a patch to be checked in, in general, several conditions +must be met: + +1. In order to get a change to a given file committed, it must have + the approval of at least one maintainer of that file. + + A patch of course needs acks from the maintainers of each file that + it changes; so a patch which changes xen/arch/x86/traps.c, + xen/arch/x86/mm/p2m.c, and xen/arch/x86/mm/shadow/multi.c would + require an Ack from each of the three sets of maintainers. + + See below for rules on nested maintainership. + +2. It must have an Acked-by or a Reviewed-by from someone other than + the submitter. + +3. Sufficient time must have been given for anyone to respond. This + depends in large part upon the urgency and nature of the patch. + For a straightforward uncontroversial patch, a day or two is + sufficient; for a controversial patch, longer (maybe a week) would + be better. + +4. There must be no "open" objections. + +In a case where one person submits a patch and a maintainer gives an +Ack, the Ack stands in for both the approval requirement (#1) and the +Acked-by-non-submitter requirement (#2). + +In a case where a maintainer themselves submits a patch, the +Signed-off-by meets the approval requriment (#1); so an Ack or Review +from anyone in the community suffices for requirement #2. + +Maintainers may choose to override non-maintainer objections in the +case that consensus can't be reached. + + The meaning of nesting + ====================== Many maintainership areas are "nested": for example, there are entries for xen/arch/x86 as well as xen/arch/x86/mm, and even @@ -113,11 +152,6 @@ the Ack of the xen/arch/x86/mm/shadow maintainer for that part of the patch, but would not require the Ack of the xen/arch/x86 maintainer or the xen/arch/x86/mm maintainer. -(A patch of course needs acks from the maintainers of each file that -it changes; so a patch which changes xen/arch/x86/traps.c, -xen/arch/x86/mm/p2m.c, and xen/arch/x86/mm/shadow/multi.c would -require an Ack from each of the three sets of maintainers.) - 2. In unusual circumstances, a more general maintainer's Ack can stand in for or even overrule a specific maintainer's Ack. Unusual circumstances might include: