----- Original Message ----- From: "Ian MacLean" <[EMAIL PROTECTED]>
To: "Gert Driesen" <[EMAIL PROTECTED]>
Cc: "Nant-Developers (E-Mail)" <[EMAIL PROTECTED]>
Sent: Friday, August 20, 2004 5:13 AM
Subject: [nant-dev] Re: install targets



Gert Driesen wrote:

Ian,

After giving it some more thought, I think the "install" target of the makefile should install the pre-built binaries and docs for official NAnt distributions, not and rebuild the binaries from source. We went to a lot of trouble in order to have a single binary distribution, and I'd hate to see all that effort go to waste.

I disagree - this goes against how every other open source project packages their distribution.

As I said before - its a source distribution that happens to include pre built binaries *not* a binary distribution.

I actually consider it to be a binary distribution that happens to include the source ;-)


I just don't understand why I went through all the trouble to allow us to have a single binary distribution that can still take advantage of framework-specific assemblies, if we instruct users to build a framework specific version of NAnt. Quite a while ago, we did agree that we should have a single binary distribution that would work on all supported CLR's out-of-the-box, right ? And now that we have it, we'd go back to having a framework-specific binary install (with only very limited docs on linux) ... not sure I understand the reason behind this ...

What we should have (in my opinion) is :

- a source only distribution (containing only the binaries necessary to build NAnt)
- a full binary distribution which would work on all supported CLR's and platforms (this would be offered as a zip file or tar)
- an RPM release for linux
- an installer release for Windows


These last two would also install a full binary distribution ofcourse ...

Also, the install targets in the NAnt build file should no longer depend on other build/doc targets (but they should just install whatever files are available in ${build.dir} (limited to bin, doc and examples directories). The dependency on other NAnt build target should be taken care of in the makefile.

why is that ? sure you'd want to install somthing thats built -- isn't that the point ? if you do a make install with most OSS projects it will build first if its not up to date.

Yes, for source distributions that is .... But users cannot always build a version of NAnt that is identical to what we want distribute, while they still expect it to be ...


For example :

Let's say we have an assembly that is Mono-specific. If we encourage users to build NAnt from source, then users that don't have Mono installed will not be able to build the Mono-specific assembly. However, when they install Mono three later they would have been able to use the Mono-specific tasks however these are not available (without rebuilding) ....

I'm not saying that we can't have users building from source, ofcourse they can ... but we should not instruct them to do so ....


Why should the dependency happen in the makefile ? Lets use NAnt for this - its a build tool and it handle dependencies fine.

The reason why I wanted this is to allow the install targets to be used from either the makefiles (to install either a freshly built NAnt or the pre-built binaries) or the nightly build ....



my proposal - 2 download packages:

1) binaries only with a simple shell script to install on linux, batch file for windows -- hopefully installer at some stage.
2) source package that mirrors the cvs tree. Use Make install to build install on *nix, bin\NAnt.exe install to build install on windows.


This is a fairly standard packaging practice

It is because most oss project are not able to provide a single binary distribution that works on all supported platforms ...


- getting clever with
multiple Makefiles seems like a recipe for confision.

What's difference between multiple makefiles (one for cvs/source distribution and one for binary distribution), and one makefile and one shell script/batch file ? I don't see more or less confusion for any of these ... It might even better to just be able to use "make install" for both the source and the binary distributions ...


Regardless of that, users should actually use the binary release, not the source release ... The binaries build from source will not match those that are part of the binary release, this should be made very clear to the users ... The binaries built from source will not be able to run on all supported frameworks, will not be able to run on all supported platform, will not support all tasks ... and even the version number will not match that of the binary release ...

Gert



-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers

Reply via email to