Last night as a few of us were working on the webvtt code, Dale popped into channel to ask if others were having trouble building. After a few minutes we concluded that the tree was indeed broken, and that the last commit had failed to add some header files, update Makefile.am, etc. This kind of thing happens all the time, and it’s the reason that smart developers have learned to never trust themselves, and instead rely on continuous integration.
Some months back I tasked Michael with getting our project building in TravisCI. If you’ve never used it before, TravisCI is not unlike Mozilla’s Try-Server. By adding a git hook to your project, a config file to the root of your source tree, and wiring Travis and Github together, you get per-commit, clean-room builds of your code. Better still, you get this integrated into pull requests, such that anyone wanting to merge is going to see (and show others) that the build is working or failing.
I spent a few minutes integrating what Michael had done into my repo last night so we wouldn’t burn the tree down again. I’ve added a build status icon to our README.md, which points at our Travis build page. Anyone doing pull requests from now on will get live feedback from Travis/Github about the state of the build in gcc and clang on Linux. Once we get the test harness integrated we’ll add tests to this too.
I’ve set it up to notify us on IRC, but there is a bug in Travis which seems to affect irc.mozilla.org. Hopefully that will get fixed soon so we can see build status there.
I continue to be impressed with TravisCI, and would highly recommend it for your project.