[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]
The P4CQ Integration
The P4CQ integration is an integration between the Perforce SCM tool, the
Rational defect tracking tool ClearQuest, and the Release Engineering tool ReleasePro. In addition, it includes the
optional add-on component (open-source) Perforce P4DB web browser originally contributed by Fredric
Fredricson.  P4CQ is a nicely integrated solution.
An overview of P4CQ can be seen via the P4CQ presentation. It explains the
integration and benefits through ReleasePro, ClearQuest, and P4DB (web) screen
shots.
The download consists
of a zip file that contains the ClearQuest schema, all hooks, all
daemons/replicators, and a modified P4DB (based on version 2.01). The
download does not contain the three applications themselves but does include
P4DB. Please note that P4DB is a completely optional add-on that is not
required - it provides a CGI based, web based, drill up/down capability.
There is also a CCCQ integration
available for a ClearCase/ClearQuest/ReleasePro environment.
P4CQ is lightweight, flexible and configurable. The actual amount of
code that makes up the integration is not extensive. Different parts of
the integration can be independently disabled, enabled, or modified. It
does not dictate a specific defect state transition diagram. Here are
diagrams of the defect and
call-id state transition
diagrams. It is written almost entirely in Perl using the ClearQuest Perl
API. It works on both Windows and UNIX, and is distributed under the
G.P.L. (GNU Public License).
P4CQ is currently available as open source software. Consequently,
maintenance and support is not normally offered except under a consulting
contract. (Creative arrangements are possible.)
P4CQ Primary Usage and/or Design Requirements
Design and Implementation Overview
Having said that, it was convenient to support the reverse flow of data from
Perforce to ClearQuest under certain conditions, most notably when submitting
changes with attached defects. This was implemented and tested
(somewhat), but due to available resources, is turned off by default in the
current release. It can easily be enabled. If at all possible, free
email support will be offered to anyone interested in using this feature.
So, by default the CQ defect data is only mirrored into Perforce jobs, and
modifying any defect/job attribute including fixed data directly in
Perforce will have no lasting affect. Such changes are backed out by the
system typically in one minute intervals. Additionally, the CQ data is
only partially mirrored - only the most important defect fields are
mirrored. This includes those fields needed to meet the
requirements. However, this is easily configurable.
ReleasePro provides the integration of a release being a first
class object within both Perforce and ClearQuest as well as the end user's
run-time environment. See the ReleasePro documentation for more details.
Support
the drill-down or drill-up between releases, defects, changes and files.
That is, for any of the above objects, to be able to point and click to any
other associated object.
Do not create a system where Perforce now requires ClearQuest to be up and
running and vice versa. Since a lot of activity is happening on the
user's client machine (like updating workspaces, etc.) or on arbitrary machines
(one never knows what type of system a QA engineer will be using to enter
data), allow each application to continue to be used if the other application
is unavailable. Without intervention by a admin, let the system heal
itself after such a break as well as not be blocked by such a break.
Low learning curve, maximize
point and click usage models. Also low deployment costs (server side
based solutions).
The actual
defect state transition diagram in independent of P4CQ. This also
supports ease of modification of the state diagram.
Try to keep the design simple, maintainable, scalable, etc.
[an error occurred while processing this directive]
[an error occurred while processing this directive]
To be able
to support queries against a release of a software product, a
release needs to be a first class object somewhere in the system.
ReleasePro creates this first class object and ClearQuest is used to store this
first class object. Thus, when a product release is created via
ReleasePro, ReleasePro records the release in ClearQuest.
Because ClearQuest is so feature rich and customizable, it was clear that
trying to replicate CQ business logic via Perforce and glue was not going to
work. It was going to be difficult enough to obtain proper usage of CQ
and Perforce in of themselves. To wit, to be able to change Perforce job
data and then have the integration talk to CQ, determine that the operation was
illegal, then get this information back to the user quickly in a reasonable
manner is problematic both in usage and implementation. The problem is
that backing out the user's input data after the fact could be confusing as
well as mysterious to the user.
The web
is an excellent medium for supporting drill-down and drill-up, and P4DB provide
this piece.