Brew your own bugzilla
|This page describes the process of customising Bugzilla for Audacity's needs, as outlined on the Review of Issue Trackers page.
- Using Bugzilla - for how we use bugzilla
- Next Release - for some examples of tables of bugs from bugzilla auto-generated into wiki by bugzilla reports
- Bug Lists - for quick links to some bugzilla bug reports (and explanation of our priorities).
This guide was written whilst customising bugzilla 3.4.1 because it was what I had handy. It should be updated when newer Bugzilla releases are deployed, although most of the work won't need to be re-done because the changes are stored in the database not in the installation files.
It assumes you have already set up and installed Bugzilla so you have a working vanilla installation.
Changes made in the Web interface
Most of the configuration of Bugzilla is done by logging in to the web interface as an administrative user and using the pages accessed from the Administration link in the footer. For simplicity I have simply listed the end result for each form, although it will probably require multiple actions to get there (e.g. adding values to a field one at a time).
- Required Settings:
- Lots of things always need doing here, nothing is special to Audacity
- We DO want utf8 encoding on.
- Lots of things always need doing here, nothing is special to Audacity
- announcehtml This gives us the logo in top left, which is clickable and takes us to a table of bugs. Notice that the logo is served from our wiki. announcehtml needs periodic changing, e.g to indicate when a new version of audacity is under development. The header looks like this:
The header is created by setting announcehtml to:
<div id="bugzilla-body"> <a href="https://bugzilla.audacityteam.org/report.cgi?x_axis_field=priority&y_axis_field=bug_severity&z_axis_field=&query_format=report-table&short_desc_type=allwordssubstr&short_desc=&longdesc_type=allwordssubstr&longdesc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=substring&email1=&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&chfieldfrom=&chfieldto=Now&chfieldvalue=&format=table&action=wrap&field0-0-0=noop&type0-0-0=noop&value0-0-0="> <img src="https://wiki.audacityteam.org/w/images/7/74/AudacityLogoOverName.png" style="float:left" alt="Audacity Bug Summary" border="0" height="108px" width="124px"></a> <div style="float:left;border:5px"> <div align=center> ••• <a href="https://wiki.audacityteam.org/wiki/Using_Bugzilla">Introduction</a> •••<br> ••• <a href="https://bugzilla.audacityteam.org/describekeywords.cgi">Keywords</a> ••• </div> <ul style="list-style-image: none; list-style-type: none">Audacity 2.3.0 development began 22 Feb 2018</ul> <ul> <li><a href="http://bugzilla.audacityteam.org/enter_bug.cgi?product=Audacity">New Audacity Bug</a> <li><a href="http://wiki.audacityteam.org/wiki/Release_Notes_2.2.0">Current Release Notes</a> <li><a href="https://wiki.audacityteam.org/wiki/Bug_Lists">Using Audacity Bugzilla</a> <li>or <a href="https://audacityteam.org/contact/#feedback">report bugs by email</a>. </ul> </div> <div style="text-align: center;"><h3>Audacity Bugzilla</h3><!--Replace this with message of the day--><br/></div><br clear="all"/>
Clicking on the icon takes the user to a table like this one:
- User Authentication
- Set createemailregexp to blank, which means all accounts will have to be created by an administrator.
- Turn allow_attach_url on.
- Turn convert_uncompressed_images on
- Bug Change Policies
- Turn letsubmitterchoosepriority on (we are open source, so trusting contributors to know what they are doing makes sense).
- Turn letsubmitterchoosemilestone off (we aren't using milestones at the moment)
- Turn noresolveonopenblockers on
- Bug Fields
- (usetargetmilestone should be already off)
- (usestatuswhiteboard should be already off)
- defaultseverity (will be RepeatableAll) and defaultpriority (will be P4) are here, but we need to change the contents of the lists first.
- Group Security
- Make timetrackinggroup empty (nothing selected) to turn off time fields.
- Query Defaults
- set quip_list_entry_control to Moderated at least (not open!)
- Add a 'PX' value with sort key 50, so it goes at the top of the list.
- Change 'Windows' to 'Windows XP' at 200
- Add 'Windows Vista' at 205
- Add 'Windows 7' at 210
- Add 'Windows Vista / 7' at 260
- Add 'Windows 8' at 265
- Add 'Windows 10' at 266
- Add 'Windows All' at 270
- Add 'Linux and OS X' at 450
- Add 'DEVEL - FIX [email protected] at 252
- Add 'QUICKFIXED' at 250 (this is for bugs fixed before they every got out to users in a release)
- Change 300 from INVALID to NOT-A-BUG ('INVALID' implies a report that had no use, 'NOT-A-BUG' doesn't).
- Add 700 MOVED
- Add 800 DISABLED (i.e. the whole feature foo was disabled for release).
- Severity (we will re-name this field and use it for bug type)
- Repeatable: 100
- RepeatableAll: 120 default (for bugs that are on all platforms)
- Locale: 150
- MoonPhase: 200
- HeisenBug: 300
- CometReturns: 350 (for extremely rare bugs)
- Summary: 400
- Review: 450
- Change Enhancement to 500 (we usually put Enh: at the start of the title too)
- Review: 450
- delete Trivial
These have to come after the field values have been set up
- Bug Fields
- set defaultpriority to 'P4'
- set defaultseverity to 'RepeatableAll'
- Create a user "[email protected]", real name "Default Asignee for New Bugs", disable bugmail. Random password which no-one needs to know, and doesn't need any system rights.
- Edit TestProduct
- set the name to Audacity
- set the description to 'Audacity itself. Not the website, the forum, the bugtracker or anything outside of the core Audacity application.'
- Edit Components
|User Interface||Issues relating to application User Interface||[email protected]|
|Audio IO||Issues relating to Audio playback and recording||[email protected]|
|Built-in FX||Issues related to one or more built-in effects||[email protected]|
|Application Core||Issues related to the application core, library problems and similar things which are nothing to do with audio per se.||[email protected]|
|Nyquist||Issues related to the Nyquist Lisp interpreter||[email protected]|
|Formats||Issues related to exporting/importing audio data||[email protected]|
|LADSPA||Issues related to LADSPA plug-ins||[email protected]|
|Vamp||Issues related to Vamp analysis plug-ins||[email protected]|
|VST||Issues related to VST effect plug-ins||[email protected]|
|Installer||Issues related to installer code||[email protected]|
|Labels||Issues related to Labels and Label tracks||[email protected]|
|Envelopes||Issues related to Envelopes||[email protected]|
|Multiclip||Issues related to MultiClip||[email protected]|
|Scripts||Utility and installation scripts||[email protected]|
|Other||Issues related to some other component||[email protected]|
- Edit versions:
- and so on... a version for each version.
- Add a product 'Audacity Manual' with description 'The Audacity manual on https://manual.audacityteam.org/'
- Edit it's components and add a single component 'Wiki Manual'
The following flags are set up:
|Flag||Description||Categories||Options||Grant Group||Request Group|
|Accessibility||Particularly affects VI users||Audacity:__Any__, Audacity manual:__Any__||uncheck 'specifically requestable' and 'multiplicable'||editbugs||(no group)|
|Security||Bug has security implications for users running Audacity||Audacity:__Any__,||uncheck 'specifically requestable' and 'multiplicable'||editbugs||(no group)|
|Regression||This bug is a regression compared to previous releases of Audacity||Audacity:__Any__,||uncheck 'specifically requestable' and 'multiplicable'||editbugs||(no group)|
|Maintainability||This bug reflects a design or implementation problem that hinders future changes to Audacity||Audacity:__Any__,||uncheck 'specifically requestable' and 'multiplicable'||(no group)|
|Must-Test-All-OS||Fixes for this bug will need test on Windows Mac and Linux||Audacity:__Any__,||uncheck 'specifically requestable' and 'multiplicable'||editbugs||(no group)|
|Vote-To-Keep||For when a bug is perhaps NOT-A-BUG, allows different opinions to be voiced||Audacity:__Any__,||check 'multiplicable'||(no group)|
|Test-OK-Win||'+' if passed, '-' if fails, '?' if hard to interpret results||Audacity:__Any__,||check 'multiplicable'||(no group)|
|Test-OK-Mac||'+' if passed, '-' if fails, '?' if hard to interpret results||Audacity:__Any__,||check 'multiplicable'||(no group)|
|Test-OK-Linux||'+' if passed, '-' if fails, '?' if hard to interpret results||Audacity:__Any__,||check 'multiplicable'||(no group)|
- Add new custom field
- Name: cf_stepstoreproduce, Description: "Steps To Reproduce", Type: Large Text Box, Can be set on bug creation: Yes, Displayed in bugmail for new bugs: Yes, Field only appears when: Product is set to Audacity.
- Name: cf_releasenotetext, Description: "Release Notes", Type: Large Text Box, Can be set on bug creation: No, Field only appears when: Product is set to Audacity.
Bug Status Workflow
Changes Made to the Templates
These are page appearance changes which need shell access to edit the template files on the web server. See http://www.bugzilla.org/docs/3.4/en/html/cust-templates.html for background. From the shell prompt in the top level directory of the bugzilla installation:
- mkdir template/en/custom
- cd template/en/custom
- mkdir -p bug/create
- cp ../default/bug/create/create-guided.html.tmpl bug/create/ This takes our own copy of the template file which defines the bug creation form so we can modify it for our local usage
- Edit bug/create/create-guided.html.tmpl to reflect the new field name (Bug Type).
- TODO: This page hard-codes the default field list an explanations. We should modify it to collect the information that is held elsewhere in bugzilla which does explain what is going on correctly.
- mkdir global
- cp ../default/global/field-descs.none.tmpl global/
- Edit global/field-descs.none.tmpl to set the name of the "bug_severity" field to be "Bug Type"
- mkdir list
- cp ../default/list/edit-multiple.html.tmpl list/
- mkdir pages
- cp ../default/pages/quicksearchhack.html.tmpl pages/
- cp ../default/pages/fields.html.tmpl pages/
- TODO: This has another hard coded copy of the default severity list which needs changing.
- mkdir reports
- cp ../default/reports/duplicates-table.html.tmpl reports/
- mkdir search
- cp ../default/search/form.html.tmpl search/
- mkdir whine
- cp ../default/whine/mail.txt.tmpl whine/
Hopefully future upgrades will make more use of the entry in global/field-descs and reduce the number of other entries for the same string.
- Finally, run checksetup to build the new templates and make the changes show up in the UI.
- cd ../../..