PERFORCE DEFECT TRACKING INTEGRATION RELEASE NOTES FOR RELEASE 2.2.0

Nick Barnes, Ravenbrook Limited

$Date: 2004/08/02 $


CONTENTS

  1. Introduction
  2. Supported configurations
  3. Getting support
  4. Project contacts
  5. What's fixed
     5.1.  What's fixed in release 2.2.0
     5.2.  What was fixed in release 2.1.2
     5.3.  What was fixed in release 2.1.1
     5.4.  What was fixed in release 2.1.0
     5.5.  What was fixed in release 2.0.0
     5.6.  What was fixed in release 1.5.3
     5.7.  What was fixed in release 1.5.2
     5.8.  What was fixed in release 1.5.1
     5.9.  What was fixed in release 1.5.0
     5.10.  What was fixed in release 1.4.2
     5.11.  What was fixed in release 1.4.1
     5.12.  What was fixed in releases up to 1.4.0
  A. References
  B. Document history
  C. Copyright and license


1. INTRODUCTION

These are the release notes for release 2.2.0 of the Perforce Defect
Tracking Integration (P4DTI).

The P4DTI connects your defect tracking system to Perforce, so that you
don't have to switch between them and enter duplicate information about
your work.  It also links changes made in Perforce with defect tracker
issues, making it easy to find out why a change was made, find the work
that was done to resolve an issue, or generate reports relating issues
to files or codelines.

For instructions on installing the P4DTI, see the product readme
(readme.txt).

For up-to-date information about releases of the P4DTI, see the product
information page <http://www.perforce.com/perforce/products/p4dti.html>.
From there you will find links to the latest releases, including
reports of defects found.

If you want to adapt or extend the P4DTI, please go to the product
information page <http://www.perforce.com/perforce/products/p4dti.html>
and download the Integration Kit.  It contains full source code and
documentation to help you.

The readership of this document is anyone who wants to download and use
the Perforce Defect Tracking Integration.

This document is not confidential.


2. SUPPORTED CONFIGURATIONS

Perforce versions:

  - Perforce 2000.2, 2001.1, 2002.1, 2002.2, 2003.1, 2003.2, or 2004.2,
    on any platform;

The Bugzilla for Unix integration supports:

  - Bugzilla 2.16.6, or 2.18 on Red Hat Linux or Solaris, storing the
    data in MySQL 3.22.19 or later;

  - Python 2.0, or later;

  - Running the P4DTI replicator on any Unix.

Use of Bugzilla 2.14.5, 2.16.4, or 2.16.5 on Red Hat Linux or Solaris
is also supported, but is deprecated: support may be dropped in a
future version of the P4DTI.

The Bugzilla 2.18 support in P4DTI was largely developed before the
release of Bugzilla 2.18, using Bugzilla 2.17.7 for development and
testing.  This release of the P4DTI is therefore also believed to work
with Bugzilla 2.17.7, although that configuration is not supported.

Note that although the Bugzilla integration runs on a variety of Unix
operating systems, we've only tested it on Red Hat Linux 8.  Also note
that the P4DTI will not be able to cause Bugzilla to send email
reporting bug changes unless it is running on the same machine as
Bugzilla itself.

The Bugzilla for Windows integration supports:

  - Bugzilla 2.18 on Windows NT4 or Windows 2000;

  - Python 2.0 or later with Win32 plug-ins;

  - Running the P4DTI replicator on Windows NT 4 or Windows 2000.

Use of Bugzilla 2.14.5 on Windows is also supported, but is
deprecated: support may be dropped in a future version of the P4DTI.

Integration with TeamShare's TeamTrack is no longer supported by
Perforce Software, or by this software.  An integration is available
from TeamShare.  Contact TeamShare support by writing to
<support@teamshare.com> or see the TeamShare web site at
<http://www.teamshare.com/> for further information.


3. GETTING SUPPORT

For problems relating to Perforce or the P4DTI in general, contact
Perforce Support by writing to <support@perforce.com> or see the
technical support page at
<http://www.perforce.com/perforce/support.html> for contact information.

Bugzilla is not supported by any one person or organization.  Consult
the documentation that came with Bugzilla, or visit
<http://www.mozilla.org/projects/bugzilla/>.


4. PROJECT CONTACTS

You may want to join the p4dti-discussion mailing list. The goals of the
list are:

  1. to provide feedback to the project on requirements, design,
implementation, etc.;

  2. to allow people to exchange information and experience with using
