Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Are daily builds the way to go for a web app?

Joel seems to think highly of daily builds. For a traditional compiled application I can certainly see his justification, but how does this parallel over to web development -- or does it not?

A bit about the project I'm asking for -- There are 2 developers working on a Django (Python) web app. We have 1 svn repository. Each developer maintains a checkout and thier own copy of MySQL running locally (if you're unfamiliar with Django, it comes bundled with it's own test server, much the way ASP apps can run inside of Visual Studio). Development and testing are done locally, then committed back to the repository. The actual working copy of the website is an SVN checkout (I know about SVN export and it takes too long). The closest we have to a 'build' is a batch file that runs an SVN update on the working copy, does the django bits ('manage.py syncdb'), updates the search engine cache (solr), then restarts apache.

I guess what I don't see is the parallel to web apps.

Are you doing a source controlled web app with 'nightly builds' -- if so, what does that look like?

like image 572
T. Stone Avatar asked Sep 17 '09 22:09

T. Stone


1 Answers

You can easily run all of your Django unit tests through the Django testing framework as your nightly build.

That's what we do.

We also have some ordinary unit tests that don't leverage Django features, and we run those, also.

Even though Python (and Django) don't require the kind of nightly compile/link/unit test that compiled languages do, you still benefit from the daily discipline of "Don't Break The Build". And a daily cycle of unit testing everything you own is a good thing.

We're in the throes of looking at Python 2.6 (which works perfectly for us) and running our unit tests with the -3 option to see which deprecated features we're using. Having a full suite of unit tests assures us that a change for Python 3 compatibility won't break the build. And running them nightly means that we have to be sure we're refactoring correctly.

like image 58
S.Lott Avatar answered Sep 28 '22 02:09

S.Lott