Defect Tracking Integration and Perforce

How do I integrate third-party bug and issue tracking with Perforce?

QUESTION

How do you make Perforce work with another vendor's defect tracking system?


ANSWER

The options for performing defect tracking with Perforce:

The Perforce Built-In "jobs" Features

Perforce "jobs" provide a method for identifying units of work such as bugs or enhancement requests (that is, jobs), then associating these jobs with actual work done (that is, changelists). This basic defect tracking functionality is described in detail in our User's Guide here.

The Perforce Defect Tracking Integration -- P4DTI

Free integration, using P4DTI, is available for the defect tracking systems by Bugzilla. For more information on the integration with the open source Bugzilla system, please see the P4DTI product information page.

The P4DTI is a good place to start if you want to integrate Perforce with your own home-grown defect tracking system, or develop an integration with a third party defect tracker. The source code is part of the P4DTI integration kit. For more information, see the P4DTI product information page.

Even if you don't use the P4DTI source code, we recommend using a similar design. The design documents for the P4DTI are included in the P4DTI integration kit.

The Perforce Defect Tracking Gateway

The Perforce Defect Tracking Gateway enables you to integrate Perforce jobs with external defect trackers, so that changes to the status of defect tracker issues are replicated in Perforce jobs and vice versa. Currently the Perforce Defect Tracking Gateway is available only for the Windows platform. For more information, please take a look at the Perforce Defect Tracking Gateway product information page.

For each type of defect tracker, a plug-in is required (for example, the included plug-in for Mercury's Quality Center 9.0). A future SDK will allow developers to create their own integrations to support commercial and in-house defect tracking systems.

Custom Defect Tracking Integrations

Other options for integrating Perforce with defect trackers include the following:

  1. A trigger or script on the defect tracking system side which adds/updates/deletes a job in Perforce every time a bug gets added/updated/deleted in your defect tracking system. (That is, the defect tracking system issues a p4 job -i command and passes it the appropriately formatted data.)
  2. A trigger on the Perforce side which checks changelists being submitted for any necessary bug fix information. (See the sample Perforce triggers referencing jobs in the Perforce Public Depot.)
  3. A Perforce review daemon which checks successfully submitted changelists for job fixes, and issues the appropriate commands to update corresponding data in your defect tracking system.

We have customers currently integrating Perforce with their own home-grown defect tracking systems, and with third-party systems like Remedy, Scopus, and ClearTrack. If you are interested in what other users have done, we recommend you check the Perforce-user mail archive for recent postings on defect tracking. You should also consider posting to the list to ask if anyone has integrated Perforce with a third-party tool you are interested in -- by the time you've done so, someone may already have done the dirty work. (Remember to register on our Mailing Lists page before posting so your email gets distributed.)

The following perforce-user postings in particular may be helpful: