DevGuy PCTK Change Log

Build early and often

 

26 Jul 2004 10:24

Download
Cooktop
The free XML editor for Windows
Main

Programming Perl
Advanced Perl ProgrammingBeginning XML

Change History for the Programmers' Canvas Toolkit

We continue to change the scripts, sometimes on a daily basis.  Refinement is a constant albeit nonlinear process.  The toolkit will continue to evolve as long as it is in use.  Please send us your feature requests and bug reports.

See the install directions.  Read the License.

Go to the download area
Before installing a new version of the toolkit, copy globals.xml to a safe place, update the software, and move the saved copy of globals.xml back to its original location.  Nice diff/merge programs such as Araxis Merge can make merging globals.xml substantially easier.
Tip:  If you put globals.xml in a separate folder and point the devguy_globals environment variable to it, you won't have upgrade headaches with globals.xml later
If you need to refresh the web application, before installing the new version, copy c:\inetpub \wwwroot \builds \buildtypes.xml to a safe place, update the software, and move the saved copy of buildtypes.xml back to c:\inetpub \wwwroot \builds \buildtypes.xml.

The installation programs contained herein require Microsoft Installer 2.0.  The setup programs will install Microsoft Installer 2.0 if it is not present.  If Microsoft Installer 2.0 is not yet installed, Terminal Services must be in Remote administration mode rather than Application server mode.  Before installing anything it is advised that you create an Emergency Repair Disk.  Failure to heed all of this advice can result in a hosed machine that must be reformatted.  In no circumstances shall DevGuy be held liable for any damage to your machine made directly or indirectly by the installation programs.


Release Name: 1.9.0.10

Notes: Get the "Additional Library Directories" for Visual Studio .NET C++ projects (only directories listed with relative paths).

Release Name: 1.9.0.9

Notes: 1. Build robot (perl version only) supports UNIX and Linux 2. Fix bug for Microsoft Visual Studio C++ when include directory path contains double quotes

Release Name: 1.9.0.6

