2008-01-16

Using Buildix in Anger

About Buildix

Buildix is an all-in-one solution for most of the essentials of agile software engineering:

Buildix also offers an optional software package for Project Management: Mingle. Mingle is the for-pay PM software created by ThoughtWorks, who also created Buildix. While Mingle isn't free, there is a currently a free 30-day trial (or 1 year if your team contains 5 or fewer members). To tie it all together, the ThoughtWorks team has glued things together to make these tools integrate more seamlessly.

Buildix itself is available in a number of form factors: VMWare image (which I will cover in this post), LiveCD, AMI for Amazon's EC2 service, or .deb package for Debian-based Linux distributions. The VMWare image and LiveCD are both Ubuntu with the Buildix package installed.

Installing Buildix

We'll be discussing the VMWare image of Buildix 2.0.1 in this post, so installation is pretty straight-forward. Just download the bzipped tarball, extract the image to your directory of choice, fire up VMWare, and choose to open the image. Voila! VMWare tells me that the VMWare Tools are out of date, but I'll deal with that later. It is important to note that the VMWare image is not secured in any way. If you plan to allow access to the image from outside your firewall, ThoughtWorks recommends creating your own secure Ubuntu server and then installing the Buildix package via aptitude.

Configuring Buildix

Figuring out how to access Buildix

The first step is to figure out how to access your new Buildix install, since it's hard to configure something when you don't know where it's at. Pop over to the console in VMWare and attempt to log in as ifconfig, no password. This should display the IP address you should use to access Buildix. As an important aside, note that there are two default user/password combos, and that the password is the same as the username for both: root and cruise (see this forum post about default users).

Enabling Mingle

When you first visit your new Buildix install's site, you'll receive a message informing you that "Mingle is installed but not configured." So, click on the handy link to finish the installation (or you could uninstall it, but Mingle is reputed to be cool, so we'll be finishing the installation).

The first step in finishing up the installation is a simple overview page that outlines the steps we'll be taking. Since this is Buildix, the first two steps (1. Connecting Mingle to your database and 2. Setting up the database) have been handled for us. Next up is 3. Configuring the SMTP connection. Just fill in the required fields and click through. Up next is 4. Accepting the ThoughtWorks End User License Agreement. If you agree, click the checkbox to enable the button, and click through. Now we see 5. Setting up the first user account - you'll be prompted to create the first user (who, unsurprisingly, will be an Administrator). Create this user and move on to 6. Importing project templates. All you can do here is continue. Then you'll be informed that Mingle is not registered. Go to the website and register to get a registration key in your email. Copy your key, go back to Mingle and choose to register, then paste in the key. You should be all set.

User configuration

Next up: adding your users. Here is the first time you get to really use that ThoughtWorks glue I mentioned earlier. They've added a very simple User Manager tool that will create users for the various applications making up Buildix so that they are consistent, e.g., hgay can log in to all of the applications with the same credentials (with the possible exception of Mingle - those logins are created with a default password and you must update them separately). Just go to the address indicated in the ifconfig login indicated above. That should get you to the homepage for your Buildix install. From there, click on the User Manager link, provide the username and initial password, and Buildix takes care of the rest.

Project configuration

Project creation

Next up: adding your project. Here again, we get to enjoy some ThoughtWorks magic. You go to your Buildix homepage, provide a project name, and click the Create Project button, and Buildix will create the projects in the member applications, including a project in the subversion repository. Actually, scratch that. What it does is create a new subversion repository at /var/svn/$project_name, which makes things interesting if your pattern before was to have one repository with many subprojects. And that brings us to our next step: getting your existing project into Buildix.

Old project info migration

SVN Import

Once Buildix has created your SVN project, you can use svnadmin dump and svnadmin load to get your previous work into Buildix. If you are unfortunate enough to still be using CVS, you'll first need to get your project info out of CVS. A tool like cvs2svn should do the trick, but it is rather complicated to get it configured exactly as you might want. I recommend testing against a temporary svn repository until you get it exactly the way you want.

Summary

If everything went well above, you should have some users and projects waiting for you. Now it's up to you to use Buildix effectively.

Miscellaneous

Back to flipping out...