Skip to content

BugXhibit: Exhibit on Bugzilla results


I know it has sorta been done before (found via Bugzilla Fixup Wiki Page on a comment by faaborg), and I feel like there has to be another live version somewhere, but here we are.  BugXhibit is an MIT SIMILE Exhibit widget fronting a quicksearch query.

Click here to go to a BugXhibit page where you can enter your own query.  Enter “gloda” if you want to see what the screenshots are based on.  I feel like it would be improper of me to provide a link with a live query though.

Go visit the hg repo.  Or just download the source from the previous link.  Please improve!  (See the SIMILE Exhibit docs for how to do that.  It’s all really easy.)



  • This uses bugzilla’s ctype=js for buglist.cgi.  It apparently has been around since 2003 (bug)!  And thanks to Gerv!  Perhaps not too surprisingly, the format of the results is not inert JSON but live JS code that builds a would-be-Array where each bug’s info is stored in an array.  What each element in the array stands for cannot be known from the results.  I find that using ctype=csv is a good way to get the headers.  Rather than doing that every time (cost concerns on the redundant query), I did it once for columnlist=all (which we always use) and stashed it in bugxhibit.js.  This is dangerous because it is brittle; if you try and use bugxhibit against a saved search someone made public, I at least got many fewer columns (despite columnlist=all), and things just don’t match.  Not to mention there is a “cf_blocking_fennec” flag in there that I feel like should not be there.
  • It looks pretty easy to have bugzilla produce more sane JSON output via a template (although the security code that logs you out for a js request still should run, so don’t forget buglist.cgi.)
  • Even with all columns exposed when using buglist.cgi, there are lots of interesting things that are not exposed.  For example, flags are not exposed via buglist.cgi, so faceting on whether things are blockers or wanted can’t be done.  Once you know the bug numbers from the query, you can obviously go fetch additional information, though I think that currently still needs to be XML format, but that’s not that hard.
  • The code is friendly and splits up the whiteboard and keyword things so it does what you would expect and is not stupid.
  • I made sliders for patch count and votes.  They don’t work for me anymore, and I see XUL wrapper anger (on Firefox 3.0.x), so, uh, don’t be surprised if they fall down.
  • The UI obviously sucks.  But it’s a proof of concept, and you are the internet!  You can do anything!

{ 7 } Comments

  1. Philip Chee | May 28, 2009 at 4:11 am | Permalink

    I just get a mostly blank page with this error in the error console:

    Error: Timeline.GregorianDateLabeller is undefined
    Source file:
    Line: 6

  2. Andrew Sutherland | May 28, 2009 at 5:02 am | Permalink

    If you go to the SIMILE timeline site, do their examples work for you?

    What web browser? I’m presuming SeaMonkey?

  3. seth | May 28, 2009 at 7:23 pm | Permalink

    this is very awesome.

    on the l10n-drivers team, we have already taken what you’ve written and tweaked it a bit and written a ubiquity command. we can now do searches for open bugs on keywords or components or even standard “queriable” terms in the summary fields of our bugs. we plan to use this to extensively.

    just look what your tool gives us for a sample query:!productization%20-!fixed1.9.1

    you’ll notice that we set up an instance on our l10n server of your tool. stas had to hard code the order of the criteria most relevant for him to be component first, keyword second, etc. it seems that there is no way in your example to specify order, so your tool just sort alpha-numerically by lable. we found it useful to sort by component. is their a way to specify ordering in the URL?

    awesome work!

  4. Andrew Sutherland | May 28, 2009 at 7:42 pm | Permalink

    Thanks, Seth!

    Can you point me at the ubiquity command? I was thinking I could use one of those! 🙂

    What I’ve got so far was just meant to be a prototype, I was hoping other people would enhance it. If you and the l10n-drivers team make enhancements, I’m fine with you pushing them to my hg repo, or if you set up your own repo, please just let me know where it is so I can pull from it too.

    Not only is the ordering as it exists now (in my version) not too useful, but also the ‘table’ view is basically completely useless, for example!

  5. Staś Małolepszy | May 29, 2009 at 2:18 am | Permalink

    Hey Andrew,

    Great work. I thought I’d do a little write-up on my blog to let others know how you changed my life 🙂

    I also uploaded the Ubiquity command that Seth mentioned:

    Awesome work. Thanks!

  6. Neil Rashbrook | May 29, 2009 at 3:38 am | Permalink

    cf_blocking_fennec is a Custom Field, not a flag. (I think somebody blogged about that before.)

  7. Gerv | June 3, 2009 at 3:01 pm | Permalink

    You’re welcome 🙂


{ 2 } Trackbacks

  1. Staś Małolepszy | May 29, 2009 at 2:16 am | Permalink

    BugXhibit: an interface to Bugzilla’s search results…

    This is awesome. Andrew Sutherland hacked up a very cool proof-of-concept interface to Bugzilla search results using MIT’s SIMILE Exhibit library. It allows you to query Bugzilla using the Quick Search syntax and displays the results in form of a…

  2. […] BugXhibit, the Bugzilla search results vieerw made with the SIMILE Exhibit widget, is now more fancy, and now addresses another one of my use cases.  I frequently find myself wanting to point someone at a bug, or go back to a bug that I know passed through my bugmail recently, and have trouble finding it.  So now BugXhibit can do easy searches based on reporter/assignee/cc/commenter with time ranges. […]