The Evolution Of Bugzilla
Gervase Markham
The Evolution of Bugzilla
Bugzilla's evolution has mostly been driven by the needs of
bugzilla.mozilla.org.
- 420,000 bugs (350,000 of which are, fortunately, resolved)
- 627 components
- 301,000 user accounts (3,400 active in 2008, 15,000 in 2007)
- 305,000 attachments
- 9.3GB of data (of which 6.6GB is attachments)
Hardware
- Databases: 2 x HP DL360 G5s (4 x 2.67GHz Xeons), 8 GB RAM
- Webservers: 4 x HP DL360 G4s (2 x 3.0GHz Xeons), 4 GB RAM
- Cisco Netscaler load balancer
- Machines are shared; cluster means no-downtime reboots
- All in San Jose, CA; trying to set up a remote instance in Amsterdam
Sources Of Change
Bugzilla changes under pressure from users. Requirements for change can be:
- technical
- organisational
- social
Bugzilla Evolves: 1998
- March
- Mozilla source code released
- August
- Bugzilla source code released
- Pretty simple bug tracker - 50k of code
- Bugs had statuses, a few fields, assignee, comments
- Better than GNATS, even then ;-)
- September
- conversion from TCL to Perl
- To get outside contributors
- Simplicity and speed
- A bug looked like this
Bugzilla Evolves: 1999
- January
- target_milestone, qa_contact, status_whiteboard
TM for project management; SW for tagging arbitrary groups of bugs.
- March
- user groups and security
- April
- attachments
Before this, patches by email or in comments. Few
outside contributors
- May
- dependencies
- October
- voting
Stem the tide of "please fix this!" comments
Bugzilla Evolves: 2000
- January
- keywords
Status whiteboard field getting corrupted and messy
- February
- UNCONFIRMED
Dealing with the flood of bugs, and helping overloaded engineers
- February
- shadow database
Scaling issues; searches taking a long time
- July
- MOVED
Get Netscape bugs out of Bugzilla
- October
- most-frequently-filed bugs list
Stop people filing duplicate bugs (in theory)
Bugzilla Evolves: 2001
- January
- email control
People were flooded with bugmail
- August
- attachment editing, reviewing, statuses
Tracking reviews
- August
- rewrite of query page JS
Mandriva's little problem
- September
- test suite
Bugzilla Evolves: 2002
- March
- UI templates
Not user-driven; done to avoid the forking problem
(old code)
- June
- Flags on both bugs and attachments
Attachment statuses wasn't enough
- June
- users can change their email addresses
Admins sick of doing it for people
- October
- time tracking support
First major feature contributed from outside
- November
- insiders
Bugzilla Evolves: 2003
- July
- parameterize "bug"
Most common reason for forking
- September
- full text searching
Welcome to the 21st century
Bugzilla Evolves: 2004
Bugzilla Evolves: 2005
January
- 2.18 released
2.5 years after the previous release
January to May
- modularization
May
- initial support for PostgreSQL
Filed bugs for Oracle, Ingres, Sybase, Firebird and MS-SQL
Bugzilla Evolves: 2006
February
- custom fields
(Sorry, Joel)
July
- custom resolutions
July to September
- modularize checksetup.pl
(old code)
October
- shiny new skin
Goodbye 1980s
December
- mod_perl support
Bugzilla Evolves: 2007
May
- Bugzilla 3.0 released - 2.1MB archive
June
- custom statuses and workflow
Bugzilla Evolves: 2008
January
- DB transactions
The Future
- Web Services interface
- Ajaxification
- Inter-Bugzilla connections