Jeff Dean's blog



AutoTagger is a gem that helps you automatically create a date-stamped tag for each stage of your deployment, and deploy from the last tag from the previous environment.

Let's say you have the following workflow:

  • Run all test on a Continuous Integration (CI) server
  • Deploy to a staging server
  • Deploy to a production server

You can use the autotag command to tag releases on your CI box, then use the capistrano tasks to auto-tag each release.

Jeff DeanJeff Dean
Speeding up slow Cruise Control response times
edit Posted by Jeff Dean on Tuesday March 10, 2009 at 03:52PM

We use Cruise Control on our Continuous Integration server and we have several ways of getting alerts about the status of the build, including email, RSS and the Cruise Control web interface.

Recently we noticed that the web interface and the rss feeds were taking very long to respond, on the order of 1 minute or more. After poking around, we realized that we had hundreds of serialized builds still on disk.

$ cd ~/OurCruiseDirectory/projects/OurProject 
$ rm -r build-*

Then, to make sure this doesn't happen again, we edited our OurCruiseDirectory/site_config.rb site_config.rb to decrease the number of builds we keep:

BuildReaper.number_of_builds_to_keep = 20

So it appears that the time Cruise Control responses take is directly proportional to the number of builds saved on the server.

Jeff DeanJeff Dean
New York Standup 3/4/2009
edit Posted by Jeff Dean on Thursday March 05, 2009 at 05:08PM

Interesting

While this has been mentioned before, naming an ActiveRecord association :target will cause infinite recursion. Especially lame if you are building an app for assassins or mobsters.

The tracker team upgraded to 2.2 and saw a big increase in the size of their mongrels, and much longer start-up times.

In an erector widget it appears that respond_to? checks arity. For example:

self.respond_to?("some_method") # => false
self.respond_to?("some_method", some_value) # => true