Hello,
I have been doing some NAnt development fixing/adding behavior. I would like
to suggest
to share these changes as well but I am not sure how to do this.
As an 'opener', allow me to give a short description as such :
NAnt core
---------
* New functions
operating-system::generate-guid()
operating-system::generate-guid-with-hyphen()
operating-system::generate-guid-with-brackethyphen()
operating-system::generate-guid-with-parentheseshyphen()
These functions allow for the 'unique generation' (according to a
given formatting pattern), very useful in automated NAnt based
build setups (MSI Package codes, Upgrade codes, ...)
Files involved :
<nant-root>/src/NAnt.Core/Functions/OperatingSystemFunctions.cs
* NAnt (core) project attribute logfile
- Default log file which is exposed as NAnt property
with name 'logfile' when command-line logfile is not specified
-> 'nant.logfile' standard property
- NAnt core Task is enriched with IDisposable implementation
implemented in Core
- Foreach task resource leaking (IDisposable implementation)
These changes allow for 'default logging' behavior, including the
naming of the logfile itself according to a predefined pattern.
Also the implementation of IDisposable (on Task level) allows for
the implementation of cleanup logic according to the .NET disposition
pattern. This frees up (unmanaged) resource which otherwise remain
locked until NAnt exits ...
Files involved :
<nant-root>/src/NAnt.Core/Target.cs
<nant-root>/src/NAnt.Core/Task.cs
<nant-root>/src/NAnt.Core/Project.cs
<nant-root>/src/NAnt.Core/TaskContainer.cs
<nant-root>/src/NAnt.Core/ConsoleDriver.cs
<nant-root>/src/NAnt.Core/log.cs
* <nAnt> task additions
- logfile attribute
Allow for the specification of an extra logfile (for an inner NAnt
script) so that it can be read/consulted during the run of its parent
NAnt script.
- promote attribute
Promote all NAnt properties back to the calling NAnt context (the
reverse of existing 'inheritall' attribute)
Files involved :
<nant-root>/src/NAnt.Core/Tasks/NAntTask.cs
* New task <retain>
Perform a cleanup operation among directories and/or files matching a
specified pattern. It is ideal to allow for the contineous running of
(nightly) (NAnt) scripts that produce 'deliverables' which form a re-
volving archive (keep the last n builds for instance).
Files involved :
<nant-root>/src/NAnt.Core/Tasks/Retaintask.cs
NAntContrib
-----------
* <vssget> task
- Cleanup towards VSS recourses via Task IDisposable (resource leaking !!
-> see changes core)
- Make a (recursive) 'get from label' work including proper error message
+
check for 'version to get' (label check, ...)
Files involved :
<nantcontrib-root>/src/Tasks/SourceSafe/BaseTask.cs
<nantcontrib-root>/src/Tasks/SourceSafe/GetTask.cs
Requires VSS patch '169777_intl_i386' from MS !!!
* All SourceSafe tasks
-> Addition of VSS2003 & VSS2005 provider notion
Visual Studio 2005 has been released along with its accompanying Visual
SourceSafe 2005 product
as such. The SourceSafe tasks have been extended with a provider attribute
indicating the (inter-
nal) usage of the Product specific API's (Visual SourceSafe 2005 has a
'out-of-the-box' Interop
assembly now).
Default behavior = VSS2003 provider (connection towards Visual SourceSafe
6.0d)
Files involved :
<nantcontrib-root>/src/Tasks/SourceSafe/BaseTask.cs
<nantcontrib-root>/src/Tasks/SourceSafe/GetTask.cs (tested)
<nantcontrib-root>/src/Tasks/SourceSafe/LabelTask.cs (tested)
<nantcontrib-root>/src/Tasks/SourceSafe/CheckinTask.cs
<nantcontrib-root>/src/Tasks/SourceSafe/CheckoutTask.cs
<nantcontrib-root>/src/Tasks/SourceSafe/DeleteTask.cs
<nantcontrib-root>/src/Tasks/SourceSafe/DiffTask.cs
<nantcontrib-root>/src/Tasks/SourceSafe/History.cs
<nantcontrib-root>/src/Tasks/SourceSafe/UndoCheckoutTask.cs
* New <sqlbackup> and <sqlrestore> tasks
Perform SQL Server 2000 backup and restore operations
Files involved :
<nantcontrib-root>/src/Tasks/SQLSrvr/Sqlservertasks.cs
Bin dependency : SQLDMO.Interop.dll !
I have started (merged) from a fairly recent 'nightly build' (2005-12-13)
and it all seems to work just fine.
Is there any interest in this ? If so, how do we proceed from here ?
Seen from my perspective, I think these changes will benifit other users
too ... it would be nice if they could be merged into the 'official' NAnt
version so that I won't have to 'merge' all over again and again ...
Please let me know what you people think :-)
Greetings,
Frank
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
nant-developers mailing list
nant-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-developers