Buildix is an all-in-one solution for most of the essentials of agile software engineering:
- version control - via svn
- continuous integration - via CruiseControl
- a wiki - via Trac
- an issue tracking system - via Trac
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.
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.
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).
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.
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.
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
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.
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.
- how to backup buildix - a developer weighs in at the bottom
- how to migrate from VM image to dedicated machine - the same developer provides migration steps
Back to flipping out...