1 |
So this is now the third revision of this proposal. |
2 |
|
3 |
The first two editions are available here. |
4 |
http://thread.gmane.org/gmane.linux.gentoo.devel/48485 |
5 |
http://thread.gmane.org/gmane.linux.gentoo.devel/49601 |
6 |
|
7 |
Comments are welcome, as are offers to implement it. |
8 |
|
9 |
Implementations should be a small python or perl script that take a |
10 |
single CP atom an resolve it to an assignee, along with one or more CC |
11 |
entries. They may assume that an rsync tree exists at $PORTDIR (not |
12 |
/usr/portage, but $PORTDIR). Additional data files are welcome as well |
13 |
for special assignment rules. |
14 |
|
15 |
This is mostly the same as the v2 proposal, with just further changes |
16 |
from bangert. |
17 |
|
18 |
Assignment process, triggering: |
19 |
==================================================== |
20 |
Auto-assignment will be be applied/available in the following cases: |
21 |
1. New bugs created with the guided process, having a Product equal to |
22 |
'Gentoo Linux' and a component not equal to 'Eclasses and Profiles'. |
23 |
2. Open bugs will have a new action available: 'Reassign by metadata', |
24 |
with a text input field. The text field will be auto-filled with a |
25 |
package atom $CAT/$PN by parsing the summary line. Using the action |
26 |
will provide the package atom to the next stage. |
27 |
3. If multiple package atoms are present in a summary line, the first |
28 |
one wins. |
29 |
4. If we have a valid category name, but no valid package atoms (this may be a |
30 |
new or misspelt package), try to figure out which team might want it. Use |
31 |
the category-level metadata.xml file. |
32 |
5. A developer may also enter an atom manually on the text input field |
33 |
for doing a re-assignment. |
34 |
|
35 |
Assignment process: |
36 |
==================================================== |
37 |
|
38 |
Step 1 - Summary line processing |
39 |
-------------------------------- |
40 |
1. If the summary line contains a package atom for a package that |
41 |
exists, use the metadata.xml for that package. Stop after the first |
42 |
atom. |
43 |
2. If the summary line contains a package atom for a package that does |
44 |
not exist, but a category that does exist, use the metadata.xml for |
45 |
that category. |
46 |
|
47 |
Step 2 - Metadata.xml contains only a herd |
48 |
------------------------------------------ |
49 |
1. Take the herd element, and look up the herd in herds.xml to convert |
50 |
to an email address. This email address must be a valid bugzilla |
51 |
account. |
52 |
2. This email is treated as an implicit maintainer element after this |
53 |
point. "<maintainer><email>${HERD_EMAIL}</email></maintainer>" |
54 |
[See notes] |
55 |
|
56 |
Step 3 - <maintainer> element |
57 |
----------------------------- |
58 |
1. Add the maintainer element to an ordered list, in the order they are |
59 |
present in the file. |
60 |
2. If an element appears more than once, the later element overrides the |
61 |
earlier element. (This provides a route when the herd is assigned, |
62 |
but does not wish to receive email for a specific package). |
63 |
3. If a maintainer element contains the non-default 'ignoreauto=1' |
64 |
attribute AND a non-empty role element (describing why this maintainer |
65 |
should not be contacted), delete it from the list. |
66 |
|
67 |
Step 4 - Assignment |
68 |
------------------- |
69 |
1. Use the first email in the ordered list as the assignee. |
70 |
2. Place all remaining emails in the CC list. |
71 |
3. Include a short comment about the reassignment processing results. |
72 |
|
73 |
Notes: |
74 |
------ |
75 |
1. For handling <herd>no-herd</herd>, we should add an entry into herds.xml to |
76 |
catch it (maintainer-needed@g.o). Every herd listed in an ebuild MUST be in |
77 |
herds.xml. |
78 |
2. Herds that do not wish to be contacted for specific bugs should add an |
79 |
maintainer element stating that (and use 'ignoreauto' on the element). |
80 |
This case however should be very rare, as the package probably doesn't |
81 |
belong in the herd if the herd doesn't care about it. |
82 |
3. If you want the default assignment to go to a maintainer, and NOT the herd, |
83 |
move the <herd> element further down in the metadata.xml! |
84 |
|
85 |
-- |
86 |
Robin Hugh Johnson |
87 |
Gentoo Linux Developer & Infra Guy |
88 |
E-Mail : robbat2@g.o |
89 |
GnuPG FP : 11AC BA4F 4778 E3F6 E4ED F38E B27B 944E 3488 4E85 |