Difference between revisions of "Buildbot and EC2"

From CDOT Wiki
Jump to: navigation, search
(Tasks)
(Releases)
 
(46 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
Implements [[Sample Project| iSampleProject]]
 +
 
== Project Name ==
 
== Project Name ==
  
Line 14: Line 16:
  
 
== Project Contributor(s) ==
 
== Project Contributor(s) ==
 +
[[User:dominic|Dominic Baranski]]
  
Dominic Baranski
+
[[User:Armenzg|Armen Zambrano]]
 
 
== Project Details ==
 
 
 
===      Release 0.1 ===
 
 
 
==== Goals ====
 
* Add in a new build step to Buildbot
 
* Allow Buildbot to connect with Amazon's EC2 service
 
 
 
==== Downloads ====
 
 
 
    [http://matrix.senecac.on.ca/~awdelyea/EC2_build_step_nokeys.py EC2_build_step_nokeys.py]
 
 
 
    Note: You will need to install the boto library located [http://boto.googlecode.com/files/boto-0.9a.tar.gz here].
 
 
 
 
 
==== About ====
 
 
 
Basically, this first version attempts to connect to an EC2 account, and then display the connection information to show that it has connected.
 
 
 
It uses a library called "boto", and this library is used to connect to all of [http://www.amazon.com/gp/browse.html?node=3435361 Amazon's Web Services]
 
 
 
To use this in a Buildbot configuration file, simply call the connect_to_ec2() function, which takes in as paramaters, an Amazon id key, and an Amazon secret key.
 
 
 
Example:
 
<pre>
 
    connection = connect_to_ec2("73ghf9h38fh", "75vo87rVO*&V%O7o75v7i%i75I&5li7%i75")
 
</pre>
 
 
 
----
 
 
 
===      Release 0.2 ===
 
 
 
==== Goals ====
 
 
 
* Start New Instances
 
* Add new instances to build slave list
 
* Start a build on an EC2 instance build slave
 
 
 
==== Downloads ====
 
&nbsp;&nbsp;&nbsp;&nbsp;[http://zenit.senecac.on.ca/wiki/imgs/EC2BuildSlave_nokey.zip EC2BuildSlave.py]
 
&nbsp;&nbsp;&nbsp;&nbsp;*Just put this file into your buildbot installation folder so python can access it
 
<br/>&nbsp;&nbsp;&nbsp;&nbsp;[http://zenit.senecac.on.ca/wiki/imgs/Master.zip Master.cfg]
 
 
 
==== About ====
 
 
 
To use the EC2 service with Buildbot, there needs to be some way for Buildbot to dynamically generate a list of build slaves. These build slaves (or just slaves) are hosted as a virtual machine on the EC2 service.
 
 
 
This will work by extending the BuildSlave class to add in some new functionality for starting a new EC2 instance. So, every time you add a new slave to the slave list, another instance will be spwaned, so that you can spawn as many instances as you think you will need to complete a build.
 
 
 
This new BuildSlave class will start a new instance, which will then proceed to send the connection information of the master to the new instance. How exactly, I'm not exactly sure, because it takes a minute for the virtual instance to start up.
 
 
 
The rest basically takes care of itself.
 
 
 
Still have to think about how to turn the new EC2 instances off after the build is done.
 
 
 
====0.2.1====
 
=====About=====
 
I have made a slight modification to the EC2BuildSlave.  It now requires some additional input, because I had been hardcoding some values in, and that's sloppy, so I corrected it to allow you to put any variable parameters in the config file.
 
 
 
Basically, you will lay out a new EC2BuildSlave like this:
 
 
 
    from buildbot.EC2BuildSlave import EC2BuildSlave
 
    c['slaves'] = [EC2BuildSlave("bot1name", "bot1passwd", "public key", "private key", "dns", "instance-id")]
 
    //Where dns = www.whatever.com:8898, or 88.123.55.456:8898
 
    //and public/private key is your public/private key from Amazon
 
    //and instance-id is the instance you would like to launch ("ami-87d530ee")
 
 
 
=====Downloads=====
 
* [[http://zenit.senecac.on.ca/wiki/imgs/Buildbot_EC2.zip Patch]]
 
    The EC2BuildSlave.py goes into your python's framework folder for Buildbot (note: on my mac, this is<br/>  /Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/buildbot/)
 
 
 
----
 
 
 
===      Release 0.3 ===
 
 
 
==== Goals ====
 
 
 
* Build Mozilla using an EC2 Instance
 
* Complete Documentation
 
* Generic EC2 instance for Buildbot Slaves
 
* Startup Scripts for making your own EC2 instances
 
 
 
==== Downloads ====
 
 
 
* [http://zenit.senecac.on.ca/wiki/imgs/EC2.zip EC2.zip]
 
 
 
==== About ====
 
 
 
So this iteration is basically about getting this project into the “publically useable” stage. Right now, it’s fairly easy to set up these modifications to use EC2 instances in any Buildbot build project.
 
 
 
To use, you need to have Buildbot installed already. Then, you need to download the BOTO python library from Google, and place the boto folder from that zip file into your build-master directory. Then, you need to extract this patch into your build-master directory. Thats it for system prep.
 
  
Then, you need to go to AWS.AMAZON.COM and sign up for an account. When you do that, you will need to get your Public Key, and Secret Key to paste into your build-master’s master.cfg file.
+
[[User:david.humphrey|Dave Humphrey]]
  
In your build-masters master.cfg file, where you would normally specify your list of BuildSlaves, you will be replacing BuildSlave with EC2BuildSlave. This custom class is what allows Buildbot to start EC2 instances and create slaves to use on them. You need to specify a few extra variables in the slave configuration.
+
== Releases ==
  
By default, you need to specify:
+
You can see more information about individual releases by following the links below.
  
    * Bot Name
+
* [[Buildbot and EC2/0.1]]
    * Bot Password
 
    * Public Key
 
    * Private Key
 
    * [IP Address of Build-Master:Port] [Bot Name] [Bot Password]
 
  
By supplying the build-master’s IP address to the EC2 slave, you are allowing the build-slave on the EC2 instance to be pointed at your machine. If you have a DNS, then that will work in this place as well.
+
* [[Buildbot and EC2/0.2]]
  
There is a generic Amazon EC2 instance (also called an AMI) created that is set by default in the EC2BuildSlave class. However, if you desire, you may also insert a custom AMI instance ID to the EC2BuildSlave and have it start up your own AMI. See the custom startup script, in the 0.3 deliverable zip, to insert into your instance to have your build-slave created at run-time.
+
* [[Buildbot and EC2/0.3]]
  
 +
* [[Buildbot and EC2/0.4]]
  
 +
* [[Buildbot and EC2/0.5]]
  
----
+
* [[Buildbot and EC2/0.6 | Buildbot and EC2/0.6/0.7]]
===      Release 0.4 ===
 
  
==== Goals ====
+
* [[Buildbot and Testing|Tangential Testing on Buildbot Release / 0.8]]
*Run a Try server @ Home
 
*Make Try server use EC2
 
  
==== Downloads ====
+
* [[Buildbot and EC2/0.9]]
    None, but when this is completed, the zipped archive of the try server will go here
 
 
 
==== About ====
 
 
 
For this release, it was important to make this project more useful for Mozilla. <br /><br />
 
For EC2 to be useful, you have to use it when you have periods of inactivity, or periods of sudden increased activity. This appears to happen most often on Mozilla's Try Server. <br /><br />
 
 
 
The Try Server lets developers submit a patch to the trunk, and have it build on all 3 OS's, without submitting their change to trunk. So, it's just a place where developers can try and see if their patch will work on all 3 major OS's. <br /><br />
 
 
 
Since developers are using the Try Server continuously, and it's a service that cannot really be taken offline, Seneca will be hosting it's own Try Server. Right now it is very unclear how many machines will be made available to this Try Server, but there should be about 10 machines available for this project at the beginning. As the project continues, more servers will likely be added.<br /><br />
 
 
 
Since time is an issue in getting access to the servers @ Seneca, the first little bit in getting the Try Server to use EC2 build slaves will be running on an external (from Seneca) server. Once that is completed, a zip of the buildbot files will be made available here.
 
  
 
== Tasks ==
 
== Tasks ==
  
 
<table style="width: 100%;" class="standard-table" cellborder=1 border=1 cellpadding=3 cellspacing=0>
 
<table style="width: 100%;" class="standard-table" cellborder=1 border=1 cellpadding=3 cellspacing=0>
     <th style="width: 17%;">Task</th>
+
     <th style=" width: 17%;"><br />'''''Task'''''<br /><br /></th>
     <th style="width: 40%>Details</th>
+
     <th style=" width: 35%;"><br />'''''Details'''''<br /><br /></th>
     <th style="width: 5%;">Priority</th>
+
     <th style=" width: 5%;"><br />'''''Priority'''''<br /><br /></th>
     <th style="width: 10%;">Contributors</th>
+
     <th style=" width: 10%;"><br />'''''Contributors'''''<br /><br /></th>
     <th style="width: 6%;">Status</th>
+
     <th style=" width: 15%;"><br />'''''Status'''''<br /><br /></th>
     <th style="width: 6%;">Target</th>
+
     <th style=" width: 4%;"><br />'''''Target'''''<br /><br /></th>
     <th style="width: 6%;">Completed</th>
+
     <th style=" width: 4%;"><br />'''''Completed'''''<br /><br /></th>
     <th style="width: 10%;">Link(s)</th>
+
     <th style=" width: 10%;"><br />'''''Link'''''(s)<br /><br /></th>
  
 
     <tr>
 
     <tr>
         <td>Try Server</td>
+
         <td>0.1 Release</td>
         <td>Start a Try Server on a Linux machine.</td>
+
         <td>Covering the basics</td>
         <td style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td>
+
         <td style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td>
 
         <td>[[User:Awdelyea|Adam Delyea]]</td>
 
         <td>[[User:Awdelyea|Adam Delyea]]</td>
        <td style="background-color: SkyBlue; text-align: center; font-weight: bold;">In Progress</td>
 
        <td style="background-color: yellow; text-align: center; font-weight: bold;">14/01/08</td>
 
        <td>&nbsp;</td>
 
        <td>[http://wiki.mozilla.org/Build:TryServer Mozilla Try Server]</td>
 
    </tr>
 
 
    <tr>
 
        <td>EC2 on Try Server</td>
 
        <td>Make the Try Server use EC2 to spawn build slaves.</td>
 
        <td style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td>
 
        <td>[[User:Awdelyea|Adam Delyea]]</td>
 
        <td style="background-color: SkyBlue; text-align: center; font-weight: bold;">In Progress</td>
 
        <td style="background-color: yellow; text-align: center; font-weight: bold;">14/01/08</td>
 
        <td>&nbsp;</td>
 
        <td><!-- No Links --></td>
 
    </tr>
 
 
    <tr>
 
        <td>Define new build step</td>
 
        <td>Add a new build step to the build master config file. The build step will be in an external file and imported into the build master config file.</td>
 
 
         <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td>
 
         <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td>
        <td>[[User:Awdelyea|Adam Delyea]]</td>
 
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
        <td>[http://buildbot.net/repos/release/docs/buildbot.html#Writing-New-BuildSteps Writing New Build Steps]</td>
 
 
     </tr>
 
     </tr>
  
 
     <tr>
 
     <tr>
         <td>Connect To EC2 using Python</td>
+
         <td>0.2 Release</td>
         <td>Utilize the EC2 python library to connect to an account on the EC2 network. Once connected, display some information about the users account to prove it's actually connecting.</td>
+
         <td></td>
 +
        <td  style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td>
 +
        <td>[[User:Awdelyea|Adam Delyea]]</td>
 
         <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td>
 
         <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td>
        <td>[[User:Awdelyea|Adam Delyea]]</td>
 
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
        <td><ul><li>[http://code.google.com/p/boto/ Boto Amazon Web Services Library in Python]</li><li>[http://jimmyg.org/2007/09/01/amazon-ec2-for-people-who-prefer-debian-and-python-over-fedora-and-java/ EC2 hearts Python]</li></ul></td>
 
 
     </tr>
 
     </tr>
  
 
     <tr>
 
     <tr>
         <td>Start new instances</td>
+
         <td>0.3 Release</td>
         <td>Allow Buildbot to spawn an instance on demand. This could possibly be a function called right before the build slave list is populated, and would pass back an array of build slaves.</td>
+
         <td></td>
 +
        <td  style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td>
 +
        <td>[[User:Awdelyea|Adam Delyea]]</td>
 
         <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td>
 
         <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td>
        <td>[[User:Awdelyea|Adam Delyea]]</td>
 
        <td></td>
 
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
Line 216: Line 88:
  
 
     <tr>
 
     <tr>
         <td><del>Add new instances to build slave list</del></td>
+
         <td>0.4 Release</td>
         <td>Allow newly created EC2 instances to be added to the build slave list.
+
         <td></td>
<div style="background-color: grey; text-align: center;">
+
         <td style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td>
After looking more closely at how the buildslave is created, this goal doesn't make any sense, since this is not really how the buildslave list works.
 
            </div>
 
        </td>
 
         <td style="background-color: white; text-align: center; font-size: bigger">Cut</td>
 
 
         <td>[[User:Awdelyea|Adam Delyea]]</td>
 
         <td>[[User:Awdelyea|Adam Delyea]]</td>
         <td></td>
+
         <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td>
         <td>&nbsp;</td>
+
         <td>14/1/08</td>
         <td>&nbsp;</td>
+
         <td>14/1/08</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
     </tr>
 
     </tr>
  
 
     <tr>
 
     <tr>
         <td>Start a new build on an EC2 instance</td>
+
         <td>0.5 Release</td>
        <td>Allow Buildbot to successfully start a build using a build slave on an EC2 instance</td>
 
        <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td>
 
        <td>[[User:Awdelyea|Adam Delyea]]</td>
 
 
         <td></td>
 
         <td></td>
         <td>&nbsp;</td>
+
         <td style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td>
        <td>&nbsp;</td>
 
        <td>&nbsp;</td>
 
    </tr>
 
 
 
    <tr>
 
        <td>Load a script on startup in Linux</td>
 
        <td>Make it possible to have a script load when Linux starts</td>
 
        <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td>
 
 
         <td>[[User:Awdelyea|Adam Delyea]]</td>
 
         <td>[[User:Awdelyea|Adam Delyea]]</td>
         <td></td>
+
         <td style="background-color: SkyBlue; text-align: center; font-weight: bold; font-size: bigger">In Progress</td>
         <td>&nbsp;</td>
+
         <td>3/1/08</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
Line 255: Line 112:
 
         <td>Testing</td>
 
         <td>Testing</td>
 
         <td>People needed to download the revisions and test them to make sure it works in different environments. Note, this will require you to have your own EC2 account. </td>
 
         <td>People needed to download the revisions and test them to make sure it works in different environments. Note, this will require you to have your own EC2 account. </td>
         <td style="background-color: lightblue; text-align: center; font-weight: bold; font-size: bigger">Low</td>
+
         <td style="background-color: grey; text-align: center; font-weight: bold; font-size: bigger">Expired</td>
 
         <td style="background-color: gold; text-align: center; font-weight: bold; font-size: bigger">NEEDED! ***<br />[http://zenit.senecac.on.ca/wiki/index.php/User:dominic Dominic Baranski]</td>
 
         <td style="background-color: gold; text-align: center; font-weight: bold; font-size: bigger">NEEDED! ***<br />[http://zenit.senecac.on.ca/wiki/index.php/User:dominic Dominic Baranski]</td>
         <td></td>
+
         <td style="background-color: grey; text-align: center; font-weight: bold; font-size: bigger">Expired</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
Line 264: Line 121:
  
 
     <tr>
 
     <tr>
         <td>Different Builds</td>
+
         <td><del>Different Builds</del></td>
         <td>Need different projects to try and build, to make sure it works to build projects other than Mozilla</td>
+
         <td><del>Need different projects to try and build, to make sure it works to build projects other than Mozilla</del><br />This is no longer a priority. Building with Mozilla is the focus of this project. The EC2 functionality can be extracted and used to build any program / system.</td>
         <td style="background-color: lightblue; text-align: center; font-weight: bold; font-size: bigger">Low</td>
+
         <td style="background-color: grey; text-align: center; font-weight: bold; font-size: bigger">Expired</td>
 
         <td style="background-color: gold; text-align: center; font-weight: bold; font-size: bigger">NEEDED! ***<br />[http://zenit.senecac.on.ca/wiki/index.php/User:dominic Dominic Baranski]</td>
 
         <td style="background-color: gold; text-align: center; font-weight: bold; font-size: bigger">NEEDED! ***<br />[http://zenit.senecac.on.ca/wiki/index.php/User:dominic Dominic Baranski]</td>
        <td></td>
+
         <td style="background-color: grey; text-align: center; font-weight: bold; font-size: bigger">Expired</td>
        <td>&nbsp;</td>
 
        <td>&nbsp;</td>
 
        <td>&nbsp;</td>
 
    </tr>
 
 
 
    <tr>
 
        <td>Build Mozilla using an EC2 Instance</td>
 
        <td>Allow Buildbot to successfully build mozilla using a build slave on an EC2 instance</td>
 
         <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td>
 
        <td>[[User:Awdelyea|Adam Delyea]]</td>
 
        <td></td>
 
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
Line 288: Line 134:
 
         <td>Complete Documentation</td>
 
         <td>Complete Documentation</td>
 
         <td></td>
 
         <td></td>
         <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done...ish</td>
+
         <td style="background-color: orange; text-align: center; font-weight: bold; font-size: bigger">Medium</td>
        <td>[[User:Awdelyea|Adam Delyea]]</td>
 
        <td></td>
 
        <td>&nbsp;</td>
 
        <td>&nbsp;</td>
 
        <td>&nbsp;</td>
 
    </tr>
 
 
 
    <tr>
 
        <td>Generic EC2 instance for Buildbot Slaves</td>
 
        <td>Making a generic EC2 Instance for Buildbot</td>
 
        <td style="background-color: Green; text-align: center; font-weight: bold; font-size: bigger">Done</td>
 
        <td>[[User:Awdelyea|Adam Delyea]]</td>
 
        <td></td>
 
        <td>&nbsp;</td>
 
        <td>&nbsp;</td>
 
        <td>&nbsp;</td>
 
    </tr>
 
 
 
    <tr>
 
        <td>Startup Scripts for making your own EC2 instances</td>
 
        <td></td>
 
        <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td>
 
 
         <td>[[User:Awdelyea|Adam Delyea]]</td>
 
         <td>[[User:Awdelyea|Adam Delyea]]</td>
         <td></td>
+
         <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">In Progress</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
Line 322: Line 146:
  
 
<br/>
 
<br/>
<div style="background-color: gold; text-align: center; font-weight: bold;">*** Would you like to contribute? Well here's an excellent opportunity for you to do just that! Feel free to e-mail me at <awdelyea@learn.senecac.on.ca></div>
+
<div style="background-color: gold; text-align: center;font-weight: bold;">&nbsp;<br />*** Would you like to contribute? Well here's an excellent opportunity for you to do just that! Feel free to e-mail me at <awdelyea@gmail.com><br />&nbsp;</div><br/>
 
 
  
 
== Project Resources ==
 
== Project Resources ==
Line 349: Line 172:
 
2007-12-13: Release v0.3 is complete and available for download: easier to install and setup, can use to build projects now
 
2007-12-13: Release v0.3 is complete and available for download: easier to install and setup, can use to build projects now
  
2008-12-14: Release v0.4 Defined. In the process of getting accounts and machines for Try Server Farm.
+
2008-01-14: Release v0.4 Defined. In the process of getting accounts and machines for Try Server Farm.
 +
 
 +
'''''2008-02-01: Task List and Release News is being moved to individual Release Pages. See individual Releases for more information.'''''

Latest revision as of 11:23, 26 March 2008

Implements iSampleProject

Project Name

Buildbot and EC2

Project Description

The BuildBot is software for automatically building and testing other software. EC2 is Amazon's "Elastic Compute Cloud", a service that lets you run Virtual Machines on Amazon's computing grid using a web API. It would be awesome if BuildBot had an EC2 module, and could spawn Virtual Machines on-demand to perform tasks. Conveniently, BuildBot is written in Python, and there's a Python library for interfacing with EC2.

References: Amazon EC2 Basics For Python Programmers

Project Leader(s)

Adam Delyea

Project Contributor(s)

Dominic Baranski

Armen Zambrano

Dave Humphrey

Releases

You can see more information about individual releases by following the links below.

Tasks


Task


Details


Priority


Contributors


Status


Target


Completed


Link(s)

0.1 Release Covering the basics High Adam Delyea Done      
0.2 Release High Adam Delyea Done      
0.3 Release High Adam Delyea Done      
0.4 Release High Adam Delyea Done 14/1/08 14/1/08  
0.5 Release High Adam Delyea In Progress 3/1/08    
Testing People needed to download the revisions and test them to make sure it works in different environments. Note, this will require you to have your own EC2 account. Expired NEEDED! ***
Dominic Baranski
Expired      
Different Builds Need different projects to try and build, to make sure it works to build projects other than Mozilla
This is no longer a priority. Building with Mozilla is the focus of this project. The EC2 functionality can be extracted and used to build any program / system.
Expired NEEDED! ***
Dominic Baranski
Expired      
Complete Documentation Medium Adam Delyea In Progress      

Contributions


 
*** Would you like to contribute? Well here's an excellent opportunity for you to do just that! Feel free to e-mail me at <awdelyea@gmail.com>
 

Project Resources

Project News

For a less formal, and more up-to-date view on whats happening, see the BLOG.

2007-09-17: Project claimed!

2007-10-11: Found a python EC2 library that has all of the functions I will need for interacting with EC2. Just need to write a custom build step to run these library functions.

2007-10-12: Release v0.1 is complete and available for download.

2007-10-12: Release v0.2 loosely defined. More detail to follow.

2007-11-17: Release v0.2 is complete and available for download: can start an instance and start an EC2BuildSlave

2007-11-21: Release v0.2.1 is complete and available for download: now to include variable EC2 users, and instances, and DNS'

2007-12-13: Release v0.3 is complete and available for download: easier to install and setup, can use to build projects now

2008-01-14: Release v0.4 Defined. In the process of getting accounts and machines for Try Server Farm.

2008-02-01: Task List and Release News is being moved to individual Release Pages. See individual Releases for more information.