On Sat, Oct 18, 2008 at 11:01 PM, Robin H. Johnson <[EMAIL PROTECTED]> wrote:
> Now into it's Nth great year, I bring you the fourth edition of the
> automatic assignment proposal. </truman-show>
>
> Previously:
> http://thread.gmane.org/gmane.linux.gentoo.devel/48485 [v1]
> http://thread.gmane.org/gmane.linux.gentoo.devel/49601 [v2]
> http://thread.gmane.org/gmane.linux.gentoo.devel/57159 [v3]
>
> Bleeding edge prototype:
> http://dev.gentoo.org/~rbu/assign.py
> MANY thanks to rbu.
>
> If there are no further changes or objections at this time, it would be
> nice to implement this by the end of November.
>
> How is it integrated into workflow?
> ===================================
> (This was raised by halcy0n at the v3 review, and replaces the previous 
> section
> on triggering).
> 1. Bugs are still filed as normal, with the same default assignees
>   (bug-wranglers most commonly).
> 2. In the wrangling process, we add a new button to the page, labelled:
>   "Suggest assignment".
> 3. Optionally, the wrangler edits the summary line right now, but does not hit
>   'Submit' yet.
> 4. The button causes a (javascript) query back to the server (also
>   available as a web service for other usage). The only data sent is the
>   'Summary' string.
> 5. Javascript then appends the server results into the "Additional
>   Comments" box: a suggested assignee and suggested CC values, with logic
>   as to why.
> 6. The wrangler can copy and paste the data into the fields, editing
>   further as desired.
>
> (Putting the data into the comments allows the assignment tool to
> explain WHY it decided certain actions).
>
> Assignment/CC computing:
> ========================
> Step 1 - Summary line processing
> --------------------------------
> 1. If the summary line contains a package atom for a package that
>   exists, use the metadata.xml for that package.
> 2. If the summary line contains a package atom for a package that does
>   not exist, but a category that does exist, use the metadata.xml for
>   that category.
> 3. Process ALL atoms in the summary line, using any after the first for CC
>   only. (new in v4)
>
> Step 2 - Metadata.xml contains only a herd
> ------------------------------------------
> 1. Take the herd element, and look up the herd in herds.xml to convert
>   to an email address. This email address must be a valid bugzilla
>   account.

What if my herd email address is different from my bugzie address?
Can I have both in herds.xml?  What if my herd address *isn't* a
bugzie account, will the world end?  How can we automatically detect
when developers make mistakes in editing herds.xml?

> 2. This email is treated as an implicit maintainer element after this
>   point. "<maintainer><email>${HERD_EMAIL}</email></maintainer>"
> [See notes]
>
> Step 3 - <maintainer> element
> -----------------------------
> 1. Add the maintainer element to an ordered list, in the order they are
>   present in the file.
> 2. If an element appears more than once, the later element overrides the
>   earlier element. (This provides a route when the herd is assigned,
>   but does not wish to receive email for a specific package).
> 3. If a maintainer element contains the non-default 'ignoreauto=1'
>   attribute AND a non-empty role element (describing why this maintainer
>   should not be contacted), delete it from the list.
>
> Step 4 - Assignment
> -------------------
> 1. Use the first email in the ordered list as the assignee.
> 2. Place all remaining emails in the CC list.
> 3. Include a short comment about the processing results.
>
> Notes:
> ------
> 1. For handling <herd>no-herd</herd>, we should add an entry into herds.xml to
>   catch it (maintainer-needed <at> g.o). Every herd listed in an ebuild MUST 
> be in
>   herds.xml.

You and I both know this is not going to be true.  Complicated
solution; make Repoman do it.  Certainly it is the 'correct' thing to
do; however I don't expect it to get implemented or deployed quickly.
Hacky solution: run script on osprey that tries to validate tree
metadata against herds.xml and annoy herds who forgot to add
themselves.

> 2. Herds that do not wish to be contacted for specific bugs should add an
>   maintainer element stating that (and use 'ignoreauto' on the element).
>   This case however should be very rare, as the package probably doesn't
>   belong in the herd if the herd doesn't care about it.
> 3. If you want the default assignment to go to a maintainer, and NOT the herd,
>   move the <herd> element further down in the metadata.xml!
>
> Effects on metadata.xml syntax
> ==============================
> - Category metadata is now permitted to have herd and maintainer elements.
> - New attribute under maintainer, 'ignoreauto'.
>
> --- metadata.dtd        2007-11-20 10:07:33.000000000 -0800
> +++ metadata.dtd.new    2008-10-18 23:22:55.000000000 -0700
> @@ -1,7 +1,7 @@
>  <!ELEMENT packages ( pkgmetadata* )>
>
>  <!-- Metadata for a category -->
> -<!ELEMENT catmetadata ( (longdescription)* )>
> +<!ELEMENT catmetadata ( (herd|maintainer|longdescription)* )>
>  <!ATTLIST catmetadata pkgname CDATA "">
>
>  <!-- Metadata for a package -->
> @@ -13,6 +13,10 @@
>
>   <!-- One tag for each maintainer of a package, multiple allowed-->
>   <!ELEMENT maintainer ( email, (description| name)* )>
> +         <!-- ignoreauto attribute specifies that a maintainer should not be 
> used
> +                  for automatic assignment computing. It must be combined 
> with a
> +                  non-empty description element. -->
> +      <!ATTLIST maintainer ignoreauto CDATA "0">
>
>   <!-- A long description of the package in freetext-->
>   <!ELEMENT longdescription (#PCDATA|pkg)* >
>
> --
> Robin Hugh Johnson
> Gentoo Linux Developer & Infra Guy
> E-Mail     : [EMAIL PROTECTED]
> GnuPG FP   : 11AC BA4F 4778 E3F6 E4ED  F38E B27B 944E 3488 4E85
>

Reply via email to