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 Slide

  2. Thank You,


    Ruby Central ὑ

    View Slide

  3. Eileen M Uchitelle
    Connect with me


    @eileencodes

    View Slide

  4. I work at Shopify
    Ruby & Rails


    Infrastructure Team

    View Slide

  5. Member of the
    Rails Core Team

    View Slide

  6. The Success


    of Ruby on Rails
    Ensuring growth for


    the next 100 years

    View Slide

  7. The History of Rails


    From hobby to


    success

    View Slide

  8. 2004
    Rails is born
    The History


    of Rails

    View Slide

  9. 2004
    Rails is born
    Tobi receives


    a zip of Rails
    The History


    of Rails

    View Slide

  10. 2004
    2005
    Snowdevil


    launches
    The History


    of Rails
    Rails is born
    Tobi receives


    a zip of Rails

    View 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 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 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 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 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 Slide

  16. Rails Governance


    Team structure and


    responsibilities

    View Slide

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

    View Slide

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


    and other


    security-focused


    contributors
    Rails Governance Structure

    View Slide

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

    View Slide

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

    View Slide

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


    • Writing patches for vulnerabilities

    View Slide

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


    • Writing patches for vulnerabilities


    • Requests CVE

    View Slide

  23. Rails
    Governance


    Structure
    How the


    "Triage" team
    works.

    View Slide

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


    shopify
    @hahmed @hparker @ jorgemanrubia
    @ghiculescu

    View Slide

  25. Triage Team
    • Initial triaging of issues

    View Slide

  26. Triage Team
    • Initial triaging of issues


    • Reviewing pull requests

    View Slide

  27. Rails
    Governance
    Structure
    How the


    "Issues" team
    works.

    View Slide

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

    View Slide

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

    View Slide

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


    • Merge documentation and non-code
    changes

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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


    • Merge most code changes

    View Slide

  35. Rails
    Governance


    Structure
    How the


    "Core" team
    works.

    View Slide

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


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

    View Slide

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

    View Slide

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


    • Setting the direction of the framework

    View Slide

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


    • Setting the direction of the framework


    • Releasing Rails

    View Slide

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


    • Setting the direction of the framework


    • Releasing Rails


    • Setting Policy & Guidelines


    View Slide

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


    • Setting the direction of the framework


    • Releasing Rails


    • Setting Policy & Guidelines


    • Contributor Growth

    View Slide

  42. Rails
    Governance
    Making Rails
    more
    welcoming.

    View Slide

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

    View Slide

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


    • Implement review rounds for PRs


    View Slide

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


    • Implement review rounds for PRs


    • Disabled the stale bot

    View 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 Slide

  47. How I started


    contributing to Rails

    View Slide

  48. My History of


    Rails
    2009
    First learn of


    Rails

    View Slide

  49. My History of


    Rails
    2009
    First learn of


    Rails
    2011
    Attend Big
    Nerd Ranch

    View Slide

  50. View Slide

  51. My History of


    Rails
    2014
    First Rails PR
    2009
    First learn of


    Rails
    2011
    Attend Big
    Nerd Ranch

    View Slide

  52. My History of


    Rails
    2014
    First Rails PR
    2009
    First learn of


    Rails
    2011
    Attend Big
    Nerd Ranch
    Issues Team

    View 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

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  58. You should be


    investing in Rails

    View Slide

  59. Investing


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

    View Slide

  60. Investing


    in Rails.
    Build a
    dedicated
    team.

    View Slide

  61. Investing


    in Rails.
    Treat Rails like
    an extension


    of your app.

    View Slide

  62. How to start


    contributing to Rails

    View Slide

  63. How to
    contribute


    to Rails.
    Read the
    contributing
    docs.

    View Slide

  64. guides.rubyonrails.org/contributing_to_ruby_on_rails.html

    View Slide

  65. How to
    contribute


    to Rails.
    Get Rails
    running on
    your machine.

    View Slide

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

    View Slide

  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

    View Slide

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


    • PRs should be 1 commit

    View Slide

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


    • PRs should be 1 commit


    • Open PRs against `main`

    View 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

    View Slide

  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

    View Slide

  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*

    View 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

    View Slide

  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

    View Slide

  75. How to
    contribute


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

    View Slide

  76. How to
    contribute


    to Rails.
    Run your
    application off
    main.

    View Slide

  77. How to
    contribute


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

    View Slide

  78. How to
    contribute


    to Rails.
    Keep showing
    up and
    contributing.

    View Slide

  79. Why companies


    avoid open source

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  83. How to convince


    leadership

    View Slide

  84. How to
    convince
    leadership.
    Find your


    internal


    allies.

    View Slide

  85. How to
    convince
    leadership.
    Gather
    supporting
    data.

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  89. Why should we


    invest in Rails?

    View Slide

  90. Why invest


    in Rails?
    Improves
    engineering
    skills.

    View Slide

  91. Why invest


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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  95. Investing in
    Rails is
    proactive.

    View Slide

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

    View Slide

  97. Why invest


    in Rails?
    Because


    you're


    missing out.

    View Slide

  98. Why invest


    in Rails?
    To make sure
    Rails is built


    for you.

    View Slide

  99. Why invest


    in Rails?
    To ensure


    success for
    100+ years.

    View Slide

  100. Thank You
    RailsConf!


    Find me online @eileencodes

    View Slide