RE: [nant-dev] NAnt and Gump -- getting closer...

2004-09-08 Thread Clayton Harbour
  Clayton was wondering if we could use References inside NAnt, and 
  Gump write a pre-defined include file [it does something 
 similar when 
  it run Maven]. Does this idea have legs? Will it work for 
 compiles and 
  tests?
 
 I don't think it would work for tests.  Can you specify the 
 path to nunit.core.dll at runtime for NAnt's nunit task - 
 or maybe before runtime, but to a value that may be different 
 every day?

Hi, sorry I am ringing in so late it has been a long day.  Adam I think
we were talking more or less about the include file that could be used
to override a path in a build file (i.e. a lib directory).  So the
referencing file/ build master file would look something like this:
include buildfile=my.local.xml failonerror=false/

csc target=exe output=HelloWorld.exe debug=true
nowarn
!-- do not report warnings for missing XML
comments --
warning number=0519 /
/nowarn
sources
include name=**/*.cs /
/sources
resources dynamicprefix=true prefix=HelloWorld
include name=**/*.resx /
/resources
references
  include name=${lib.dir}/MyLibrary.dll/
include name=System.dll /
include name=System.Data.dll /
/references
/csc

And then in your local copy of gump you would override lib.dir:
property name=lib.dir value=/my/new/lib/dir
readonly=true/

Applying this to the NAnt.build file would give you the ability to point
at a different bin folder (pseudo build file):

!-- in include file --
property name=lib.dir value=/my/root/lib/dir/
property name=lib.family.dir
value=${path::combine(lib.root, lib.family.dir)} readonly=true/

!-- and in NAnt.build this line would now point at your new lib root
path
if the include was added to the build script
--
property name=lib.framework.dir
value=${path::combine(lib.family.dir,
framework::get-version(framework::get-target-framework()))}
dynamic=true /


It would not allow you to change the nunit/ binary at runtime though
but you could recompile with a freshly built bin dependancy tree...which
would in effect allow you to run with a different version of nunit.

It is late so I hope that makes sense :-).


Cheers,


Clayton


---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_idP47alloc_id808op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] NAnt and Gump -- getting closer...

2004-09-07 Thread Stefan Bodewig
On Tue, 7 Sep 2004, Adam R. B. Jack [EMAIL PROTECTED] wrote:

 I think the answer is 'who decides what is the right approach', and
 I feel it is the NAnt team.

Yes, I agree.  We may need to explain in more detail what we want to
do and why we want to do that with Gump, but we need the expertize of
the NAnt folks to achieve that.

 I'd like to have the nant.xml metadata describe a bootstrap-nant
 project (maybe we call it mini-nant) that calls the script (that
 uses mini-NAnt to build NAnt.exe, wherever that is) and then we use
 that to build the next projects.

The script would need to know which framework you intend to use.  For
the Bourne shell script this simply means something like

#!/bin/sh
mono bin/NAnt.exe

(ignoring Rotor and DotGNU for now) but the Windows batch file is a
different beast.

 If there really is no purpose for a script I could add an exe
 element to Gump, but that worries me (only a little).

Again, you'd need to handle it differently when running Mono (you
don't invoke the executable directly).

 As for the GAC, and the DEVPATH environment variable, we don't have
 a perfect answer yet -- do we?

No, I don't think we have.  Since we control the machine running Gump
we can ensure that the GAC is more or less empty.  After that we may
get away with the dump everything into a single directory strategy.

 Clayton was wondering if we could use References inside NAnt, and
 Gump write a pre-defined include file [it does something similar
 when it run Maven]. Does this idea have legs? Will it work for
 compiles and tests?

I don't think it would work for tests.  Can you specify the path to
nunit.core.dll at runtime for NAnt's nunit task - or maybe before
runtime, but to a value that may be different every day?

 As for output -- it exists (as do artifact and jar) and ought
 work.  Artifact and Jar are simply aliases (right now) with no extra
 meaning. What types were you thinking of Stefan? type=library
 and|or executable or something?

type=jar|license|library|executable|documentation|...

 As for language=csharp, if there truly is no significant
 difference between the various languages, I am more than game to do
 platform=dotnet|java.

I think this would be the correct approach.

 BTW: Ought we attempt to contribute metadata for the mini-nant up to
 nant projects (including log4net, etc.) and see if we can get that
 working from within Gump? I think that makes a good first goal.

I don't understand that, sorry.  Are you asking whether we should try
log4net first once we manage to use NAnt from within Gump?  Yes, it
looks like a good candidate.  As would NUnit.

Stefan


---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=5047alloc_id=10808op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] NAnt and Gump -- getting closer...

2004-09-07 Thread Adam R. B. Jack

  BTW: Ought we attempt to contribute metadata for the mini-nant up to
  nant projects (including log4net, etc.) and see if we can get that
  working from within Gump? I think that makes a good first goal.

 I don't understand that, sorry.  Are you asking whether we should try
 log4net first once we manage to use NAnt from within Gump?  Yes, it
 looks like a good candidate.  As would NUnit.

When working with Clayton on Saturday we had NAnt being called by Gump (on
it's own source), but that was a simple invocation (with NAnt expected to be
on the path). The work for calculating a DEVPATH is in there, but untested
in that simple scenario. Take a peek at gump-n.xml (workspace and profile)
for this.

Above I was discussing trying to set up the mini-nant (ala bootstrap-ant) to
nant (ala ant) metadata, i.e. all the projects that are in this work list
that Jaraslow (aka Jarek) wrote:


---
Jarek wrote:

 BTW. I've been thinking about it for a while and the process of fully
rebuilding NAnt is quite complicated:

1. Download NAnt sources from CVS
2. Bootstrap NAnt using mini-nant and binary libraries found in CVS (bin/lib
directory)
3. From now on, use the bootstrapped NAnt
4. Download and rebuild the platform-neutral version of log4net.dll
5. Download and rebuild the platform-specific version of NUnit.*.dll
6. Download and rebuild the platform-specific version of NDoc.*.dll
7. Download and rebuild the ICSharpCode.SharpCvsLib.Console.dll referencing
the log4net.dll built in step 4
8. Download and rebuild the ICSharpCode.SharpZip.dll
9. Put the just-built DLLs in the appropriate nant/bin/lib subdirectory
11. Bootstrap NAnt again by using the previously built nant (not the
mini-nant) and the fresh libraries



---

If we can square away this set of projects, and get this behaviour correct,
and then (for projects that depends upon project==nant) use the output
from 11, then I feel we've achieved a good enough/tested enough base.

regards,

Adam



---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=5047alloc_id=10808op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] NAnt and Gump -- getting closer...

2004-09-07 Thread Adam R. B. Jack

 The script would need to know which framework you intend to use.  For
 the Bourne shell script this simply means something like

 #!/bin/sh
 mono bin/NAnt.exe

 (ignoring Rotor and DotGNU for now) but the Windows batch file is a
 different beast.

We could set a Gump parameter in the workspace and launch
nant-%FRAMEWORK%.[sh|bat] as the script, meaning a different one per
framework. Alternatively we could pass the framework as a parameter.
Whichever works best for the NAnt community...

regards

Adam



---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=5047alloc_id=10808op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] NAnt and Gump -- getting closer...

2004-09-07 Thread Jaroslaw Kowalski
I don't know exactly what you're trying to achieve with Gump, but IMO things
are much easier than you think if you fully utilize NAnt's potential.

Nant is quite a portable beast today. It can run on 4 platforms (mono-1.0,
net-1.0, net-1.1, net-2.0) and compile for some more (netcf-1.0 and sscli).
The platform of your choice influences all .NET tasks and involves
platform-specific lookup and commandline parameter pasing. Many things have
been done to assure platform independence so that you can run target
multiple platforms with little to no change in your build scripts. NAnt
provides all the logic to detect the presence and location of
platform-specific assemblies and to pass them as arguments to appropriate
commandline compilers.

On windows it's possible to target all the platforms (including mono for
windows).
On Linux it's only possible to target mono-1.0.

To compile for a particular platform you simply run

nant.exe -targetframework:net-1.0 buildfile.build
nant.exe -targetframework:net-1.1 buildfile.build
nant.exe -targetframework:net-2.0 buildfile.build
nant.exe -targetframework:mono-1.0 buildfile.build
nant.exe -targetframework:netcf-1.0 buildfile.build

If you don't provide the target platform it's assumed that you want to
target the current platform you're running on (.NET 1.1 in most cases, but
can be .NET 2.0 or .NET 1.0).

Nant can be run from any directory, there's no need to invoke it in the
build file directory.
The sequence used to download, compile and install nant from CVS is very
simple:

cvs checkout nant
nant\bin\NAnt.exe install -f:nant\NAnt.build -D:install.prefix=targetprefix

I believe that all steps necessary to fully bootstrap nant from source
(including external dependencies) can be easily put in a single build file
that would be invoked by just-bootstrapped nant itself.

The build would be very simple and would just consist of cvs-checkout,
nant and copy tasks.

Or perhaps I am missing something... Correct me if I'm wrong.

Jarek

BTW. You may contact me on ICQ #298783166 or somewhere on IRC

- Original Message - 
From: Adam R. B. Jack [EMAIL PROTECTED]
To: [EMAIL PROTECTED]; [EMAIL PROTECTED];
Stefan Bodewig [EMAIL PROTECTED]
Sent: Tuesday, September 07, 2004 6:37 PM
Subject: Re: [nant-dev] NAnt and Gump -- getting closer...



  The script would need to know which framework you intend to use.  For
  the Bourne shell script this simply means something like
 
  #!/bin/sh
  mono bin/NAnt.exe
 
  (ignoring Rotor and DotGNU for now) but the Windows batch file is a
  different beast.

 We could set a Gump parameter in the workspace and launch
 nant-%FRAMEWORK%.[sh|bat] as the script, meaning a different one per
 framework. Alternatively we could pass the framework as a parameter.
 Whichever works best for the NAnt community...

 regards

 Adam



 ---
 This SF.Net email is sponsored by BEA Weblogic Workshop
 FREE Java Enterprise J2EE developer tools!
 Get your free copy of BEA WebLogic Workshop 8.1 today.
 http://ads.osdn.com/?ad_id=5047alloc_id=10808op=click
 ___
 nant-developers mailing list
 [EMAIL PROTECTED]
 https://lists.sourceforge.net/lists/listinfo/nant-developers




---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=5047alloc_id=10808op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers


Re: [nant-dev] NAnt and Gump -- getting closer...

2004-09-07 Thread Adam R. B. Jack

 I don't know exactly what you're trying to achieve with Gump, but IMO
things
 are much easier than you think if you fully utilize NAnt's potential.

Yeah, I think we need to step back and make that clear.

Gump is attempting to emulate a rabid OSS developer, perform the steps a
developer would do in order to download and build NAnt, and then others -- 
from scratch. This OSS developer is particulary anal, they don't want
yesterdays build ... they want it fresh, everything the very latest. Their
objective isn't to run this, it is to monitor for changes, disconnects. If
project X breaks project Y the developer wishes to feel this pain. This
automated developer is there to reduce pain for human developers/users, and
to catch interface change pain early! If early enough perhaps the problem
can be resolved before a release is made, and a problems gets into the
field.

Gump is a Python program that interacts with things (CVS, SVN, Shell, Ant,
Maven) and we'd like NAnt. Gump wants to bootstrap NAnt 'cos it was to also
catch NAnt changes --- not just compilation, but runtime. Being an outsider
is important. Gump is Python (not Java) so it is spearate from concerns of
the platform, and this ought make it a good candidate for working on DotNet.

We want to work with NAnt as NAnt ought be worked with, but not inside NAnt,
outside -- as a developer would be. Further, we want to allow existing NAnt
scripts -- as they exist today -- without change. This allows projects to
benefit from Gump without changing how they work. At least, that is what
we'd like.

For more/historical information see:

http://gump.apache.org/why.html

regards,

Adam



---
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=5047alloc_id=10808op=click
___
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers