I just had a discussion with Fabio about the fact that the current
build process for NHibernate is fragile and error prone. We have far
too many situations where all of the sudden the build breaks. Some
reasons include

- the OS (Windows XP, VISTA, Server 2003 or 2008 32bit versus 64bit)
- Visual Studio (VS 2005 versus 2008)
- .NET framework (.NET 2.0 versus 3.5)
- nant (do I have the right version on my system and is the
environment path variable configured correctly)
- tests (do I have an SQL Server and do I have created the [test] and
[test2] databases
- human errors: some times a committer just checks in some thing that
only "works on his machine"
- etc.

all these factors accumulate to a situation which is far from optimal!
It's a while ago but I have written an article about how to configure/
prepare the system for NHibernate.

http://blogs.hibernatingrhinos.com/nhibernate/archive/2008/03/31/prepare-your-system-for-nhibernate.aspx

There I described how to download the latest source from trunk and
build it as well as for .NET 2.0 as for .NET 3.5.
But today I tried to follow this step-by-step guide and I miserably
failed... :-(     (not for the first time!)

I think that we can agree that we have now reached a broad adoption of
NHibernate. The more people are using NHibernate the better the build
has to be (did I hear "friction-less"?). And yes I am aware that most
of the people just take the available GA (currently 2.0) but there is
still quite a big number of people living on the trunk (myself
included).

As Fabio told me: "..nobody is willing to (really) maintain the nant
based build..."

My suggestion is now to completely re-work the build of NHibernate and
implement it e.g. with a "better" build tool that xml-based nant or
msbuild files. My suggestion would be "rake" (other suggestions are
welcome).
In a first phase we can run this new build in parallel to the current
nant based build until every body can feel the difference
(by the way: the guys maintaining fluent-nhibernate did already base
their build on rake... ;-) )

Before I start implementing something I would love to hear some
feedback about this.

a) do you agree that the current situation is a pita?
b) do you think completely re-working the build and use a different
tool (e.g. rake) is adequate?
c) did I forget some thing?
d) are you willing to help?

Reply via email to