Notes:
From Ciprian Toader : Alter build number for .NET assemblies (only tested with C#)

Bug fix getting include directories for .NET clients:  remove leading spaces in"additional include dirs"

Release Name: 1.9.0.5

Notes: Several Build Robot enhancements:

1. Honor SMTPServerPort and NNTPServerPort in globals document
2. CVS errors are added to "links" section
3. New globals.xml location: the current directory
4. List of "misc" errors and warnings contain timestamp
5. "Buildmaster is incrementing" CVS commit messages now include the build name (BuildDescription in the BuildOptionsDoc).

Release Name: 1.9.0.3

Notes: Build robot bug fixes: invalid link to zip file and "can't coerce array into hash"

Release Name: 1.9.0.1

Notes: Old CVS notify scripts (dgloginfohtml, etc.) have been removed. Please use CvsNotify instead.

Build robot and packager bug fix when periods are in "packaged" file names - http://devguy.com/bb/viewtopic.php?p=586

Build robot bug fix - files not tagged using build stamp http://devguy.com/bb/viewtopic.php?p=573

Build robot bug fix - wrong build number http://devguy.com/bb/viewtopic.php?p=571

Build robot: Add $results{AppliedTags}

Release Name: 1.9.0.0

Notes: This is a beta release. Everything is stable except for possibly the CVS notify-related scripts (loginfohtml, taginfo, loginfohtmlemail, etc.)

1. Added new TempDir element in globals.xml (used by packager in particular)
2. Initial work for a single executable for CVS notification scripts
3. CVS notification scripts use new global.xml setting for maximum post size

See also here


Release Name: 1.8.2.18 (2004-03-10)

Notes: The build robot document allows the following new CVS-specific elements under <Source> and <Build>:

  • <CVSROOT> - sets the "-d" global option
  • <CVSGlobalOptions> - options before the CVS command name
  • <CVSOptions> - Options after the CVS command name

All of these support expression substitution.

Release Name: 1.8.2.15 (2004-01-21)

Notes: 1. Don't add ChangeLogInfoFile to the repository. It must exist when the build robot runs.
2. Add NoSubdirsForPath element to Build element which is used when getting module specified in Build's Path element from CVS
3. Add DisableCheckoutVerification element to Source element. Text containing "1" causes the build robot to avoid verifying that the specified file or directory is checked out. Useful when the Source element contains a CVS module name instead of a physical directory name.
4. Bug fix: When Dir was spedified in Source, the build robot failed to correctly locate the checked out files

Release Name: 1.8.2.16

Notes: 1. New dgkill.exe that works on windows xp
2. Expression substitution Build-Options-Doc (e.g., =$buildNumber) now works properly and memes like $buildNumber?$buildNumber:"" are no longer necessary

Release Name: 1.8.2.15

Notes: 1. Don't add ChangeLogInfoFile to the repository. It must exist when the build robot runs.
2. Add NoSubdirsForPath element to Build element which is used when getting module specified in Build's Path element from CVS
3. Add DisableCheckoutVerification element to Source element. Text containing "1" causes the build robot to avoid verifying that the specified file or directory is checked out. Useful when the Source element contains a CVS module name instead of a physical directory name.
4. Bug fix: When Dir was spedified in Source, the build robot failed to correctly locate the checked out files

Release Name: 1.8.2.14 (2004-01-16)

Notes: Fix for ViewCVS 0.92 in the HTML loginfo scripts (dgloginfohtml etc.)
CVSWeb (not ViewCVS) users must add <CVSWeb>1</CVSWeb> to their globals.XML file

Release Name: 1.8.2.13 (2004-01-13)

Notes: Fixed "bizarre copy of array" in ActiveState Perl debugger

Added dgnantfilter for filtering NANT output see here.

dgpackage.pl accepts the option -z, which internally is stored in $opt_z and then passed to $options{ZipFile}. The processing module package.pm looks for $options{Zip} as the name for the zipfile - and therefore isn't able to get the correct filename ...

Added CommitMessage to CVSWebSync XML format (dgpackage.xml)

Bug fix: build robot outputs "Attempt #2 of 1" in log

Bug fix for <Delete> in packager doc

Release Name: 1.8.2.11

Notes: Build Robot Fixes

Fix bugs in manifest generation, tagging, and changelog generation when files are checked out to grandchildren directories (or lower) of the root of the sandbox. It is possible to do this via <Path> elements inside <Source> elements.

Release Name: 1.8.2.9

Notes: Build robot changes:

  1. The message "unable to open file.. no such file or directory" that sometimes appeared on the command-line immediately after running dgbuild has been eliminated. It happened when a "last build stamp" file was not provided
  2. Fixes for Visual Studio .NET 2003 which are compatible with the previous version of VS.NET
  3. Don't send /useenv to devenv.exe
  4. Don't quote command-line parameters unless needed

Release Name: 1.8.2.7

This fixes a bug in the build robot for VS.NET C++ builds that caused some include directories to not be loaded from CVS. The problem occurred when semicolon instead of comma is used as a separator in the vcproj file (which apparently is the 'standard' separator).

Release Name: 1.8.2.6

Includes unannounced 1.8.2.3 release that has a fix (maybe) for VC++ 6.0 projects so that the "do you want to close all windows?" dialog box doesn't appear when the build robot (dgbuild) completes.

Fixed the HTML versions of the loginfo scripts (dgloginfohtml, dgloginfohtmlemail, dgloginfohtmlnntpemail) to support filenames that contain ampersands and commas. These types of files still do not work with the text versions of the loginfo scripts which are considered to be deprecated.

This requires a change to the loginfo file in the CVSROOT module. Surround %{sVv} with two double-quotes, as in:

DEFAULT dgloginfohtml ""%{sVv}"" "$USER"

Release Name: 1.8.2.2

In the packager, <BeginGroup> and <EndGroup> includes files that you copy rather than just zip/gzip files that are created.

Release Name: 1.8.2.1

Fix bug with ANT scripts -- errors were not reported

Release Name: 1.8.2.0

A new version of dgpctkexe.tar.gz. It is identical to the previous version but the version number of the MSI package has been changed to 1.8.2.

The differences between 1.8.0 and 1.8.2 are mainly bug fixes. Consult the 1.8.1 beta releases for more information.

Some XML configuration files, particularly for the Build Robot, Globals, and Packager have changed. For better predictability, 1.8.2 represents a break from the 1.8.1 and prior's handling of default values. 1.8.1 and earlier versions were inconsistent whether an empty element text was blank or contained the string "1". 1.8.2 no longer defaults any element text to "1". Please see here for more details.

The HTML versions of the CVS loginfo scripts have been altered to support web-based email readers. In addition, they support servers that have multiple CVS repositories. CVSWeb and ViewCVS can support multiple "roots". A root is specified to the CVSWeb/ViewCVS URL via the query string e.g., root=foo. In order to configure the loginfo scripts properly, you must create a CVSNotify-Doc document and specify a CVSWebURLQuery element.

Some day I will have enough time to update the XML documentation to reflect all the new features since 1.8.0


Release Name: 1.8.1.15

More fixes for packaging (via $t) vs.NET projects, particularly C# projects
The Source element in Package-Doc can now contain multiple FileSpec elements
The MetaConfiguration element in Configuration-Map-Doc can now contain multiple Target elements

Release Name: 1.8.1.13

Build Robot Fixes:

Fixes for VS.NET projects

While packaging, $(OutDir) needs to be resolved for C++ projects

Added support for C# projects (CSPROJ)

Release Name: 1.8.1.12

Added <Once> to <Package> which causes the package entry to be used only once when building multiple configurations.

Fixed CVS commit log generation when CVSNT 2.0 is installed.

Added special error handling for cases in which the web server is rebooted while a build is occurring. This situation causes error messages to be lost. Therefore, the error message is sent via email.

Bug fix in build robot packager invocation: Module elements under <Package> were ignored.

Added ability to specify the default compression when zipping files via the packager, which is a number between 0 and 9, where 0 is no compression
1. The build-options document can have a <DefaultZipCompression>
2. The <Package> element can have a <Compression> element
3. The <Package> element can have a <Store> element, which, if set to 1, causes no compression to be used

RepeatUntilSuccessful in Build-Doc is treated as a "repeat" rather than a "number of tries", which means that if you used "2" in a previous version, you need to use "1" instead, which means repeat once for a total number of 2 tries. This is part of the "do not default anything to 1" project.

Emails don't contain Configurations: or Sequence Configurations: if either list is blank

Bug fix: when a script generated a build error, the total number of build errors was not incremented properly.

Release Name: 1.8.1.10


Build Robot Changes
1. For VC++ projects, rename .plg output files to .htm files
2. Better support for = and $ expression substitution
3. Fix xml element 'bleeding' bugs, e.g., if a Source tag has a Tag element, the Tag element's text could bleed into the next Source element if it doesn't have a Tag child
4. Mucked around with the way source is checked out from CVS -- all major elements in the build XML document support Tag element which is used when retrieving files from CVS
5. Added ShouldReadBuildNumberFilesFromBranch to the build options document which allows the build robot to read and modify build number files in the branch specified in the build options document
6. The Ant output parser outputs 0 errors, 0 warnings
7. Added ShouldEmailChangeLog to build-options document, which causes the change log to be posted to newsgroup. SMTP email is not supported because the file could become gargantuan.
8. Defaulting the text of empty elements to "1" has been completely eliminated
9. A bunch of other little bug fixes and improvements

Release Name: 1.8.1.8

Build robot fixes:
Errors were erroneously trapped when tagging files
Don't update last build stamp file when tagging is turned off
Packager bug fixes when using $t etc.

Release Name: 1.8.1.7

Build robot changes:

  • Keep track of ignored errors
  • <Parameters> expression substitution fixes

Release Name: 1.8.0.9

Build robot fixes:
Don't update the last build tag file if logging has been turned off
Allow = expressions in <Parameters>

Release Name: 1.8.0.8

This release fixes NNTP notification for the build robot.

Release Name: 1.8.0.7

1. Save output of each CVS command to separate, persistent files
2. Write packager XML files to the manifest
3. More error handling when things go wrong early i.e. unable to create the build robot output log file

Release Name: 1.8.0.6

(1) The Filter tag in Build-Doc can now contain complete commands e.g.,
perl -S filterscriptname.pl
(2) If the filter fails to create bld.txt, the build robot considers this to be an error

Release Name: 1.8.0.5

+ Includes CVSNTUpd and source code
+ Fixes a bug where <Source>build</Source> doesn't retrieve anything if the Build-Doc XML file is located in the build module. From previous release notes, BuildModule in Build-Options-Doc no longer does anything except set the environment variable DEVGUY_BUILDDIR which is used by the Java makefiles.
+ Bug fixes in CVS notification scripts

Release Name: 1.8.0 RC4

More fixes for vs.net projects

Release Name: 1.8.0 RC3

Changes: Fixes for building vs.net SLN files
Support building vcproj (VS.NET C++) files directly in <Build>
More fixes for bogus CVSROOT case
Make sure package XML files and build stamp file get tagged
Build error accounting fix

Release Name: 1.8.0 RC1

Notification email is sent when CVSROOT is bogus


Release Name: 1.7.21 February 28 2003

I've found one significant difference between .zip and .tar.gz files.  It is not possible to add empty folders to .zip files.  Yet another reason for the new <Tar/> feature in <Package-Doc>!  Unfortunately though, WinZip still prunes empty directories in tar files :( ..

Build robot:

  1. Don't checkout "BuildModule" specified in the build-options document (defaults to "build").  If you want to check out a module, do so via <Source> elements.
  2. Bug fix for creating changelog
  3. Checkout package XML files
  4. Bug fixes for building VC++ projects (dsw/dsp)
  5. Bug fixes for building ANT projects
  6. More clean-up for output log file names
  7. Packager log file contains http:// references to log output files
  8. Build log file contains http:// reference to CVS output while processing checkin comments
  9. Checkin comments contain separate lines for date and author rather than being smashed on one line
  10. Bug fix:  LogFile in build-options was not being obeyed
  11. Output build number to build list XML file (builds.xml) ASAP -- previously didn't happen until all <Source> elements were processed
  12. Added <Version>, <Copyright>, and <Company> to build options document (optional)
  13. Added <Delete> and <DeleteSubdir> to <Source> in <Package-Doc>
  14. Bug fix:  if sandbox isn't specified, notifications are not sent

Release Name: 1.7.19 February 25 2003

  1. Web application's "build types" page uses stylesheet
  2. Bug fixes when <ProjectName> is specified in <Build>
  3. Bug fix for running "ant.bat" -- putting double-quotes around "ant" causes a Java "class not found" exception (go figure)
  4. Eliminated "missing files" functionality in the build robot.  When there are missing files, the packager throws an exception.  Missing file errors now appear in the "misc errors" file.
  5. Build robot output log file contains URLs to log files rather than raw filenames
  6. Some Ant output parsing fixes
  7. Executables are built with Perl 5.8.0
  8. Even more packager bug fixes

Release Name: 1.7.17 February 24 2003

1.7.16's executables didn't work because I upgraded to perl 5.8.0 and forgot to replace perl56.dll with perl58.dll.
+ BuildNumberFile in Build-Options-Doc is optional, as advertised
+ Added BuildNumber to Build-Options-Doc to optionally specify the build number if BuildNumberFile tags are absent
+ Many packager fixes and features

Release Name: 1.7.14 February 20 2003

1. Added examples folder, which is installed via pctkexe.msi. A separate tarball is available. The examples are lame but now at least there's a place to put them.
2. Added the license to pctkexe.msi
3. <FTP> and <PSCP> are working with the packager -- see here Now I can finally release files to SourceForge correctly without losing previous versions (I guess I'm an idiot but SF isn't terribly easy to use).
4. Added substantially more error checking in the packager
5. Cleaned up the default name of .zip files when packaging via the build robot
6. Added "zip in zip" feature in the packager -- see here . I have only tested .tar.gz so far.
7. The packager deletes CVS directories automatically
8. Many packager bug fixes, particularly with = and $ expression substitution. Please note that the % notation for environment variables has been removed. Use the new syntax =$ENV{name} instead. Note that <Filespec> uses noncompatible $ references like $t, which are still supported. Filespec only supports = expressions. Text in Filespec that starts with $ is interpreted using the old translation scheme.

Release Name: 1.7.13 February 19 2003

This is a beta release!

Here are the changes since the 1.6 release:
 
--- 1.7.13 ---
1. tar.gz works in packager
2. If packager fails, put link to packager output file in web application
--- 1.7.12 --- all experimental
-17. Added <PackageIf> in build-options-doc
-16. Added <Link> to build-options-doc for hard-coded links (supports $ and = expressions)
-15. Added <CheckExitCode> to <Build> element for scripts.  Nonzero exit code is considered to be an error.
--- 1.7.11 ---
-14. PCTKEXE installer and win32.tar.gz now include all needed unix-like commands (rm, make, tar, gzip)
-13. <Package> subelements in build-options-doc supports $ and = expressions
-12. New packager features (experimental):
   a) pscp (putty scp)
   b) ftp
   c) Support = and $ expressions
   d) tar.gz
