On 10/20/05, Evan Levy <[EMAIL PROTECTED]> wrote:
> This is what we do.  Developers develop with Visual Studio, and the
> build automation happens with Nant on the server pulling code from
> source control.  In fact, our developers don't really need to build
> locally at all (but they do anyway).  They can launch a server-side Nant
> build from a custom web page (you could also accomplish this with
> CC.Net).
>
> I can't see why you would need your developers to have Nant locally.
> This would require synchronizing the local and server Nant scripts.  The
> only caveat to this situation is that any special steps needed to
> produce you build output locally would need to replicated in Nant
> scripts.  Thankfully, that is exactly what Nant is good at, and you can
> make your server build far more powerful, integrating lots of disparate
> elements (like documentation, unit testing and distribution packages)
> that you could easily do locally.
>
> e

Regarding developers building locally, I don't think I agree with the
(implied) attitude mentioned above... if developers don't need to
build locally, then you are placing them in the role of code
generators, and the build server is then taking the role of quality
and correctness auditor.

I find that developer attitudes and quality improve when they are
given the role of quality auditors as well as code generators. 
Humans, in general, are better measurers of quality than computers
are, and simple things like mandatory code reviews, and encouraged
full-build-and-test before checkin I have found to dramatically
improve code quality.  The knock-on effects to reduced number of bugs,
improved developer morale and improved customer confidence (you may be
your own customer here) have always more than paid for the cost of the
developers' time to perform these checks.

Regarding keeping the server and developer scripts in synch, your
scripts are as much source code responsible for building the system as
any other files, and should be checked in with the source tree they
are building!

To simplify the synchronisation, and setup and upgrade of developer
machines, you could (as has been suggested in other posts to this
list) check the NAnt runtime itself into the source tree, say under
tools/nant.  That way, if you have multiple projects being built
separately, upgrading the version of Nant for one project doesn't
break the build for the other projects just because their build
scripts haven't been updated yet.
Your CM updates NAnt locally and checks that the build still works,
then checks in the new version of NAnt and updated build scripts...
and magically, transparently and simultaneously all of your developers
AND your build server are correctly using the new version of NAnt!


Final comment, if all of your developers are using the build script,
at least to verify changes before checking them in, rather than just a
single build server, any bugs or inconsistencies in the script are
much more likely to be found earlier (due to a much larger pool of
testers), allowing more time to resolve the issues before the critical
release phase.

--
Troy


-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
Nant-users mailing list
Nant-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-users

Reply via email to