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

Open Source at Scale

Open Source at Scale

"Standing on the shoulders of giants"
We could say the same for Open Source Software (OSS).

Daily we're using a countless number of OSS libraries, tools, and frameworks to build our applications. We rely on the work of contributors, companies, and foundations which are dedicating their time and resources to the Open Source ecosystem.

However, building Open Source Software is not as easy as copy-n-pasting a folder on GitHub. Great Open Source Software needs dedicated resources, top-notch documentation, openness to the community, and a mindset to follow industry trends and directions.
Moreover, releasing OSS as an individual and as a company has deep fundamental differences.

Inside the React Team, we strive to build first-class OSS frameworks, to empower developers across the globe to build elegant UI experiences across Mobile & Web.

In this talk, I'll walk you through my experience building OSS Software, how you can get started, how to get your organization involved, and how to bring your project to success.

Nicola Corti

January 01, 2023
Tweet

More Decks by Nicola Corti

Other Decks in Technology

Transcript

  1. View Slide

  2. Open Source


    at Scale
    Nicola Corti


    he/him


    @cortinico
    i.e. what I’ve learned from one year at React Native

    View Slide

  3. he/him


    Android @ React Native


    twitter.com/cortinico


    github.com/cortinico


    ncorti.com
    Nicola Corti

    View Slide

  4. LAMP

    View Slide

  5. View Slide

  6. Idea Pre-launch Launch Maturity Graduation

    View Slide

  7. Idea

    View Slide

  8. Hackathon Project

    View Slide

  9. Production Level OSS
    react buck pytorch componentkit docusaurus
    flipper litho fresco infer

    View Slide

  10. Pre-launch

    View Slide

  11. We build


    from source

    View Slide

  12. We build


    from main

    View Slide

  13. The Source of Truth
    fbsource
    sync

    View Slide

  14. The Source of Truth
    fbsource
    import
    commit & close PR
    github.com/facebook/fbshipit

    View Slide

  15. Build Tools
    • Challenges


    • Align the frameworks to
    tools that are not alien in
    the ecosystem


    • Expose relevant build
    failures to contributors

    View Slide

  16. Prerequisites
    • Be able to build both internally
    and externally


    • Valuable/Stable CI Signals &
    Test Coverage


    • Team onboard with

    OSS capacity


    • OSS is a tech & people challenge

    View Slide

  17. Launch

    View Slide

  18. Live

    View Slide

  19. Live

    View Slide

  20. Issue Triaging

    View Slide

  21. Issue Triaging

    View Slide

  22. Issue Triaging
    • Define a process


    • Use meaningful labels


    • actions/github-script to react to
    labels


    • actions/stale to close old issues


    • Canned Responses


    • reactnative.dev/contributing/bots-
    reference

    View Slide

  23. Self-service APIs
    • Useful Error Messages


    • react-native doctor

    To auto-inspect the user
    environment


    • react-native info

    To auto-inspect the user
    environment

    View Slide

  24. Reproducers
    • Mandatory reproducers as:


    • Failing Test cases


    • react-native init repos


    • Snack

    View Slide

  25. Pull Requests

    View Slide

  26. Pull Requests
    • (again) Define a process


    • Rotate reviewers
    (CODEOWNERS)


    • github.com/danger/danger

    View Slide

  27. Pull Requests

    View Slide

  28. Maturity

    View Slide

  29. Releases

    View Slide

  30. Releases
    Release Captain Release Co-pilot

    Release Supporter
    • Drives the

    release process


    • Makes final call on
    critical decisions
    • Generally from a
    partner company


    • Supports the

    release process


    • Helps with comms
    and testing
    • Joined as a voluntary
    program


    • Helps with early
    feedback on RCs

    View Slide

  31. Releases

    View Slide

  32. Releases

    View Slide

  33. Releases reactnative.dev/contributing/

    View Slide

  34. Migrations

    View Slide

  35. Migrations

    View Slide

  36. Migrations

    View Slide

  37. What does Support mean for you?
    • You can’t help everyone


    • How long is a version supported:


    • Define clear expectations

    for users and tool developers

    View Slide

  38. External Engagement
    Twitter
    Conferences Surveys
    Podcasts

    View Slide

  39. External Engagement

    View Slide

  40. Internal Engagement

    View Slide

  41. Graduation

    View Slide

  42. By Organizational Structure of Open Source Projects: A Life Cycle Approach - D. Wynn
    Introduction Growth Maturity Decline or


    Revive
    Adoption

    View Slide

  43. Archiving

    View Slide

  44. Transfer

    View Slide

  45. Idea Pre-launch Launch Maturity Graduation
    Wrap-up

    View Slide

  46. todogroup.org/
    • Get a OSPO


    • Get a CLA process


    • github.com/todogroup/repolinter


    • README.md

    • LICENSE

    • CONTRIBUTING

    • CODE-OF-CONDUCT

    • CHANGELOG

    View Slide

  47. “If I have seen further…
    …it is by standing


    on the shoulders of Giants”
    ― Isaac Newton, The Correspondence Of Isaac Newton

    View Slide

  48. Nicola Corti


    @cortinico
    Thank You & Contribs are Welcome

    View Slide

  49. Ecosystem

    View Slide

  50. Ecosystem

    View Slide

  51. Ecosystem

    View Slide

  52. Ecosystem

    View Slide