--- 1.7.10 ---
-11. Added the build title to the subject line of build robot emails
-10. Added  to  for dgtaginfo.pl / .exe (taginfo notification) -- this allows you to avoid sending emails
or newgroups posts for particular users
-9. Fixed checkins log for repositories that use CVSNT repository prefixes
-8. Allow multiple CVS tags per build -- <Tag> in the build-options document has a multiplicity of 0 or more
-7. The build list web app page displays the build number (!)
-6. dgbuild.pl / exe output XML to STDOUT, so that the scripts can become part of a larger process
-5. Makefiles use JAVA_HOME if JAVABASEDIR is not specified
-4. Send the output of "net use" output in build log which lists all mapped drives
-3. In web app, output text "Warnings:" in orange when number of warnings is greater than 0
-2. Generate manifest after checking in the build number and "last build tag" file
-1. Build robot is now an object

This was done in order to pass information out of the build robot.  The information is in the 
object's data.  The object's data is a reference to a hash.  The values in the hash are output at the
bottom of the build output log.  The hash consists of regular scalar values, except for the key "Options"
which is a reference to another HASH.  This hash contains information from the build options XML file.

use cfgmgmt::BuildRobot;
$robot = new cfgmgmt::BuildRobot;
eval
{
$robot->Build( "options.xml" );
};

my $err = $@;

print $robot->{BuildNumber};
print $robot->{Options}->{WebPath};
print $robot->{Options}->{LogPath}; # the output directory

die $err if $err;

0. Fix "CVS Tag" in the left pane of the web app
1. If "todo.txt" is missing, link to blank.htm
2. Removed packager log links unless <LogPackage> is specified in build options
3. Fixed <IfNoErrors>
4. Output build options to build robot log
5. Output environment variables to build robot log
6. Output list of "subst" drives to build robot log
7. Added <LogFile> to <Build> tag which allows you to specify the name of the output file for 
script execution
8. Fixed javadoc generation in Java makefiles
9. Ignore all LNK warnings from vs.net
10. Changed manifest output for list of projects built
11. Added <ProjectName> in <Build> element
12. lastBuildStamp bug fix
13. Added <Param> to <Build> tag which contains one script parameter.  Multiple <Param> values 
can be provided.  Ignored if <Parameters> is specified.
14. The flags in the Build-Options-Doc required a value of "1" to turn on the option -- using 
empty element text caused the option to be disabled.
15. Output environment variables in the manifest
16. Output build options in the manifest
17. Added <BuildIf> tag to <Build> tag.  If the value is blank or 0, the Build tag is skipped.  
= and $ expressions are supported.
18. Added rm.exe to cygwin.tar.gz
19. Values starting with an equals sign are evaluated as Perl expressions.  This includes all values 
in Build-Options-Doc as well as <BuildIf>, <Parameters>, and <Param> in the Build-Doc.

Expressions in <Parameters> must not contain spaces but expressions in <Param> can.

If an expression evaluates to a blank value, it is not substituted.  So make sure to evaluate to 
some non-blank value.

The Build-Options-Doc is processed twice: during initialization before the build number is determined,
and after the build number is determined.  The first time around, some variables may be blank so you may
need to check them first using the expression eq ""

Execute a script and return the first line sent to STDOUT: 

=my @values = `dir`;$values[0]; 

Get an environment variable:
=$ENV{COMPUTERNAME} || "default"

Return 1 on Thursdays: 

<ShouldTag>=localtime->wday()==4</ShouldTag>

Specify a dynamic CVS tag:

<Tag>=$buildStamp eq "" ? "" : ("QA_" . $buildNumber)</Tag>

20. Values starting with $ are evaluated as a Perl variable references.  This includes all values in 
Build-Options-Doc as well as <BuildIf>, <Parameters>, and <Param> in the Build-Doc. 

Expressions in <Parameters> must not contain spaces but expressions in <Param> can.

If an expression evaluates to a blank value, it is not substituted.  So make sure to evaluate to
some non-blank value.

The Build-Options-Doc is processed twice: during initialization before the build number is
determined, and after the
build number is determined.  The first time around, some variables may be blank.

To hard-code a leading dollar-sign, use $$

---------------------------------------------------------------------------
Variables that can be used in = and $ expressions
---------------------------------------------------------------------------
To refer to an environment variable, use:
$ENV{name} e.g., $ENV{COMPUTERNAME}

To access values in the globals.xml file, use
$cfgmgmt::globals{name}
e.g, $cfgmgmt::globals{CSVEmailGroup}

These values are static:
$buildNumber
$buildStamp
$buildDate (YYYYMMDD)
$buildTime (HHMMSS)
$versionString
$copyrightYear
$companyName

The absolute path to the output directory is in 
$logFilePath

These values change each time a <Build> tag is processed:
$buildOrder
$configuration
$buildErrors  -- Total for all projects
$buildWarnings -- Total for all projects

The element text for the current <Build> element and its children are in $state which is a hash reference; e.g., 
$$state{Build} and $$state{Parameters}.  Expressions can therefore reference your own custom tags under <Build> 
via $$state{CustomTagName}.

The values in the build-options document can be referenced as:
$options{name}, e.g.,

$options{Sandbox}
$options{WebPath}

Expressions can therefore reference your own custom tags under <Build-Options-Doc> via $options{CustomTagName}.

Multi-valued elements (e.g, NetNotify) are handled as follows:
First, an "s" is appended to the tag name (e.g., NetNotifys).
A reference to a Perl array is stored in the hash.

Example:
$options{NetNotifys}->[0] returns the first "NetNotify" text.

2003-01-26 Version 1.6.21

  • More enhancements for capturing errors from pre-build validation stage of vs.net vdproj (MSI) projects
  • In web application, sort list of projects by the number of errors and warnings (descending)
  • Fixed a few glitches in the 1.6.19 release such as an incorrect number of errors in end-of-build notification emails
  • Bug fix:  "Missing" file list contained repeated contents
  • For VS.NET VCPROJ (C++) projects, ignore the following warnings:
    1. warning D4025 : overriding '/EHs' with '/EHa'
    2. warning LNK4222: exported symbol 'DllCanUnloadNow' should not be assigned an ordinal
    3. warning LNK4017: DESCRIPTION statement not supported for the target platform; ignored
    4. warning LNK4089: all references to 'XXX.DLL' discarded by /OPT:REF
  • Modified Executables Install - After installing please add the installation folder to your PATH environment variable

  • Modified Perl module source code (alternative install)

2003-01-23 Version 1.6.19

  • Detect errors from VS.NET VDPROJ files during validation stage
  • Bug fixes for building VS.NET VDPROJ (MSI) projects
  • Bug fix:  Packaging files from SLN or DSW workspace when <Project> is specified in the build XML file but <Workspace> is not
  • Added a new miscellaneous warning when a file that is specified to be packaged does not exist ("missing files")
  • When copying files to a subdirectory via the packager, calculate the sum of all file sizes in the directory and display in web application
  • Added <LogProjConfig/> to the build options document for troubleshooting configuration-related problems.
  • Several minor bug fixes
  • Modified Executables Install - After installing please add the installation folder to your PATH environment variable

  • Modified Perl module source code (alternative install)

2002-12-19 Version 1.6.18

  • LogInfo scripts dgloginfohtmlnntpemail and dgloginfohtmlemail --
    • Append domain in globals.xml to email addresses if a domain is not specified in <To> tags
    • <Path> detection fixes
    • For CVSNT build 62 and possibly later, the <Path> regular expression in the CVSNotify-Doc runs against the CVS module name and not the physical CVS repository server path.  A sample regular expression is ^/source/java/.  When CVSNT fixes the issue, the script will automatically use the physical server path instead, which will probably break your configuration!
  • TagInfo script dgtaginfo --
    • <Path> detection fixes
    • Append domain in globals.xml to email addresses if a domain is not specified in <To> tags
    • Bug fix when directory names contain spaces
    • Fix email generation
  • Modified Executables Install - After installing please add the installation folder to your PATH environment variable

  • Modified Perl module source code (alternative install)

