Gentoo Archives: gentoo-dev

From: "Robin H. Johnson" <robbat2@g.o>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] [v3] Planning for automatic assignment of bugs
Date: Tue, 01 Jul 2008 06:07:07
Message-Id: 20080701060702.GM15101@curie-int.orbis-terrarum.net
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

Replies