Hey Charlies,

Some quick responses:

NAnt.build
==========
I don't consider NAnt.build internal. The nightly.xml and release.xml are
internal though, as these are used to build releases and nightly builds (or
CI).
In general, one should be able to build NAnt using its build file with the
previous official release. But the recommended approach is to 
bootstrap NAnt (using make/nmake) and then using that bootstrapped version
(with the NAnt build file) to build the full version. I think Ant uses the
same approach.

nant:scan-probing-paths
=======================
This function searches the probing paths - as defined in the NAnt
configuration file - of the current target framework for a given file
(generally an assembly). The advantage to using this function is that we can
move around (third-party) assemblies without affecting our build file(s).
For example:
We could have a given assembly located in lib/net/2.0 today, because it
contains code specific to .NET Framework 2.0 (hence we'd need a Mono
specific version as well).
If in a future release of that assembly that specific code is removed -
making this assembly also usable in Mono - then we could just move it to
lib/common/2.0 to make it available on Mono as well.
By using this function, we make sure we use that the (third-party) libraries
we use for building NAnt for a given target framework are the same libraries
that we use for running NAnt on that framework (CLR).

Linux/Mono support
==================
It's ok if this is not high on your todo list, but you should keep it in
mind.
That way you don't introduce stuff that is not portable / cross-platform.

Gert

> -----Original Message-----
> From: Charles Chan [mailto:cchan...@users.sourceforge.net] 
> Sent: dinsdag 16 februari 2010 4:43
To: Gert Driesen; nant-developers@lists.sourceforge.net
Subject: Re: [nant-dev] NAnt status report [2010-02-14]

Hi Gert,

Thanks for the information. I apologize if I appear to be stumbling a bit.

More comments below... you feedback is much appreciated.

Charles



----- Original Message ----
> From: Gert Driesen <gert.drie...@telenet.be>
> To: Charles Chan <cchan...@users.sourceforge.net>;
nant-developers@lists.sourceforge.net
> Sent: Sun, February 14, 2010 11:10:00 PM
> Subject: RE: [nant-dev] NAnt status report [2010-02-14]
> 
> Hey Charles,
> 
> That function - which I consider to be internal - may indeed not be part
of
> any official release.

That is sort of what I figured and worried (see below).

> So in this case, you can only build NAnt with:
> * a "nightly" build (which hasn't been uploaded in quite a while due to
> scp/rsync issues with sourceforge)
> * a bootstrap of NAnt (though make/nmake)
> This last option is the one I'd recommend.
>
> If that's ok for you, I'd like you to revert the changes to the build file
> that removed the use of nant::scan-probing-paths.
> Use of this function gives us more flexibility as to the actual location
of
> some libraries.

I don't have a problem against it, but I just need to understand the
mechanics of how the whole thing works. I believe the build/test/release
process should be as simple as possible so any developers can pick it up --
fast. If it doesn't work out of the box, then most people probably will not
spend time to figure out how to use it. This is my personal experience and
probably echo a lot of other people. Also, there should be as little
dependency as possible, and when there is, it needs to be fully documented.
Anyone should be able to check out the code and "go". This is also why I
favor the use of CI server, it gives immediate response, and helps checks
your code and the full build process. It also provides a secondary
configuration to test the build against. Of course, I understand there might
be reasons or difficulties that I am not aware of yet at this time, so I am
open to ideas.

Now back to the specific problem -- building NAnt with NAnt.
1) Is NAnt supposed to be built with make/nmake only? I guess my confusion
is that every project (that uses NAnt) has a .build file in the base dir.
However, building NAnt itself is probably different. Is NAnt.build internal?

     a) If 1) is true then: NAnt.build (nightly.xml and release.xml) is
meant for internal build/release only. In that case, these files should not
reside in the base folder. The average NAnt user does not need to be
bothered and therefore it should be moved to a sub-folder. 

     b) If 1) is false then: Users need to use NAnt.build and this is
currently problematic because building the latest NAnt requires a
non-released version of NAnt. I would suggest the following changes:
* Change the trunk version to 0.87
* In NAnt.build, detect the runtime version of NAnt. If version > 0.86,
continue. Otherwise ....
* Autodetect the platform, and use GNU make (linux) / nmake (windows) to
compile bootstrap NAnt. This will probably involve the <exec> task. Note,
however, we should not 'install' the bootstrap version.
* Use the bootstrap NAnt to complete the rest of the compile (NAnt.build)

Does this make sense? Can it be done? See any problem(s)?

2) Can you provide more details on what nant::scan-probing-paths() does?
What is special about it?

> Sorry if I haven't been very responsive yet, but I hope to make up for
this.
> Concerning your question about building on Linux: we actually have a linux
> box at our disposal through sponsorship by AOE media.
> I'll send you the details later (but don't hesitate to remind me if
> necessary).

Thanks. In regards to Linux, don't worry too much about it. It's not high on
my list of todo.



      __________________________________________________________________
Ask a question on any topic and get answers from real people. Go to Yahoo!
Answers and share what you know at http://ca.answers.yahoo.com

----------------------------------------------------------------------------
--
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
_______________________________________________
nant-developers mailing list
nant-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-developers

No virus found in this incoming message.
Checked by AVG - www.avg.com 
Version: 9.0.733 / Virus Database: 271.1.1/2690 - Release Date: 02/15/10
20:35:00


------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
_______________________________________________
nant-developers mailing list
nant-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-developers

Reply via email to