2002-12-10 Version 1.6.16

  • Added new script for CVS "taginfo" notification, dgtaginfo

    • Only CVSNT build 62 and later is supported.  Using any taginfo scripts with any version of CVSNT prior to build 62 on Windows can result in CVS.EXE crashing during tagging operations.  The taginfo script will not work with "vanilla" CVS servers.

    • A "taginfo" notification contains the name of the user who altered the repository, which CVS module was affected, whether a tag was added or removed, and which files were affected

    • Notifications occur via email and/or newsgroups.  Multiple operations are batched into a single email or newsgroup post.

    • See here for more details:  CVS LogInfo, TagInfo, and Notify Scripts, particularly:

    • There are three new entries in globals.xml for the new taginfo scripts:
      <CVSNotifyPath>
      <TagInfoEmailGroup>
      <TagInfoNewsgroup>

    • It is important to set <CVSNotifyPath> because the CVS service probably runs as the SYSTEM user and the dgcvsnotifydaemon process probably runs as a different user, and these user's TEMP environment variables are probably different

    • Configuration information for the later two elements can be overridden by the CVSInfo-Doc XML file on a per-module basis

  • Fixed dgbackup to use dgzip instead of zip

  • Modified Executables Install - After installing please add the installation folder to your PATH environment variable

  • Modified Perl source code (alternative install)

  • Modified Perl module source code (alternative install)

2002-12-6 Version 1.6.15

  • dgbuild:  Feature request 553847 -- make CVS output available via web.  Handy for cases where CVS is waiting for file locks.  Like build script output, browser must must munge the URL manually in order to see the file.

  • dgbuild and dgchangelog:  CVSNT build 62 fixes.  Ignore CVS errors such as "Unable to open CVS/Entries for reading."  Fix change log generation.

  • dgbuild: Fix reported bug executing dgversion when Perl scripts are used

  • Modified Executables Install - After installing please add the installation folder to your PATH environment variable

  • Modified Perl source code (alternative install)

  • Modified Perl module source code (alternative install)

2002-11-24 Version 1.6.13

  • dgbuild and dgchangelog:  CVS change history has been fixed when there are branches on files in the sandbox.  The cvs log command does not work properly when given two tag names -- if a branch is on the file, "cvs log" outputs everything.  The fix is to use the "-rTAG:" notation which lists all changes including and after the tag in the branch and filter manually.

  • dgbuild :  VS.NET projects that have a resource file (.rc):  Set the contents of the "private build description" string in the version resource to the configuration name.

  • Added "Misc Warnings" which is analogous to "Misc Errors."  Miscellaneous warnings do not cause the dgbuild script to return an error status code (!= 0).

2002-11-21 Version 1.6.12

  • This release includes a new script: dgloginfonntpemail that is intended to be used as a CVS loginfo script. It posts check-in notifications to a newsgroup and sends them via email.  See LogInfo and Notify Script Configuration.

  • Added <Branch/> element to the LogInfo configuration document so that configuration settings can be based on a branch tag name

  • HTML versions of loginfo scripts output the branch name in the subject line

  • Modified Executables Install - After installing please add the installation folder to your PATH environment variable

  • Modified Perl source code (alternative install)

  • Modified Perl module source code (alternative install)

2002-11-16 Version 1.6.11

  • When VC++ 6.0 project can't be found, report this as a warning, not as an error

  • When "last build timestamp" file does not exist in CVS, this is no longer a "miscellaneous error."  The file will be added to CVS.

  • Fixed CVS change history creation

  • Modified Main Install - After installing please add the installation folder to your PATH environment variable

  • Modified perl_lib.tar.gz (Perl source code, alternative install)

2002-11-02 Version 1.6.9

  • Bug fix for VC++ configuration override feature (configmap) -- configurations were not always being overridden

  • Modified Main Install - After installing please add the installation folder to your PATH environment variable

  • Modified perl_lib.tar.gz (Perl source code, alternative install)

2002-10-03 Version 1.6.7

  • Added support for detecting Java compile errors from Apache Ant output

  • Add <Ant/> to the <Build/> element and remove <Multiple/> if present in the build document

  • Modified Main Install - After installing please add the installation folder to your PATH environment variable

  • Modified perl_lib.tar.gz (Perl source code, alternative install)

2002-09-19 Version 1.6.5

  • More bug fixes and enhancements for building Java projects

  • Be sure to download clean.tar.gz and extract this archive into your sandbox and commit the changes

  • Bug fix:  "make jar" didn't work properly when output/java directory contained class files

  • Bug fix:  "make thirdpartyjar" didn't work

  • Removed hard-coding of Java-related directory paths by providing two new optional environment variables:

    • DEVGUY_BUILDDIR

      • This is the name of the module which contains postdefs.makefile and predefs.makefile

      • It defaults to build

      • Example: widget/build

      • The build robot sets this environment variable if you specify a <BuildModule/> in the build options document

    • DEVGUY_OUTPUTDIR

      • This is a relative path to the sandbox which contains Java build artifacts.  "/java" is appended to the value when compiling Java code, making thirdparty.jar, and making all.jar.

      • If you don't need this, don't use it.

  • If you wish to use DEVGUY_BUILDDIR, you must change all of the makefiles that build Java projects

    • The "preamble" of all makefiles should be changed

      From:
      include $(ROOTDIR)/build/PreDefs.makefile
      include $(ROOTDIR)/build/PostDefs.makefile

      To:
      ifeq ($(DEVGUY_BUILDDIR),)
      DEVGUY_BUILDDIR=build
      endif
      BUILDDIR=$(ROOTDIR)/$(DEVGUY_BUILDDIR)

      include $(BUILDDIR)/PreDefs.makefile
      include $(BUILDDIR)/PostDefs.makefile

  • Modified Main Install - After installing please add the installation folder to your PATH environment variable

  • Modified clean.tar.gz (makefiles to be checked into CVS).  Extract this archive into your sandbox and commit the changes.

  • Modified perl.tar.gz (Perl source code, alternative install)

  • Modified perl_lib.tar.gz (Perl source code, alternative install)

2002-08-26 Version 1.6.4

Build robot fixes:

  • Set ROOTDIR environment variable using the Sandbox path (for Java builds)

  • Bug fix when build_stamp.txt doesn't exist

  • Bug fix when builds.xml doesn't exist

  • Fix 404 errors when clicking on links in the web app -- use blank file instead

  • New script dgprune.exe / .pl which deletes all files and folders starting from a specified root directory

  • New script dgdeldir.exe / .pl which deletes all files and folders starting from a specified root directory that are contained in a specified folder name, e.g., CVS -- this is primarily used to delete the CVS administration folders -- handy when cvs export either doesn't work or is too cumbersome

  • Please refer to the build XML document and the build options XML document and the globals XML document

  • Modified Main Install - After installing please add the installation folder to your PATH environment variable

  • Modified perl_lib.tar.gz (Perl source code, alternative install)