and adapting the project;

  3. to keep people informed about project progress.

To join, send a message with the word "subscribe" in the _body_ to
<p4dti-discussion-request@ravenbrook.com> or send the word "help" for
general information.

Please note that the mailing list will be archived and the archive may
be published.


5. WHAT'S FIXED

This section lists defects that have been fixed.


5.1. WHAT'S FIXED IN RELEASE 2.2.0


ESSENTIAL

job000764: Test suite fails with Bugzilla versions 2.16.1 to 2.16.3

Some tests fail with after emitting the error 'Too late for "-T"
option'.


job000907: UG makes incorrect statements about p4 change "-s" option

The User Guide states that a list of jobs is only presented in a "p4
change" or "p4 submit" form when the "-s" option is given.  This is
incorrect: the list of jobs is always presented (if the user has a
jobview).  The "-s" option actually causes a status of "ignore" to be
put next to each job (where it can be edited to an actual status).


job000948: New Bugzilla groups system not supported

The 2.17.x development releases of Bugzilla have a table-driven groups
system, replacing the existing "bitset" groups.  The P4DTI will need to
support this system once the stable Bugzilla 2.18 has been released.
Note that the same P4DTI versions will need to support either table
groups (2.18 +) or bitset groups (2.16.x).


job000949: Can't handle new Bugzilla product and component tables

Replicating product or component fields from Bugzilla 2.18 will not work
because of a Bugzilla database schema change.


job000950: Bugzilla integration too slow

Integrating with Bugzilla 2.17.x or 2.18 involves more database access
than earlier integrations (e.g. groups tables, product and components
tables).  When running some stress tests the integration appeared very
slow.


job000951: Bugzilla bugmail doesn't work any more

Bugzilla 2.17.x doesn't have the "processmail" script used by the P4DTI
to send bugmail when bugs change.


job000952: New Bugzilla permissions rules not followed

Bugzilla 2.17.x and 2.18.x have new rules for deciding whether a given
user may make a particular change to a particular bug.  The P4DTI must
enforce the same rules as the version of Bugzilla with which it is
running.


job000953: No support for Bugzilla's new per-product group controls

Bugzilla 2.17.3 introduces per-product group controls, allowing an
administrator to specify which groups a bug should (or must) belong to
based on its product, and also which groups a user must be in to create
a bug in a given product.


job000957: Test suite doesn't handle recent Bugzilla releases

The P4DTI test suite runs some Bugzilla code as part of testing the
Bugzilla integration.  Some of the ways in which it invokes this code,
and some of the assumptions it makes about the results, are not valid
for Bugzilla 2.17.x (and will not be valid for Bugzilla 2.18).


job000958: Bugzilla schema doc is out of date

The P4DTI design documentation includes a document [1] describing the
Bugzilla database schema.  This document is considerably out of date:
among other things it doesn't describe the new groups system in bugzilla
2.17.x, or the tables controlling flags and charts.  This needs to be
up-to-date and accurate for us to rewrite the P4DTI Bugzilla interface
based upon it.


job000960: P4DTI doesn't support Bugzilla 2.16.5

Bugzilla 2.16.5 was released on 2004-03-03 as the latest security patch
release in the stable 2.16.x series.  The latest P4DTI release (2.1.2)
supports various Bugzilla releases including 2.16.4; the next P4DTI
release should support Bugzilla 2.16.5.


job000961: P4DTI doesn't support Bugzilla 2.16.6

Bugzilla 2.16.6 was released on 2004-07-10 as the latest, and probably
last, security patch release in the stable 2.16.x series.  The latest
P4DTI release (2.1.2) supports various Bugzilla releases including
2.16.4; the next P4DTI release should support Bugzilla 2.16.5 and
2.16.6.


job000963: P4DTI does not support Bugzilla 2.18

The Bugzilla project is planning to release Bugzilla 2.18 during 2004.
This will be the first new stable version of Bugzilla since 2.16 on
2002-07-28.  The P4DTI must support integration with Bugzilla 2.18.
Bugzilla 2.18 is also intended to run on Windows (making this the first
supported Windows release since 2.14.5 on 2003-01-02), and we must
support it there.


job000964: Bugzilla emails give incorrect values for user fields

Bugzilla sends email to affected users when a bug changes.  This email
describes the change: stating which fields in the bug have changed and
giving old and new values.  If the change is to a user field (e.g.
"assigned_to" or "qacontact"), the old and new values should appear as
the Bugzilla logins (email addresses) of the users in question.
However, if the bug is changed by the P4DTI replicator, these values
appear as numeric user IDs instead.


