Status

Attachment creation time

Lots and lots of: Warning - could not determine correct creation time for attachment 47207 on bug 121111

  • This is a bug in MySQL 4.1.7. LIKE 'Blablabla (id=1234)%' doesn't match 'Blablabla (id=1234)\nfoo"
  • MySQL 4.1.11 has something in its changelog that fixes a LIKE bug for cp1251_bin binary collation.. perhaps that fixes this too?
  • Workaround would be to use LIKE '%Blablabla (id=1234)%' (strangely works)
  • Works in MySQL 4.1.12
  • button now runs 4.1.11, still broken. Unsure why.

Note:

  • Some attachments where created when the bug was created (very old bug-buddy-import.pl). These will obviously still cause an error message.

Flags / patch statuses

[Old: add a

  • update flaginclusions SET product_id = NULL where product_id = 0;

Elijah: This should not be necessary anymore, as show_bug.cgi & attachment.cgi have been modified to ignore flaginclusions altogether.]

flags are now totally ignored, as are flaginclusions and flagexclusions; the tables exist but they aren't updated or used anywhere that we have remembered to get rid of them. The flagtypes table is still used, but mostly only for id, name pairing.

This stuff has been replaced with a simple status_id field in the attachment table that is much nicer.

UTC

Bugzilla has been hacked to set the database timezone to UTC.

  • Also changed timezone parameter to UTC

Group settings

ismailinglist group needs to have 'Use for bugs' unchecked.

Private comments

There is a insidersgroup param. It allows one or more comments of a bug to be hidden. I've currently set this to gnomehackers.

X-Bugzilla-*

Bugzilla CVS can support X-Bugzilla-Product and -Component, made sure rest is also possible.

Patch viewer

Configured the patch viewer cvsroot and cvsroot_get. Allows to do more advanced stuff / layouts of a patch, see as example: http://bugzilla-test.gnome.org/attachment.cgi?id=48528&action=diff

Also set the bonsai_url, click on the 'Lines xxx-xxx' in the attachment above to see what it does.

Note: now uses the read-only NFS mount! Should be faster.

Watching

The X-Bugzilla-Reason header has been modified like 2.16.x bugzilla.gnome.org. When watching the AssignedTo X-Bugzilla-Reason will have WatchAssignedTo. Same when watching any other reason.

The X-Bugzilla-Watching is a comma separated list of the email addresses you are watching on this bugreport. The header only exists when watching an account for this bugreport.

Custom fields

Bugzilla.gnome.org before 2.16 had GNOME version and GNOME milestone as extra fields in the bugs table. In 2.16 customfields are used. In 2.20 I don't want to rely on a custom fields patch (mostly because it doesn't exist and I'm not sure when it will be). I want to add the fields again to the bugs table. Bugzilla 2.20 has a webinterface to change OS / Hardware / Priority / Severity. I want to support that for these fields. Unfortunate that we need 2 fields, otherwise I could've hijacked Hardware (we hide that anyway).

  • Added gnome_target and gnome_version fields to bug table (see checksetup.pl).
  • Created gnome_target and gnome_version tables (see Bugzilla/DB/Schema.pm). These hold the possible values
  • Changed editvalues.cgi to also allow changing gnome_target and gnome_version. Finally a web interface for this stuff.
  • Added above fields to global/field-descs.none.tmpl
  • Added to templates (looks ugly, doesn't have existing values)
  • Existing values are converted by checksetup.pl
  • Customfields tables will be dropped by checksetup.pl (after converting the data)
  • Add to code (post_bug.cgi, bug-buddy-import)

Unknown Alias & bug-buddy-import

This is pretty much a hack in Bugzilla 2.20. In 2.20 everything uses userids. As an externalcc doesn't have an bugzilla userid, I remember the Reporters userid. Just before calling the sendMail routine I change the $user->{'login'} with externalcc (if defined). Ugly but works.

Note: This is slightly different from 2.16.x. Before when having an externalcc, unknown@b.g.o as reporter + in the cc-list; unknown@b.g.o would still receive a copy (because of usage of email addresses + unknown@b.g.o appearing in the CC-list). In 2.20 unknown@b.g.o will not receive a copy anymore. Watching unknown@b.g.o will still work. The change doesn't cause any problems, but there is a very small change someone might get confused.

Note: Bug-buddy-import.pl will now create accounts instead of using the externalcc hack. Reports could still be assigned to the exporter (unknown@gnome.bugs), but only if the email address is invalid. Next Bugzilla upgrade externalcc stuff shouldn't be needed. Message is at:

Classifications / isgnome

  • gnomebug:167119 contained the mockup example (from William Jon McCann), and gnomebug:310568 had other comments

Current classifications:

  • Bindings
  • Deprecated
  • Desktop
  • Infrastructure
  • Other
  • Platform
  • Productivity

Status:

  • Classifications are automatically created by checksetup.pl
  • Existing products will be moved over (again checksetup.pl)

TODO:

  • Remove isgnome column when upgrading
  • Classify the unclassified products
  • Determine what to do with Deprecated but still shipped software. Currently they still are in Bindings etc.
  • Create an Unmaintained classification?

Porting existing customization

  • process_bug.cgi:
  • post_bug.cgi:
    • Initial state is UNCONFIRMED for all users (must also be changed in template)
  • Bugzilla/Bug.pm:
    • Only confirm bugs when votestoconfirm > 0

  • checksetup.pl: Add resolutions, states used by b.g.o (this will be populated into a different table)
  • globals.pl:
    • Add SortVersions hack (sort 2.10.0 after 2.2.0)

    • Hide resolutions GNOME1.x, NOTXIMIAN
    • Buglinks for NEEDINFO are in italic (like UNCONFIRMED)
    • Prepend show_bug.cgi with Param('urlbase')
    • Put realname in comments if available (part 1/2)
    • Add NEEDINFO as OpenState

  • Bugzilla/BugMail.pm:
    • Put realname in comments if available (part 2/2)
    • Do not email persons in @gnome.bugs
    • Allow persons to receive a copy of every bugmail by watching all-bugs@bugzilla.gnome.org

    • Support the unknown alias (AKA do email persons without an bugzilla account)
  • sanitycheck.cgi: Only whine when votestoconfirm > 0

  • showdependencygraph.cgi:
    • Request png instead of .gif
  • template/en/default/attachment/content-types.html.tmpl:
    • Add application/x-compressed-tar
  • template/en/default/list/table.html.tmpl:
    • Version field 7 width instead of 5
  • template/en/default/global/field-descs.none.tmpl: (needed for 2.20)
    • Added custom statuses and resolutions

Porting reports

check-assignedto.cgi has the cleanest code.. use that as an example for the rest...

%s/::FORM{\([^}]\+\)}/cgi->param(\1)/g

Most reports should still be cleaned up further (templates).

Conversion means at least:

  • Get rid of non dbh stuff
  • Get rid of %FORM
  • Change init part that calls globals.pl etc to conform to top of check-assignedto.cgi
  • Change something like /usr/bonsaitools/bin/perl to /usr/bin/perl
  • Database fields bugs.product and bugs.component are gone. Bugs table now contain product_id and component_id. Link those with products.id and components.id and use products.name and components.name.

File

Porting status

boogle.cgi

done

check-assignedto.cgi

done

clean-20-report.cgi

obsolete

core-bugs-today.cgi

done - should be cleaned up at some stage though (classifications etc)

d2-qreport.cgi

wont port

d2-test-report.cgi

wont port

d2-ximian-report.cgi

wont port

email_gnome_summary_report.pl

See Note 2

g2-progress-utils.pl

wont port

gnome-20-report.cgi

wont port, doesn't work in 2.16

