Skip to content


Subversion checkout URL

You can clone with
Download ZIP

Release Guide

rmboggs edited this page · 21 revisions

NAnt/NAntContrib Release Guide (Draft)


This page describes the process of performing a release for both the NAnt and NAntContrib projects. Please make sure that you check with the project admins and developers before generating an official release.


To build a new release, you need at least the following software on the build machine:


Before proceeding with building the release, please make sure that the following criteria is met:

  • Make sure that the following paths are located in the Windows PATH environment variable.
    • Path to nmake.exe
    • The cygwin bin directory.
    • The msysgit bin directory.
    • The gpg4win bin directory.
    • Both the .NET 2.0 Framework (path to csc.exe) and SDK bin paths.
  • Make sure that a clean version of both NAnt and NAntContrib is checked out from prior to starting the build processes.
  • Update the release notes (located in doc/releasenotes.html for each project) with all the changes relevant for the release.

Building NAnt Release

  1. Modify the following properties in to reflect the release that is being prepared:
    • project.release.type - Change this to either alpha#, beta#, rc# or release.
    • project.version - Change the value of this property to match the major and minor release number.
  2. Bootstrap NAnt:

    C:\path\to\nant.git>nmake -f Makefile.nmake bootstrap
  3. Execute the following command to make sure src/CommonAssemblyInfo.cs is updated for the release:

    C:\path\to\nant.git>bootstrap\NAnt -t:net-2.0 build
  4. Modify the following property in

    • create.assemblyinfo - Change the value of this property to false to prevent the CommonAssemblyInfo.cs file from being recreated in the distribution packages (and GIT).
  5. Build NAnt:

    C:\path\to\nant.git>bootstrap\NAnt -t:net-2.0 -f:release.xml
    • This step will automatically create the following files and attempt to upload the SourceForge File Release System.
      • nant-{major version}-{minor version}[-{release type}]
      • nant-{major version}-{minor version}[-{release type}]-src.tar.gz
      • nant-{major version}-{minor version}[-{release type}]
      • nant-{major version}-{minor version}[-{release type}]-bin.tar.gz
    • If the upload process fails, upload the release files to manually.
  6. Go the SourceForge File Manager and make sure the appropriate file is selected as the default for downloading on each platform.
  7. Modify web/index.html in the build directory for the current release (eg. build/nant-0.85-rc3) to add information about the new release.
  8. Copy the modified web/index.html to the web directory in the local git working copy.
  9. Commit the following files to NAnt's git repo.
    • doc/releasenotes.html
    • src/CommonAssemblyInfo.cs
    • web/index.html
  10. Create a tag for the release:

    C:\path\to\nant.git\git tag -s {tag name} -m "{tag message}"
    • {tag name} is constructed using "rel-{major version}-{minor version}[-{release type}]".
      • rel-0-85-rc4 - NAnt 0.85 Release Candidate 4
      • rel-0-85 - NAnt 0.85 RTM
    • {tag message} should be brief.
      • Tagging NAnt 0.85 Release Candidate 4
      • Tagging NAnt 0.85 RTM
  11. Push the recently created tag to git master

    C:\path\to\nant.git>git push --tags
  12. Upload the new web site by executing the following command:

    C:\path\to\nant.git>bootstrap\NAnt.exe -f:release.xml deploy-web-sf
  13. Verify the website has been updated, and all the links are working.
  14. Modify the following properties in back to indicate the development status of git master branch:
    • project.release.type - Change the value of this property to dev.
    • project.version - Change this to match the version number of the next release.
    • create.assemblyinfo - Change the value of this property to true to re-enable automatic creation of the CommonAssemblyInfo.cs file.
  15. Commit to git master branch.

Building NAntContrib Release

Something went wrong with that request. Please try again.