Tuesday, May 4, 2010

Web based build bots don't work for me

For MonoDevelop we want a stable trunk - many people use the trunk version of MonoDevelop for their daily work.
Unfortunately I tend to break the trunk from time to time (I think every developer does). Sometimes I just break some unit tests.

Therfore we set up a web based build bot for monodevelop:

This automates the build process & unit testing. In theory this will help all developers to stabilize the trunk.

But my experience said: WRONG

Before we had a build bot a build failure was recognized mostly by Lluis Sanchez (thanks lluis) or some users who informed me in IRC that there is something not working.

Now with the bild bot build failures are recognized mostly by Lluis Sanchez (thanks again) or some users who try to build monodevelop trunk and infom me on IRC that something isn't working.

How can this happen now that we've a build bot ?

-> I have to go to that page and check if I broke something.

This isn't really an improvement ... I have always to manually check, if I broke something.
I always wanted that the build bot send me an e-mail in case of build failure.
... but I think I would've missed that mail as well).

Then I had the idea:

Just write a little monodevelop addin which informs me, if the build bot found something. This way:
  • I would get informed without doing manual checks (-> saves time)
  • I wouldn't svn up a non working version (-> saves more time)
  • Maybe I would be more careful with check ins, if the build bot guard has some form of punishment when I break something (-> may save time for our user)
With this in mind I just wrote a small addin for us monodevelop authors (and maybe other MonkeyWrench users) I call 'Build bot Guard'.

It just displays a little icon in the monodevelop status bar (I like it simple).

If the build is ok it looks like:

When there is something not ok the monkey becomes sad:

Is somebody out there that wants to make the monkey sad ? I doubt that. This is really simple ... just an icon at the bottom.

But I need some more detailed info about the build bot results.
Therefore I added a inform window on the icon click:

So far so good.

But I want to get informed if I broke the build.
(And I don't think that the small icon in the lower right corner informs me well about this)

For doing this the addin needs to know my svn user name - I added a small option panel. (There it's possible to set other MonkeyWrench projects by URL as well.) And if the user broke something a dialog appears:

I really hope that this is enough that I'll fix the trunk ASAP. If I've some more time & there is interrest I'll improve the addin. Maybe even make it more flexible so that it'll be possible to add other web based build bots to it.

Currently the addin has a down side: It can just track ONE project. We need something like user specific project policies. Maybe it's easer that the addin just tracks the solutions by itself. But that's something for future development.

Do you think too that build bots belong INSIDE the IDE ?