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

Reply via email to