Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Lapidary: The Art of Gemcutting

Lapidary: The Art of Gemcutting

Gemcutter is now the central RubyGem host for the community, with over 10,000 gems and over 10 million gem downloads and counting. Learn why Gemcutter won the great RubyGem hosting battle of 2009 and about the challenges the site faces in 2010 and beyond. Discover how instant code deployment with Gemcutter is changing the way not only Rubyists develop and release software, but other open source communities as well.

Given at RailsConf 2010. http://en.oreilly.com/rails2010

Nick Quaranto

January 12, 2012

More Decks by Nick Quaranto

Other Decks in Programming


  1. more stats average growth per month: 223,341 estimations per month

    by 2011: linear: 7,545,076 logarithmic: 5,817,165 14/49 - 29%
  2. # git show 534af7f:spec/api_spec.rb describe "Gemcutter API" do it "should

    work" do get '/' @response.should =~ /gemcutter/ end end 16/49 - 33%
  3. API history: rubygems server 18 endpoints S3, CloudFront: GET /gems/rails-

    2.3.8.gem modern indexes: GET /latest_specs.4.8.gz legacy indexes: GET /yaml 17/49 - 35%
  4. gem yank $ gem yank bills -v 0.0.1 Yanking gem

    from RubyGems.org... Successfully yanked gem: bills (0.0.1) 20/49 - 41%
  5. gem yank --undo $ gem yank bills --undo -v 0.0.1

    Unyanking gem from RubyGems.org... Successfully unyanked gem: bills (0.0.1) 21/49 - 43%
  6. gem webhooks $ gem webhook rails --add http://example.com Successfully created

    webhook for rails to http://example.com $ gem webhook --global --add http://something.net Adding webhook... Successfully created webhook for all gems to http://something.ne 22/49 - 45%
  7. gem webhooks: fire! $ gem webhook rack --fire http://example.com Test

    firing webhook... Successfully deployed webhook for rack to http://example.com 23/49 - 47%
  8. downloads revamp postgres => redis 30 million rows => 100

    MB of RAM migration task, search results need download counts almost done! 25/49 - 52%
  9. rubygems integration default source as of 1.3.6 gem push, gem

    owner in gem yank, gem webhook slated by 1.4 26/49 - 54%
  10. the theory once consuming is easy, publishing is the pain

    point solved it: gem push time to catch up! 37/49 - 76%
  11. wrapup moving forward with new features and fixes get the

    community involved (again) learn from other services and platforms around for the foreseeable future of ruby 48/49 - 98%