1 |
Add two new maintainer types: 'proxied' for proxied maintainers, |
2 |
and 'watcher' for people who wish to be CC-ed on bugs but are not |
3 |
maintainers (e.g. upstream developers). |
4 |
|
5 |
While at it, clarify that subproject member inheritance does not carry |
6 |
over lead status to parent projects. |
7 |
|
8 |
Signed-off-by: Michał Górny <mgorny@g.o> |
9 |
--- |
10 |
glep-0067.rst | 68 ++++++++++++++++++++++++++++++++++++++++++++++----- |
11 |
1 file changed, 62 insertions(+), 6 deletions(-) |
12 |
|
13 |
diff --git a/glep-0067.rst b/glep-0067.rst |
14 |
index e22f216..6a3fb96 100644 |
15 |
--- a/glep-0067.rst |
16 |
+++ b/glep-0067.rst |
17 |
@@ -4,10 +4,10 @@ Title: Package maintenance structure |
18 |
Author: Michał Górny <mgorny@g.o> |
19 |
Type: Standards Track |
20 |
Status: Final |
21 |
-Version: 1 |
22 |
+Version: 2 |
23 |
Created: 2015-12-13 |
24 |
-Last-Modified: 2016-01-13 |
25 |
-Post-History: 2015-11-03, 2016-05-29 |
26 |
+Last-Modified: 2019-08-02 |
27 |
+Post-History: 2015-11-03, 2016-05-29, 2019-08-02 |
28 |
Content-Type: text/x-rst |
29 |
--- |
30 |
|
31 |
@@ -23,6 +23,13 @@ Maintainer listings in ``metadata.xml`` become uniform, and can be used |
32 |
directly to assign bugs. |
33 |
|
34 |
|
35 |
+Change log |
36 |
+========== |
37 |
+v2 |
38 |
+ Added new maintainer types: proxied and watcher. Added explicit list of valid |
39 |
+ types. Clarified inheritance of lead role when inheriting subproject members. |
40 |
+ |
41 |
+ |
42 |
Motivation |
43 |
========== |
44 |
|
45 |
@@ -144,13 +151,29 @@ of the ``<maintainer/>`` element. The e-mail address, human-readable name |
46 |
and maintenance description are placed in ``<email/>``, ``<name/>`` |
47 |
and ``<description/>`` sub-elements appropriately. |
48 |
|
49 |
+There are four defined maintainer types: |
50 |
+ |
51 |
+person |
52 |
+ Indicates a maintainer that is not a project, and has commit access |
53 |
+ to the repository. |
54 |
+ |
55 |
+proxied |
56 |
+ Indicates a proxied maintainer, i.e. a maintainer that does not have |
57 |
+ direct commit access and needs a proxy to commit the changes. |
58 |
+ |
59 |
+watcher |
60 |
+ Indicates a non-maintainer that wishes to be CC-ed on bug reports, |
61 |
+ e.g. a upstream developer. |
62 |
+ |
63 |
+project |
64 |
+ Indicates a maintainer that is a project defined in ``projects.xml``. |
65 |
+ |
66 |
.. code:: xml |
67 |
|
68 |
<pkgmetadata> |
69 |
- <maintainer type="person"> |
70 |
+ <maintainer type="proxied"> |
71 |
<email>foo@×××××××.com</email> |
72 |
<name>Foo Barsky</name> |
73 |
- <description>Proxied maintainer</description> |
74 |
</maintainer> |
75 |
<maintainer type="person"> |
76 |
<email>example@g.o</email> |
77 |
@@ -159,6 +182,10 @@ and ``<description/>`` sub-elements appropriately. |
78 |
<maintainer type="project"> |
79 |
<email>proxy-maint@g.o</email> |
80 |
</maintainer> |
81 |
+ <maintainer type="watcher"> |
82 |
+ <email>upstream@×××××××.org</email> |
83 |
+ <name>Foo Barsky</name> |
84 |
+ </maintainer> |
85 |
</pkgmetadata> |
86 |
|
87 |
Project structure |
88 |
@@ -194,7 +221,8 @@ Each ``<subproject/>`` element has the following attributes: |
89 |
of exactly one other ``<project/>``), |
90 |
- optional ``inherit-members=""`` attribute whose non-empty value indicates |
91 |
that subproject members are to be considered members of the parent project |
92 |
- as well. |
93 |
+ as well. Note that subproject members do not carry their lead status, i.e. |
94 |
+ a lead of a subproject is not implicitly a lead of the parent project. |
95 |
|
96 |
Each ``<member/>`` has the following sub-elements: |
97 |
|
98 |
@@ -283,6 +311,10 @@ For packages which have no maintainers, repository-specific bug assignment |
99 |
rules apply. In particular, ::gentoo packages with no maintainer are assigned |
100 |
to ``maintainer-needed@g.o``. |
101 |
|
102 |
+Please note that watcher-type maintainers do not count towards package |
103 |
+maintainers. They are always CC-ed to bug reports, and if a package has only |
104 |
+watcher-type maintainers, it is assumed not to have a maintainer. |
105 |
+ |
106 |
Maintainer expansion |
107 |
-------------------- |
108 |
|
109 |
@@ -428,6 +460,30 @@ maintainers can add themselves to ``metadata.xml`` in a single commit to |
110 |
the repository. If external database was used, the database would have to be |
111 |
updated in addition to the repository commit. |
112 |
|
113 |
+Additional maintainer types |
114 |
+--------------------------- |
115 |
+ |
116 |
+v2 of this specification adds two new maintainer types: proxied and watcher. |
117 |
+ |
118 |
+Previously, proxied maintainers were distinguished by not having a Gentoo e-mail |
119 |
+address. However, nowadays we have developers without direct Gentoo repository |
120 |
+commit access as maintainers. There is also no reason to assume that |
121 |
+in the future we would not have developers using non-Gentoo e-mail addresses. |
122 |
+Adding explicit notation for proxied maintainers resolves that problem. |
123 |
+ |
124 |
+Technically, we could have also added an explicit type for the proxy. However, |
125 |
+proxies are expected to take responsibility for the proxied packages, and they |
126 |
+often explicitly or implicitly share the role of a proxy with the role |
127 |
+of co-maintainer. Furthermore, the proxy-maint project frequently is the proxy. |
128 |
+Therefore, providing such explicit information would require possibility |
129 |
+of combining multiple type notations and would introduce additional complexity |
130 |
+for no clear benefit. |
131 |
+ |
132 |
+The original specification did not account for watchers at all. Their presence |
133 |
+normally does not cause problems, until packages become unmaintained. When |
134 |
+the package has no maintainers, watchers implicitly get promoted to primary |
135 |
+maintainers, and programs incorrectly assume that the package has a maintainer. |
136 |
+ |
137 |
|
138 |
Backwards Compatibility |
139 |
======================= |
140 |
-- |
141 |
2.22.0 |