We're now doing daily builds of all the Novacut components for Ubuntu Quantal (in addition to Precise), even though we'll continue to run Precise on our dev machines for some time. With just a bit of initial setup, these daily builds give us an early warning about packaging or code changes that might be needed for Novacut to work well on the next Ubuntu release.
Our daily PPA has pumped out 814 builds so far, and of those 20 have been "failures"... occasions when the daily build gave us exactly the early warning we wanted.
We do our daily builds using Launchpad Source Package Recipes, and I can't recommend them enough. For example, here's the Source Package Recipe for filestore.
We also run most of our unit tests during the builds (I don't know why, but for some reason you can't import Gtk
inside the build environments, so that's why not all our tests are run). We've adopted the setup.py test convention for running our Python unit tests, because that's what Barry Warsaw says you should do, and he's awesome. So you can run the unit tests for any of the Novacut components like this:
./setup.py test
Also following Barry Warsaw's advice, here's the debian/rules file for filestore, which you can use as an example of how to run setup.py test during your Debian package build.
If you look in this filestore build log, you'll see that all 72 unit tests were run and passed (starts a bit past half-way into the log).
Between the builds and the unit tests, we can be fairly certain that our packages will install and work correctly on the next Ubuntu release. And most importantly, we don't have to lift a finger for it. Each time a commit is made to trunk, Launchpad will automatically do a build (up to 1 per day automatically, although you can manually trigger more than that when needed).
And one last note: if you follow this approach, you might need to add some additional packages needed for your unit tests into your Build-Depends in debian/control.
So are you using Source Package Recipes to help you deliver higher quality software to your Ubuntu users? If not, Quantal is a great time to start!
Update: Thanks to help from Rodney Dawes, apparently this is the trick to get around the issue I had importing Gtk
in the build environments:
unset GTK_MODULES && xvfb-run -a ./setup.py test
Rodney also said:
(07:20:00 AM) dobey: also, you need to be careful with setup.py test
(07:21:06 AM) dobey: as it can potentially test against things which aren't actually
in the distro
(07:21:25 AM) dobey: since it has the "download and build deps from pypi magic" stuff
Which is a good word of caution. Myself, I've always avoided "pypi magic", preferring real packaging instead :P Thanks, Rodney!