$30 off During Our Annual Pro Sale. View details »

The Success of Rails: Ensuring Growth for the Next 100 Years

The Success of Rails: Ensuring Growth for the Next 100 Years

RailsConf 2022 Day 2 Opening Keynote in which I explore the history of Rails, Shopify's role in the evolution of Rails, and the reasons that more companies should be investing in the framework with ongoing contributions.

Eileen M. Uchitelle

May 18, 2022
Tweet

More Decks by Eileen M. Uchitelle

Other Decks in Programming

Transcript

  1. The Success of Ruby on Rails Ensuring growth for the

    next 100 years
  2. Thank You, Ruby Central ὑ

  3. Eileen M Uchitelle Connect with me @eileencodes

  4. I work at Shopify Ruby & Rails Infrastructure Team

  5. Member of the Rails Core Team

  6. The Success of Ruby on Rails Ensuring growth for the

    next 100 years
  7. The History of Rails From hobby to success

  8. 2004 Rails is born The History of Rails

  9. 2004 Rails is born Tobi receives a zip of Rails

    The History of Rails
  10. 2004 2005 Snowdevil launches The History of Rails Rails is

    born Tobi receives a zip of Rails
  11. 2004 Rails is born Tobi receives a zip of Rails

    2005 Snowdevil launches Rails 1.0 is released The History of Rails
  12. The History of Rails 2006 Shopify launches 2004 Rails is

    born Tobi receives a zip of Rails 2005 Snowdevil launches Rails 1.0 is released
  13. 2008 GitHub launches The History of Rails 2006 Shopify launches

    2004 Rails is born Tobi receives a zip of Rails 2005 Snowdevil launches Rails 1.0 is released
  14. Rails moves to GitHub The History of Rails 2008 GitHub

    launches 2006 Shopify launches 2004 Rails is born Tobi receives a zip of Rails 2005 Snowdevil launches Rails 1.0 is released
  15. 2004 Rails is born Tobi receives a zip of Rails

    2008 GitHub launches Rails moves to GitHub 2005 Snowdevil launches Rails 1.0 is released 2006 Shopify launches The History of Rails
  16. Rails Governance Team structure and responsibilities

  17. 1. Core 2. Committers 3. Issue 4. Triage Rails Governance

    Structure
  18. 1. Core 2. Committers 3. Issue 4. Triage Security Includes

    Core and other security-focused contributors Rails Governance Structure
  19. Rails Governance Structure How the "Security" team works.

  20. Security Team • Triaging security issues on HackerOne and security@rubyonrails.org

  21. Security Team • Triaging security issues on HackerOne and security@rubyonrails.org

    • Writing patches for vulnerabilities
  22. Security Team • Triaging security issues on HackerOne and security@rubyonrails.org

    • Writing patches for vulnerabilities • Requests CVE
  23. Rails Governance Structure How the "Triage" team works.

  24. @keeran @ fl avorjones @tonkpils @skipkayhil @adrianna-chang- shopify @hahmed @hparker

    @ jorgemanrubia @ghiculescu
  25. Triage Team • Initial triaging of issues

  26. Triage Team • Initial triaging of issues • Reviewing pull

    requests
  27. Rails Governance Structure How the "Issues" team works.

  28. @p8 @seejohnrun @zzak @robin850 @vipulnsward @Edouard-chin @sikachu

  29. Issues Team • Triage issues, review PRs, nurture contributors

  30. Issues Team • Triage issues, review PRs, nurture contributors •

    Merge documentation and non-code changes
  31. Rails Governance Structure How the "Committers" team works.

  32. @amatsuda @schneems @eugeneius @y-yagi @gmcgibbon @yahonda @jonathanhefner

  33. Committers Team • Triage issues, review PRs, nurture contributors

  34. Committers Team • Triage issues, review PRs, nurture contributors •

    Merge most code changes
  35. Rails Governance Structure How the "Core" team works.

  36. @jeremy @matthewd @dhh @tenderlove @carlosantonio dasilva @rafaelfranca @guilleiguaran @fxn @jhawthorn

    @byroot @eileencodes @kamipo
  37. Core Team • Triage issues, review PRs, nurture contributors

  38. Core Team • Triage issues, review PRs, nurture contributors •

    Setting the direction of the framework
  39. Core Team • Triage issues, review PRs, nurture contributors •

    Setting the direction of the framework • Releasing Rails
  40. Core Team • Triage issues, review PRs, nurture contributors •

    Setting the direction of the framework • Releasing Rails • Setting Policy & Guidelines
  41. Core Team • Triage issues, review PRs, nurture contributors •

    Setting the direction of the framework • Releasing Rails • Setting Policy & Guidelines • Contributor Growth
  42. Rails Governance Making Rails more welcoming.

  43. Making Rails more welcoming • Open Discord server coming soon

  44. Making Rails more welcoming • Open Discord server coming soon

    • Implement review rounds for PRs
  45. Making Rails more welcoming • Open Discord server coming soon

    • Implement review rounds for PRs • Disabled the stale bot
  46. Making Rails more welcoming • Open Discord server coming soon

    • Implement review rounds for PRs • Disabled the stale bot • Open source of fi ce hours at RailsConf: Shopify Booth - today 3-4pm PST
  47. How I started contributing to Rails

  48. My History of Rails 2009 First learn of Rails

  49. My History of Rails 2009 First learn of Rails 2011

    Attend Big Nerd Ranch
  50. None
  51. My History of Rails 2014 First Rails PR 2009 First

    learn of Rails 2011 Attend Big Nerd Ranch
  52. My History of Rails 2014 First Rails PR 2009 First

    learn of Rails 2011 Attend Big Nerd Ranch Issues Team
  53. My History of Rails 2015 Committers Team 2014 First Rails

    PR 2009 First learn of Rails 2011 Attend Big Nerd Ranch Issues Team
  54. My History of Rails 2015 Committers Team 2014 First Rails

    PR 2009 First learn of Rails 2011 Attend Big Nerd Ranch Issues Team 2017 Core Team
  55. Why I work on Rails. A drive to work on

    something bigger.
  56. Why I work on Rails. To rede fi ne developer

    happiness.
  57. Why I work on Rails. To ensure applications stay on

    Rails.
  58. You should be investing in Rails

  59. Investing in Rails. Ensure it's part of your mission.

  60. Investing in Rails. Build a dedicated team.

  61. Investing in Rails. Treat Rails like an extension of your

    app.
  62. How to start contributing to Rails

  63. How to contribute to Rails. Read the contributing docs.

  64. guides.rubyonrails.org/contributing_to_ruby_on_rails.html

  65. How to contribute to Rails. Get Rails running on your

    machine.
  66. What does a good PR look like? • Write a

    descriptive commit message
  67. Fix tag helper regression Vue.js, alpinejs, and potentially other JS

    libraries support tags starting with `@` symbols. This was broken by the recent security release in 649516c. I've only added `@` to the list even though there are potentially other safe characters. We can add more if necessary (and if safe). Fixes: * #45014 * #44972
  68. What does a good PR look like? • Write a

    descriptive commit message • PRs should be 1 commit
  69. What does a good PR look like? • Write a

    descriptive commit message • PRs should be 1 commit • Open PRs against `main`
  70. What does a good PR look like? • Write a

    descriptive commit message • PRs should be 1 commit • Open PRs against `main` • Add tests & docs
  71. What does a good PR look like? • Write a

    descriptive commit message • PRs should be 1 commit • Open PRs against `main` • Add tests & docs • Add a CHANGELOG entry if applicable
  72. * `rails db:schema:{dump,load}` now checks `ENV["SCHEMA_FORMAT"]` before config Since `rails

    db:structure:{dump,load}` was deprecated there wasn't a simple way to dump a schema to both SQL and Ruby formats. You can now do this with an environment variable. For example: ``` SCHEMA_FORMAT=sql rake db:schema:dump ``` *Alex Ghiculescu*
  73. What does a good PR look like? • Write a

    descriptive commit message • PRs should be 1 commit • Open PRs against `main` • Add tests & docs • Add a CHANGELOG entry if applicable • Follow Rails style and patterns
  74. What does a good PR look like? • Write a

    descriptive commit message • PRs should be 1 commit • Open PRs against `main` • Add tests & docs • Add a CHANGELOG entry if applicable • Follow Rails style and patterns • Don't break public APIs
  75. How to contribute to Rails. No really. Upgrade your apps

    fi rst.
  76. How to contribute to Rails. Run your application off main.

  77. How to contribute to Rails. Look at how your apps

    are using Rails.
  78. How to contribute to Rails. Keep showing up and contributing.

  79. Why companies avoid open source

  80. Why leaders don't fund OSS. Leaders don't see it as

    a priority.
  81. Why leaders don't fund OSS. Leaders think working on OSS

    is "fun".
  82. Why leaders don't fund OSS. Leaders view OSS work as

    a reward.
  83. How to convince leadership

  84. How to convince leadership. Find your internal allies.

  85. How to convince leadership. Gather supporting data.

  86. How to convince leadership. Spend time developing a growth plan.

  87. How to convince leadership. Be mindful of the language you

    use.
  88. How to convince leadership. Don't get discouraged. Try again later.

  89. Why should we invest in Rails?

  90. Why invest in Rails? Improves engineering skills.

  91. Why invest in Rails? Because it's essential to app health.

  92. Why invest in Rails? It's less expensive than a rewrite.

  93. Blocked upgrade Unhappy engineers Low morale Force rewrite Site falling

    over High Risk 💻
  94. Resilient application Improved engineering skills Rails evolves with you Stable

    foundation Low technical debt 💻
  95. Investing in Rails is proactive.

  96. Investing in Rails is proactive. Rewriting an application is reactive.

  97. Why invest in Rails? Because you're missing out.

  98. Why invest in Rails? To make sure Rails is built

    for you.
  99. Why invest in Rails? To ensure success for 100+ years.

  100. Thank You RailsConf! Find me online @eileencodes