job000965: User Guide is out-of-date about Perforce interfaces

The P4DTI user guide has instructions for achieving various job-related
tasks using different Perforce interfaces (command-line, p4win, p4web).
These instructions were largely based on P4 2001.1 (the current release
when the user guide was originally written).  Some of the instructions
are now out of date; some other tasks are now possible in a given
interface when they were not before.


job000968: Interactions with Perforce ticket system not documented

The AG has no information or advice on using the P4DTI with Perforce
"tickets" (e.g. to allow a Perforce server security level of 3).


job000971: No P4DTI section when Bz 2.17+ bug is "formatted for
printing"

The P4DTI adds a section to the bug display to show Perforce information
relating to a bug (e.g. bug fixes).   This section is displayed in the
regular Bugzilla bug display but not when a bug is "formatted for
printing" (either on its own or as part of a long list).  This job is
specific to Bugzilla 2.17+ because the cause and symptom are different
there from on earlier versions of Bugzilla (up to 2.16.6): see also
job000956.


job000985: MySQLdb 1.0.0 not supported

Release 1.0.0 of the MySQLdb Python module is now available, and must be
supported by the P4DTI.


OPTIONAL

job000955: P4DTI section not using Bugzilla template hooks

The user interface in Bugzilla is templatized (since Bugzilla 2.16).
Since Bugzilla 2.17.7, the template system includes "hooks", allowing
site-specific sections to be included in the user interface.  Using such
a hook for the P4DTI would reduce the size and complexity of the
Bugzilla patch needed by the P4DTI.


job000959: P4DTI doesn't work with Bugzilla 2.17.x

The Bugzilla 2.17.x series of releases are "development versions", and
the P4DTI is not intended to support them.  However, the development of
that series will eventually result in a stable release (Bugzilla 2.18),
and the P4DTI must support that release.  In the meantime several users
have requested integration with Bugzilla 2.17.x releases, especially
2.17.7, which is fairly stable and probably the last 2.17.x release.


job000962: P4DTI doesn't work with Bugzilla 2.18rc1

The Bugzilla team have release Bugzilla 2.18rc1 [1], a "release
candidate" for the forthcoming Bugzilla 2.18.  The P4DTI must support
Bugzilla 2.18, and the best way to ensure this support arrives soon
after the Bugzilla 2.18 release itself is to make the integration work
with 2.18rc1.  Such operation need not be supported by a P4DTI release.


job000984: P4DTI doesn't work with Bugzilla 2.18rc2

The Bugzilla team have release Bugzilla 2.18rc2 [1], the second "release
candidate" for the forthcoming Bugzilla 2.18.  The P4DTI must support
Bugzilla 2.18, and the best way to ensure this support arrives soon
after the Bugzilla 2.18 release itself is to make the integration work
with 2.18rc2.  Such operation need not be supported by a P4DTI release.


5.2. WHAT WAS FIXED IN RELEASE 2.1.2


CRITICAL

job000842: Python 2.3 or 2.3.x breaks Bugzilla integration

Under Python 2.3 or 2.3.x, the Bugzilla integration fails with this
message: "Bugzilla database error: (P4DTI-1058)  Given 'True' when
expecting a string or integer."


ESSENTIAL

job000841: Test suite warnings with Python 2.3

When running the P4DTI test suite under Python 2.3, two
DeprecationWarning messages are generated.


5.3. WHAT WAS FIXED IN RELEASE 2.1.1


ESSENTIAL

job000837: P4DTI manuals refer to out-of-date Perforce documentation

The P4DTI manuals refer to Perforce 2001.1 documentation, instead of
2003.1 versions.


job000838: P4DTI can't replicate 'user' fields.

Some Bugzilla fields (e.g. 'reporter' 'qa_contact') are user
identifiers, which should be replicated as Perforce user names.  If the
P4DTI  2.1.0 replicator is set to replicate one of these, it fails on
startup with the message "NameError: global name 'user_name_length'	is
not defined".


job000839: AG "Table of Commands" omits jobspec commands

P4DTI version 2.1 adds some new commands, "python check_jobspec.py" and
"python extend_jobspec.py".  These were not included in the "Table of
Commands" (Appendix D) of the Administrator's Guide in P4DTI 2.1.0.


5.4. WHAT WAS FIXED IN RELEASE 2.1.0


ESSENTIAL

job000624: Licence still says copyright 2001.

The licence attached to the P4DTI sources says "copyright 2001", but
probably ought to say "copyright 2001-2003" (shortly).  I am not a
lawyer.


job000699: P4DTI doesn't allow customizable jobspec

The P4DTI completely takes over the Perforce jobspec, in a very
constrained way.  The jobspec is entirely determined by the
replicated_fields configuration item.  Users want [1] to be able to
customize this jobspec, at the very least to be able to rename and
reorder the replicated fields.  Ideally they want to be able to set
their own jobspec, and prepare it for the P4DTI by adding some fields
but not otherwise modifying it.  This is requirement 122.


job000700: Perforce user password is disclosed on command line

When the P4DTI issues Perforce commands, it does so by issuing a system
command including all relevant options on the command line, including
the password with -P.  The command line can be obtained with various
system tools such as 'ps', so other users on the system can readily
obtain the P4DTI Perforce user's password.


job000704: Bugzilla fixes table shows the fixer, not the changer

The patched Bugzilla bug form has a fixes table showing Perforce fixes
for the bug. The table has one row per fix record, showing the
changelist number, date, description, and user.  The "user" column shows
the user who made the fix record, not the user who made the change.
This is counter-intuitive, not very useful, and contrary to the P4DTI
documentation, in particular the IG [1].


job000754: AG says that MySQL doc link is for MySQL 4.1.0-alpha

       The Administrator's Guide has a link (in section 3.3) to the
MySQL documentation.  This link is to the permanent home of the current
MySQL documentation, but in the AG the linked text is "MySQL Reference
Manual for version 4.1.0-alpha".  This will date.


job000755: config.py still has TeamTrack section

config.py still has a TeamTrack section, although TeamTrack integration
is no longer supported.


job000756: MySQL privilege required and not documented

Some versions of MySQL have a new privilege: Lock_table_priv.  This is
required by the P4DTI MySQL user (the P4DTI replicator locks tables
during polls).  This requirement is not documented in the AG.


job000792: Can't detect Bugzilla versions since 2.16

The P4DTI Bugzilla integration has code to detect Bugzilla versions from
2.0 up to 2.16, and then uses this information to decide support status.
This code will not work correctly on Bugzilla databases since 2.16.x, so
the P4DTI can't even detect versions of Bugzilla since 2.16.x.


job000811: P4DTI doesn't work with Perforce 2003.2beta

Perforce 2003.2beta has a new format for the output of "p4 -G info", in
which each information line is tagged (like p4 -ztag output).  The P4DTI
uses "p4 -G info" to determine the Perforce server features (using the
server changelevel).  It isn't expecting the 2003.2beta format, and does
not accept it.


job000827: P4DTI test suite with PyXML 0.8.3 fails without XHTML DTD
file

The P4DTI test suite uses Python's XML libraries and PyXML extensions to
check the XHTML documentation which forms part of the P4DTI product
sources (e.g. manuals, design documents, etc).  When used with PyXML
0.8.3 (unlike PyXML 0.7.x), this part of the test suite fails because it
can't the XHTML DTD named in the doctype element.


job000829: Some messages listed in the AG can never appear.

There are a number of P4DTI error messages in the AG which are obsolete
(marked as NOT_USED in the message catalog).  These should be removed.


job000830: No way to check the jobspec

The P4DTI requires a Perforce jobspec with various important properties:
P4DTI fields with certain specifications, replicated fields of
particular types, etc.  But there is no way at present to check whether
the jobspec has those properties.  There should be a script.  See also
job000699 (configurable jobspec): being able to check the jobspec is
important when the jobspec is not in the control of the P4DTI.  Also
job000831 (extend jobspec): we need to be able to fix problems found
when checking the jobspec without completely discarding it.


job000831: No way to just extend the jobspec

The P4DTI overwrites the jobspec with one based on the configuration
(replicated_fields, etc).  This prevents the use of additional,
non-replicated fields in the jobspec.  The P4DTI should instead extend
the jobspec, by adding the fields which it requires.  Optionally, such
extension could change the specification of a field if it is not correct
for the P4DTI.  And administrators should be able to just extend the
jobspec, independently of running the replicator, so that they can see
the results before committing themselves.  See also job000699
(configurable jobspec): being able to add P4DTI-required fields to a
user's existing jobspec is an important part of this.  And this can be
combined with job000830 (check jobspec): first check_jobspec, then fix
any problems either manually or with extend_jobspec.


job000833: Bugzilla 2.16.4 not supported.

