Ravenbrook / Projects / Perforce Defect Tracking Integration
Perforce Defect Tracking Integration Project
This is a record of a meeting in which Nick Barnes presented his design for the Bugzilla integration to Gareth Rees and Richard Brooksby.
The readership of this document is the project staff.
This document is not confidential.
Figure 1. The whiteboard form the meeting showind the overall structure
Figure 1 shows the overall structure of Bugzilla, consisting of:
Nick described how the Bugzilla database schema is pretty much fixed and hard coded in to the CGI. There are some parameters which change it a bit (e.g. enabling voting). Bugzilla can also have a "shadow database" which is read-only and used to speed up web access.
Nick has written up the Bugzilla database schema [ref?]. We will make this document available to the Bugzilla team. There are two important tables containing bugs and profiles for users. Bug descriptions go in a separate table related to the bugs table. In general in Bugzilla, auxillary data is stored in separate tables and related to the main table.
The integration will follow this pattern. We'll add a table called "p4dti_something" keyed on the bug id which has replicator stuff in it: rid, sid, jobname, action.
Why not add columns as in TeamTrack?
The replicator will contain:
Perforce to Bugzilla user mapping will be done using e-mail addresses.
How is your interface to Bugzilla going to tell when bugs have changed? It's going to use the timestamp. It will record the last value in the p4dti table and use the modification date in the bugs table.
How will it distinguish its own changes from changes made by other people? With entries in the p4dti table saying "I changed it".
Will you do changelists and fixes? New tables will be added, related to the bugs table. The Bugzilla CGI will need to be modified to display the information and hyperlink it to a Perforce web interface. These tables will be replicated as with TeamTrack.
We probably don't need a separate Bugzilla user for the replicator, unlike the TeamTrack integration. The replicator can connect to the MySQL database just like the Bugzilla CGI does. It's the CGI which enforces all the workflow restrictions and user auditing, and the replicator won't be going through the CGI.
The Bugzilla modules in the replicator will have to duplicate the permissions logic enforced by the Bugzilla CGI in order to enforce it in Perforce.
Nick talked about how the replicator would create Bugzilla users on demand. Richard said that replicator probably shouldn't create new users or new bugs or other new entities in the defect tracker. The person managing Bugzilla might need control over users who can access it, and we wouldn't want spurious new users created because of errors in e-mail addresses in Perforce. Creating bugs from Perforce is a low priority requirement, judging from the feedback we've had and the alpha programme [RB 2000-11-04]. We expect the workflow to come in through the DT in most cases.
The Bugzilla integration will need to write a log when modifying the Bugzilla schema.
[RB 2000-11-04] | "Perforce Defect Tracking Integration Alpha Programme Report"; Richard Brooksby; Ravenbrook Limited; 2000-11-04. |
2000-11-17 | RB | Created from notes taken at the meeting. |
Copyright © 2000 Ravenbrook Limited. This document is provided "as is", without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this document. You may make and distribute verbatim copies of this document provided that you do not charge a fee for this document or for its distribution.
$Id: //info.ravenbrook.com/project/p4dti/doc/2000-11-17/bugzilla-design-meeting/index.html#1 $
Ravenbrook / Projects / Perforce Defect Tracking Integration