PERFORCE DEFECT TRACKING INTEGRATION RELEASE NOTES FOR RELEASE 1.3.3 Gareth Rees, Ravenbrook Limited $Date: 2001/12/03 $ CONTENTS 1. Introduction 2. Supported configurations 3. Getting support 4. Project contacts 5. What's new 5.1. What's new in release 1.3.2 5.2. What was new in release 1.3.1 5.3. What was new in release 1.3.0 5.4. What was new in release 1.2.1 5.5. What was new in release 1.2.0 5.6. What was new in release 1.1.6 5.7. What was new in release 1.1.5 5.8. What was new in release 1.1.4 5.9. What was new in release 1.1.3 5.10. What was new in release 1.1.2 5.11. What was new in release 1.1.1 5.12. What was new in release 1.1.0 5.13. What was new in release 1.0.6 5.14. What was new in release 1.0.5 5.15. What was new in release 1.0.4 5.16. What was new in release 1.0.3 5.17. What was new in release 1.0.2 5.18. What was new in release 1.0.1 5.19. What was new in release 1.0.0 A. References B. Document history C. Copyright and licence 1. INTRODUCTION These are the release notes for release 1.3.3 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 . 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 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 and Perforce 2001.1 on any platform; The TeamTrack integration supports: - TeamTrack 4.5 and TeamTrack 5.0 running on Windows NT 4 or Windows 2000; - Python 2.0 on Windows NT 4 or Windows 2000; - The P4DTI replicator running on Windows NT 4 or Windows 2000. The P4DTI does not support a TeamTrack server running on a secure web server, nor does it support the "TeamTrack Online" hosted defect tracking service from TeamShare. The Bugzilla integration supports: - Bugzilla 2.10, 2.12, or 2.14 on Red Hat Linux 6.2 or Solaris using MySQL; - Python 1.5.2 or later on Unix; - The P4DTI replicator running on Unix. Note that although the Bugzilla integration runs on a variety of Unix operating systems, we've only tested it on Red Hat Linux 6.2. 3. GETTING SUPPORT For problems relating to Perforce or the P4DTI in general, contact Perforce Support by writing to or see the technical support page at for contact information. For problems relating to TeamShare, contact TeamShare Technical Support by writing to or see the support page at for contact information. Bugzilla is not supported by any one person or organization. Consult the documentation that came with Bugzilla, or visit . 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 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 NEW This section lists defects that have been fixed. 5.1. WHAT'S NEW IN RELEASE 1.3.2 CRITICAL job000422: Refreshing fails after migration if new workflow doesn't match old workflow If you have fixes in Perforce with statuses other than "closed", and if you migrate your jobs from Perforce to the defect tracker and in doing so change the workflow so that some fix statuses disappear, then the P4DTI can't refresh the fixes after the migration. ESSENTIAL job000249: Refresh script fails if you change the closed_state Suppose you start out with closed_state=None and people make fixes in Perforce to the state "resolved". Then you set closed_state="resolved" and run the refresh script. This fails because it tries to make fixes to the state "resolved", which Perforce refuses because there is no Perforce state "resolved" (Perforce now uses "closed" instead). job000421: Migration of jobs to Bugzilla fails if a job is owned by a non-existent user If you have jobs in Perforce that are owned by a non-existent user, or a user who's been deleted, then the P4DTI can't migrate those jobs to Bugzilla. 5.2. WHAT WAS NEW IN RELEASE 1.3.1 CRITICAL job000418: Migration of users to Bugzilla fails for lack of migrated_user_groups If you attempt to migrate users from Perforce to Bugzilla following the instructions in the Advanced Administrator's Guide, section 4.4, the operation fails because there is no value for the configuration parameter migrated_user_groups. job000419: Can't migrate users to Bugzilla 2.14 Migrating users from Perforce to Bugzilla works for Bugzilla 2.10 and 2.12, but in Bugzilla 2.14 it fails with a complaint from MySQL that the field 'password' is unknown. ESSENTIAL job000420: Too time-consuming to find all problems with migration With our current process, migrating jobs involves repeatedly running migrate.py, finding a problem with a particular job not being translated for some reason, adjusting the translate_jobspec and prepare_issue functions to take account of the exceptional case, and running migrate.py again. Since migration starts with the first job each time, this procedure is potentially O(n^2) in the number of jobs. 5.3. WHAT WAS NEW IN RELEASE 1.3.0 CRITICAL job000385: Renumbered changelist causes P4DTI error and deletes fix If a changelist fixing a job is submitted at the same time as a replication of that job is taking place, a race condition may occur which causes the fix record to be deleted and an error message to be sent by email: job000411: Bugzilla integration depends on MySQLdb returning lists A user reported this error from the Bugzilla integration: ESSENTIAL job000022: No migration from Perforce jobs to defect tracker There's no way to migrate jobs from Perforce to the defect tracker. We used to have a script and instructions for doing this but it was so difficult to use and so prone to problems [GDR 2001-03-23] that we removed it from the AG. job000046: The replicator process is hard to manage The replicator process is hard to manage, especially on Windows NT, where one has to launch it using a non-trivial command line at a prompt. job000124: Changes by disabled Bugzilla users may be replicated Bugzilla has a mechanism for disabling users. We don't check this as part of checking user permissions. We should. job000145: Deleted TeamTrack states appear in Perforce jobspec If you delete an issue state in TeamTrack, it still appears among the values for the State field in the Perforce jobspec. Similarly for deleted options for a selection field like Priority or Severity. job000306: Bugzilla integration holds locks after errors The Bugzilla integration locks some Bugzilla tables during each replicator poll. If there is an error during the poll, the tables will remain locked until the next poll begins. This may be a long time if the replicator is failing and backing off exponentially. While the tables are locked, Bugzilla is unusable. job000376: In TeamTrack integration, P4Win crashes if you try to create a job If you try to create a job in P4Win when you're using the P4DTI jobspec, then P4Win crashes with the error message "integer division by zero". job000382: "[Errno 5] Input/output error" from Bugzilla integration logger Two separate users running the Bugzilla integration have encountered an "Input/output error" when writing to the log. job000387: TeamTrack 5.0 integration doesn't provide good error messages The TeamTrack 5.0 API introduced a number of new error codes, all of which are reported as "(unknown error)" by the P4DTI. job000398: May get conflicts after running the refresh script If you run the refresh script when there are still outstanding changes to replicate from the defect tracker, then when you start the replicator again after the refresh, you get conflicts. job000399: Some issue titles can't be replicated A customer found that the replicator couldn't replicate a particular issue from TeamTrack to Perforce, because the Perforce server could not update the job. Perforce claims that a required field is missing but in fact the field is present. job000405: Configuration section in AG needs improvement The configuration section in the AG (section 5.1) is hard to understand or hard to make use of in places. job000410: Can't confirm an unconfirmed Bugzilla bug from Perforce Trying to change a Bugzilla bug from UNCONFIRMED to another state by changing the status of the corresponding Perforce job causes the following error: job000416: Fixed-point numbers treated as floating-point in TeamTrack integration The TeamTrack integration treats all double-precision numeric fields as floating-point. That means that if you are using a fixed-point field to represent a release number like 16.1 then it will come out in Perforce as 16.100000000000001. OPTIONAL job000036: New jobs in Perforce don't get replicated to the defect tracker New jobs in Perforce don't get replicated to the defect tracker. job000211: Mail can get lost If the replicator tries to send e-mail and fails (typically because of a problem with the SMTP server), then it just drops the mail. The contents are therefore lost. job000317: Error message is unhelpful when you're using an unsupported version of the MySQLdb module If you have an unsupported version of the MySQLdb module (that is, before MySQLdb 0.2.2), then you get an error message like this: job000388: Error reporting is poor if you choose not to receive e-mail If you choose not to receive e-mail (by setting smtp_server to None in config.py) then the Python backtrace is not recorded when an error occurs (the log only records the error itself). job000403: Instructions on how to select issues to replicate are inadequate The AG has an entry for the replicate_p configuration parameter [1], but there's quite a lot more you need to know before you can actually write such a thing. NICE job000404: No startup message if you don't receive e-mail If you turn off e-mail by setting smtp_server or administrator_address to None then the replicator starts without printing anything. This is disconcerting to people who are used to it printing a startup message: it looks as though something's gone wrong. 5.4. WHAT WAS NEW IN RELEASE 1.2.1 CRITICAL job000407: Bugzilla config.py not properly truncated The config.py in the Bugzilla integration has a bogus last line, copying a portion of the line before. 5.5. WHAT WAS NEW IN RELEASE 1.2.0 CRITICAL job000390: P4DTI doesn't support Bugzilla 2.14 Bugzilla 2.14 was released on 2001-08-29. The P4DTI doesn't support it. job000406: MySQL integrity error when you create a new bug in Bugzilla and update it quickly If you create a new bug in Bugzilla and update it quickly, then sometimes you get an integrity error from MySQL. ESSENTIAL job000134: The replicator log grows without limit The replicator log just keeps on growing. job000137: Documentation doesn't explain why fixes don't get undone with other changes A user can add a fix for a job that they don't have permission to transition or update. The job status gets set back to how it was, but the fix record remains. The documentation doesn't explain why this happens. job000149: We don't use system logging facilities on Windows On Windows, we don't use the Windows Event Log; instead we log to a file. We should use the Event Log. Managing applications which don't is irritating. job000252: Support can't detect tampering with P4DTI source Perforce support would like a way to tell whether the person they're talking to has modified the P4DTI code in some way to make it different from the official distribution. job000262: Bugzilla: Can't use Perforce to confirm an unconfirmed bug An unconfirmed Bugzilla bug can not be confirmed from Perforce. That is, a bug status "UNCONFIRMED" can not be changed by editing the corresponding Perforce job. Attempting to confirm a bug will cause a replication failure, with a message like "Given 1 when expecting a string". job000308: No error or warning when user mapping isn't one to one If two defect tracker users have the same e-mail address, the replicator can map them to the same Perforce user. This has several bad consequences: the owner of an issue (or any other user field) can change when it is replicated; or the replicator tries to update an issue on behalf of the wrong user. job000359: Startup e-mail is misleading in TeamTrack integration The startup e-mail is misleading since it only reports on the matching generated by one half of the matching algorithm: that is, it reports on users who match by e-mail, but omits to report on those who match by userid. This is fine in Bugzilla, where your id is your e-mail address, but misleading in TeamTrack. job000371: You can edit other people's comments in journal fields in TeamTrack 5.0 TeamTrack 5.0 adds a new kind of text field, the "journal" field. This field is appended to rather than edited. Each comment gets user, date and time. The P4DTI has no special support for journal fields, so journal fields are treated as any other text field. This means that (1) you can use the P4DTI to edit other people's comments when this would be impossible in TeamTrack, and (2) comments added in Perforce don't get a header with the user, date and time. job000378: Hard to work out which TeamTrack field types are supported It's difficult to work out which TeamTrack field types are supported. The information is in the troubleshooting section of the Administrator's Guide, and that in turn refers you to the source code (configure_teamtrack.py). There should be a table of supported field types. job000383: AG needs better description of TeamTrack workflows that don't work with the P4DTI Administrator's Guide, section 3.3.2, item 6 describes TeamTrack workflows that don't work with the P4DTI. This description needs improving. job000392: Mysterious failure if you turn off "accept info from browser" in TeamTrack If you've turned off the "Accept Info From Browser/Header" setting in TeamTrack then the replicator will fail to connect to the TeamTrack server. job000393: If you specify the wrong Bugzilla version, P4DTI carries on anyway If you specify an incorrect value for the bugzilla_version configuration parameter, the P4DTI carries on trying to replicate, but fails. job000396: Bugzilla 2.14 integration doesn't send notification e-mails If you're running the P4DTI with Bugzilla 2.14, then notification e-mails aren't properly sent when a change is replicated from Perforce. OPTIONAL job000114: There's no description of the limitations of the integration People thinking of installing the integration need to know what its limitations are. There needs to be a "will this work for your organization?" document. job000125: Bugzilla version not checked We don't check the Bugzilla version (which should be 2.10 for the integration to work). job000162: Replicator needs restarting when you add new users to Perforce or TeamTrack When you add a new user to Perforce or TeamTrack or change a user's e-mail address, you have to restart the replicator. job000274: It's hard to run the unit tests on an installed P4DTI It's hard to make the unit tests run on an installed P4DTI. You have to edit the file test_p4dti.py and change the line starting "sys.path.append" so that it imports modules from the P4DTI installation directory. job000275: Unit tests only support one configuration per platform If you want to try the test_p4dti.py unit tests on a new configuration, I have to edit or replace config_.py. But it would be very useful to be able to try out the unit tests on several configurations. job000316: User mismatch not documented The documentation does not describe what happens when the set of users in Perforce does not correspond to the set of users in the dt. job000360: Bugzilla configuration starts with dt_name="TeamTrack" When you install the Bugzilla integration, the configuration starts with the setting dt_name="TeamTrack" and you have to change this. It would be better if the Bugzilla integration came with the correct setting for this parameter. job000394: Bugzilla tests don't work unless database is called "bugs" The Bugzilla automated test cases assume that the Bugzilla database is called "bugs" and the Bugzilla user is "bugs". They don't work if the values are different. NICE job000203: Users can masquerade as other users Because users are matched by e-mail address between the defect tracker and Perforce, you can fool the replicator by running "p4 user" and editing your email address. job000384: P4DTI will stop working in Python 3.0 In Python 3.0, the meaning of the division operator will change [1]. This will cause the P4DTI to stop working. 5.6. WHAT WAS NEW IN RELEASE 1.1.6 CRITICAL job000381: P4DTI corrupts date/time fields in TeamTrack if daylight savings time is in effect The P4DTI corrupts date/time fields for which daylight savings time is in effect -- on every poll each such date/time field gets advanced by one hour. 5.7. WHAT WAS NEW IN RELEASE 1.1.5 CRITICAL job000379: P4DTI corrupts date/time fields in TeamTrack if server time zone is not UTC The P4DTI corrupts date/time fields -- on every poll each date/time field gets advanced by the difference between the time zone on the machine running the replicator and UTC. ESSENTIAL job000377: Can't use Perforce 2000.2 client with Perforce 2001.1 server If you try to run the P4DTI using a Perforce 2000.2 client but a Perforce 2001.1 server, then the P4DTI stops with an error from Perforce. 5.8. WHAT WAS NEW IN RELEASE 1.1.4 CRITICAL job000335: Can't update cases in a TeamTrack 5.0 database The P4DTI stops with an error if it attempts to read certain records in a TeamTrack 5.0 database that has been converted from a TeamTrack 4.5 database. job000362: Can't update cases from Perforce in TeamTrack 5.0 If you run the TeamTrack integration with a database that you created in TeamTrack 4.5 and upgraded to TeamTrack 5.0, then you can't update cases in Perforce. job000363: TeamTrack integration replicates issues needlessly When you update an issue in TeamTrack, the replicator replicates that issue and a number of related issues, needlessly. job000370: Journal fields in TeamTrack 5.0 can't be replicated If you have a "journal" text field in TeamTrack 5.0, then when you submit an issue with such a field, the P4DTI refuses to replicate it, stopping with an error from Perforce complaining about a "Syntax error" in the job form at the line containing the text from the journal field. job000375: Whitespace lines in Bugzilla descriptions can break replicator The Perforce server does not preserve lines in job text fields which only contain whitespace. It replaces them with empty lines. If those lines have come from a Bugzilla longdesc record, this will then break the replicator (because the replicator will try to replicate the job back to Bugzilla, the empty line will show up as different to the whitespace-only line, and the "append-only" restriction will kick in. The job will be overwritten by the job but this will not fix the problem, so it will happen again on the next poll. ESSENTIAL job000361: AG comes out in fixed-width font The majority of the Administrator's Guide is in a fixed-width font. job000364: Bugzilla bugs with empty descriptions can't be replicated If one creates a Bugzilla bug with an empty Description field, the replicator replicates it to Perforce correctly but then is unable to replicate it back to Bugzilla. It produces the following error message: job000372: Check consistency stops with error if there are unreplicated jobs Checking the consistency fails with a Python error ("No such variable: issues") if there are jobs that should be replicated but are not 5.9. WHAT WAS NEW IN RELEASE 1.1.3 CRITICAL job000357: Release notes don't say we support TeamTrack 5.0 The release notes for 1.1.2 don't say we support TeamTrack 5.0. job000358: P4DTI doesn't work with TeamTrack 5.0 The P4DTI refuses to start up with TeamTrack 5.0. It stops immediately with an error. OPTIONAL job000269: AG doesn't explain how to delete P4DTI registry keys Since 1.0.1, the P4DTI installs registry keys using a ".reg" file. AG 10 tells people to delete the keys, but they can't, because they don't know which ones any more. job000286: AG doesn't state what systems each integration supports The AG doesn't say that the TeamTrack integration will only run on Windows (because it needs to use the TeamTrack API) and the Bugzilla integration may not run on Windows (because it needs MySQLdb; I'm not sure whether this runs on Windows and certainly the P4DTI hasn't been tested there). 5.10. WHAT WAS NEW IN RELEASE 1.1.2 CRITICAL job000277: Consistency checker and refresh script don't work with larger TeamTrack databases If a TeamTrack database has several hundred issues in it, you can't run the consistency checker or refresh scripts. The P4DTI hangs for several minutes, then stops with an error from the server. job000325: Can't read issues from TeamTrack 5.0 The P4DTI can't read records from the ISSUES, FIELDS and PROBLEMS tables in TeamTrack 5.0 (build 5024c). job000326: Can't update cases in a TeamTrack database upgraded from 4.5 to 5.0 The P4DTI crashes with an access violation if it attempts to read certain records in a TeamTrack 5.0 database that has been converted from a TeamTrack 4.5 database. job000328: Queries with plus or percent signs don't work in TeamTrack 5.0 The P4DTI can't send SQL queries including plus signs or percent signs: these appear to get URL-encoded before being sent to the database and the resulting SQL query can't be executed because it now contains syntax errors. job000334: Intermittent socket errors from TeamTrack 5.0 when using a database upgraded from TeamTrack 4.5 When using a database created in TeamTrack 4.5 and upgraded to TeamTrack 5.0, there are socket failures. The P4DTI hangs for a minute or so, then gets a socket error from the TeamShare API. The failures are intermittent: a test may succeed several times, then fail. job000338: TeamTrack 5.0 doesn't update P4DTI_ fields When running the P4DTI on a database newly created in TeamTrack 5.0, the P4DTI doesn't correctly record that an issue is being replicated. job000345: New Bugzilla bugs don't get replicated for some users Several Bugzilla 2.12 users have reported to Perforce support that newly created Bugzilla bugs don't get replicated to Perforce, and that they need to touch new bugs to get the replicator to see them. job000354: MySQL bug stops replicator from seeing some Bugzilla changes The replicator may fail to notice some changes to Bugzilla bugs. In particular, the addition of a comment to a Bugzilla bug. This occurs with some versions of MySQL (e.g. 3.23.37) but not others (e.g. 3.22.32). job000355: Bugzilla integration ignores start_date parameter When you start the replicator for the first time, it doesn't replicate anything. It's supposed to replicate all changes since the start_date. job000356: Upgrading Bugzilla integration causes replications to fail If you upgrade your Bugzilla integration, updates to bugs in Bugzilla are no longer replicated. Also, the consistency checker will complain about all the issues. ESSENTIAL job000054: There are few reports There are no reports to help with analysis of the information gathered by the integration. This is a big reason for having the integration in the first place. (See requirement 5, requirement 60.) job000077: UG contains no version or release related documentation There's no user documentation explaining how to find issues that are open or fixed in a version or a release (and vice versa). job000128: Can't replicate fix to deleted changelist The replicator can't replicate a fix to a deleted changelist, and this gets it into a right tangle: it can't continue replicating. job000148: Replicator is slow due to reading auxiliary tables many times The replicator may read auxiliary tables in the defect tracker (like the TeamTrack USERS table) many times in the course of replicating a single job or issue. This slows replication down and increases the possibility of conflicts. job000228: UG text is somewhat specific to TeamTrack The text of the UG is somewhat specific to the TeamTrack integration. For instance, section 4 suggests filtering jobs on the "Owner" field, which is not present with a Bugzilla integration (it's called "Assigned_To" instead). job000253: Can't "add fix" to submitted changelist except to "closed" in P4Win There is no P4Win GUI equivalent to "p4 fix -s" for a submitted changelist. In other words, no gesture which allows you to add a fix with a keyword other than "closed" to a submitted changelist. job000265: AG doesn't say to stop the replicator using the startup script The replicator can be stopped using the startup script installed on a Linux machine. In fact, the AG in section 5.5 says to "bring it to the foreground" which might be impossible. It should say to run "/etc/rc.d/init.d/p4dti stop" on Linux. job000268: Screenshots in UG are out of date with respect to TeamTrack The UG contains screenshots from beta versions of TeamTrack 4.5 which show the old layout of the fixes table. They don't resemble the layout from TeamTrack 4.5 (build 4509) nor TeamTrack 5.0 very much, although they contain the same information. job000271: The migrate script loses fixes If you follow the migration procedure in section 6.2 of the Administrator's Guide, then you lose all the fixes in Perforce. job000278: Migrating jobs to TeamTrack fails if there are many jobs If you have hundreds of jobs then you can't migrate them to TeamTrack because the TeamShare API runs out of memory and hangs. job000296: Release build procedure can generate incorrect list of fixed issues The release build procedure instructs the developer to generate the list of issues fixed in a release using the known_issues.py script, but the logic of the script is incorrect, for example it won't work for finding the jobs fixed in release 1.1.0. job000299: Many links in the Integration Kit don't work Many links in the Integration Kit don't work when the kit is installed locally. Some links are relative to the Ravenbrook server root. Some links point to files that aren't delivered in the kit. Some links point to directories rather than the index to those directories. job000301: Manuals refer to info.ravenbrook.com, which is inaccessible to the world The manuals contain some links to Ravenbrook's internal web server info.ravenbrook.com, which isn't available to the world at large. They should always link to www.ravenbrook.com. job000303: Incorrect message catalog use generates obscure errors Minor errors in the use of the message catalog can obscure the real error being hidden. This can cause a great deal of trouble in tracking down the problem. job000304: If replication fails, reverting may also fail If the replicator fails to replicate changes from a P4 job to a DT issue, it tries to revert the P4 job with the DT issue (and sends an error email). Under some circumstances, this attempt to revert the P4 job may also fail, due to a failure to log the replication failure correctly. This bug is rather hard to diagnose because the resulting emailed error message is reporting two (actually three, see job000303) nested errors. job000310: TeamTrack 5.0 is not supported The P4DTI doesn't support TeamTrack 5.0. This means that P4DTI customers won't be able to upgrade their TeamTrack server when TeamShare release TeamTrack 5. job000311: If you have two TeamTrack projects with the same name, the replicator stops working If you have two projects in TeamTrack with the same name, then the replicator refuses to replicate. job000312: P4DTI doesn't support Bugzilla 2.12 Bugzilla 2.12 just shipped (2001-04-27). We haven't tested against it, so don't support it. job000313: If you spell a job with the wrong case when making a fix, the replicator can't replicate it Suppose you have a job in Perforce called "BUG12345" and you fix it with a command like "p4 fix -c 54321 bug12345" (note the lowercase jobname). The replicator can't replicate this fix. job000315: Upgrading P4DTI may make Bugzilla integration fail A user upgraded the Bugzilla integration from P4DTI release 1.0.5 to P4DTI release 1.1.1 and the new P4DTI failed to start, with the following message: job000336: Unhelpful error message if MySQLdb not installed correctly If MySQLdb is not installed correctly, or not installed at all, then the P4DTI produces a most unhelpful error messages, claiming not to support Bugzilla. job000340: Consistency checker may miss some issues if you change the start date If an issue is being replicated, but hasn't changed since the start_date, then the consistency checker will claim to find an inconsistency. This can happen if you move the start_date forward in time and possibly in other ways. job000347: Upgrading to a new release of the P4DTI is awkward and error-prone To upgrade to a new release of the P4DTI, you need to copy configuration parameters from your old configuration file to the new one. You can't just substitute your old configuration file into the new release because there may be new configuration items (in release 1.1.2, "teamtrack_version") which it is essential to provide. This is an awkward and error-prone procedure. job000351: Bugzilla integration doesn't remove old configuration items The Bugzilla integration keeps mutual configuration for Bugzilla and the P4DTI in a table in the Bugzilla database called p4dti_config. It checks the contents of this table each time the replicator starts, and updates it if necessary. However, it only ever adds or updates rows in this table; it will not delete rows. Sometimes (e.g. when changelist_url or the new job_url change to None) it should delete rows. OPTIONAL job000267: Consistency check may complain about Bugzilla bugs which are OK If one touches an old Bugzilla bug (one which has not been changed since the start_date), using the 'commit' button in the Bugzilla GUI, the replicator starts replicating it. If that bug is then changed from Perforce but not from Bugzilla, the consistency checker check.py will complain that there is no such issue (e.g. "Job 'bug5' is marked as being replicated to issue '5' but that issue either doesn't exist or is not being replicated by this replicator."). job000281: Lists of jobs fixed in release notes is incomplete Quite often we discover that we've fixed a defect with an earlier change, and add a fix record to Perforce. This increases the list of things that we claim to have fixed in earlier releases. We should, therefore, regenerate all the release notes every time we release, rather than just prepending to the list. job000293: AG doesn't discuss operating stand-alone It is possible to run the P4DTI on a machine not connected to a network. For instance, to demonstrate the integration on a laptop. However, in order to do so the P4DTI must be configured to not send any email. The AG should discuss this. job000297: Wrong version in manuals The manuals claim to be for version 1.0, when they're for version 1.1 now. job000321: TeamTrack server fails when memory is low. When the P4DTI fetches a lot of data from the TeamTrack server, eventually the P4DTI pauses for several minutes, and then reports an error from the TeamShare API. job000329: Risk of losing configuration when upgrading the P4DTI When upgrading to a new version of the P4DTI it's easy to accidentally delete your configuration. You have to carefully follow the instructions, which we know doesn't always happen. job000331: Integration Kit document links don't work when you download it The Integration Kit contains many documents: manuals, design documents, build procedures, and so on. These contain links to each other, but the links are designed to work on Ravenbrook's web sites. The links don't work if you download the kit. job000337: Replicator fails to pair up users if their e-mail addresses differ only in case The P4DTI looks for matching email addresses in Perforce and defect tracker user records. It does this matching in a case sensitive manner. It should be case insensitive. job000342: User's Guide has incorrect link to P4SAG In the User's Guide, section 2, the link with anchor text "Perforce Defect Tracking Integration Administrator's Guide" points to mistakenly. job000344: Bugzilla fixes table not sorted by changelist The fixes table visible in Bugzilla (when patched for P4DTI) is not sorted by changelist number. If you have a lot of fixes for a bug, this will be confusing. job000349: No way to link to job web page from defect tracker We have changelist_url to link to changelist web pages from the defect tracker. This feature is highly praised by users. We should have job_url to link to job web pages as well. NICE job000179: Teamtrack.dll can get lost An inexperienced Windows user who copies the P4DTI files from the unpack directory to another one might end up without teamtrack.dll (since DLLs are hidden by Windows tools like Windows Explorer by default). job000319: Screenshots in AG are out of date with respect to TeamTrack 5.0 The AG contains screenshots of dialogs from the TeamTrack Administrator from TeamTrack 4.5. These dialogs look different with TeamTrack 5. job000330: Integrator's Guide doesn't describe the kit or how to build and test it The Integrator's Guide doesn't describe the Integration Kit. It doesn't say what files are in the kit, how they are organized, how to build the P4DTI, or to test it. 5.11. WHAT WAS NEW IN RELEASE 1.1.1 CRITICAL job000291: New Bugzilla integration messages can't be looked up in the AG Some error messages recently added to the Bugzilla integration can't be looked up in the AG because they don't have message numbers. job000292: Message objects break syslog on Linux We have new message objects and catalogs. These don't work for the syslog on Linux because the syslog library function is expecting strings, not message objects. job000295: Unmatched Bugzilla users break replicator at startup When the replicator starts, it sends an email to the administrator containing tables of Perforce users who do not have corresponding defect tracker accounts and defect tracker users who do not have corresponding Perforce accounts. The code which formats these tables has changed in such a way that it breaks for Bugzilla users. 5.12. WHAT WAS NEW IN RELEASE 1.1.0 CRITICAL job000283: Bugzilla integration may fail on startup on a fast server If a Bugzilla replicator starts up in under a second, it can fail due to a MySQL consistency check (because we have two identical entries in a "unique" index). job000284: No build procedure for the Integration Kit There's no build procedure describing how to create a downloadable, installable Integration Kit. job000287: The P4DTI doesn't include an integration kit The P4DTI does not include an integration kit to enable third parties to develop new integrations. ESSENTIAL job000065: Not enough logging control There's only one level of logging at the moment. This makes it difficult to get detailed information from a user when analyzing a bug or a support request. job000285: No introduction or roadmap to the Integration Kit There's no general introductory text for the Integration Kit, explaining where to find things, how to develop, how to run tests, etc. job000288: Can't upgrade Bugzilla integration cleanly If the P4DTI changes in such a way that the Bugzilla P4DTI database schema is changed, then existing users upgrading to the new P4DTI will have problems because of the changed schema. job000290: The release build procedure's instructions on submission can't be followed The release build procedure contains instructions not to submit or to submit to Perforce at various stages. Because each product is built on a different platform (under a different Perforce client) these instructions can't be followed. OPTIONAL job000030: Users can't get help based on messages The P4DTI produces a lot of messages. It would be good to allow users to follow some sort of link from these to more information and experience. job000066: We don't explain which jobspecs won't work "p4 -G job -o" applies much more stringent tests than "p4 job -o". It won't even give you a form unless all the values are correct. This means that tricks like ones in Perforce's jobspec, where an illegal value like "setme" is specified as the default value for a select field, can't be used with the integration. job000151: Source code documentation is inadequate The documentation in comments in the source code is generally inadequate. Each source code file should conform to the general rules. There needs to be more cross-referencing to design documents. job000240: Perforce server can crash if P4DTI is started with existing jobs The Perforce server can crash if the P4DTI is started for the first time when there are existing jobs. NICE job000078: Replication failure can cause hard-to-recover database records when using advanced configuration If you have used advanced configuration to establish a conflict resolution policy other than "defect tracker wins", and if the initial replication goes wrong (e.g. fails to create a Perforce job because the server is down) then the DT issue is marked with P4DTI action "wait" but there's no corresponding job to set to "keep" in order to overwrite it. You can't fix the problem without going into the database directly using SQL or our own Python interface. 5.13. WHAT WAS NEW IN RELEASE 1.0.6 CRITICAL job000270: Can't fix job owned by user (None) in the TeamTrack integration If an issue has no owner in TeamTrack (and therefore the owner of the corresponding job is (None) in Perforce) then you can't transition the job by fixing it. The replicator is unable to replicate the change to the job and it overwrites the job with the issue. 5.14. WHAT WAS NEW IN RELEASE 1.0.5 CRITICAL job000261: Bugzilla patch and text files are missing from the RPM installation The RPM for Linux doesn't include the Bugzilla patch file, readme.txt, release-notes.txt, or license.txt files. The Bugzilla patch file is critical, as Bugzilla integration won't work without it. ESSENTIAL job000263: Bugzilla: P4DTI doesn't restart on reboot A P4DTI installed on Linux using the P4DTI RPM will not automatically restart when the system is rebooted. 5.15. WHAT WAS NEW IN RELEASE 1.0.4 ESSENTIAL job000254: AG claims TeamShare support provide licences The AG tells people to contact TeamShare support to get a TeamTrack licence for the replicator. In fact, they should contact their TeamShare sales representative, as it's sales who issue licences. OPTIONAL job000257: AG uses wrong words when talking about Perforce licences and support AG section 3.2.1 says: "A daemon license is a license for an automatic process, rather than a person. Perforce provides daemon licenses free of charge; contact Perforce technical support to get one." To be consistent with Perforce terminology, the phrase 'daemon license' should be replaced with 'background user license'. 'Contact Perforce technical support' should be replaced with 'Contact Perforce Customer Service.' 5.16. WHAT WAS NEW IN RELEASE 1.0.3 ESSENTIAL job000243: The p4 client is not on path when running from RPM install When running the P4DTI with the startup script from an RPM install (/etc/rc.d/init.d/p4dti start), p4 is not on the path so the P4DTI fails (because the distributed config.py has p4_client_executable just set to "p4"). job000251: Known issues included in release notes Perforce ask that the list of known issues is not included in the release notes for the software. 5.17. WHAT WAS NEW IN RELEASE 1.0.2 CRITICAL job000200: No supported TeamTrack release works with integration There's no officially supported TeamTrack release that works with the integration. job000234: Jobs from Bugzilla get wrong name A job replicated from a new Bugzilla bug gets the bug number N as the job name instead of "bugN". job000235: New Bugzilla bugs may cause conflict email If a Bugzilla bug is created or changed in the same second as the start of a replicator poll, it may be replicated on two consecutive polls. This will cause a conflict email to be sent on the second poll. job000236: Bugzilla table grows without bound The P4DTI keeps a table in the Bugzilla database called p4dti_replications which grows quite fast (hundreds of K per day). There is a function to delete redundant rows from this table (bugzilla.delete_complete_replications()) but it is never called. job000237: Bugzilla logger breaks on Windows The Bugzilla logger tries to log to the syslog. It can't manage that on Windows because there isn't one. job000238: Bugzilla integration doesn't work with old Python versions The Bugzilla integration fails on old Python versions such as 1.5. (We don't officially support these versions, but in this case the change is so small it is worth making.) job000241: Bugzilla integration doesn't work with MySQL version 3.22.32 A user running MySQL 3.22.32 on Linux couldn't run the P4DTI because the results of the 'describe' SQL command had a different number of columns from that on the development system (also MySQL 3.22.32!?). ESSENTIAL job000233: When you submit a new issue to TeamTrack it overwrites the issue When you submit a new issue in TeamTrack, then the replicator sets up that issue for replication and replicates it to Perforce. Then the next time it polls, it thinks that the issue and the corresponding job have changed, so it overwrites the jobs with the issue. OPTIONAL job000227: AG doesn't have Bugzilla error messages Section 11.2 of the AG lists and explains P4DTI error messages. Most of the error messages produced by the Bugzilla integration are not mentioned in this section. 5.18. WHAT WAS NEW IN RELEASE 1.0.1 CRITICAL job000027: There are outstanding defects that were found in release 0.3.0 See Evidence section for links to the complete reports. job000217: readme.txt has too much detail of fixed bugs It's good to identify fixed bugs in the readme.txt, but if we do so verbosely then even mildly impatient readers will never get to the 'known bugs' section, which is arguably much more important. job000218: readme.txt has a confusing date at the top The readme.txt file says "Richard Brooksby, Ravenbrook Limited, 2000-10-30", right at the top, because it conforms to our standard document style. This will be very confusing to users, and may well put people off in time (e.g. when it still says this in late 2002, and users download it and say "eeek, this hasn't been maintained for two years"). job000221: Refreshing Perforce jobs fails in Bugzilla integration Refreshing Perforce jobs doesn't work in the Bugzilla integration. ESSENTIAL job000135: Replicator makes no more progress if replication to Perforce fails If replication from the defect tracker to Perforce fails for whatever reason, the replicator gets into a loop where it keeps e-mailing the administrator. job000166: MySQLdb version 0.3.0 is untested We may fail with later MySQLdb versions, in particular 0.3.0 which I believe is gaining popularity. We haven't tested this. We should test and make any appropriate fixes. If there are serious incompatibilities, we should at least test the version (MySQLdb.__version__). job000174: No instructions on how to upgrade from the beta A small number of sites will be running a beta release like 0.4.2 or 0.5.1. When release 1.0.x comes out they will naturally want to upgrade. But the P4DTI doesn't have any instructions telling them how to do this. job000188: The TeamTrack integration fails with non-ASCII characters The tTrack integration does not cope with non-ASCII characters. For instance, "é" (character 0xe9). If this character is placed in a TeamTrack field, it gets into Perforce as "˙ffffffffffe9". job000191: Administrator can't easily find release when contacting support In the AG we tell the administrator to report which release of P4DTI they are using. But how do they find this out? The documentation isn't clear and the program doesn't report it. job000194: Perforce states include tSupport states as well as tTrack states tSupport and tTrack both have states. When replicating from tTrack, the jobspec status field includes tSupport states, which are not possible for tTrack cases. This is not ideal. job000195: Keyword translation is too conservative We translate keywords (items for Perforce job fields of type 'word') by using a hexadecimal escape %xx for characters other than [a-zA-Z0-9(),.?!-]. This is very conservative, and rules out a number of characters commonly used in defect trackers. job000215: The replicator can send out mail bombs The replicator can get stuck in a loop where it sends e-mail to the administrator every 10 seconds (or whatever the poll_period is). This is very unfriendly. job000219: Existing jobs in Perforce may become unusable when the jobspec is changed When the P4DTI starts up for the first time, it changes the jobspec without checking to see whether any jobs are present. These jobs may become unusable when the jobspec is changed. job000222: Deleting fix causes Bugzilla integration to crash A user tried out "p4 fix -d ...". The Bugzilla integration crashed. job000225: If you "p4 fix" when there's no closed state, the replicator can't replicate When you do "p4 fix -c CHANGE JOB" then Perforce sets the status of the job to "closed". If "closed" is not a legal status in Perforce then the replicator can't get at the job any more, so it fails to poll. job000229: The readme is too hard to use The readme.txt is too hard to use. The lists of fixed and open issues are too long; they should be in a file of their own (release-notes.txt). job000230: Messages from the replicator refer to non-existent sections of the manuals Messages from the replicator refer the reader to sections of the UG and AG. But sometimes these sections don't exist. OPTIONAL job000052: Likely problems not in troubleshooting section Some likely errors (login failure, run out of licenses) should be in the troubleshooting section of the AG. job000167: Released manuals should be on the website The released manuals are currently not available on the website (except by downloading and installing a release). This has several undesirable consequences. For instance, users browse the master or version manuals, which do not reflect the release which they have downloaded. Also it makes it impossible to give a URL into a released manual. job000208: TeamTrack integration doesn't provide a .reg file It's error prone to tell people to use regedit to set the "VC Integration" registry key. It would be better to provide a .reg file which people can double-click on to set the registry key. job000210: Bugzilla states/resolutions with spaces in them cause broken jobspec If the Bugzilla database schema is altered so that states and resolutions have spaces in them (this is legal in MySQL) then the replicator generates a broken jobspec. job000216: readme.txt mentions beta sites The readme.txt mentions particular beta sites (in the known issues section). Probably we should avoid this. job000223: Quote in change comment terminates display in TeamTrack A quote character (single or double) in a change comment terminates the display of that comment in the "Perforce fixes" table in TeamTrack. job000226: Newlines don't show up in change descriptions in TeamTrack Newlines in change descriptions don't show up in the "Perforce fixes" table. Instead, lines are placed adjacent to each other. job000232: Log and e-mail messages are confusing if jobname is different from the issue name Log messages and e-mail messages describe an issue using the name of the corresponding job. This is OK when they are the same (which is the usual case), but misleading when they are not (which could happen if you've migrated your jobs and kept the jobname). NICE job000171: AG should note broken MySQL versions MySQL 3.23.29-gamma and 3.23.29a-gamma are broken, in that they stop Bugzilla logins from working. We should note these in the Prerequisites section of the AG. 5.19. WHAT WAS NEW IN RELEASE 1.0.0 CRITICAL job000181: Assertion failure in translate_1_to_0 If an optional field in Perforce has no value, then a field translator may fail with an assertion error. job000190: Connection to TeamTrack hangs for several minutes When release 0.4.2 attempts to connect to TeamTrack 4407, it hangs for several minutes before connecting. job000205: Configuration is still too difficult The Administrator's Guide is too hard to use. Administrators are busy people and sometimes don't read all the documentation. ESSENTIAL job000006: TeamShare API error reporting is inadequate When TeamTrack refuses to update or transition an issue because a user doesn't have the privilege to do so, it raises an error but provides only an empty error message. The replicator can't provide any information to the user to explain why the operation failed. job000033: Incompatible with other TeamShare API programs The P4DTI is incompatible with other TeamShare API programs because changes made by other TeamShare API programs are not replicated. job000048: Consistency checking of the configuration is inadequate Consistency checking of the configuration needs to be much stronger, to catch problems so that they don't affect the replicator when it's in use. job000075: No automatic check of configuration How do you tell if the configuration is correct? There should be automatic checking of the configuration. job000082: AG has no training and documentation section The AG has no guidance on training and documentation for users. job000092: Long descriptions aren't replicated by Bugzilla integration In Bugzilla, bugs have short descriptions (called "Summary" in the web interface) and long descriptions. Each bug may have many long descriptions; they carry a timestamp and are displayed in date order. They also carry user names. job000093: Can't replicate other Bugzilla fields Bugzilla bugs have loads of fields. We only replicate a small number of them. We don't support the "replicated_fields" parameter in the Bugzilla configuration. job000103: Can't easily add to replicated_fields list The configurator doesn't cope if you change the replicated_fields. job000109: Can't get at Perforce information from TeamTrack TeamTrack lists associated changes for each issue, but you can't easily get at any more details without going to the Perforce interface. It's inconvenient, and not every TeamTrack user will even be licensed to go to the Perforce interface. job000112: Can't easily replicate by project It's hard to set the replicator to replicate only those issues in a particular project or group of projects. job000116: Bugzilla integration doesn't do enough checking The Bugzilla integration does hardly any checking, either of the configuration or of data encountered during replication. This is in contrast to the TeamTrack integration, which now does quite a lot of checking. job000117: Jobview and job filter confused in the UG The UG says that the list of jobs displayed in the GUI dialogs is affected by the users jobview. This isn't true. It's the job filter that's used. The jobview only affects the command line interface. job000122: Server failures aren't handled gracefully If the Perforce server or the defect tracker is down, the replicator produces unhelpful error messages and e-mails to the administrator. job000138: "Add Job Fix" always sends jobs to "closed" The "Add Job Fix" command in the Perforce Windows GUI always sends a job to status "closed". Users will want to link changes using other keywords. job000141: Can't add to replicated_fields list The P4DTI administrator can't add a new field to the replicated_fields list (except at the end of that list) because the new field will get a Perforce field number that was previously used by another field. So the data that was previously in that other field gets captured by the new field. job000155: Bugzilla integration doesn't send mail when bugs change through P4DTI Bugzilla sends email notifications when bugs change through normal Bugzilla use. But when bugs change through the P4DTI no notification is sent. job000156: Pending changelists aren't clearly indicated as such in Bugzilla You can't tell the difference in the P4DTI section of the Bugzilla bug form between a pending changelist and a submitted one. This means that you might mistakenly think that work has been done when in fact it is only pending and may later be reverted. job000157: Improper installation instructions on Linux The integration is distributed as a simple tarball on Linux and doesn't install anywhere in particular. The AG says to put it in the administrator's home directory for the moment, which isn't good enough. job000172: Replicating some fields can break Bugzilla Some fields can not be changed using the Bugzilla interface, or only changed in highly restricted ways. Now that these fields can be replicated into Perforce, we should restrict changing these fields in Perforce. job000173: Wrong Perforce server version causes installation to fail mysteriously If you have the wrong Perforce version (2000.1 or earlier) then installation will fail with a mysterious error message. It should instead say something like "Perforce release not supported; changelevel NNNNN required." job000178: AG doesn't give advice on making problem reports The AG doesn't give advice on how to get effective support for the P4DTI. Typically someone e-mails a section of their P4DTI log -- for example, the error message at the end. This is rarely enough information to track down the problem. job000180: The bugzilla_user parameter is confusing Many people find the bugzilla_user configuration parameter confusing. We should get rid of it and use the replicator_address parameter in its place. job000182: Elapsed time fields aren't replicated properly Date fields in TeamTrack have a "display type" which can be "Date only", "Date and time", "Time only" and "Elapsed time". The repicator copes well with the first two, but poorly with the second two (an elasped time of 10 hours in TeamTrack becomes a date of 1971/01/01 10:00:00 in Perforce). job000184: Bugzilla integration doesn't work if your database is not called 'bugs' If your Bugzilla database is not called 'bugs', then P4DTI tries to connect to 'bugs' anyway. So it doesn't work! job000185: The python 1.5.2 RPMs are not sufficient to build MySQLdb The Python 1.5.2 RPMs are no good for building the MySQLdb interface. In the AG we offer the Python 1.5.2 RPM. This is insufficient on its own to build the interface (because it doesn't have the header files). job000186: AG suggests python RPM which is insufficient MySQLdb can't be built using just the python RPM linked to from the AG. job000187: Bugzilla startup is slow due to creating tables twice The Bugzilla integration tries to create its own tables in the Bugzilla integration twice when the replicator starts. job000189: The replicated_fields parameter can't be changed without replicating all jobs In section 10 of the prepared manuals we tell people to run the refresh script if they change the replicated_fields parameter, but this forces all issues to be replicated, which they may not want. job000198: We don't check the bugzilla_directory configuration parameter The configuration parameter bugzilla_directory names a directory in which the P4DTI will find a script called 'processmail'. We do not currently check that this parameter names a directory, or that the directory it names contains a processmail script. If either of these things is false, the P4DTI will fail to invoke the processmail script and so fail to send e-mail. job000199: Auxiliary scripts send e-mail The auxiliary scripts, check.py and refresh_perforce.py, send e-mail to the administrator saying that the replicator is starting up. They shouldn't do this, because it's unnecessary and the message is not true. job000202: Errors from Perforce not reported well Some Perforce errors are reported only as "The Perforce client exited with error code %d. Is the server down or the server address incorrect?" This provides little help in tracking down the problem. job000204: Issue owned by non-existent Perforce user causes crash If the Perforce server is running without any spare licences, then when the replicator tries to overwrite a job whose owner is a user that doesn't exist in Perforce, then you get the error message "Can't create a new user - over licence quota". job000212: TeamTrack 4.5 not supported The TeamTrack integration can't record that issues have been replicated in TeamTrack 4.5. job000214: No way of controlling the poll period There's no easy way for the administrator to control the poll period. If 10 seconds gives performance problems then there should be a way of increasing the delay. OPTIONAL job000024: "\012" appears in fixes table in TeamTrack instead of newline Change descriptions in the "Perforce fixes" section of a TeamTrack case description display the octal escape "\012" as those four characters, rather than as a newline (ASCII 10). job000032: Deletion of fixes and filespecs in TeamTrack may cease to work in future releases Deletion of fixes and filespecs from the TeamTrack interface is correctly replicated to Perforce at present. But this depends on an undocumented feature of TeamTrack and so may cease to work when new releases of TeamTrack appear. job000084: No glossary in the UG There's no glossary in the user's guide. job000101: Different transitions for different issue types may confuse the replicator In TeamTrack, different issue types (bugs, enhancements, etc) may have different workflows: that is, certain transitions may be enabled for some issue types but not for others. The replicator doesn't take this into account and so may pick the wrong transition, which means that the transition may fail. It may happen that the replicator can't transition any issues for this reason. job000160: 'closed' doesn't map to 'RESOLVED' in the Bugzilla integration The 'closed' status for Perforce jobs is special: p4 fix without a -s flag will cause a transition to 'closed'. The natural status for this to translate to in Bugzilla is 'RESOLVED': engineers should make bugs RESOLVED when they resolve them. But currently 'closed' in Perforce translates to 'CLOSED' in Bugzilla: to move a bug to 'RESOLVED', Perforce users must do 'p4 fix -s resolved'. job000163: Jobspec fields are too small for Bugzilla The replicator makes a new Perforce jobspec. The "assigned_to" field has size 32. This must in fact be large enough to hold a Bugzilla login_name (from the "profiles" table in Bugzilla), which is varchar(255). job000165: Bugzilla configuration parameters are not checked We don't check the Bugzilla configuration parameters. For instance, we don't check that dbms_port is a number, or dbms_host is a string, or that bugzilla_user is an email address. job000169: Change numbers are links in TeamTrack even when no changelist URL has been specified If changelist_url is None in the configuration, then changelist numbers are still links in the table of fixes in TeamTrack, but they don't link to anywhere sensible. job000170: Replicator may be unable to send e-mail if the default replicator_address is unchanged The file config_bugzilla.py says replicator_address = 'p4dti-%s' % rid. Ravenbrook's SMTP server allows the replicator to send e-mail from this address, but not all SMTP servers allow this. job000193: Bugzilla integration fails if DateTime module is installed The Bugzilla integration breaks if the Python DateTime module is installed on the P4DTI server system. NICE job000161: Replicator appears to hang When the replicator starts up for the first time, it prints some log messages and then stops. This is disconcerting to the user, as you can't tell if it's hanging or waiting. job000168: Too easy to set dbms_port to a string It's easy to set the configuration parameter dbms_port to a string (e.g. '3306', 'localhost:3306', etc) rather than an int. Especially easy given that p4_port has to be a string. In release 0.5.1 it was especially unclear that this had to be an integer (config_bugzilla.py has it set to ????). config.py now has a sensible value here (i.e. 3306), but this requirement should be documented in the comment and in the AG, and tested in configure_bugzilla.py (see job000165). A. REFERENCES None. B. DOCUMENT HISTORY 2001-02-22 GDR Created using Perforce release notes as a model. 2001-02-23 GDR Updated for release 1.0.1. 2001-03-02 RB Added missing license. Transferred copyright to Perforce under their license. 2001-03-02 NB Updated for release 1.0.2. 2001-03-06 GDR Updated for release 1.0.3. 2001-03-19 RB Updated for release 1.0.4. 2001-03-21 NB Updated for release 1.0.5. 2001-03-25 RB Updated for release 1.0.6. 2001-03-26 RB Updated for version 1.1. 2001-03-28 RB Stated that P4DTI doesn't support TeamTrack Online. 2001-04-09 NB Updated for release 1.1.0. 2001-04-11 RB Updated for release 1.1.1. 2001-05-24 NB Updated for Bugzilla 2.12. 2001-06-28 GDR Added Perforce 2001.1 and Python versions to supported configurations. 2001-07-16 GDR Updated for release 1.1.2. 2001-07-17 GDR Split supported systems into two lists, one for TeamTrack and one for Bugzilla. 2001-07-19 GDR Updated for release 1.1.3. 2001-07-24 GDR The P4DTI doesn't support TeamTrack on a secure web server. 2001-08-02 GDR Updated for release 1.1.5. 2001-08-06 GDR Updated for release 1.1.6. 2001-09-03 NB Updated for Bugzilla 2.14. 2001-09-18 GDR Updated for release 1.2.0. 2001-09-19 GDR Updated for release 1.2.1. 2001-11-26 GDR Updated for release 1.3.0. 2001-11-27 GDR Updated for release 1.3.1. 2001-11-29 GDR Updated for release 1.3.2. 2001-12-03 GDR Updated for release 1.3.3. C. COPYRIGHT AND LICENCE This document is copyright (C) 2001 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/1.3/release-notes.txt#5 $