RELNOTES.txt #1

  • //
  • guest/
  • robert_cowham/
  • perforce/
  • API/
  • p4perl/
  • p4perl-2007.3/
  • RELNOTES.txt
  • View
  • Commits
  • Open Download .zip Download (7 KB)
			     Release Notes for
	     P4Perl, the Perl interface to the Perforce SCM System
			      GA Release 2007.3
			      April 08, 2008

Introduction

	This document lists all user-visible changes to P4Perl
	from release 2007.3, the first supported P4Perl release.

	Perforce numbers releases YYYY.R/CCCCC, e.g. 2002.1/30547.
	YYYY is the year; R is the release of that year; CCCCC is the
	bugfix change level.  Each bugfix in these release notes is
	marked by its change number.  Any build includes (1) all bugfixes
	of all previous releases and (2) all bugfixes of the current
	release up to the bugfix change level.

	To determine the version of your P4Perl, run the following
	command:
		perl -MP4 -e "print P4::Identify()"


Installing P4Perl

	Windows users can download an installer for P4Perl from the
	Perforce FTP site. Users on other platforms must build from
	source.

Building P4Perl from Source 

	1. Download a suitable Perforce API build from the Perforce FTP site
	2. Extract the API tarfile into an empty directory
	3. Run the following commands:

		perl Makefile.PL --apidir <path to Perforce API>

		make		(on Unix)
		nmake		(on Windows)

		make test	(on Unix)
		nmake test	(on Windows)


	   NOTE: The test harness requires that 'p4d' be installed and
		 in the PATH

	4. To install P4Perl, run the following command. On Unix systems,
	   this step should be run as root:

		make install	(on Unix)
		nmake install	(on Windows)

Compatibility Statements


1. Server Compatibility

    Unless stated otherwise you can intermix any release
    of P4Perl with any release of the Perforce server later than
    2001.1

2. API Compatibility

    The 2007.3 release of P4Perl supports the 2007.3 Perforce API. Older
    releases (down to 2006.2) may also work, but they are not supported.

3. Perl compatibility

    The 2007.3 release of P4Perl is compatible with Perl 5.8 when built
    from source. The build included in the Windows installer is compatible 
    with ActivePerl 5.8.8 build 822.

4. Platform compatibility

    While P4Perl is generally portable, this release is certified only on 
    the following platforms:

	Linux 
	Solaris
	Windows
	FreeBSD

5. Compiler Compatibility

    To build P4Perl from source, you MUST use a version of Perl that
    has been compiled with the same compiler used to build the Perforce C++ 
    API: for most platforms, this means gcc/g++.

    Attempting to use a different compiler or a different version 
    of the compiler will probably result in linker errors due to 
    differences in name handling between compilers. 

    On Windows platforms, Visual Studio 2003 must be used to compile 
    P4Perl.  

    Most Windows users will want to use the Windows Installer available
    from the Perforce website.

6. Compatibility with Previous Releases

    There are no previous releases of P4Perl from Perforce Software Inc.

7. Compatibility with P4Perl from the Public Depot

    Perforce P4Perl is significantly different from the P4Perl in 
    the Perforce Public Depot. There have been numerous improvments, 
    and several interface changes intended to make P4Perl consistent
    with the other scripting interfaces.

    Users migrating from Public Depot Perl will need to edit their scripts
    in order to ensure that they comply with the new interface. For 
    convenience, the differences are detailed below.

    Deleted Methods
    
	The following methods have been deleted from the P4 class and
	are no longer available:

	Dropped()		- Use IsConnected() 
	Final()			- Use Disconnect()
	Init()			- Use Connect() 
	IsParseForms()		- Form parsing is now always on
	MergeErrors()		- Errors and warnings are now separate
	ParseForms()		- Form parsing is now always on
	Tag()			- Tagged mode is on by default [see Tagged()]
	
    New Methods

	The following methods are new to Perforce P4Perl.

	GetApiLevel()		- Returns the API compatibility level
	P4ConfigFile()		- Returns the path of the P4CONFIG file
	IsConnected()		- Returns true if the client is connected
	Debug()			- Sets the debug level
	GetMaxResults()		- Returns the current maxresults limit
	GetMaxScanRows()	- Returns the current maxscanrows limit
	GetMaxLockTime()	- Returns the current maxlocktime limit
	SetMaxLockTime()	- Sets the current maxlocktime limit
	GetProg()		- Returns the name of the program (if set)
	ServerLevel()		- Returns the (numeric) level of the server
	GetTicketFile()		- Returns the path to the current ticket file
	SetTicketFile()		- Sets the path to the current ticket file
	GetVersion()		- Returns the version of the script
	SetVersion()		- Sets the version of the script

    Renamed Methods

	In Public Depot P4Perl, any method that was not known, was assumed
	to be a Perforce command and executed accordingly. Thus, one could
	run a 'p4 info' by calling:

		$p4->Info();

	This caused problems with nouns like 'client' which is both a command,
	and a setting in the client environment (P4CLIENT). To resolve
	this ambiguity, and to make P4Perl consistent with other Perforce
	scripting interfaces, this convention has been changed. In Perforce
	P4Perl, methods with names prefixed with 'Run' are taken to be
	Perforce commands, thus the example above becomes:

		$p4->RunInfo();

    Tagged Mode and Form Parsing

	In Public Depot P4Perl, tagged output and form parsing mode were off
	by default, but most scripts turned them on immediately. In Perforce
	P4Perl, both form parsing and tagged output are on by default. 

	Form parsing cannot be explicitly disabled, but tagged output may
	be turned on and off at will by using:

		$p4->Tagged( 0 );	# Disabled
		$p4->Tagged( 1 );	# Enabled

	Since form parsing does not work when tagged output is disabled,
	this method can be used to disable form parsing if necessary.

	Note that calling Tagged(), without a parameter is no longer
	valid. Most users can simply delete any old calls to Tagged() from
	their scripts as previously it was not possible to disable
	tagged output once enabled.

Key to symbols used in change notes below.

   * -- requires new P4Perl
  ** -- requires P4Perl built with new P4API
 *** -- requires new p4d server program

--------------------------------------------------------------------------------

Bugs Fixed since first release (2007.3/147242)

    #150578 *
	    The presence of deleted revisions in a file's history could lead
	    to the fileSize, and digest attributes being incorrect for other
	    revisions in the output of P4::RunFilelog(). This occurred because
	    a digest and filesize were allocated to the deleted revision. 
	    This problem has been corrected. (Bug #28760)

# Change User Description Committed
#1 7614 Robert Cowham P4Perl 2007.3