The P4DTI does not support Bugzilla 2.16.4 (released on 2003-11-03).


OPTIONAL

job000828: "licence" should read "license"

In various places in the P4DTI sources, test suite, manuals, and other
materials, the word "licence" is used.  This is the UK English spelling
of the word spelled as "license" in the US.  P4DTI project policy is to
use US English spelling.


NICE

job000832: P4DTI checksum script doesn't know jobspec scripts

The P4DTI comes with a checksum script to compute a checksum of the
P4DTI sources.  Two new source files (check_jobspec.py and
extend_jobspec.py) are not included.


5.5. WHAT WAS FIXED IN RELEASE 2.0.0


ESSENTIAL

job000522: P4DTI may fail if Perforce client exists and is broken

The P4DTI creates a Perforce client when it first runs.  The client name
is "p4dti-" concatenated with the machine name (as returned by Python's
socket.gethostname() function).  This Perforce client may already exist,
and may have a clientspec which is broken in such a way that it prevents
the P4DTI from running, as reported by a customer [1].


job000627: P4DTI supports TeamTrack, but Perforce doesn't

The P4DTI claims to support TeamTrack integration, but Perforce (and
Ravenbrook) no longer supports, maintains, or develops the TeamTrack
integration.  This has been handed over to TeamShare, who will support,
maintain, and develop the integration from now on.


job000692: replicate_p documentation needs more examples

The replicate_p configuration parameter in the P4DTI allows
administrators to select particular issues from the defect tracker for
replication.  This is documented briefly in the AG and somewhat more
extensively in the AAG, but the documentation is still a little sparse.
In particular, there is only one example for the Bugzilla integration
(currently the only supported integration).


job000693: Changing rid and running refresh script causes confusion

If the administrator changes the 'rid' configuration parameter after the
P4DTI has been installed and run, the replicator will no longer
replicate the jobs and issues which it was previously replicating.  This
is correct behaviour, because those jobs and issues 'belong' to a
different replicator (one with the old 'rid').  If the 'refresh.py'
script is then run, it attempts to replicate all currently-replicated
issues (or new issues which pass the replicate_p test).  This is wrong:
it should only attempt to replicate issues with the correct rid or new
issues which pass the replicate_p test.  A deeply confusing error
message is generated (a _mysql_exceptions.IntegrityError message, with a
lengthy backtrace):


job000694: check_jobs doesn't work on Windows if .py file association
is set

If the .py file association is set on Windows (so typing "p4" runs
Python on p4.py), then running the check_jobs.py script in the P4DTI
install directory fails with a misleading error message:


job000695: AG doesn't specify using P4 'admin' access level

Perforce 2002.2 introduces a new access level called 'admin', which has
exactly the capabilities required for the P4DTI replicator user.  The
existing documentation (AG section 5.2.1 [1]) states that the replicator
user has to be a "super user", which is no longer true.


job000696: P4DTI documentation covers old defect tracker versions

The P4DTI documentation is out-of-date with respect to the
currently-supported versions of defect trackers.  Specifically,
TeamTrack is no longer supported at all, and neither are releases of
Bugzilla prior to 2.14.4 (on Windows and Linux/Unix) and 2.16.1 (on
Linux/Unix).


job000698: P4DTI installation docs are lengthy and confusing

Installing the P4DTI is not actually hard, but the documentation may
make it appear so.  The AG devotes thousands of words to describing the
installation and initial configuration of the P4DTI.


5.6. WHAT WAS FIXED IN RELEASE 1.5.3


ESSENTIAL

job000642: AG "patching Bugzilla" section needs to explain "patch" for
Windows

The P4DTI for Bugzilla needs to apply a patch to Bugzilla using the
program "patch".  This program is provided as standard on Unix and
Linux, but not on Windows.  In the AG, section 3.4.1 "Software
Prerequisites", we say that "patch" is required and provide a link to an
implementation of "patch" for Windows.  However, this information is not
included in section 5.4.1, "Patching Bugzilla", which a user installing
the P4DTI will be reading when "patch" is actually required.


job000643: Perforce 2002.2 not supported

The Perforce 2002.2 release is imminent.  The P4DTI works with this
release but does not say so in the documentation (in particular in the
release notes).


job000644: Broken WinZip registration causes embarrassing message

The copy of WinZip on our release build machine
(sandpiper.ravenbrook.com) is licensed, but somehow lost its license key
between P4DTI release 1.4.2 and P4DTI release 1.5.0.  Running a
self-extracting archive created with this copy of WinZip now displays a
message: "This copy of WinZip Self-Extractor is NOT LICENSED for
distribution.  Any distribution of this file is prohibited and is a
violation of US Copyright Law and international treaty."  This looks
bad.


