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

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

    View full-size slide

  2. Thank You,


    Ruby Central ὑ

    View full-size slide

  3. Eileen M Uchitelle
    Connect with me


    @eileencodes

    View full-size slide

  4. I work at Shopify
    Ruby & Rails


    Infrastructure Team

    View full-size slide

  5. Member of the
    Rails Core Team

    View full-size slide

  6. The Success


    of Ruby on Rails
    Ensuring growth for


    the next 100 years

    View full-size slide

  7. The History of Rails


    From hobby to


    success

    View full-size slide

  8. 2004
    Rails is born
    The History


    of Rails

    View full-size slide

  9. 2004
    Rails is born
    Tobi receives


    a zip of Rails
    The History


    of Rails

    View full-size slide

  10. 2004
    2005
    Snowdevil


    launches
    The History


    of Rails
    Rails is born
    Tobi receives


    a zip of Rails

    View full-size slide

  11. 2004
    Rails is born
    Tobi receives


    a zip of Rails 2005
    Snowdevil


    launches
    Rails 1.0 is


    released
    The History


    of Rails

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  16. Rails Governance


    Team structure and


    responsibilities

    View full-size slide

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

    View full-size slide

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


    and other


    security-focused


    contributors
    Rails Governance Structure

    View full-size slide

  19. Rails
    Governance
    Structure
    How the
    "Security"
    team works.

    View full-size slide

  20. Security Team
    • Triaging security issues on HackerOne
    and [email protected]

    View full-size slide

  21. Security Team
    • Triaging security issues on HackerOne
    and [email protected]


    • Writing patches for vulnerabilities

    View full-size slide

  22. Security Team
    • Triaging security issues on HackerOne
    and [email protected]


    • Writing patches for vulnerabilities


    • Requests CVE

    View full-size slide

  23. Rails
    Governance


    Structure
    How the


    "Triage" team
    works.

    View full-size slide

  24. @keeran @
    fl
    avorjones @tonkpils @skipkayhil
    @adrianna-chang-


    shopify
    @hahmed @hparker @ jorgemanrubia
    @ghiculescu

    View full-size slide

  25. Triage Team
    • Initial triaging of issues

    View full-size slide

  26. Triage Team
    • Initial triaging of issues


    • Reviewing pull requests

    View full-size slide

  27. Rails
    Governance
    Structure
    How the


    "Issues" team
    works.

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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


    • Merge documentation and non-code
    changes

    View full-size slide

  31. Rails
    Governance
    Structure
    How the
    "Committers"
    team works.

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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


    • Merge most code changes

    View full-size slide

  35. Rails
    Governance


    Structure
    How the


    "Core" team
    works.

    View full-size slide

  36. @jeremy @matthewd @dhh @tenderlove
    @carlosantonio


    dasilva
    @rafaelfranca @guilleiguaran
    @fxn @jhawthorn
    @byroot @eileencodes
    @kamipo

    View full-size slide

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

    View full-size slide

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


    • Setting the direction of the framework

    View full-size slide

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


    • Setting the direction of the framework


    • Releasing Rails

    View full-size slide

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


    • Setting the direction of the framework


    • Releasing Rails


    • Setting Policy & Guidelines


    View full-size slide

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


    • Setting the direction of the framework


    • Releasing Rails


    • Setting Policy & Guidelines


    • Contributor Growth

    View full-size slide

  42. Rails
    Governance
    Making Rails
    more
    welcoming.

    View full-size slide

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

    View full-size slide

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


    • Implement review rounds for PRs


    View full-size slide

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


    • Implement review rounds for PRs


    • Disabled the stale bot

    View full-size slide

  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

    View full-size slide

  47. How I started


    contributing to Rails

    View full-size slide

  48. My History of


    Rails
    2009
    First learn of


    Rails

    View full-size slide

  49. My History of


    Rails
    2009
    First learn of


    Rails
    2011
    Attend Big
    Nerd Ranch

    View full-size slide

  50. My History of


    Rails
    2014
    First Rails PR
    2009
    First learn of


    Rails
    2011
    Attend Big
    Nerd Ranch

    View full-size slide

  51. My History of


    Rails
    2014
    First Rails PR
    2009
    First learn of


    Rails
    2011
    Attend Big
    Nerd Ranch
    Issues Team

    View full-size slide

  52. My History of


    Rails
    2015
    Committers


    Team
    2014
    First Rails PR
    2009
    First learn of


    Rails
    2011
    Attend Big
    Nerd Ranch
    Issues Team

    View full-size slide

  53. 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

    View full-size slide

  54. Why I work
    on Rails.
    A drive to work
    on something
    bigger.

    View full-size slide

  55. Why I work
    on Rails.
    To rede
    fi
    ne
    developer
    happiness.

    View full-size slide

  56. Why I work
    on Rails.
    To ensure
    applications
    stay on Rails.

    View full-size slide

  57. You should be


    investing in Rails

    View full-size slide

  58. Investing


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

    View full-size slide

  59. Investing


    in Rails.
    Build a
    dedicated
    team.

    View full-size slide

  60. Investing


    in Rails.
    Treat Rails like
    an extension


    of your app.

    View full-size slide

  61. How to start


    contributing to Rails

    View full-size slide

  62. How to
    contribute


    to Rails.
    Read the
    contributing
    docs.

    View full-size slide

  63. guides.rubyonrails.org/contributing_to_ruby_on_rails.html

    View full-size slide

  64. How to
    contribute


    to Rails.
    Get Rails
    running on
    your machine.

    View full-size slide

  65. What does a good PR look like?
    • Write a descriptive commit message

    View full-size slide

  66. 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

    View full-size slide

  67. What does a good PR look like?
    • Write a descriptive commit message


    • PRs should be 1 commit

    View full-size slide

  68. What does a good PR look like?
    • Write a descriptive commit message


    • PRs should be 1 commit


    • Open PRs against `main`

    View full-size slide

  69. What does a good PR look like?
    • Write a descriptive commit message


    • PRs should be 1 commit


    • Open PRs against `main`


    • Add tests & docs

    View full-size slide

  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


    • Add a CHANGELOG entry if applicable

    View full-size slide

  71. * `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*

    View full-size slide

  72. 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

    View full-size slide

  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


    • Don't break public APIs

    View full-size slide

  74. How to
    contribute


    to Rails.
    No really.
    Upgrade your
    apps
    fi
    rst.

    View full-size slide

  75. How to
    contribute


    to Rails.
    Run your
    application off
    main.

    View full-size slide

  76. How to
    contribute


    to Rails.
    Look at how
    your apps are
    using Rails.

    View full-size slide

  77. How to
    contribute


    to Rails.
    Keep showing
    up and
    contributing.

    View full-size slide

  78. Why companies


    avoid open source

    View full-size slide

  79. Why leaders
    don't fund
    OSS.
    Leaders don't
    see it as a
    priority.

    View full-size slide

  80. Why leaders
    don't fund
    OSS.
    Leaders think
    working on
    OSS is "fun".

    View full-size slide

  81. Why leaders
    don't fund
    OSS.
    Leaders view
    OSS work as a
    reward.

    View full-size slide

  82. How to convince


    leadership

    View full-size slide

  83. How to
    convince
    leadership.
    Find your


    internal


    allies.

    View full-size slide

  84. How to
    convince
    leadership.
    Gather
    supporting
    data.

    View full-size slide

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

    View full-size slide

  86. How to
    convince
    leadership.
    Be mindful of
    the language
    you use.

    View full-size slide

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

    View full-size slide

  88. Why should we


    invest in Rails?

    View full-size slide

  89. Why invest


    in Rails?
    Improves
    engineering
    skills.

    View full-size slide

  90. Why invest


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

    View full-size slide

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

    View full-size slide

  92. Blocked upgrade
    Unhappy engineers
    Low morale
    Force rewrite
    Site falling over
    High Risk
    💻

    View full-size slide

  93. Resilient application
    Improved engineering skills
    Rails evolves with you
    Stable foundation
    Low technical debt
    💻

    View full-size slide

  94. Investing in
    Rails is
    proactive.

    View full-size slide

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

    View full-size slide

  96. Why invest


    in Rails?
    Because


    you're


    missing out.

    View full-size slide

  97. Why invest


    in Rails?
    To make sure
    Rails is built


    for you.

    View full-size slide

  98. Why invest


    in Rails?
    To ensure


    success for
    100+ years.

    View full-size slide

  99. Thank You
    RailsConf!


    Find me online @eileencodes

    View full-size slide