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.
Notes: Get the "Additional Library Directories" for Visual
Studio .NET C++ projects (only directories listed with relative paths).
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
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"
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).
Notes: Build robot bug fixes: invalid link to zip file and
"can't coerce array into hash"
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}
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
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
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
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.
Notes: Build robot changes:
- 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
- Fixes for Visual Studio .NET 2003 which are compatible with the
previous version of VS.NET
- Don't send
/useenv to devenv.exe
- Don't quote command-line parameters unless needed
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"
In the packager,
<BeginGroup> and <EndGroup>
includes files that you copy rather than just zip/gzip files
that are created.
Fix bug with ANT scripts -- errors were not reported
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
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
Build Robot Fixes:
Fixes for VS.NET projects
While packaging, $(OutDir) needs to be resolved for C++ projects
Added support for C# projects (CSPROJ)
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.
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
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.
Build robot changes:
- Keep track of ignored errors
- <Parameters> expression substitution fixes
Build robot fixes:
Don't update the last build tag file if logging has been turned off
Allow = expressions in <Parameters>
This release fixes NNTP notification for the build robot.
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
(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
+ 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
More fixes for vs.net projects
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
Notification email is sent when CVSROOT is bogus
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:
- 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.
- Bug fix for creating changelog
- Checkout package XML files
- Bug fixes for building VC++ projects (dsw/dsp)
- Bug fixes for building ANT projects
- More clean-up for output log file names
- Packager log file contains http:// references to log output files
- Build log file contains http:// reference to CVS output while
processing checkin comments
- Checkin comments contain separate lines for date and author rather
than being smashed on one line
- Bug fix: LogFile in build-options was not being obeyed
- Output build number to build list XML file (builds.xml) ASAP --
previously didn't happen until all <Source> elements were processed
- Added <Version>, <Copyright>, and <Company> to build options
document (optional)
- Added <Delete> and <DeleteSubdir> to <Source> in <Package-Doc>
- Bug fix: if sandbox isn't specified, notifications are not sent
- Web application's "build types" page uses stylesheet
- Bug fixes when <ProjectName> is specified in <Build>
- Bug fix for running "ant.bat" -- putting double-quotes around "ant"
causes a Java "class not found" exception (go figure)
- 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.
- Build robot output log file contains URLs to log files rather than
raw filenames
- Some Ant output parsing fixes
- Executables are built with Perl 5.8.0
- Even more packager bug fixes
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
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.
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
2003-01-23 Version 1.6.19
2002-12-19 Version 1.6.18
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
-
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.
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.
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.
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
|