Nightly Builds And Open Source Projects

Many open source projects provide so called "nightly builds" for their users. The benefits of having such nightly builds are big and outweigh the time and effort it takes to set them up by magnitudes.
But why is it that only the larger open source projects provide nightly builds? And not even all of the larger projects provide them, only a few of them do.

Benefits

Let's first have a look at the benefits of nightly builds:

Immediate feedback
Every time a new feature is added or an existing one is changed, users can start testing it the very next day and report back. This leads to valuable feedback on the feature and the UI. Suggestions from users can be used to further improve the feature and the UI. Without nightly builds, feedback would only happen after an official release which just isn't a good option.
Easier defect diagnosis
The feedback from users isn't just in form of suggestions. They can also report back bugs they find. If a new bug surfaces, it's easier to find the source of the bug because you can find out between which builds the bug got introduced. With nightly builds, that time period usually is only a few days which you have to look at closely. With official releases you might have to look through a much bigger changelog to find the time/day you introduced the bug.
Clean builds
With nightly builds, you can assure that your application actually builds. Without them, it often happens that you can build the application on your own workstation, but it would break on others. Maybe because of the simple mistake of forgetting to add a new file to version control, maybe because of more complicated issues. If such a mistake happens, you will know the very next day because the nightly build will fail. Without the nightly build, you might go on for weeks until you notice it, and then it's much harder to pinpoint the source of the problem.
Checking fixed bugs
After a bug got fixed, the user who reported that bug can try out the next nightly build and check wether the bug really got fixed or if there's still an edge case left to fix. This is especially important when you consider how many different OS configurations are out there, which all of them you simply can't test yourself. Some bugs only show up with certain configurations which only the user who experienced the bug can really tell if it's fixed or not. Since open source projects heavily rely on users to help testing the application, this is maybe the most important benefit.
Users don't have to wait for an official release
Sometimes, users just need a new feature or a bug fixed as fast as possible. While it is not possible to push out a new release of an application every week, you can refer those users to the nightly builds. Then they can decide themselves if they want to use a nightly build or rather stay with the last official release. Expecting users to compile the program themselves is ridiculous. Most of them don't have the tools it needs to compile the application, the others simply don't have the time. And considering how many dependencies even a mid sized application has, the time to get every library in the correct version and finally get the build running is just too much to ask.
Lower barrier for users to participate
Not all tasks in an open source project require programming skills. There are many important tasks which "only" require writing skills, for example helping out with the documentation or translating strings of the UI. Depending on the format of the documentation, you also need to install and set up some tools to compile the documentation into its final form (e.g. html, pdf, chm, ...). With nightly builds, those users who want to help out with those tasks don't have to actually install and set up all the tools. They simply can write the documentation or translate the strings with a simple text editor, and then check the result the next day in the nightly build. The possibility to simply use a text editor lowers the entry barrier a lot and helps recruiting much more people for those tasks.

Nightly builds doesn't necessarily mean only binaries of the application. It can also mean builds of the documentation.

Open Source Hosting Providers

So nightly builds are important, especially for open source projects. Then why is it that most hosters of open source projects don't provide the means for developers to actually set up nightly builds? While all of them provide the tools to host the sourcecode and the release binaries, they all lack the ability to actually upload files automatically. And uploading files automatically is necessary - otherwise nightly builds don't work. A nightly build where a developer still has to manually upload the resulting files is useless, because no developer will do that every day. So the upload must be possible by running a simple script.

Let's check the most used open source hosting providers:

SourceForge.net
Sourceforge currently hosts over 128,700 open source projects. While each project can upload files automatically to the project webspace, the terms of use specifically forbid to use the webspace for binaries. And the file release system is not scriptable. At least it is possible to provide nightly builds for e.g. generated documentation.
Berlios.de
Berlios.de is the only open source hoster I know which provides the means for nightly builds. They provide an anonymous ftp space where all users have read access. Developers can upload the nightly builds there via SCP.
Tigris.org
Tigris does not provide automatic file uploads. The only way to do that would be to add the binaries to the source control system (CVS or Subversion) and commit those binaries. But that's not an option for nightly builds - the source code repository would grow way too much for no good reason.
CodePlex
This hosting service from Microsoft also doesn't provide automatic file uploads. I haven't used this service myself, so I'm only telling what I've read in their docs.
Google Code Project Hosting
This service from Google is fairly new, and currently doesn't even provide the means to upload files at all. While that possibility is planned, I don't know about whether it will be possible to upload nightly builds automatically.

Conclusion

Since most open source project hosting sites don't provide the means to upload nightly builds, smaller projects simply can't provide them to their users. Only bigger projects which have their own servers (or like TortoiseSVN who have someone providing such a server space) can actually provide nightly builds.

While I really appreciate all the free open source hosting services out there, they should provide the means to upload binaries automatically. If they really want to help the open source projects, want to help them improve and attract a bigger user base this is one feature they should implement rather sooner than later.