5.7. WHAT WAS FIXED IN RELEASE 1.5.2


ESSENTIAL

job000633: Readme.txt has an installer filename wrong

The P4DTI readme file, readme.txt, says 'On the Bugzilla Windows
machine, run the "p4dti-bugzillawin-1.5.1.exe" installer program that
came with this document.'  The installer program is actually called
"p4dti-bugzilla-1.5.1.exe".


job000635: AG doesn't offer "patch" utility for Windows

Installing the P4DTI for Bugzilla requires the use of the utility
"patch".  This is not standard on Windows, and the P4DTI for Bugzilla is
now supported on Windows.  The AG should explain that "patch" has to be
installed, and offer a source of it for Windows.  Our test machine has
Cygwin installed, which comes with "patch".


job000636: Applying Bugzilla patch can put file in wrong place

The Bugzilla 2.16.1 patch provided with the P4DTI includes the entirety
of a a new file, template/en/custom/bug/edit.html.tmpl.  If the patch is
applied simply with "patch < bugzilla-2.16.1.patch", this new file is
created in the main bugzilla directory.


job000637: MySQLdb RPM depends on mx Python module which may not be
present

The Bugzilla P4DTI requires the Python "MySQLdb" package, to connect to
the MySQL database containing the Bugzilla data.  This package is
available in various forms.  The AG links to an RPM for MySQLdb 0.9.1
for Red Hat Linux 7.3.  This RPM requires another package, called "mx",
to be present in order to install successfully.  The AG should either
link to an RPM which doesn't require mx or should mention that this mx
package is necessary and provide a link to it.


OPTIONAL

job000632: AG says "doeditparams.pl" not "doeditparams.cgi"

In describing the Bugzilla patch, the AG states that it modifies the
file "doeditparams.pl".  The actual name of this file is
"doeditparams.cgi".


5.8. WHAT WAS FIXED IN RELEASE 1.5.1


CRITICAL

job000628: Bugzilla 2.16 and 2.16.1 patches are broken

The patches provided with P4DTI 1.5.0 for Bugzilla 2.16 and 2.16.1 are
broken.  Using the Bugzilla bug form with these patches results in a
"Software error" message in the Bugzilla user interface, complaining
about global symbols "$rid" and "$sid":


5.9. WHAT WAS FIXED IN RELEASE 1.5.0


ESSENTIAL

job000324: Bugzilla patch doesn't work well on Solaris 8

A user reported problems with the Bugzilla 2.10 patch on Solaris 8.  The
patch applies correctly (if 'patch' is invoked twice) but generates
error messages. Apparently the version of 'patch' which comes with
Solaris 8 is not capable of applying a regular unified diff patch to
more than one file at once, at least not invoked in the usual way.


job000389: Bugzilla integration not supported on Windows

Bugzilla can be made to work on Windows but the P4DTI is not supported
on Windows.


job000533: p4_user with wrong email address confuses Bugzilla user
translator

In the Bugzilla integration, if the P4DTI's perforce user (configuration
item p4_user) does not have an email address matching the P4DTI's
Bugzilla user (configuration item replicator_address) then the user
translator will translate that Perforce user to the P4DTI's Bugzilla
user, even if there is a separate Bugzilla user with email address
matching that Perforce user.  In other words, the translations in the
two directions do not match each other.


job000551: P4DTI kit for Unix has DOS line endings

Since the release build procedure was automated we've been creating
integration kits for Unix with DOS line endings.


job000552: Bugzilla for Windows integration is in separate source tree

A port of P4DTI to Bugzilla for Windows was done by Parrus Technologies
and released by at Perforce.  Perforce have asked us to integrate it
with the master sources.


job000596: Automatic test expects a bug to replicate on first poll

The automated tests fail on swan.ravenbrook.com (RedHat 7.3 and
Bugzilla) with the message


job000607: Bugzilla 2.16.1 not supported

Bugzilla 2.16.1 has been released (on 2002-09-30) and is not yet
supported by the P4DTI.


job000608: Bugzilla 2.14 security patch releases not supported.

Bugzilla 2.14.2, 2.14.3, and 2.14.4 have been released as security patch
releases to Bugzilla.  None of them are currently supported by the
P4DTI.  We should at least support the most recent patch release
(currently 2.14.4).


