Attached is a .zip of what I would like to check into NAnt.  It was made
from contents of CVS as of Thursday with some minor code changes (bug fixes)
but has a somewhat different directory structure and buildfile.

I'm going to wait 2 days for feedback and unless there is anything pressing
I'm going to ask SourceForge to rename the folders in CVS to make these
changes while hopefully preserving our revision history.

--

The goal is to restructure the NAnt CVS directory structure so that:

Goals for CVS refactoring:
* All you need to run NAnt is the NAnt.CoreTasks.dll and either nant.exe
(console runner) or winnant.exe (gui runner).  If you are building a custom
runner all that you need is NAnt.CoreTasks.dll.  Reduce the core to a bare
minimum of tasks.  Allow for different environments other than Microsoft.

* Provide a way of doing configuration management (hence the master/
version/ and release/ folders

* Clean up source folder into something that will last into the future.
Currently the names are a bit blurred.  Fixing this isn't going to get any
easier.

* Allow new *Tasks assemblies to be dropped in and built auto-magically so
that users can easily start creating new tasks that are specific to their
build environment.


Proposed directory structure:

// The master branch is where all development occurs. NAnt\master\

        bin\
                // console runner
                nant.exe

                // gui runner
                winnant.exe (only a suggested name)

                // core tasks (tasks that require only the .NET SDK and no
external programs)
                NAnt.CoreTasks.dll
                NAnt.CoreTasks.xml

                // Tools for building C# & VB with and compiler
                // NUnit, NDoc tasks
                // .NET SDK tool wrappers
                NAnt.DotNetTasks.dll

                // This config file provides the directories to the build
environment
                // Instead of relying on tools being in the path or env vars
                // This file will provide the location to use.  In the case
                // of using the mono compiler/tools this file will be what
                // you edit to use.
                NAnt.DotNetTasks.config

                // Incorporates the NZipLib code into its own assembly
                NAnt.ZipTasks.dll
                
        doc\
                ...\
                reference\
        source\
                NAnt.CoreTasks
                NAnt.CoreTasks.Tests
                NAnt.Console
                NAnt.Console.Tests
                NAnt.Gui
                NAnt.Gui.Tests
                NAnt.Documenter

                // for building .NET applications
                // includes NDoc, NUnit, and .NET SDK tasks
                NAnt.DotNetTasks
                NAnt.DotNetTasks.Tests

                // incorporates NZipLib for <zip> and <unzip>
                // (possibly moved into NAntContrib project)
                NAnt.ZipTasks
                NAnt.ZipTasks.Tests


// The version tree is used for working on specific versions.  When it comes
time // to make a release you branch from the master branch and start a
version. // Once you are happy with the state and are ready to make a
release create a label // on the version branch.  Create the release and
copy the files from that release // into the NAnt\release\x.x.x folder.  The
CVS label name should correspond with // the release name.  Once a release
is made it can never change.  To make a change // to a release start with
the version branch used to make that release, make the // change and create
a new release.  When applicable merge the changes back into // the master
branch.

NAnt\version\
        0.8\
                <complete copy of the 0.8 directory tree as it is now in CVS

        0.9\
                <the 0.9.0 release will be done from this folder>

        ...

NAnt\release
        0.7.9\
                nant-src-0.7.9.zip
                // what gets shown on SF
                notes.txt               
                changes.txt

        0.7.749\
                nant-0.7.749.5625.zip
                notes.txt               
                changes.txt

        ...


You can read more about where I got this idea from here:
http://www.ravenbrook.com/doc/1999/05/20/pqtcm/

I've been using this system (master/versin/release) in a number of projects
now and it has been great.

Gerry


-------------------------------------------------------
This sf.net email is sponsored by: Dice - The leading online job board
for high-tech professionals. Search and apply for tech jobs today!
http://seeker.dice.com/seeker.epl?rel_code=31
_______________________________________________
Nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers

Reply via email to