I use perforce for my SCM and have really liked the
possibilities that the p4 suite of task offer towards
maintaining a proper internal and shipping release
Over the last two days I have been trying to map out
my companies release procedure into a NAnt build file to
ease the work involved and to ensure consistency
across projects. So far I have had mixed results with the
NAnt p4 tasks.
Most of the problems I encountered were due to
documentation issues - to be expected I suppose for
unreleased features. Once I looked at the source code I
was better able to understand how the author of the p4
tasks intented them to be used.
One area that may have been overlooked is providing
the ability to include the descriptive text for a changelist
through a task property. Currently (and this is the
default way the perforce command line client performs
thses operations), whenever a new change list is
created, a text editor (in my case notepad) opens up,
with a populated text file that I am supposed to edit,
save and exit before perforce continues. This text file
contains some fields that are supposed to be filled out
for the perforce client. This of course means that the
nant build file cannot be executed without someone
there to fill in the necessary details (as the entire build
process stops until the text form is filled out, saved and
the text editor closed).
The perforce client does support reading this text form
from a redirected standard input, which would be ideal.
If this was supported then you could have a p4change
task that looked like this:
description="The build number text file is being updated
for the lastest internal release" />
I would be happy to develop such a solution within the
current framework and submit a patch. But I would be
more interested in discussing the plans/design for the p4
suite to get an idea of what functionality it will be
intended to support.
I would also be willing, if required to produce some
documentation or article(s) on the use of the p4 tasks
to demonstrate what can be achieved etc.