Gentoo Archives: gentoo-proxy-maint

From: "Michał Górny" <mgorny@g.o>
To: gentoo-proxy-maint <gentoo-proxy-maint@l.g.o>
Subject: Re: [gentoo-proxy-maint] [RFC] New doc & policy
Date: Thu, 20 Jul 2017 21:06:28
Message-Id: 1500584775.746.11.camel@gentoo.org
In Reply to: [gentoo-proxy-maint] [RFC] New doc & policy by "Michał Górny"
1 On czw, 2017-07-20 at 10:02 +0200, Michał Górny wrote:
2 > Hi,
3 >
4 > As suggested earlier, here's a new doc&policy for review. Please do not
5 > edit the wiki page. I'm inlining the text in the mail to facilitate
6 > replying with quotations since our crappy wiki lacks any review system.
7 >
8 > https://wiki.gentoo.org/wiki/User:MGorny/Extra_proxy-maint_guide
9 >
10
11 Here's v2, taking into account suggestions from k_f and wraeth:
12
13 ==Privileges and responsibilities of proxied maintainers==
14 What you get as a proxied maintainer:
15 * ability to maintain ebuilds directly in the Gentoo repository for all
16 our users to use;
17 * coverage from our teams: QA, security;
18 * coverage by package-oriented services: [http://euscan.gentooexperiment
19 al.org euscan], [https://qa-reports.gentoo.org/ qa-reports],
20 [https://repology.org/ repology];
21 * ability to request keywording on additional architectures (but note
22 that most of arch teams are against proactive keywording) and to request
23 stabilization;
24 * quality reviews from our proxy-maint team and other Gentoo developers,
25 * training and credibility needed to become a Gentoo developer.
26
27 What you don't get:
28 * ability to commit straight into the repository — all commits need to
29 be reviewed and pushed by us,
30 * full decision power — we reserve the right to reject or override your
31 decisions at the review level,
32 * ability to reject other maintainers — we encourage cooperation, not
33 seclusion.
34
35 Your responsibility is to maintain the package, that is:
36 * address bugs reported against the package to the best of your skills,
37 * bump the package to new versions in a reasonable time,
38 * ensure that the package complies to the modern ebuild quality
39 standards and follows the best development practices (preferably of your
40 own accord) — i.e. uses the newest EAPI, has no QA issues,
41 * clean old versions of the package up, request stabilization of new
42 versions (if the package is stable),
43 * inform us when you are no longer willing to maintain the package.
44
45 The proxy-maint team is willing to help you with all those tasks.
46 However, we expect that you at least keep the basic communication with
47 us.
48
49 ==How to become a proxied maintainer==
50 ===Adding a new package===
51 As a proxied maintainer, you can add new packages to Gentoo, as long as
52 you're willing to maintain them afterwards. In order to do so, please
53 submit the initial package files using one of the submission methods.
54 Make sure to include yourself and the proxy-maint project in the
55 {{Path|metadata.xml}} files.
56
57 Our team will review the submitted files and help you bring them to the
58 top quality. Once the package is ready, we will merge it and close the
59 relevant bugs (if there are any).
60
61 Please note that we reserve the right to reject new packages, especially
62 if they would otherwise qualify for removal per our quality standards.
63 Example reasons for rejection include:
64 * having known major bugs or security issues that you are unable to fix,
65 * having inactive upstream and maintaining them would require a lot of
66 effort,
67 * requiring specific knowledge which we lack and which makes it
68 inappropriate for us to review them (e.g. core system packages),
69 * having no usefulness for Gentoo users (this only applies to extreme
70 cases).
71
72 ===Taking over an existing package===
73 As a proxied maintainer, you can also (co-)maintain existing Gentoo
74 packages (both those with no maintainer, maintained by other proxied
75 maintainers and maintained by Gentoo developers/projects). In order to
76 take over the maintenance of a package, submit a commit adding yourself
77 to the {{Path|metadata.xml}} files. Usually, this commit will be
78 included along with other changes to the package.
79
80 There are a few points to consider first:
81 * If the package has an existing maintainer, it is best to communicate
82 with him prior to submitting anything. When you submit your request, we
83 will ask him to review it and approve your request. Gentoo developers
84 can reject a proxied maintainer if they have a good reason to do so.
85 * If the package has major bugs qualifying it for removal (esp. if
86 you're taking over maintenance in reply to last rites), you will be
87 required to provide a fix at least for the most nagging issues.
88 * If you do not have major prior contributions as a proxied maintainer,
89 you will be required to do some additional changes to the package — for
90 example, fix some bug(s) and/or update the package to the modern coding
91 standards.
92
93 ==How to submit package updates==
94 ===GitHub pull requests===
95 The most efficient way of submitting your contributions is through [http
96 s://github.com/gentoo/gentoo/pulls pull requests on our GitHub
97 repository]. At the moment, it gives the best response time, the widest
98 audience for reviews and some nice scripting (including CI) to help.
99
100 In order to submit a pull request, fork the repository, create a new
101 branch and commit your changes there. Afterwards, [https://help.github.c
102 om/articles/creating-a-pull-request/ create a pull request].
103
104 {{Tip|Once you push your new branch, visit the GitHub page of your fork.
105 GitHub will show you a banner suggesting creating a pull request. Using
106 it, you can avoid the necessity of specifying the fork and branch
107 manually.}}
108
109 Once the pull request is created, our tooling will automatically CC the
110 relevant people (maintainers and/or proxy-maint team) and perform basic
111 QA checks via [https://github.com/pkgcore/pkgcheck pkgcheck]. If any
112 issues are reported, please fix them or explicitly ask for help. Our
113 reviewers may skip pull requests which are marked as not passing CI.
114
115 Afterwards, follow the suggestions given by reviewers and push updates
116 until the pull request is fully approved. If you do not receive a reply
117 within a reasonable time, please make sure to ping us on the pull
118 request. When it's ready and approved, we'll merge it.
119
120 It is recommended that you try to keep the same commit structure as
121 you'd use when committing straight to Gentoo as a developer, and follow
122 the best git practices (atomic changes, proper commit messages). For
123 smaller changes, we can squash and reword the commits for you. However,
124 if you're going to actively maintain multiple packages or submit larger
125 changes, we will require you to squash, split and word your commits
126 appropriately. Please see the git documentation on [https://git-scm.com/
127 book/en/v2/Git-Tools-Rewriting-History rewriting history]. Once you've
128 got updated commit set, use <code>git push --force</code> to overwrite
129 your previous commits on the pull request branch.
130
131 ===Mailing list patches===
132 {{Note|This variant has not been tested by anyone yet.}}
133
134 One of the alternatives to GitHub is to use the [https://archives.gentoo
135 .org/gentoo-proxy-maint/ gentoo-proxy-maint@l.g.o] mailing
136 list. In order to use the list, you need to [mailto:gentoo-proxy-
137 maint+subscribe@l.g.o subscribe] first. Once you've confirmed
138 your subscription, you should be able to send patches for review.
139
140 Please prepare your commits just like you would for a pull request.
141 Afterwards, use <kbd>git send-email</kbd> to send them to the mailing
142 list. For help on it, please see [https://www.freedesktop.org/wiki/Softw
143 are/PulseAudio/HowToUseGitSendEmail/ how to use git send-email] (a good
144 guide from pulseaudio wiki — please remember to correct the mailing list
145 address).
146
147 Once your initial patch set is submitted, the proxy-maint team members
148 will reply with their review comments. Once you address a particular set
149 of issues, please update the commits and send another batch of patches
150 '''in reply to the original message''' (using the <kbd>--in-reply-
151 to</kbd> option), using the next version number. It is important that
152 you follow this practice so that everyone can find the newest version of
153 the commits easily.
154
155 Similar practices as with GitHub pull requests apply — try to keep the
156 commit structure clean and suitable for direct merge. Similarly to pull
157 requests, this method can preserve commit structure and attribution but
158 it does not support automatic assignment or CI.
159
160 ===Bug reports===
161 The classical method of submitting your changes is to attach them to the
162 bugs. Please make sure that the proxy-maint project is in CC of the bugs
163 related to proxy-maintained packages.
164
165 Preferably, structure your changes as git commits and attach patches
166 created using <kbd>git format-patch</kbd>. Attaching single files is
167 inconvenient for the developers who have to review and download every
168 file separately. Attaching tarballs is strongly discouraged as it makes
169 review with quotation impossible.
170
171 When you have attached changes that are ready for review, please make
172 sure to mark the bug with both ''EBUILD'' and ''PATCH'' keywords.
173
174
175 ==Being a proxied maintainer==
176 ===Best git practices===
177 While preparing your submissions, we strongly encourage you to follow
178 the same git practices that our regular developers are expected to
179 follow. This ensures that we can merge your changes quickly, and with as
180 little modification as necessary. You can find a short set of good git
181 practices in our [[Gentoo GitHub]] article (it is not specific to
182 GitHub).
183
184 ===CI vs repoman===
185 If you are using the pull request workflow, your submissions are
186 verified by the CI system. Nevertheless, you are still expected to use
187 repoman to commit or verify your ebuilds before/after committing.
188
189 Note that both CI and repoman do not test experimental (and developer)
190 profiles by default. The skipped profiles at the time of writing
191 include:
192 * all profiles for arm64, m68k, mips, nios2, riscv, s390, sh,
193 * all profiles for FreeBSD and Prefix,
194 * some less common profiles, e.g. no-multilib amd64 or x32 profiles.
195
196 You need to explicitly use <kbd>repoman full -e y</kbd> to verify the
197 experimental profiles.
198
199 ===Proxied maintainer in metadata.xml===
200 Proxied maintainers are listed in {{Path|metadata.xml}} like any other
201 maintainers. The only difference is that since they can not commit on
202 their own, the proxy-maint project is listed as well to facilitate
203 committing. The proxy-maint project is always listed ''after'' proxied
204 maintainers since it does not maintain the package on its own.
205
206 {{FileBox|title=Example metadata.xml for a package that is co-maintained
207 by a proxied maintainer (primary) and Perl project (co-
208 maintainer)|filename=metadata.xml|lang=xml|1=<?xml version="1.0"
209 encoding="UTF-8"?>
210 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">;
211
212 <pkgmetadata>
213 <maintainer type="person">
214 <email>author@×××××××.com</email>
215 <name>A. U. Thor</name>
216 </maintainer>
217         <maintainer type="project">
218                 <email>perl@g.o</email>
219                 <name>>Gentoo Perl Project</name>
220 </maintainer>
221 <maintainer type="project">
222 <email>proxy-maint@g.o</email>
223 <name>Proxy Maintainers</name>
224 </maintainer>
225 </pkgmetadata>}}
226
227 Please note that the e-mail address used in {{Path|metadata.xml}} is
228 used to assign bugs to the proxied maintainer, and therefore must
229 correspond to a registered [https://bugs.gentoo.org Gentoo Bugzilla]
230 account.
231
232 ===Resolving bugs===
233 As a proxied maintainer, you are expected to handle bugs against your
234 packages yourself. This includes resolving them once your fix is merged
235 by a proxy maintainer or rejecting them based on your own judgment.
236
237 The Bugzilla permissions for regular users allow them to resolve only
238 bugs that they are either assignee or reporter of. At the same time, it
239 permits only one assignee meaning that the remaining assignees are added
240 to the CC field. If that is the case for you, you will have to ask us to
241 close the bug for you.
242
243 Once you have a few good contributions, we can vouch for providing the
244 ''editbugs'' group membership to you. It will allow you to edit all
245 Gentoo bugs, including resolving and reassigning them.
246
247 ===Keywording & stabilization===
248 As a proxied maintainer, you can request [https://devmanual.gentoo.org/k
249 eywording/index.html keywording and stabilization] of your packages.
250 However, all those requests need to be approved by proxy-maint team
251 member (or a regular developer co-maintainer) first.
252
253 ===Cleaning up old ebuilds===
254 To avoid cluttering the repository with old ebuilds, it is recommended
255 that you clean them up either periodically or on version bumps (if you
256 do not expect to stabilize the specific old version). Please remember to
257 remove old patches and other misc files along with the old versions, and
258 to verify that the package has no reverse dependencies that depend on
259 the old version.
260
261 If you are using the GitHub pull request workflow, then the CI will
262 verify that your commits do not break reverse dependencies on major
263 profiles. However, note that experimental and developer profiles are not
264 tested currently.
265
266 ===The maintainer bug===
267 Since proxied maintainers do not have full access to the Gentoo
268 developer services, the proxy-maint project is using ''maintainer bugs''
269 to track status of the proxied maintainers.
270
271 Once your first contribution is merged, we will create the maintainer
272 bug for you. We will note your name and/or nickname (for communication
273 purposes) and your e-mail address used in metadata.xml. We will
274 afterwards use the bug to track the changes in your e-mail address and
275 your contributor status.
276
277 If you ever need to change your Bugzilla e-mail address, please remember
278 to submit an update to your package {{Path|metadata.xml}} files first.
279 Preferably, wait till it is merged before updating Bugzilla as otherwise
280 we will temporarily be unable to assign bugs properly. Please also leave
281 a comment with your new address on the maintainer bug.
282
283 If you go on vacation or otherwise expect to be unavailable for a period
284 of time, please note that on the maintainer bug. You can use the
285 ''whiteboard'' field to provide the expected return date and any
286 requests wrt handling the bugs on your packages (i.e. whether other
287 developers should merge fixes in your absence).
288
289 ==How to step down as a proxied maintainer==
290 If you decide that you don't want to maintain some of your packages
291 anymore, please follow the following procedure:
292 # If you are the last maintainer of some of the packages (not counting
293 proxy-maint project), please send an email to [mailto:gentoo-dev@lists.g
294 entoo.org gentoo-dev@l.g.o] mailing list titled 'Packages up
295 for grabs: …' and listing all packages that you are no longer willing to
296 maintain. It is usually a good idea to shortly describe the state of
297 packages, i.e. whether the packages have open bugs, whether they are
298 hard to maintain etc.
299 # Submit a patch removing yourself from the {{Path|metadata.xml}} files
300 of the packages:
301 #* If you are the last proxied maintainer of the package, remove the
302 proxy-maint project along with you.
303 #* If you are the last maintainer of the package, please insert a
304 comment stating exactly:
305 #*:<pre><nowiki><!--maintainer-needed--></nowiki></pre>
306 #*:in the place of maintainers. This will help other developers to grep
307 packages with no maintainers.
308
309 --
310 Best regards,
311 Michał Górny

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies

Subject Author
Re: [gentoo-proxy-maint] [RFC] New doc & policy "Sam Jorna (wraeth)" <wraeth@g.o>
Re: [gentoo-proxy-maint] [RFC] New doc & policy "M. J. Everitt" <m.j.everitt@×××.org>
Re: [gentoo-proxy-maint] [RFC] New doc & policy Philippe Chaintreuil <gentoo_bugs_peep@×××××××××××××.com>