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