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

Eb8975af8e49e19e3dd6b6b84a542e26?s=128

Nick Quaranto

January 12, 2012
Tweet

Transcript

  1. gemcutter: the art of lapidary nick quaranto 1/49 - 3%

  2. @qrush nick@quaran.to litanyagainstfear.com 2/49 - 5%

  3. 3/49 - 7%

  4. 4/49 - 9%

  5. 5/49 - 11%

  6. 6/49 - 13%

  7. 7/49 - 15%

  8. 8/49 - 17%

  9. 9/49 - 19%

  10. status others roadmap 10/49 - 21%

  11. status 11/49 - 23%

  12. some stats 30 million downloads 63,000 gem versions 47 contributors

    920 GB transferred last month 12/49 - 25%
  13. downloads per month january: 4,094,629 february: 4,396,202 march: 4,765,550 april:

    5,117,016 may: 5,211,337 13/49 - 27%
  14. more stats average growth per month: 223,341 estimations per month

    by 2011: linear: 7,545,076 logarithmic: 5,817,165 14/49 - 29%
  15. API 15/49 - 31%

  16. # git show 534af7f:spec/api_spec.rb describe "Gemcutter API" do it "should

    work" do get '/' @response.should =~ /gemcutter/ end end 16/49 - 33%
  17. 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%
  18. API history: v0 9 endpoints GET /gems/rails.json POST /gems POST

    /gems/rails/migrate 18/49 - 37%
  19. API history: v1 14 endpoints POST /api/v1/gems GET /api/v1/gems/rails.json GET

    /api/v1/gems/rack/owners.json 19/49 - 39%
  20. gem yank $ gem yank bills -v 0.0.1 Yanking gem

    from RubyGems.org... Successfully yanked gem: bills (0.0.1) 20/49 - 41%
  21. 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%
  22. 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%
  23. 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%
  24. ideas for gem webhooks tarballer distributed tester gemfiler changelogr 24/49

    - 49%
  25. downloads revamp postgres => redis 30 million rows => 100

    MB of RAM migration task, search results need download counts almost done! 25/49 - 52%
  26. 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%
  27. status charging forward gem yank, webhook are fun gemcutter may

    have won, not done yet 27/49 - 56%
  28. emulation 28/49 - 58%

  29. 29/49 - 60%

  30. 30/49 - 62%

  31. 31/49 - 64%

  32. 32/49 - 66%

  33. 33/49 - 68%

  34. 34/49 - 70%

  35. 35/49 - 72%

  36. 36/49 - 74%

  37. the theory once consuming is easy, publishing is the pain

    point solved it: gem push time to catch up! 37/49 - 76%
  38. motion 38/49 - 78%

  39. API 39/49 - 80%

  40. forked gems you.gemcutter.org your own sandbox, a blank index production

    quality gems on rubygems.org 40/49 - 82%
  41. better indexes try gem install -V dependency resolution? support bundler,

    rip, rpg? 41/49 - 84%
  42. download stats access historical info per gem stats page bring

    over rubyforge data 42/49 - 86%
  43. distribution gem mirror needs an overhaul torrents? A-Z bundles? snapshots?

    43/49 - 88%
  44. SVN 44/49 - 90%

  45. SVN 45/49 - 92%

  46. github.com/rubygems/rubygems 46/49 - 94%

  47. support help.rubygems.org for community support knowledge base, direct questions to

    core team before stackoverflow, please 47/49 - 96%
  48. 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%