Gert Driesen wrote:

Ian,

I guess these was somehow a misunderstanding, but in the README.TXT you actually added a section called "Compliation and installation" in which you provide these instructions ..

sure - then that should probably be "Compliation and installation of a source distribution" with a seperate

"Installation of a binary distribution" section

or we provide seperate README's for source and binary. Previously there were *no* instructions at all for building - thats why I added them.

. These could easily be mistaken for instructions to install official releases ...

Well - it quite clearly says "compilation" - if the official binary release doesn't contain source or a NAnt.build file (which it shouldn't) then users can hardly compile by accident can they ?


Currently, we only provide one means of "installing" NAnt (meaning using "make install" from the source distribution), so users are very likely to use that to install official distributions too (meaning they'll download and install the source distribution, while they should in fact use the binary distribution) ...

ok - well then lets split into source and binary distros as soon as possible.

The current layout is already confusing. How many "I downloaded version x of nant but the test failed when building" emails do we get - to which we reply "you don't need to build - its already there". If there is no makefile or NAnt.build in the binary distribution then this won't happen.

So we should make it very cler that this is not the recommended way to install official releases of NAnt ...

of course.

Ian

Gert

----- Original Message ----- From: "Ian MacLean" <[EMAIL PROTECTED]>
To: "Gert Driesen" <[EMAIL PROTECTED]>
Cc: "Nant-Developers (E-Mail)" <[EMAIL PROTECTED]>
Sent: Friday, August 20, 2004 10:51 AM
Subject: Re: [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 ;-)


thats the problem - right now we are a bit of both - thats what we need to change.


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.


we don't instruct them to do this -- that the point - we don't instruct them to do anything but quite often they *do* build it because there is a buildfile/make file and we never really provided proper installation instructions.

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 ...

no - completely incorrect. The install target is *not* a substitute for a binary installer. Its a convenience for when you build from source. Its not meant to used as the installer for an end user.

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 ...

I totally agree. I thought thats what I basically proposed.

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 ...


sure - again we are cross purposes -- Makefile is for building from source, somthing else for a binary distribution.

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 ....

yes yes yes - I'm not saying we should instruct them to either -- hence the seperate source and binary distributions. The buildfile/make file should *not* be the installer for the binary only distribution.


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 ....


once again - the makefile should not be the installer for pre-built binaries IMHO.


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 ...


thats not true - its the standard for source based distributions - which is what the install targets are for - a source based distro. The binary distro should be seperate.

- 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 ...


because a makefile is not a good substitute for an installer. Make is used for building things, not installing them as a general rule.

./install.sh clearly tells a user that they are installing somthing
make install looks like somthing is going to be built - which is not the case.


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 ...

again - thats exactly what I've said. Nowhere did I say that users should/must build from source. The install target is a convenience for users who *choose* to build from source - not the de-facto installer. I'm not sure where you got the impression that I want to force people to build from source -- quite the opposite.


Ian



-------------------------------------------------------
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



--
Ian MacLean, Developer, ActiveState, a division of Sophos
http://www.ActiveState.com




-------------------------------------------------------
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