2002-08-20 Version 1.6.1

Build robot fixes:

  • Changes mainly for Java projects

  • When <LinkName> is provided in <Package>, append the configuration name to the provided link name so two configurations can have the same LinkName

  • Fix: packager running two times the # of configurations instead of once per sequenced configuration

  • Fix: When <Configuration> is specified and <Sequence> is specified in <Package>, package didn't work

  • Fix: Support running scripts via <Build> when <Parameters> contains '*' 

  • Fix: Tagging when sandbox doesn't contain CVS directory

  • Fix: CVS checkin history ("log") when sandbox doesn't contain CVS directory

  • Modified Main Install - After installing please add the installation folder to your PATH environment variable

  • Modified perl.tar.gz (Perl source code)

  • Modified perl_lib.tar.gz (Perl source code, alternative install)

2002-08-17 Version 1.6

  • Official release of 1.5 beta features

  • Build Robot newsgroup posting fixed

  • Modified Main Install - After installing please add the installation folder to your PATH environment variable

  • Modified Web Install

  • Modified clean.tar.gz (makefiles to be checked into CVS)

  • Modified perl.tar.gz (Perl source code)

  • Modified perl_lib.tar.gz (Perl source code, alternative install)

  • Modified win32.tar.gz (For use with Perl source code, alternative install)

  • Modified asp.tar.gz (ASP source code, alternative install)

2002-08-15 Version 1.5b7

  • 1.5 is not much different than 1.4.  There are some bug fixes and new features but the main changes are custodial.

  • 1.5 breaks compatibility with [UNI]+X.  We're going to fix this as soon as we can figure out a good way to do it.

  • A Windows Installer option is available for this version.  The old tarball installation option is still available.

  • If you are migrating from version 1.4 and use the Windows Installer and you don't have a devguy_globals environment variable, either

    • create a devguy_globals environment variable containing the full path of globals.xml
      OR

    • move globals.xml to the PCTK program files folder
      OR

    • alter the registry setting HKLM\ Software\ DevGuy\ PCTK\ Globals to contain the full path of globals.xml

  • The scripts are now installed as Windows executables when Windows Installer is used.  Perl is no longer required to be installed, which simplifies installation and also removes dependencies on specific versions of Perl its modules.

  • New scripts:  dgkill.exe which kills processes, dgshutdown which reboots or shuts down the computer, and dgsleep.exe/dgsleep.pl which waits for a specified number of seconds.  I plan to document the whole list of executables sometime soon.

2002-06-18 Version 1.5b4

This is a beta release.

  • Changed "dgco/dgcheckout"

  • Changed "dgdiff."  The diff program used by "dgdiff" is controlled via <DiffProg> in globals.xml.

  • Added environment variable DEVGUY_USEPERL which will execute "dg" scripts using "perl -S".  This lets you use the Perl scripts rather than their executable incarnations in case you want to modify them.

  • Minor bug fixes

2002-06-05 Version 1.5b1

This is a beta release of the Windows installation programs.

2002-06-05 Version 1.4.1

  • Run JScript (.js) and VBScript (.vbs) with cscript.exe so that console output can be captured from the scripts.

  • Added <UseLastBuildStamp> to the build options document

  • Added <AfterTagging> and <IfNoErrors> to the build document

  • Added more error handling for vs.NET C# projects

2002-05-28 Version 1.4

  • 1.3 beta is complete, stable build is 1.4

  • Build robot can send build notifications via email

  • Better support for Visual Studio .NET projects.  C# and C++ work; other languages have not been tested.

  • Loginfo (CVS commit) script enhancements to support directory and repository-specific email addresses

  • Build robot captures CVS and other errors that were previously ignored

  • Substantial performance increase in ASP pages

  • Keep reading entries below for more changes

  • Please make sure to move your configuration settings from globals.pm to c:\perl\lib\cfgmgmt\globals.xml

2002-05-18 Version 1.3b20

This is a beta release.

  • Check for out-of-space error when zipping files

  • Fixed styles.css to be compatible with Opera

  • Eliminated client-size scripting -- all web pages appear __fast__

  • Moved the settings in Globals.pm to globals.xml

    • This will eliminate programming errors introduced by those who aren't familiar with Perl and also makes it possible to distribute the PCTK as as set of executables.

    • globals.xml is in the perl_lib.tar.gz archive and therefore is located at c:\perl\lib\cfgmgmt\globals.xml

    • If your Perl directory is not located on your C: drive, you must create the environment variable devguy_globals via the control panel/system/advanced and set it to the full path of the globals.xml file, e.g., d:/perl/lib/cfgmgmt/globals.xml

    • Please edit globals.xml to contain your custom settings

2002-05-13 Version 1.3b19

This is a beta release.

  • Added ability for "loginfo" script to support email addresses depending on the commit directory (and, hence, the repository).  See here.

2002-05-08 Version 1.3b16

This is a beta release.

  • Fixed MakePath in Path.pm (again).  This problem could be seen when a filename contained spaces.

  • Another space-in-the-directory problem is related to the build web pages.  Spaces in HREFs are converted to %20.

  • Fixed <Once/> (again)

  • Fixed DSW and DSP projects (again)

2002-05-06 Version 1.3b15

This is a beta release.

  • Fixed MakePath in Path.pm.  This problem could be seen when using the packager.

2002-05-05 Version 1.3b14

This is a beta release.

  • Bug fix for executing makefiles -- "The process cannot access the file because it is being used by another process"

  • When executing makefiles, if there are no targets, use the configuration name as the target (this is the same functionality as in 1.2)

  • Bug fix for executing makefiles -- makefiles with the same file name and different directories wouldn't execute

  • Packager output is captured in a separate file and the build web page contains a link to these output files

  • <Clean> and <Rebuild> supported for Java makefiles (uses the targets "clean output")

  • Web page displays "Misc Errors" in red when > 0

  • Clean-up the build robot code that performs checkouts (made a subroutine called checkout)

  • configmap.xml filename is no longer hard-coded and can be specified in the build-options document

  • Added <Path> and <Dir> elements to the Build-Doc <Source> element

  • Capture and parse output from the Java makefiles

  • Changed predefs.makefile and postdefs.makefile to support directories that have spaces in them

  • Build web page contains link to the entire script output (it's called Script Output)

2002-04-23 Version 1.3b9

This is a beta release.

  • build.pl returns 1 when a miscellaneous or build error occurs, otherwise it returns 0.

  • Bug fixes in change log generation

2002-04-22 Version 1.3b8

This is a beta release.

  • Bug fixes in the packager particularly for SLN and DSW files

2002-04-21 Version 1.3b7

This is a beta release.

  • Bug fixes in build robot.  Output CVS tag in the build summary web page.

  • Everything but Java support has been tested and appears to be working normally

  • Newsgroup CVS "loginfo" script handles directory names that contain & (reported bug)

  • Fixed case of CVSWebURL in Globals.pm (reported bug) 

2002-04-20 Version 1.3b6

This is a beta release.

Please consult the Build Robot documentation which describes the new features.

  • Added a <Filter> element to the <Build> element of the build document.  This element has been added to facilitate the creation of bld.txt and bldlog.txt, particularly with genericOutputParser.pl.

  • Added <Tag> to the build options XML file for tagging files with a specific tag.  Specify <NoBuildStampTag/> in the build options document to avoid tagging files with the build stamp.

  • Various bug fixes

  • Each project in the build summary web page has a new link to a file called OutputFile which contains the full text of the output of the command when <Execute/> is specified in the <Build> element.

  • Please consult the Build Robot documentation which describes the new features.

  • Added a <Filter> element to the <Build> element of the build document.  This element has been added to facilitate the creation of bld.txt and bldlog.txt, particularly with genericOutputParser.pl.

  • Added <Tag> to the build options XML file for tagging files with a specific tag.  Specify <NoBuildStampTag/> in the build options document to avoid tagging files with the build stamp.

  • Various bug fixes

  • Each project in the build summary web page has a new link to a file called OutputFile which contains the full text of the output of the command when <Execute/> is specified in the <Build> element.

2002-04-18 Version 1.3b4

This is a beta release.

  • Added new executable changelog.exe which outputs change log comments between two tags in the same format as the build robot

  • If meta-configurations are mapped to the configuration named "ignore", the configuration is ignored

  • Changed the web pages to output errors in bold red text

  • Capture errors from CVS

  • Added a "Miscellaneous Error" count to the status web page in addition to build errors.  A CVS error is a "miscellaneous" error.

2002-04-17 Version 1.3b3

This is a beta release.

  • Added new script changelog.pl which outputs change log comments between two tags in the same format as the build robot

  • Fixed bugs in the change comments output logic

  • Changed the web pages to output errors in bold red text

2002-04-15 Version 1.3b3

This is a beta release.

Parse the output of the C# compiler for errors and warnings.

2002-04-14 Version 1.3b2

This is a beta release.

Fixed bugs in DSW file processing.  Enhanced vs.net file support by reading SLN files for VCPROJ configuration names.  SLN files contain configuration name mappings.

After I upgraded to ActivePerl 631, I noticed that the code in build.pm that does a "glob" on *.* (I was using a UNC) causes Perl to die with an access violation.  A 2-line perl script does not exhibit the same behavior.  I commented out the code.  The only affect this has is that the statistics web page will report the size of a packaged directory as 0 kb.  This does not affect packaged zip files.

Modified the packager to use TEMP or TMP environment variable for ZIP temporary directory (per user request).

2002-04-12 Version 1.3b1

This is a beta release.

Build notifications (begin and end) can be sent via SMTP email in addition to 'net send' and NNTP newsgroups.  The NNTP newsgroup in Globals.pm can be blank or not specified.  Refer to <SMTPNotify> in the build options file.

Many fixes for VS.NET C++ projects.  All features previously implemented for DSP and DSW files now work for C++ projects -- checking out include directories, rewriting version resources, supporting multiple projects in one SLN file, and packaging up DLLs, EXEs, etc..

Added BuildModule to the build options file, so there are no more hard-coded module names.

It's possible that I broke the infamous "change directory" logic before running scripts via <Build> tags.  I tried to clean up that part of the code.  The current directory logic has been changed slightly and is documented at:  Build Robot.

When the build robot builds makefiles, SLN files, or runs external scripts, the output is sent to a file on the web server.  The build robot's log file contains the filename.  The filename can be entered into the browser in order to see the build robot's progress.

2002-01-12

Fixed the build robot for ActivePerl build 630 and later.

Fixed all File::Glob references in all scripts which allows "perlapp" (from the perl devkit) to convert them to executables.

Moved configuration of Loginfo-to-HTML scripts to Globals.pm.

2001-11-20

Bug fixes in loginfo scripts that produce HTML -- convert <,>,& to entities, hyperlinks to CVSWeb repaired, and support filenames with spaces.  Common code in cvs_loginfo_html.pl and cvs_loginfo_html_email.pl now lives in a module, so you need to update your .PM files too.

2001-11-14

Thanks to Gyula Faller, there are new loginfo scripts that generate attractive HTML -- cvs_loginfo_html.pl and cvs_loginfo_html_email.pl

2001-10-13

Added <RepeatUntilSuccessful> to the <Build> element of the build XML document

2001-10-05

Fixed bug introduced in the build robot regarding packaging -- files were written to the same Zip file for different configurations.

Fixed bug where <IgnoreErrors> was ignored -- the errors are still visible in the summary web page, but the total number of errors for the build isn't incremented.

Fixed replace.pl when the text to replace contains double quotes.

2001-10-04

Various bug fixes -- configuration name appeared twice in link names; .net projects were not affected by configmap.xml (.net builds were totally broken); output the log file in genericOutputParser.pl; scripts were executed more than once when <Once/> was specified.

2001-10-02

Bug fix by Gyula Faller to package.pm when there are <Modules> specified in the package document (thank you!).

Build robot fixed to obey listed configurations in <Build> tag for makefiles and external scripts.  <Sequence> no longer required.

Added MakeTargets to configmap.xml.  This allows you to have one <Build> entry for one makefile.  Rather than specifying targets in the build XML document via <Targets>, targets are specified in configmap.xml via <MakeTargets>.  The old behavior is still supported -- <Targets> in the build file overrides configmap.xml.

2001-09-27

Changed stat.pl courtesy of Gyula Faller to use CVS/Root file instead of the CVSROOT environment variable.

Changed regall.pl and regall.exe to optionally ignore dlls (-d), ignore tlbs (-t), and not process subdirectories (-l).

2001-09-25

Backed out previous change.  <Sequence> must be specified in <Build> elements that have <Configuration> elements, except for DSW and DSP projects [note that the latest code no longer requires this].  Added ability to specify the name of the zipfile in the build XML document by putting the filename in the <Zip> element's text.

2001-09-23

Bug fix:  When a <Build> element had <Configuration> elements, the <Configuration> elements were ignored unless a <Sequence> element was present.

2001-09-22

Various bug fixes, too many to list here.

Added <Copy> to the build XML document, so that build pages can link to folders containing uncompressed files instead of just zip archives.

Changed the version resource update logic so that ...

1) The FileVersion is set to the form of "a.b.c.d" where d is the build number, c is 0, and a and b come from the version number string in source/c/constants.h*.  The version string must contain at least one string of the form of "a.b" where a and b are integers.  For example, "Beta 5.0" or "5.0 Beta I"

2) The following fields are added to the version resource, even if they are not present in the resource file:

  • ProductVersion, which has the form of "a, Build b" where a is the version string from contants.h* and b is the build number

  • LegalCopyright, which has the form of Copyright © a, b
    Where a is the copyright year and b is the company name, both of which come from constants.h*

  • CompanyName, which contains the company name from constants.h*

  • PrivateBuild, which contains the configuration name

  • BuildNumber, which contains the build number and tag

  • SpecialBuild, which contains the version string from constants.h*

*Instead of source/c/constants.h, the values may come from another file which is specified in the build options document.

2001-09-19

Fixed a bug in package.pm when <Package> is specified and <Filespec> contains the name of a file to copy rather than one of the $x aliases.

Fixed a bug in build.pm when a <Path> element is specified.

2001-08-31

Changed build.pm in order to add more features for running scripts.  Added Build/ScriptIsOutsideSandbox and Build/Async to the build XML document.

2001-08-08

Fixed build.pm's <Build><Execute> functionality when <Path> is provided.  The path is now properly set.

2001-08-05

The CVS loginfo scripts (smtp and nntp) support spaces in directory and file names (space detection only works with CVSNT, but at least it doesn't break [UNI]+X).  The scripts also output hyperlinks to the files' CVSWeb pages.  Set the CVSWeb URL in perl/lib/cfgmgmt/Globals.pm (it defaults to tiger).

2001-08-01

Fixed build.pm for vs.net SLN files that build setup projects.  Setup projects have a "validation" step and any errors during this step are now captured.

2001-07-18

Fixed build.pm -- it wasn't obeying the <Configuration> tags when building non-sequenced projects.  Various bug fixes.  More fixes for .NET projects especially Setup projects.  Added .SUO to cvsignore -- this is a VS.NET build artifact.

2001-07-10

Support VC++ projects that have configurations like "Win32 Release MinDependency."  Also converted regall.pl to an executable.  Both versions of regall have new -v (verbose) option which will display the dialog box output by regsvr32.

20001-05-11

When the build robot is asked to execute an external executable, the path can be relative to the root of the sandbox.  Or you can specify a full path.

2001-05-10

Added new script cat.pl that is similar to UNIX cat, except it's on steroids.  Added <Key> which is a child of <Build> so you can have more than one <Build> tag that runs the same executable or script when <Once/> is specified.  A unique string is created consisting of the <Build>'s text, <Path>'s text, <Parameters>'s text, and <Key>'s text. 

2001-05-03

update.pl and co.pl support file and folder names that contain spaces

2001-05-01

The build XML file allows you to copy files in the sandbox to any directory or network file location, using <Destination> in the <Package> node.  You can specify multiple <Destination> tags.  This is useful, for example, for uploading web pages stored in CVS to a web server.

2001-04-10

New cvsweb release - 'Annotate' temp directory fix and bug fix for filenames that have spaces.  Better documentation.

2001-02-02

Modified package.pm to retry if there is an error during zip (hopefully it is fixed this time).  Changed cvsweb so that "annotate" writes to the temp directory instead of a random folder which caused a "permission denied" error.

2001-01-22

Changed cvs_loginfo_notify.pl to support comma-separated list in CVSEmailGroup.  Thanks to Gerrit Riessen.  Modified package.pm to retry if there is an error during zip.  JAR file creation also retries when an error occurs.

2001-01-09

Some bug fixes and clean-up in the CVS scripts for commit and notify.  "loginfo" sends out emails correctly.  "loginfo" handles directories and filenames with spaces.

2001-01-05

Added the script cvs_loginfo_email.pl which sends commit notices via SMTP email.

2000-12-28

CVS notifications script (cvs_notify.pl) fixed for ActivePerl build 622.  Don't append domain to email address if the CVSROOT/users file already specifies one.  Many thanks to Kirk Patten.

2000-12-12

Groundwork for building VS .NET solution (sln) and C++ project (vcproj) files.  The code has not been tested extensively but it "looks" right and has been tested with SLN projects that build C++ and Setup projects.  Runs devenv.exe to build projects.  Building vcproj files directly (outside of SLN files) might not work.

The build robot now posts a message to the build newsgroup when a build starts.  The build name and tag are displayed in the network dialog notification window.

2000-10-26

Build messages posted to engineering.builds includes the build # and # of warnings in the subject line as well as the content.

The build robot modifies the Version resource of DLLs before they are built.  The Version resource item Product Version now contains the CVS tag.

2000-10-20

CVS notify sends email via SMTP instead of using newsgroup.  Edit perl/lib/cfgmgmt/Globals.pm and set the SMTPServer.  Also install the Perl module Net::SMTP via CPAN on the CVS server.  The latest version of ActivePerl includes this module, so if you have the latest version you can avoid a trip to CPAN.

2000-09-29

New cvsweb release - supports Annotate (thanks Arthur!)

2000-09-28

update.pl, refresh.pl, and co.pl weren't working properly in directories two-deep (and below) from the root.

2000-09-05

Thanks to Andrew Gorski who figured out how to make the cvsweb diff feature work:  The user IWAM_ must have write access to c:\winnt\temp

The cvsweb files have been updated to version 1.93 and include many new features.

2000-08-25

Changed perl.tar.gz - co.pl, update.pl, stat.pl.

stat.pl supports ntserver, local, and pserver protocols.  ntserver protocol caused stat.pl to output nonsense.

co.pl and update.pl don't use ROOTDIR environment variable and instead read the CVS/Repository file.  ROOTDIR is now only used by the makefiles that build Java code.

2000-06-28

Fixed bugs in javadoc.pl

Documentation heavily revised and added more XML examples, especially for Java projects.

2000-06-21

Fixed makefile bug with the CYGWIN 1.0 release.  Changed perl.tar.gz to include latest cvs_notify.pl.

2000-03-10

First public release


(c) 2002 DevGuy.com