Mozilla Development Explained: How Do I Report Bugs in Firefox?
Peter M. Weilbacher
mozilla@Weilbacher.org
About myself
- Married
- Living in Potsdam near Berlin
- Working as Astronomer at Astrophysikalisches Institut Potsdam
- First talk about computing/programming
- OS/2 user since 1993
- Almost no OS/2 programming experience
(but a lot of stuff done with C/C++ under Unix/Linux)
"Mozilla": Different products
Mozilla perspective from OS/2 point of view:
- Firefox browser
- Thunderbird mail client
- SeaMonkey: successor of the Mozilla Suite
- Calendar: Sunbird and Lightning
(extension for SeaMonkey is dead!)
- Web editors: NVU, KompoZer, "Composer"
- XULRunner: next generation backend
Also: Camino and several webtools hosted on mozilla.org, and other programs, e.g. Songbird, not (yet) available on OS/2.
Development in Branches
(Taken from Chris Beard's blog, dates are now obsolete!)
Source code complexity
From the "trunk" source tree on my disk (no Thunderbird, Calendar):
- 35852 files in 227 MiB
- Many different languages involved: C, C++, JavaScript, XML (XUL, RDF, XHTML), HTML, CSS, Makefiles, Perl, (ba)sh
- Build takes 40 to 90min, depending on build configuration
- Code layers: base, XPCOM, platform gfx/widgets, rendering, UI and lots of other stuff
- Program complexity: many user config options, themes, extensions, usage patterns...
People involved
People involved in Mozilla OS/2 development:
- Mike Kaply: OS/2 platform "owner", nightly builds, Fx + Tb releases, code reviews
- Andy Willis: build config, XULRunner, lots of patch testing
- Julien Pierre: help with NSS problems
- People who build themselves and test patches: Dave Yeo, Walter Meinl, William Hartzell
- Felix "mrmazda" Miata: maintains OS/2 Ports page, does a lot of testing, user support
- Steve Wendt: maintains own tips page, user support
- (Rich Walsh: drag-and-drop support, WPS enhancements, Run!)
- Me: semi-regular builds, almost all OS/2 related code changes and checkins. Own PmW-* releases, (in)official SeaMonkey releases, maintenance of build instructions and required packages, user support
My perspective, I hope I didn't miss anyone, a lot happens on IRC (unseen by me)!
Fixing a bug
Developer's responsibility:
- Bug report (newsgroup, Bugzilla)
- Reproduce, debug
- hopefully fix in own code tree and create patch
- Attach patch to bug entry, ask for review
- Attend to review comments (if any), get checked into trunk
- After a few days, test on branch(es), ask and wait for branch approval
- Check into branch(es)
- Wait for official release and produce corresponding OS/2 release to get the fix into user's hands
Reporting a bug
User's responsibility:
- Some strange behavior
- Search in README.txt and Google and Google Groups for solution
- Disable plugins (Java, Flash!), extensions, and themes (
firefox -safe-mode
or new profile in SeaMonkey)!
- Could it be related to some configuration option?
- (Search Bugzilla)
- Ask in
mozilla.dev.ports.os2
or on IRC (#warpzilla), always mention the product and version (cut and paste from Help -> About)
- If possible, try to reproduce on another platform
- File a new bug entry on Bugzilla (Guidelines, Etiquette!)
- Patiently wait for somebody to answer and maybe fix it.
- Some developers frown on reminders but OS/2 people probably have to be reminded from time to time and probably don't mind so much...
Other help channels
Many bugs and usage questions are not OS/2 specific. Where else to get competent help?
- Mozilla support newsgroups (on
news.mozilla.org
): mozilla.support.*
(for Firefox, Thunderbird, SeaMonkey, Calendar release versions
- Forums on MozillaZine
- On IRC (#mozilla)
- German newsgroups:
de.comm.software.mozilla.*
(but watch your manners)
- Product translators often have webpages and forums of their own
Upcoming big changes
Changes to come with possible (or already known) impact on Mozilla-OS/2 development:
- Recently done: default theme enhancements for more OS/2-like look (present in Firefox 2)
- Change to cairo-based rendering (still a big task to be done!)
- Move SeaMonkey from XPFE to "Toolkit", including profile import tool (hopefully mostly done)
- XULRunner as base for all apps (works only with patches)
- Reflow refactoring (hopefully nothing OS/2 specific!)