Tarmac 0.2 released!

July 11, 2009

The Tarmac team is more than pleased to announce the release of Tarmac 0.2. Tarmac has received many improvements and features in the last few months, and, thanks to the efforts of many who sprinted yesterday, Tarmac 0.2 has had some great polish applied to it as well.

Tarmac now supports the ability to run a command on merge previous to commit, and, should that command fail, reverts the change and alerts the user to the failure. Tarmac supports this through its new plugin system. Tarmac 0.2 is also packaged with a Commit Message Template plugin to enforce a standard commit message on merge, and a plugin for notifying the CIA.vc service of new merges.

Other notable features include a web interface for checking the status of Tarmac, improved conflict handling, updated documentation and preliminary Windows support. Also, Tarmac now properly attributes the author of the merge commit to the author of the last merged revision. For a list of all bugs fixed, see the Tarmac 0.2 bug list.

Comments | Tagged as: launchpad tarmac

Why Tarmac Won't Ever Be Part Of Launchpad

July 8, 2009

So I counted my fingers and toes (including thumbs) and I still can't count how many people have asked me about the possibility of having the functionality of Tarmac (automatic merging) built into Launchpad. The short answer is "No." The long answer is also "No."

There are many reasons for this. The first one I can come up with is the test suite. Sure, you can automate the merging of branches, but c'mon, what's the point of automating it if it's just going to propagate breakage? So the running of tests is relatively essential in automated merging. Elliot got a patch into Tarmac the day after 0.1 to do just this, and I have recently refactored it to work as a plugin. So, for instance, Entertainer can have approved merges, and Tarmac will check out a fresh copy trunk, merge in the branch, and run the tests. If the tests pass, it lands, if not, then the test output is added to the merge proposal. The problem with this is that many test suites take a very long time to run. Others may be quite CPU intensive. As one can imagine, that can require a lot of hardware.

Now, think of test suite you're running. Who wrote it? Not the Launchpad folk. PQM has put a lot of effort into making sure that the tests are run in a sandbox, and not in an environment that would have security implications. In fact, I've put a lot of thought into how to run the tests in a chroot environment for the Tarmac instances I maintain. This is quite a complicated setup.

Lastly, you may need a build environment. Maybe you're working in Windows, or you need a database, etc. These things are pretty specific to an environment. The possibilities are endless. This also has huge hardware implications.

Bottom line: Provide your own test environment, run Tarmac on a cron, make your development team happy.

Side note: I'd love to see if Tarmac would run on Windows. I don't have any Windows machines around, so (for bonus points) would someone please volunteer to try it there? Update: John Meinel was awesome enough to hack on Tarmac enough to get it running on Windows, and the branches have been submitted for review. This means that Tarmac 0.2 will have Windows compatibility as well. Woot!

Comments | Tagged as: launchpad tarmac

Tarmac sprint this Friday (10 Jul 2009)

July 7, 2009

Want to hack on Tarmac? Want to learn how to use the Launchpad API (or want to use your existing knowledge)? Want to learn to use bzr's functionality programmatically? There is a Tarmac mini-sprint scheduled for Friday, 10 Jul 2009 in #tarmac on Freenode. Tarmac 0.2 will also be released this weekend based on the work completed on Tarmac on Friday.

Also, if you'd like to know more about Tarmac, or would like to participate, please join the Tarmac Launchpad group and subscribe to the mailing list.


Introducing Tarmac - The Launchpad Branch Lander

March 4, 2009

I'd like to announce the release of Tarmac, the robotic landing bot for Launchpad. The idea is simple. You have a development focus branch that constantly needs to have branches landed on it, but you're too busy writing your own code to manually land them in trunk. Tarmac takes the difficulty out of this by checking your development focus branch for approved merge proposals, and merging them automatically.

You can read the README file, grab the Tarmac 0.1 tarball or just get the bzr branch with bzr branch lp:tarmac. This first release is just a little more than "the simplest thing that could possibly work" because I wasn't exactly sure what features were the most important to other potential users. This means feature requests and patches are most certainly welcome (it's why I use Launchpad). Please feel free to file bugs with the features you'd like to see.

Tarmac is licensed under the GPLv3.