Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-dev@l.g.o
Cc: "Michał Górny" <mgorny@g.o>
Subject: [gentoo-dev] [PATCH] glep-0067: Add 'proxied' and 'watcher' maint types
Date: Fri, 02 Aug 2019 20:55:49
Message-Id: 20190802205536.21822-1-mgorny@gentoo.org
Add two new maintainer types: 'proxied' for proxied maintainers,
and 'watcher' for people who wish to be CC-ed on bugs but are not
maintainers (e.g. upstream developers).

While at it, clarify that subproject member inheritance does not carry
over lead status to parent projects.

Signed-off-by: Michał Górny <mgorny@g.o>
---
 glep-0067.rst | 68 ++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 62 insertions(+), 6 deletions(-)

diff --git a/glep-0067.rst b/glep-0067.rst
index e22f216..6a3fb96 100644
--- a/glep-0067.rst
+++ b/glep-0067.rst
@@ -4,10 +4,10 @@ Title: Package maintenance structure
 Author: Michał Górny <mgorny@g.o>
 Type: Standards Track
 Status: Final
-Version: 1
+Version: 2
 Created: 2015-12-13
-Last-Modified: 2016-01-13
-Post-History: 2015-11-03, 2016-05-29
+Last-Modified: 2019-08-02
+Post-History: 2015-11-03, 2016-05-29, 2019-08-02
 Content-Type: text/x-rst
 ---
 
@@ -23,6 +23,13 @@ Maintainer listings in ``metadata.xml`` become uniform, and can be used
 directly to assign bugs.
 
 
+Change log
+==========
+v2
+  Added new maintainer types: proxied and watcher. Added explicit list of valid
+  types. Clarified inheritance of lead role when inheriting subproject members.
+
+
 Motivation
 ==========
 
@@ -144,13 +151,29 @@ of the ``<maintainer/>`` element. The e-mail address, human-readable name
 and maintenance description are placed in ``<email/>``, ``<name/>``
 and ``<description/>`` sub-elements appropriately.
 
+There are four defined maintainer types:
+
+person
+  Indicates a maintainer that is not a project, and has commit access
+  to the repository.
+
+proxied
+  Indicates a proxied maintainer, i.e. a maintainer that does not have
+  direct commit access and needs a proxy to commit the changes.
+
+watcher
+  Indicates a non-maintainer that wishes to be CC-ed on bug reports,
+  e.g. a upstream developer.
+
+project
+  Indicates a maintainer that is a project defined in ``projects.xml``.
+
 .. code:: xml
 
     <pkgmetadata>
-      <maintainer type="person">
+      <maintainer type="proxied">
         <email>foo@×××××××.com</email>
         <name>Foo Barsky</name>
-        <description>Proxied maintainer</description>
       </maintainer>
       <maintainer type="person">
         <email>example@g.o</email>
@@ -159,6 +182,10 @@ and ``<description/>`` sub-elements appropriately.
       <maintainer type="project">
         <email>proxy-maint@g.o</email>
       </maintainer>
+      <maintainer type="watcher">
+        <email>upstream@×××××××.org</email>
+        <name>Foo Barsky</name>
+      </maintainer>
     </pkgmetadata>
 
 Project structure
@@ -194,7 +221,8 @@ Each ``<subproject/>`` element has the following attributes:
   of exactly one other ``<project/>``),
 - optional ``inherit-members=""`` attribute whose non-empty value indicates
   that subproject members are to be considered members of the parent project
-  as well.
+  as well. Note that subproject members do not carry their lead status, i.e.
+  a lead of a subproject is not implicitly a lead of the parent project.
 
 Each ``<member/>`` has the following sub-elements:
 
@@ -283,6 +311,10 @@ For packages which have no maintainers, repository-specific bug assignment
 rules apply. In particular, ::gentoo packages with no maintainer are assigned
 to ``maintainer-needed@g.o``.
 
+Please note that watcher-type maintainers do not count towards package
+maintainers. They are always CC-ed to bug reports, and if a package has only
+watcher-type maintainers, it is assumed not to have a maintainer.
+
 Maintainer expansion
 --------------------
 
@@ -428,6 +460,30 @@ maintainers can add themselves to ``metadata.xml`` in a single commit to
 the repository. If external database was used, the database would have to be
 updated in addition to the repository commit.
 
+Additional maintainer types
+---------------------------
+
+v2 of this specification adds two new maintainer types: proxied and watcher.
+
+Previously, proxied maintainers were distinguished by not having a Gentoo e-mail
+address. However, nowadays we have developers without direct Gentoo repository
+commit access as maintainers. There is also no reason to assume that
+in the future we would not have developers using non-Gentoo e-mail addresses.
+Adding explicit notation for proxied maintainers resolves that problem.
+
+Technically, we could have also added an explicit type for the proxy. However,
+proxies are expected to take responsibility for the proxied packages, and they
+often explicitly or implicitly share the role of a proxy with the role
+of co-maintainer. Furthermore, the proxy-maint project frequently is the proxy.
+Therefore, providing such explicit information would require possibility
+of combining multiple type notations and would introduce additional complexity
+for no clear benefit.
+
+The original specification did not account for watchers at all. Their presence
+normally does not cause problems, until packages become unmaintained. When
+the package has no maintainers, watchers implicitly get promoted to primary
+maintainers, and programs incorrectly assume that the package has a maintainer.
+
 
 Backwards Compatibility
 =======================
-- 
2.22.0

Replies