Release Notes

0.90-alpha1 - April 1, 2010

NAnt


Breaking changes

Core

  • Extensibility

    • Deprecated NAnt.Core.Element.InitializeElement(XmlNode) and NAnt.Core.Task.InitializeTask(XmlNode) in favor of NAnt.Core.Element.Initialize(). This was done to discourage direct access to the XML node that was used to initialize the construct.

Tasks

  • <script>

    • As of this release, only the following namespaces are imported by default:

      • System
      • System.Collections
      • System.Collections.Specialized
      • System.IO
      • System.Text
      • System.Text.RegularExpressions
      • NAnt.Core
      • NAnt.Core.Attributes
    • Starting from this release, only NAnt.Core and mscorlib will be referenced by default.
      In previous releases, all loaded assemblies would implicitly be referenced.

Bug fixes

Extensibility

  • DataTypeBaseBuilder / FilterBuilder / TaskBuilder

    • Changes to constructors break backward compatibility (bug #2782705).

Expressions

  • Identifiers

    • Identifiers containing a dot or backslash are falsely rejected.

Framework support

  • .NET Framework (All)

    • The target framework cannot be initialized if the .NET Framework SDK is not installed (bug #1859708).
  • .NET Framework 1.1

    • Added the following assemblies to the list of reference assemblies:

      • Microsoft.VisualBasic.Compatibility.dll
      • Microsoft.VisualBasic.Compatibility.Data.dll
      • System.Data.OracleClient.dll

    Fixes bug #1848648.

  • .NET Framework 3.5

    • Modified version (as returned by framework::get-version()) to "3.5".
    • Added support for Windows SDK 6.1 (bug #1986551).
    • Added support for Windows SDK 7.0.

Tasks

  • <echo>

    • A newline is implicitly added when writing a message to a file (bug #2807728).
  • <echo>

    • When "output" parameter is specified, standard output is redirected properly. (bug #1010223).
  • ExternalProgramBase

    • The value of UseRuntimeEngine is not respected when overriden by derived classes (bug #1850383).
  • <move>

    • When source file is newer than destination file, then an error is reported if "overwrite" is not set to true.
  • <solution>

    • Solution Folders result in build failure (bug #1732361).
  • <xmlpeek>

    • "verbose" feature is now worked as documented (bug #1911292).
  • <zip>

    • Improved backward compatibility with older unzip implementations.

Types

  • <fileset>

    • Files matching the **/vssver2.scc pattern are not excluded by default (bug #2515816).

Additions

Functions

  • environment::newline()

    • Gets the newline string defined for this environment.
  • framework::get-description()

    • Gets the description of the current target framework.
  • framework::get-clr-version()

    • Gets the CLR version of the current target framework.
  • framework::get-frameworks(NAnt.Core.FrameworkTypes)

    • Gets a comma-separated list of frameworks filtered by the specified FrameworkTypes.

      For example:

      ```xml
      <target name="build-all">
          <foreach item="String" in="${framework::get-frameworks('installed compact')}" delim="," property="framework">
              <property name="nant.settings.currentframework" value="${framework}" />
              <call target="${framework}" />
          </foreach>
      </target>
      
      <target name="build">
          ...
      </target>
      ```   
      
  • framework::get-version()

    • Gets the version of the current target framework.
  • platform::is-windows()

    • Return a value indicating whether NAnt is running on Windows.

Tasks

  • <untar>

    • Extracts files from a tar archive.

Changes

Packaging

  • pkg-config

    • When installing NAnt from source on Unix (using make install), a nant.pc is now installed in $prefix/lib/pkgconfig.
  • DESTDIR

    • To allow for staged installs, our makefile now also supports the DESTDIR variable:

      $ make DESTDIR=/tmp/local install
      

Functions

  • platform::is-win32()

    • This function is deprecated, use platform::is-windows() instead.

Tasks

  • <csc> / <jsc> / <vbc> / <vjc>

    • Added "winres" attribute to specify a Win32 resource file.
  • <echo>

    • The "encoding" attribute can be used to specify the encoding when writing messages to a file.

      <echo file="build.cmd" encoding="ascii">
      ...
      </echo>
      
  • <link>

    • Added "moduledefinition" parameter to allow the name of the module definition file to be set.
  • <nunit2>

    • Allow referenced assemblies to be specified using <references> element on <test>:

      <nunit2>
          <test>
              <assemblies basedir="build/tests">
                  <include name="Cegeka.HealthCare.DocGen.Tests.dll" />
                  <include name="Cegeka.HealthCare.Util.Tests.dll" />
              </assemblies>
              <references basedir="build/lib">
                  <include name="Cegeka.HealthCare.Common.dll" />
                  <include name="Cegeka.HealthCare.DocGen.dll" />
                  <include name="Cegeka.HealthCare.Util.dll" />
              </assemblies>
          </test>
      </nunit2>
      

    Previously, all referenced assemblies needed to be either in the GAC, or in the directory containing the test assembly.

  • <solution>

    • Introduced support for targeting a specific platform, as defined in the solution or project.
  • <xmlpoke>

    • Added "preserveWhitespace" parameter to retain the original format of the XML files.
  • <unzip>

    • Added "overwrite" parameter to control whether to overwrite files even if they are newer than corresponding entries in the archive.

Third-Party

Types

  • <fileset> / <patternset>

    • For patterns specified using <includesfile> or <excludesfile>, lines that have a number sign (#) as the first non-blank character in a line are now ignored.