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