gnome-20-report-test.cgi

wont port, doesn't work in 2.16

gnome-love.cgi

Just a redirect... - ElijahNewren
I'm still proud of my port - OlavVitters

gnome-report.cgi

Ported -- Still need to add patch status

keyword-search.cgi

done

keyword-search-rss.cgi

done

keyword-search-utils.pl

done

mostfrequent.cgi

See Note 3

needinfo-updated.cgi

done

old-bugs-needing-love.cgi

questionable...

old-gnome2-needing-love.cgi

wont port, doesn't work in 2.16

patch-diligence-report.cgi

ported by Elijah + uses templates

patch-report.cgi

Ported + uses templates - See Note 4

patch-report-utils.pl

Ported - See Note 4

patch-status.cgi

Ported - See Note 4

product-keyword-report.cgi

wont port, doesn't work in 2.16

product-mostfrequent.cgi

See Note 3

product-mustfix-report.cgi

wont port, doesn't work in 2.16

product-target-report.cgi

wont port, doesn't work in 2.16

recent-mostfrequent.cgi

See Note 3

recent-mostfrequent-utils.pl

Done and removed stuff not needed by create-mostfreq-xml.pl cronjob. See also Note 3

reports.cgi

contents moved to templates/en/custom/pages/reports.html.tmpl. /report.cgi requires login :(

simple-dup-finder.cgi

It's just a redirect...

sql-scratch.cgi

wont port

temporary.cgi

wont port

unconfirmed-bugs.cgi

ported -- still needs to use templates

weekly-bug-summary.cgi

ported + uses templates

weekly-summary-utils.pl

ported + uses templates + very big cleanup

  • Note 2: Gnome Weekly Summaries were discontinued (unfortunately) so this may not be useful anymore
  • Note 3: I believe these can all be replaced by duplicates.cgi, new to bugzilla >= 2.18 IIRC
    duplicates.cgi is still ugly to get XML out of, so ported also the recent-mostfrequent-utils.pl for now. duplicates.cgi relies on a cronjob making a dbm file each day. If you want the duplicates of 30 days ago, that cronjob had to be running for 30 days :-(

  • Note 4: https://bugzilla.gnome.org/show_bug.cgi?id=315146#c1

TODO:

  • <vuntz> hopes we'll be able to have weekly bug summaries for each class

Simple-dup-finder

Has been ported, accelerated + uses templates.

  • find-traces.pl
  • index.cgi
  • README (mostly obsolete; we may not want it anymore)
  • simple-dup-finder.cgi

Booglerific simple query form

Changes

Enhancements that could be made

  • treat status:<stuff> as legit if <stuff> is a valid meta-status?

  • somehow handle emails (reporter/cc/commenter/assignee), bugs_activity, bug-age & patch-age

Browse (Overview page)

This page has been stuffed full with all kinds of junk all over the place. There's some more stuff we want to throw into it too. Then we need to get someone who can make it pretty. We really need someone to make it pretty. ;-)

Possible further changes still not incorporated:

  • Put really important stuff (unreviewed patches, urgent/immediate bugs, blockers?) in a different color (e.g. red) as Luis suggested as a possibility?
  • Maybe list percentages in addition to just bug counts
  • Stuff that might take lots of time to generate/determine unless we cache somewhere/somehow
    • patch-diligence-rating (maybe next to unreviewed count; maybe with reviewed% instead of unreviewed%?)
    • ranking on the weekly-bug-summary
    • number of bugs on the most duplicated list (recent-mostfrequent stuff)
  • special notes section with reminders (e.g. tarballs due, freeze notices, etc.)
  • some kind of UI for adding searches of closed/duplicate bugs in the browse page via mouse click?
  • steal ideas from: http://jira.codehaus.org/browse/MAVEN

  • See also gnomebug:315146

Bug-buddy and XML-RPC

Bug-buddy using email allowed you to:

  • Create a bug-buddy report without using password
  • Any email address you want

Bug-buddy and XML-RPC should be made smart.

When a program crashes, bug-buddy should:

  • Pass crashed program to XML-RPC request to determine b.g.o product
    • What to do with the components? Should request specify the used component or let the user choose?
    • User WILL NOT be able to choose the product! (nobody knows what to select anyway)
    • XML-RPC request should be able to return a 'unknown program' result. Bug-buddy should handle that by going into 'save bugreport as file'-mode
  • Do NOT query for severity / priority!

TODO:

  • Add more thoughts

Short IRC discussion

<bkor> fer: do you have time to write xml-rpc stuff for bug-buddy 2.14? there is nothing on the server yet though, hope to do that within a few weeks
<fer> bkor, I think I'll haqve time!!!
<fer> for that and for the backtalk project
<bkor> great! I want bug-buddy to not need the bugzilla.gnome.org/ files (the 3 xml files describing products, etc)
<bkor> with xml-rpc we should be able to make a function that'll just gets the products (less data)
<bkor> and for crashers bug-buddy should give the program name, then b.g.o should decide where it goes (product)
<fer> yup, I think that's the right approach
<bkor> my only doubt is the requirement Bugzilla account.. xml-rpc runs one function every time, I think... so how to handle creating a Bugzilla account? with the webinterface it mails the password
<fer> humm
<bkor> I'd like to use that still for xml-rpc, but that might be irritating for new users, but on the other hand.. allowing xml-rpc to specify the new password = bad! (no validation on the email address)
<fer> an xml-rpc function to get a new account would be great I guess
<fer> humm
<fer> good point
<fer> but waiting for mail = boring poor users and don't get them sending the report
<bkor> ideally I want something that allows you to make a bug-buddy report + account in one go without a password
<bkor> next time they should use the password
<bkor> then use gconf / keyring manager to store the email address + password
<fer> humm
<fer> this is your second report, so go through your mail and search your f*cking password?
<bkor> yeah.. not too great :-(
<bkor> ok.. another one then... remember in b.g.o if user was created using bug-buddy (well.. xml-rpc).. if so, password = optional, otherwise not
<fer> humm

TODO

Stuff to be fixed before switching bugzilla.gnome.org to bugzilla-newer:

  • Fix sanitycheck errors on bugzilla.gnome.org
  • Further enhance show_bug.cgi:
    • When lacking permissions, add bugsquad promotion message
    • When logged off, add login box that should reload the page and stay on the same bug
    • When status whiteboard begins with a capital and ends with a '.', show that message at the top of the bugreport.
  • Fix little issues found
    • need to make report queries limit to the appropriate groups
  • remove editkeywords from everybody but admins

Nagging issues that would be nice to be fixed before switching over but could wait if necessary

  • ?remove empty sections on describeuser.cgi?
  • some kind of sorting for the classifications

To be done after bugzilla.gnome.org runs 2.20 (or before, given sufficient time before the 18th):

  • XML-RPC
    • Should require Bugzilla account?
    • Should allow creating an account (password should be emailed)
    • Should be limited to stuff bug-buddy requires (submitting bugs, getting product/version info)
  • Fix externalcc accounts that are not valid email addresses (about 350 of them). Some of these are valid and invalid email addresses combined with a ",".
  • Fix mail.pl to work
  • Close bugs using CVS commit message
  • Provide some content for the Help page

    • Add link to create a bug in bugzilla.gnome.org
    • Add bugmaster@gnome.org email address

    • FAQ?
      • source code @ cvs
  • Heavier patch stuff possibilities
    • much better patch querying with query.cgi?format=advanced
    • Automatic whines of some sort (cron job using patch-report-utils?)
    • Automatically (though allow it to be done manually too) find and mark undermaintained products as such (using patch diligence stats)
    • notify users in show_bug.cgi (and elsewhere?) when products are undermaintained
  • extra items already listed under the browse & boogle sections

  • allow old version numbers to remain in the database but not have them show up in certain parts of the UI (e.g. don't show them in show_bug.cgi or enter_bug.cgi but maybe still show them on query.cgi?format=advanced)
  • special handling of cvs head -- when adding a new version (maybe even if one need not be added because e.g. 2.9.x already exists when adding 2.9.3), reassign all CVS HEAD version bugs to that 'new' version
  • + whatever I forgot

Features

Why bugzilla-newer is better:

Step-by-step upgrade guide

Time to complete

Task

Disable web interface b.g.o

Disable web interface b-t.g.o

Disable bug-buddy-import

Disable cronjobs

6min

Make backup of bugs database

Make backup of ~/bugzilla

Put copy of bugzilla-test sources in ~/bugzilla

Modify ~/bugzilla/localconfig to point to bugs database

3h30min

Convert database structure to 2.20 format using ./checksetup.pl

Enable limited access to b.g.o (restricted on IP address)

2min

Goto https://bugzilla.gnome.org/editsettings.cgi and disable quip option

Check bugzilla status

Check b.g.o status

Enable access to b.g.o

Enable bug-buddy-import

Enable cronjobs

Detailed step-by-step guide

Disabling web interfaces:

Via .htaccess as the Bugzilla software will be upgraded. The Bugzilla way of disabling will not be reliable enough

vim ~/bugzilla/.htaccess, add: deny from all
vim ~/test/.htaccess, add: deny from all

Disabling bug-buddy import:

$ vim ~/.procmailrc
change ':0c' after '# I want a copy' to ':0'

Disabling cronjobs:

$ crontab -e
put ### in front of commands

Make backup of bugs database:

  • Preferably from a normal user account. Has more space available.

$ mysqldump --opt -h button-back -u bugzilla -p bugs  | gzip > bugs-216.sql.gz

Make backup of ~/bugzilla:

  • We will be needing some of the files!

$ cd ~/
$ cp -a bugzilla backup216

Put copy of bugzilla-test sources in ~/bugzilla:

  • rm -rf * will not delete the .htaccess file

$ cd ~/bugzilla
$ rm -rf *
$ cp -a ~/test/* .
$ cp -f ~/backup216/localconfig .
ADD MORE STUFF

Convert database structure to 2.20 format using ./checksetup.pl

$ ./checksetup.pl

Enable limited access to b.g.o (restricted on IP address)

$ vim ~/bugzilla/.htaccess
add as appriopriate: allow from 1.2.3.4

Make changes to setup

Visit https://bugzilla.gnome.org/editparams.cgi
 - change urlbase to: https://bugzilla.gnome.org/
 - change mail_delivery_method to: sendmail
Goto https://bugzilla.gnome.org/editsettings.cgi
 - disable quip option
Goto https://bugzilla.gnome.org/editgroups.cgi
 - Edit ismailinglist group
  - Disable 'Use For Bugs'
  - Remove inherit for 'admin' group
 - Edit admin group
  - Add inherit/grant for 'maintainers' group

Issue to investigate/fix before 18th

Note: conversion hangs in 'Updating column qa_contact in table bugs'

Stuff after that:

Updating column qa_contact in table bugs ...
Old: mediumint NOT NULL
New: mediumint



Deleting unused column emailflags from table profiles ...
Updating column initialowner in table components ...
Old: mediumint
New: mediumint NOT NULL
Updating column value in table versions ...
Old: tinytext
New: varchar(64) NOT NULL
Adding new index 'versions_product_id_idx' to the versions table ...
Updating column creation_ts in table bugs ...
Old: datetime NOT NULL
New: datetime
Adding group editclassifications ...
Adding group admin ...

Infrastructure/Archive/Bugzilla/UpgradeTo3.4 (last edited 2020-11-04 13:57:56 by AndreaVeri)