Tom Copeland's Recent Posts

RSS Feeds

« RubyForge email statistics | Main | Browsing git repositories on RubyForge »

Faster RubyGem deploys thanks to Jeremy Kemper

A long while back Jeremy Kemper did up some nice rewrite rules for RubyForge.  The idea was that the filenames of new gems will be tracked and RubyForge will serve those gems locally rather than redirecting the request out to the mirrors.  After a long delay (sorry!) I finally implemented the PHP side of things - e.g., modified the GForge code to write out the filename when a gem is released.

So today, for example, Jamis Buck released Capistrano 2.4.1 at 1:26.  The "new gem check" cronjob ran at 1:40 and placed the gem file in the main gems directory, and the index was rebuilt by around 1:47.  And at 1:48, what should appear in the gems.rubyforge.org virtual host log:

gems.rubyforge.org 213.119.94.76 - - [27/Jun/2008:13:48:11 -0400] "GET /gems/capistrano-2.4.1.gem HTTP/1.1" 200 109056 "-" "RubyGems/1.0.1 universal-darwin-9" 

Huzzah!  The gem is being served without waiting for all the mirrors to be updated.  Now I just need to write a little code (update 6/29, done) to remove file names from the list after 24 hours or so; by that time the gem will have been sync'd out. 

So, to summarize, gems will now be available very soon after they're released.  Thanks Jeremy!

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00d83451d3c069e200e5537582898833

Listed below are links to weblogs that reference Faster RubyGem deploys thanks to Jeremy Kemper:

Comments

So, I'm not very familiar with the Gforge codebase, but it's always surprised me a little that Rubyforge was running on a PHP-based system.

I haven't compared the *forge software, so I have no basis for claiming there's anything out there in Ruby, or if there is that it's any good, but I'm just curious because presumably, you've looked.

Can you comment more on the tools you're using to run Rubyforge?

@chris - Sure, yup, it's Apache/GForge/PostgreSQL/Postfix/Postgrey/Mailman. I have a bunch of Ruby scripts doing sysadmin stuff, and I've done ActiveRecord models for a couple of tables, but all the core site code is still PHP - about 80K lines.

One hard part about moving to anything else now would be migrating the data... the schema has 150 tables, lots of work to move that data anywhere else... and GForge has done the job reasonably well so far.

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been saved. Comments are moderated and will not appear until approved by the author. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment

Comments are moderated, and will not appear until the author has approved them.