<?xml version="1.0" encoding="utf-8"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<!DOCTYPE document
[
<!ELEMENT document (properties?, release+)>
<!ELEMENT properties (title)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT release (action*)>
<!ELEMENT action (#PCDATA)>
<!ATTLIST release
          version CDATA #REQUIRED
          date CDATA #REQUIRED
          description CDATA #IMPLIED>
<!ATTLIST action
          issue CDATA #IMPLIED
          type (add|fix|remove|update) #REQUIRED
          breaks-bwc (true|false) #IMPLIED>
]
>
  <document>
    <properties>
      <title>Apache .NET Ant Library</title>
    </properties>

    <release version="SVN trunk" date="unpublished">
    </release>

    <release version="1.1" date="2011-02-04">
      <action type="add" issue="47254">
        The wix task has an option to run lit.exe rather than
        light.exe now.
      </action>
      <action type="update" breaks-bwc="true">
        The C# compiler uses gmcs on Mono by default now.
      </action>
      <action type="add">
        A new F# compiler task has been added.
      </action>
      <action type="add" issue="47078">
        A new tallow task has been added to ease creation of WiX built
        installers.
      </action>
      <action type="update" issue="46968">
        The wix task has new nested elements that allow users to send
        addtional command line arguments to candle and light.
      </action>
      <action type="fix" issue="50611">
        The include and exclude arguments to NUnit were broken (they
        had a leading ",").
      </action>
      <action type="fix" issue="34992">
        The /noconfig argument must be used outside of a response file.
      </action>
      <action type="fix" issue="47789">
        CSC of .NET 3.5 doesn't support the /incremental argument
        anymore, only set /incremental+, but never /incremental-.
      </action>
      <action type="fix" issue="41387">
        The compilation tasks failed if the source files resided in a
        directory with spaces in its full path and a response file was
        used.
      </action>
    </release>

    <release version="1.0" date="2006-11-06">
      <action type="update" issue="40553">
        The NAnt and MSBuild task have new attributes failonerror and
        errorproperty that allow users to fine-tune Ant's behaviour if
        either of both signals an error.
      </action>

      <action type="update" issue="40552">
        The NUnit task has a new attribute errorproperty that allows
        users to set a property if NUnit signals a test failure.
      </action>
    </release>
  </document>