job000609: Test suite for Bugzilla on Windows doesn't work

The test suite doesn't support testing for Bugzilla on Windows.  To
properly support the P4DTI for Bugzilla on Windows (job000389) we have
to make the test suite work there.


job000610: Bugzilla/Windows integration doesn't support processmail

The integration for Bugzilla on Windows doesn't support the use of
processmail.  The processmail scripts are deferred correctly but then
can't be executed because of a limitation of the use of CMD on Windows
(can't change directory and run a command with one invocation of
os.system()).


job000611: TeamTrack test database licenses expired

The Teamtrack test databases have licenses which have expired.  We need
new licenses to enable us to test TeamTrack support.


job000613: TeamTrack interface MSVC workspace is confused

code/p4dti.dsw and related files control the build of the Python
Teamtrack interface on Windows.  Unfortunately they have become a little
confused: some build (in debug mode) for Python 1.5.2, there is a
redundant file, there is a non-existent project ("p4dti"), they have
acquired some relative links, and so on.


job000614: TeamTrack tests run when configured for Bugzilla on Windows

The automated tests for the Python TeamTrack interface run when running
the complete automated test suite for the integration with Bugzilla on
Windows.


job000615: Bugzilla shows extra changelists with multiple Perforce
servers

When integrating a Bugzilla with more than one Perforce server, the
fixes table in a Bugzilla bug with fixes from one Perforce server will
show the changelists from all Perforce servers with matching changelist
numbers.


OPTIONAL

job000612: Bugzilla integration doesn't check use_windows_event_log
config parameter

The Bugzilla integration can now run on Windows.  On that platform, the
config file may contain a use_windows_event_log parameter.  The value of
this parameter must be checked (to be 0 or 1).


job000616: Linux/Unix system log usage not configurable

Under Linux and Unix the P4DTI replicator will send log messages to the
system log.  The corresponding functionality under Windows is controlled
by a configuration parameter "use_windows_event_log".  The Linux/Unix
system log can theoretically filter out P4DTI messages (with
syslog.conf) but it is a good idea to provide a configuration switch as
well.


job000617: Test suite not very useful under Python 2.2

Changes made to the PyUnit unit test framework between Python 2.1 and
Python 2.2 have reduced the utility of the P4DTI test suite.  In
particular, running a set of tests only produces a list of
single-character results ("." for a pass, "F" for a failure, "E" for an
error) while the tests are running, preventing any sort of analysis
until the run completes.


5.10. WHAT WAS FIXED IN RELEASE 1.4.2


ESSENTIAL

job000512: Bugzilla P4DTI doesn't work with Python 2.2

The Bugzilla P4DTI inadvertently uses a feature of Python that doesn't
work in Python 2.2.  Running the P4DTI with Python 2.2 gives an error in
the use of has_key at line 412 of bugzilla.py.


5.11. WHAT WAS FIXED IN RELEASE 1.4.1


CRITICAL

job000461: Bugzilla integration doesn't support multiple Perforce
servers

The Bugzilla integration doesn't work with multiple Perforce servers.
The second replicator instance will fail.


ESSENTIAL

job000437: Jobspec not suitable for creating new jobs

The P4DTI creates a Perforce jobspec that's fine for jobs which are
replicated from the defect tracker, but not so good for jobs that are
created in Perforce.


job000478: TeamTrack 5.02 is supported

The P4DTI currently supports TeamTrack 4.5, 5.0, 5.02, and 5.5 (see also
job000409 and job000433).  This adds to the support burden at Perforce
and TeamTrack.  Perforce have asked that the set of supported platforms
be changed.  Specifically, TeamTrack 5.01 and 5.02 should _not_ be
supported, and the documentation should recommend that customers upgrade
to TeamTrack 5.5.


job000483: refresh.py comments are out-of-date

The comments in refresh.py indicate that the script will "delete all the
jobs on the Perforce server" and refresh them from the defect tracker.
This is incorrect; refresh.py no longer deletes any jobs.


job000491: jobspec has bad defaults for optional user fields

In the Bugzilla integration, if the administrator has added a user field
(e.g. 'reporter', 'qa_contact') to replicated_fields, creating jobs in
Perforce with the default value of this field will fail.


job000494: Bugzilla integration fails if qa_contact is in
replicated_fields

