Gentoo Archives: gentoo-dev

From: Alec Warner <antarus@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [v4] Planning for automatic assignment computation of bugs
Date: Sun, 19 Oct 2008 19:32:48
Message-Id: b41005390810191232j7ac94dafs46fd96b0da9fff92@mail.gmail.com
In Reply to: [gentoo-dev] [v4] Planning for automatic assignment computation of bugs by "Robin H. Johnson"
1 On Sat, Oct 18, 2008 at 11:01 PM, Robin H. Johnson <robbat2@g.o> wrote:
2 > Now into it's Nth great year, I bring you the fourth edition of the
3 > automatic assignment proposal. </truman-show>
4 >
5 > Previously:
6 > http://thread.gmane.org/gmane.linux.gentoo.devel/48485 [v1]
7 > http://thread.gmane.org/gmane.linux.gentoo.devel/49601 [v2]
8 > http://thread.gmane.org/gmane.linux.gentoo.devel/57159 [v3]
9 >
10 > Bleeding edge prototype:
11 > http://dev.gentoo.org/~rbu/assign.py
12 > MANY thanks to rbu.
13 >
14 > If there are no further changes or objections at this time, it would be
15 > nice to implement this by the end of November.
16 >
17 > How is it integrated into workflow?
18 > ===================================
19 > (This was raised by halcy0n at the v3 review, and replaces the previous section
20 > on triggering).
21 > 1. Bugs are still filed as normal, with the same default assignees
22 > (bug-wranglers most commonly).
23 > 2. In the wrangling process, we add a new button to the page, labelled:
24 > "Suggest assignment".
25 > 3. Optionally, the wrangler edits the summary line right now, but does not hit
26 > 'Submit' yet.
27 > 4. The button causes a (javascript) query back to the server (also
28 > available as a web service for other usage). The only data sent is the
29 > 'Summary' string.
30 > 5. Javascript then appends the server results into the "Additional
31 > Comments" box: a suggested assignee and suggested CC values, with logic
32 > as to why.
33 > 6. The wrangler can copy and paste the data into the fields, editing
34 > further as desired.
35 >
36 > (Putting the data into the comments allows the assignment tool to
37 > explain WHY it decided certain actions).
38 >
39 > Assignment/CC computing:
40 > ========================
41 > Step 1 - Summary line processing
42 > --------------------------------
43 > 1. If the summary line contains a package atom for a package that
44 > exists, use the metadata.xml for that package.
45 > 2. If the summary line contains a package atom for a package that does
46 > not exist, but a category that does exist, use the metadata.xml for
47 > that category.
48 > 3. Process ALL atoms in the summary line, using any after the first for CC
49 > only. (new in v4)
50 >
51 > Step 2 - Metadata.xml contains only a herd
52 > ------------------------------------------
53 > 1. Take the herd element, and look up the herd in herds.xml to convert
54 > to an email address. This email address must be a valid bugzilla
55 > account.
56
57 What if my herd email address is different from my bugzie address?
58 Can I have both in herds.xml? What if my herd address *isn't* a
59 bugzie account, will the world end? How can we automatically detect
60 when developers make mistakes in editing herds.xml?
61
62 > 2. This email is treated as an implicit maintainer element after this
63 > point. "<maintainer><email>${HERD_EMAIL}</email></maintainer>"
64 > [See notes]
65 >
66 > Step 3 - <maintainer> element
67 > -----------------------------
68 > 1. Add the maintainer element to an ordered list, in the order they are
69 > present in the file.
70 > 2. If an element appears more than once, the later element overrides the
71 > earlier element. (This provides a route when the herd is assigned,
72 > but does not wish to receive email for a specific package).
73 > 3. If a maintainer element contains the non-default 'ignoreauto=1'
74 > attribute AND a non-empty role element (describing why this maintainer
75 > should not be contacted), delete it from the list.
76 >
77 > Step 4 - Assignment
78 > -------------------
79 > 1. Use the first email in the ordered list as the assignee.
80 > 2. Place all remaining emails in the CC list.
81 > 3. Include a short comment about the processing results.
82 >
83 > Notes:
84 > ------
85 > 1. For handling <herd>no-herd</herd>, we should add an entry into herds.xml to
86 > catch it (maintainer-needed <at> g.o). Every herd listed in an ebuild MUST be in
87 > herds.xml.
88
89 You and I both know this is not going to be true. Complicated
90 solution; make Repoman do it. Certainly it is the 'correct' thing to
91 do; however I don't expect it to get implemented or deployed quickly.
92 Hacky solution: run script on osprey that tries to validate tree
93 metadata against herds.xml and annoy herds who forgot to add
94 themselves.
95
96 > 2. Herds that do not wish to be contacted for specific bugs should add an
97 > maintainer element stating that (and use 'ignoreauto' on the element).
98 > This case however should be very rare, as the package probably doesn't
99 > belong in the herd if the herd doesn't care about it.
100 > 3. If you want the default assignment to go to a maintainer, and NOT the herd,
101 > move the <herd> element further down in the metadata.xml!
102 >
103 > Effects on metadata.xml syntax
104 > ==============================
105 > - Category metadata is now permitted to have herd and maintainer elements.
106 > - New attribute under maintainer, 'ignoreauto'.
107 >
108 > --- metadata.dtd 2007-11-20 10:07:33.000000000 -0800
109 > +++ metadata.dtd.new 2008-10-18 23:22:55.000000000 -0700
110 > @@ -1,7 +1,7 @@
111 > <!ELEMENT packages ( pkgmetadata* )>
112 >
113 > <!-- Metadata for a category -->
114 > -<!ELEMENT catmetadata ( (longdescription)* )>
115 > +<!ELEMENT catmetadata ( (herd|maintainer|longdescription)* )>
116 > <!ATTLIST catmetadata pkgname CDATA "">
117 >
118 > <!-- Metadata for a package -->
119 > @@ -13,6 +13,10 @@
120 >
121 > <!-- One tag for each maintainer of a package, multiple allowed-->
122 > <!ELEMENT maintainer ( email, (description| name)* )>
123 > + <!-- ignoreauto attribute specifies that a maintainer should not be used
124 > + for automatic assignment computing. It must be combined with a
125 > + non-empty description element. -->
126 > + <!ATTLIST maintainer ignoreauto CDATA "0">
127 >
128 > <!-- A long description of the package in freetext-->
129 > <!ELEMENT longdescription (#PCDATA|pkg)* >
130 >
131 > --
132 > Robin Hugh Johnson
133 > Gentoo Linux Developer & Infra Guy
134 > E-Mail : robbat2@g.o
135 > GnuPG FP : 11AC BA4F 4778 E3F6 E4ED F38E B27B 944E 3488 4E85
136 >

Replies

Subject Author
Re: [gentoo-dev] [v4] Planning for automatic assignment computation of bugs "Robin H. Johnson" <robbat2@g.o>