Chicago ALT.NET Meeting August 13th Meeting Review

Free pizza *and* a demo of ThoughtWorks Studio’s latest product, pretty nifty for my first meeting.

The primary topic was the Cruise continuous integration server. The presenter, Robert Norton, was obviously an expert on the matter and handled every question thrown his way thoughtfully and with a direct answer when possible.

Some key points that I gathered from the demonstration:

Cruise…

… is based on J2EE. But has a nice(?) installer to help dirty .NET developers like myself.

… uses a client/server model. A central server handles workflow and automation. Client agents are used to handle the discrete build tasks.

… supports Rake, NAnt, Ant and Exec out of the box.

… offers free licensing for up to two agents.

… agents are intended to run one unit of work. I.e. a test suite, a build, create an installer, are examples of the types of jobs that would be handled through multiple agents, the list of examples I provided would be three seperate agents.

… agents can run on Mac, Windows and Linux. Not sure which versions/distros though.

… agents can run in parallel.

… agents can be installed on different machines to distribute the workload.

… uses a loose pipeline model to manage the orchestration of agents (wait, is this BizTalk?)

… has a very slick interface. (Almost lickable.)

… has a very nice looking wizard for creating and managing the configuration scripts for the pipelines and the agents.

… only works off of events from SVN and Mercurial source-control systems as of right now. No file-system-watchers or scheduled builds yet.

… has a configuration editor that actually will help you to not kill your server or require a restart for changes to take effect.

… server uses meta-data to determine which agents are subscribed to handle pipeline events (Why don’t they just call this thing CruiseTalk or GlassCruise? I kid!)

… server can assign dependencies between agents for cross-pipeline synchronization.

… doesn’t yet have an extensibility model just yet.

… is very different from CruiseControl(.NET|.rb) in it’s implementation but inherits allot of the best practices that have evolved from the years of development and experience.

… can be used like CruiseControl.NET by configuring one agent to perform the entire build. The trade-off being that you lose the ability to distribute the workload and utilize the pipelining capabilities.

Well, that’s all I can think of off the top of my head. I hope I can stay for the B.S. session next time, but I had to get home. Looking forward to the next meeting.