There is a Bugzilla field "qa_contact", which holds the User name of the
"QA contact" assigned to a bug.  This may be zero, if the Bugzilla
parameter "useqacontact" is turned off, or if there is no QA contact
assigned (for instance, if there is no initial QA contact for the
component against which this bug is reported).  If this field is zero,
and the P4DTI is configured to replicate this field to Perforce (i.e. if
'qa_contact' is in replicated_fields in config.py) then the P4DTI will
fail.


job000501: new jobs break TeamTrack integration if LASTMODIFIEDDATE or
SUBMITDATE are replicated

In the TeamTrack integration, if either of the fields LASTMODIFIEDDATE
and SUBMITDATE are replicated (i.e. are in the replicated_fields
configuration parameter) and the P4DTI is set up to replicate new jobs
(i.e. replicate_job_p is defined to return 1), and a new job is created
without filling in these fields, the P4DTI fails.


OPTIONAL

job000408: Table of Bugzilla fields in AG is incomplete for Bugzilla
2.14

The Administrator's Guide has a table in section 5.1.5 listing the
fields in a Bugzilla bug.  The set of fields has changed in Bugzilla
2.14, with the addition of four new fields (reporter_accessible,
qacontact_accessible, cclist_accessible, assignee_accessible).  These
fields are not really suitable for replication, but they should be added
to the table in any case.


job000492: Test suite doesn't cope with 'reporter' in
replicated_fields

If you add 'reporter' to replicated_fields in test/config_swan.py, the
test suite fails in test_p4dti.py:migrate, saying there's no Bugzilla
user corresponding to Perforce user ''.  This is because the
translate_jobspec function provided by that test doesn't provide a
'reporter' field (required by the new jobspec, but not present in the
migrated jobs).


job000493: Bugzilla migration fails if delta_ts in replicated_fields

If the delta_ts field (the timestamp of the most recent change to a
Bugzilla bug) is included in the replicated_fields configuration item,
and the user's translate_jobspec function doesn't fill it in, migration
will fail.


job000495: Test suite doesn't cope with 'qa_contact' in
replicated_fields

If you add 'qa_contact' to replicated_fields in test/config_swan.py, the
test suite fails in test_p4dti.py:migrate, saying there's no Bugzilla
user corresponding to Perforce user ''.  This is because the
translate_jobspec function provided by that test doesn't provide a
'QA_Contact' field (required by the new jobspec, but not present in the
migrated jobs).


job000496: Bugzilla integration breaks migration if numeric fields are
replicated

Bugzilla bugs include a small number of numeric fields.  One is actually
a bitset ('groupset'), one is a genuine number ('votes'), and the rest
are actually booleans: 'everconfirmed', 'qacontact_accessible',
'cclist_accessible', 'assignee_accessible', 'reporter_accessible'.  If
one of these fields is in 'replicated_fields', then migrating jobs
without a translate_jobspec function to fill in a numeric value for this
field will cause the migration to fail.


5.12. WHAT WAS FIXED IN RELEASES UP TO 1.4.0

For information about what was fixed in releases up to and including
1.4.0, see the release notes for that release:
<http://www.ravenbrook.com/project/p4dti/release/1.4.0/release-notes.txt>


A. REFERENCES

None.


B. DOCUMENT HISTORY

2002-02-01 GDR Noted support for TeamTrack version 5.5.

2002-02-04 GDR Updated for release 1.4.0.

2002-03-14 NB Removed support for TeamTrack 5.02.

2002-04-09 NB Updated for release 1.4.1.

2002-04-19 NB Updated for release 1.4.2.

2002-06-04 GT Updated for Bugzilla on Windows 2000 port for release 1.4.2.

2002-06-26 RB Merged Bugzilla for Windows 2000 port into Ravenbrook sources.

2002-10-30 NB Tidied up in preparation for 1.5 releases.

2002-11-01 NB Updated for release 1.5.0.

2002-11-14 RB Removed TeamTrack support, as this has been handed off to TeamShare.

2002-11-20 NB Updated for release 1.5.1.

2003-12-13 NB Updated for release 2.1.0.

2003-12-17 NB Updated for release 2.1.1.

2004-01-08 NB Updated for release 2.1.2.

2004-08-02 NB Updated for release 2.2.0.


C. COPYRIGHT AND LICENSE

This document is copyright (C) 2002 Perforce Software, Inc.  All rights
reserved.

Redistribution and use of this document in any form, with or without
modification, is permitted provided that redistributions of this
document retain the above copyright notice, this condition and the
following disclaimer.

THIS DOCUMENT IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
DOCUMENT, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

$Id: //info.ravenbrook.com/project/p4dti/version/2.2/release-notes.txt#3 $
