Skip to content

Instantly share code, notes, and snippets.

@sidk
Last active August 9, 2019 20:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save sidk/939fea40f1b37c9885312f5f09ebfbb2 to your computer and use it in GitHub Desktop.
Save sidk/939fea40f1b37c9885312f5f09ebfbb2 to your computer and use it in GitHub Desktop.

How would you summarize your proposal, in one sentence?

A funding request to continue developing Ruby Ecosystem - a web application that collects metrics from Bundler and rubygems.org and graphs them.

Who are you, and how are you related to the project?

Sid Krishnan, project developer. I am helping André Arko, project creator, develop it.

What are your preferred pronouns? (e.g. she/her, they/them, ze/zir)

he/him

What is your home timezone?

UTC-4/UTC-5 (depending on Daylight savings)

What is your location?

Toronto, Ontario, Canada

Do you consider yourself an underrepresented minority in tech?

No

How much funding are you requesting?

$36,000 (20 hours a week for 12 weeks)

What do you hope to accomplish with this funding?

  1. Launch v1.0 of Ruby Ecosystem
  2. Implement v2.0 of Ruby Ecosystem

What is your expected timeline for that work, broken down across the 12 weeks you will have funding?

Assuming about 2 days worth of work per week:

Weeks 1-2: Complete v1.0 of the Ecosystem app. This involves:

  • Styling the app
  • Adding a couple of new graphs (bundler vs rubygems and CI vs non-CI usage)
  • Initiate user testing
  • Launching it to the community

Weeks 3-6: Research data storage architectures that are able to store a large amount of data in a cost-effective manner.

Weeks 6-9: Build process to collect and store usage data for all available gems.

Week 9: Collaborate on design for graphing individual gem data, and start building out Ecosystem v2.0

Week 10-12: Continue building Ecosystem 2.0.

How will this work improve the Ruby community?

Apart from being interesting to look at, metrics from Bundler and rubygems.org graphed out have the potential to help:

  • Gem authors understand what versions of Ruby they should consider supporting
  • Developers make decisions on if and when they should upgrade their Ruby version
  • The Ruby community as a whole understand better how it is evolving and changing

Do you receive any other funding for work on this project?

No

Do you have any existing OSS work you would like to mention or show the selection committee?

No, this will be my first OSS project.

Supplemental Info - not part of the proposal

note: I'm not sure yet which of the following info should be added to the proposal, since they request short descriptions for most things. This could potentially be part of the readme.

Ruby Ecosystem big picture

Goal: Capture, organize, correlate and surface usage data for Ruby gems.

Multi phase approach

Phase 1 - MVP (~90% complete) ~v1.0

Collect and graph high-level metrics on Bundler and Rubygems usage over time:

  • Bundler version
  • Rubygems version
  • CI Provider
  • Platform

Phase 2 - Expansion ~v2.0

Collect and graph usage metrics on all gems. This will require deciding on a cost-effective architecture that allows us to store and retrieve large amounts of usage data. TODO: some info here on the data requirements would be useful

Phase 3 - Correlation

Add the ability to correlate different data sets to each other. This would allow users to answer questions that involve potentially disparate data points. Examples:

  • "Show me a graph of platform usage over time for Bundler v1.15 requests"
  • "Show me reverse dependencies over time on the Windows platform for Rails" (not sure about this one)
  • "Show me Bundler usage metrics over time, collated by project, instead of by raw request count"

Phase 4 - Consolidation

Build a user interface that consolidates the best features from rubygems.org, npmjs.com and cocoapods.org to offer a comprehensive in-browser experience to a user evaluating a gem. Features can include:

  • In browser Ruby interpreter that allows the user to try out the gem
  • ...need more here.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment