Tuesday, 24 March 2009

Seductive Infrastructure

I've finally started using mq (Mercurial Queues) routinely. It fits the way I work very well. When I have several bugs on the boil I can now easily track the individual patches. I can also easily work with big changes that are factored into multiple patches. When one piece of work depends on other pieces whose patches haven't landed yet, it's so easy to put the prerequisite patches in the queue and keep making progress without getting into patch management hell (or branch merge hell). This is increasing my productivity, and it's fun too.

Another great development is tests on the try-servers. Now you can upload a patch to the try-server farm and it will build the patch on all three tier-1 platforms, produce installation packages, and run all our automated tests on the tier-1 platforms!

What makes it all really seductive is "push-to-try". If you've already got your tree patched with some mq patches, all you have to do is hg push -f ssh://hg.mozilla.org/try/ and eventually all the builds and test results will appear automatically! It couldn't be easier.

The only problem is that the try-servers are now so convenient and useful, they're constantly swamped with developers taking advantage of them :-). That's a good problem to have. As Jonas noted the other day, we don't need a server pool, now we need a server ocean. A success disaster in the making! :-)