# \[ANN\] CruiseControl.rb 1.3.0

**URL:** <https://www.ruby-forum.com/t/ann-cruisecontrol-rb-1-3-0/135798>\
**Category:** Ruby\
**Created:** [April 25, 2008, 1:28am UTC](https://www.ruby-forum.com/t/ann-cruisecontrol-rb-1-3-0/135798 "2008-04-25T01:28:44Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![alexeyv](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/46a35a/32.png) [@alexeyv](https://www.ruby-forum.com/u/alexeyv)\
**Post date:** [April 25, 2008, 1:28am UTC](https://www.ruby-forum.com/t/ann-cruisecontrol-rb-1-3-0/135798/1 "2008-04-25T01:28:44Z")

</div>

Dear all,

CruiseControl.rb is a continuous integration tool. Its basic purpose  
in life is to alert members of a software project when one of them  
checks something into source control that breaks the build. CC.rb is  
easy to install, pleasant to use and simple to hack. It’s written in  
Ruby.

Version 1.3.0 is yet another small release, encompassing about 6  
months of not-so-very-active ongoing development (keywords: simple,  
small, sweet).

First and foremost, it’s worth noticing that the default location of  
CC.rb configuration files and build data has changed to $HOME/.cruise  
(%USERPROFILE%.cruise on Windows).

As for the new features, release 1.3.0 has two:

Build serialization:  
This is a way to ensure that CC.rb never runs more than one build at  
any given time. This helps to prevent conflicts between simultaneously  
running builds using the same resource (e.g., a database or a  
third-party service). To enable this, add  
“Configuration.serialize\_builds = true;  
Configuration.serialized\_build\_timeout = 3.hours” to site\_config.rb.

Automatic purging of all builds:  
CC.rb uses the local file system for data storage. If there are  
several thousand build directories, this may noticeably slow down  
CC.rb dashboard. Now you can automatically tell it to purge old build  
directories. To enable this, add “BuildReaper.number\_of\_builds\_to\_keep  
= 200” to site\_config.rb.

In addition, there is an experimental plugin infrastructure (similar  
to Rails plugins). If you are writing CC.rb extensions, you may want  
to look at it. Start with “script/cruise\_plugin list help”.

CHANGELOG

- cruise data (build results, etc) is stored in $HOME/.cruise/ by  
default
- builds can now be serialized - with a config option set, CC.rb  
will only run one build at a time
- option to auto delete more than N builds
- [experimental] plugins can be installed w/ script/cruise\_plugin  
script
- [bugfix] build requested status now stays on dashboard until a build  
starts
- [patch] subversion external support - Nathan W.
- [patch] relative url support - Neal Clark

LINKS

Documentation: [http://cruisecontrolrb.thoughtworks.com](http://cruisecontrolrb.thoughtworks.com)  
Downloads: [http://rubyforge.org/frs/?group\_id=2918](http://rubyforge.org/frs/?group_id=2918)  
Bug tracker: [http://jira.public.thoughtworks.org/browse/CCRB](http://jira.public.thoughtworks.org/browse/CCRB)  
Users mailing list: removed\_email\_address@domain.invalid

UPGRADE PROCEDURE

IMPORTANT: as you saw above, the default location of CC.rb  
configuration and data changed from “wherever you extracted  
CruiseControl.rb sources” to $HOME/.cruise (%USERPROFILE%.cruise on  
Windows). This can mess up your current setup, if it makes any  
assumptions about the location of those files, or if it runs CC.rb  
processes in an environment where $HOME is not a writable directory.

1. Consider not upgrading at all - in many cases, 1.3 adds no tangible  
value over 1.2.1.
2. Stop CC.rb if it’s running.
3. Rename the directory containing the earlier CC.rb version (from now  
on referred as [cruise]) to something else (e.g., [cruise].old).
4. Make sure you don’t have $HOME/.cruise directory yet. Remove it if  
you do.
5. Download CC.rb 1.3.0 from [http://rubyforge.org/frs/?group\_id=2918](http://rubyforge.org/frs/?group_id=2918)
6. Extract it to [cruise] directory. Make sure that you moved the  
earlier version away from [cruise] directory (step 2 above).
7. Copy [cruise].old/projects/ to [cruise]. Also copy  
[cruise].old/config/site\_config.rb to [cruise]/config/site\_config.rb.
8. If you run CC.rb in an environment where $HOME is not a writable  
directory, specify some other directory in CRUISE\_DATA\_ROOT, either by  
assigning it to CRUISE\_DATA\_ROOT constant in site\_config.rb, or  
setting an OS environment variable of the same name before starting  
CC.rb.
9. Start CC.rb. The first time you start it, it should automatically  
move [cruise]/projects/ to $HOME/.cruise/. It will also copy  
site\_config.rb to $HOME/.cruise/.

FUTURE

After this release we are:

- migrating our RubyForge Subversion repository to Git (still on  
RubyForge), which will improve hackability by making it easier to  
maintain local branches.
- migrating the bug tracker to LightHouse. This already happened, in  
fact.
- making the version control interface pluggable, and implementing  
Mercurial and Git support out of the box - this functionality will be  
released in the next version - some time during the summer

Happy cruising.

–  
Alexey V.  
CruiseControl.rb [[http://cruisecontrolrb.thoughtworks.com](http://cruisecontrolrb.thoughtworks.com)]  
RubyWorks [[http://rubyworks.thoughtworks.com](http://rubyworks.thoughtworks.com)]
