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

Open Source At Facebook And Beyond - All Things Open 2014

Open Source At Facebook And Beyond - All Things Open 2014

In 2013, Facebook rebooted its open source portfolio and launched a unique suite of internal tools & instrumentation to support hundreds of repos, thousands of engineers, and tens of thousands of contributors. How did we do? And how can we share what we learned with other companies looking to run open source programs at scale?

James Pearce

October 23, 2014
Tweet

More Decks by James Pearce

Other Decks in Technology

Transcript

  1. Open Source at Facebook

    And Beyond
    JAMES PEARCE

    @jamespearce

    View Slide

  2. View Slide

  3. View Slide

  4. 211 Projects
    10+ MLoC
    118k Followers

    21k Forks

    View Slide

  5. View Slide

  6. USE
    SCALE
    IMPROVE REPLACE
    RELEASE

    View Slide

  7. View Slide

  8. Open source is like 

    the breeze from 

    an open window

    View Slide

  9. But…

    View Slide

  10. View Slide

  11. View Slide

  12. View Slide

  13. View Slide

  14. View Slide

  15. View Slide

  16. View Slide

  17. Every repo
    Every commit
    Every pull request
    Every issue

    View Slide

  18. [opensource]>  select  

                               name,  followers,  forks,  commits,  issues,  pull_requests  

                               from  github_repos  order  by  created_at  limit  10;

    +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  
    |  name                        |  followers  |  forks  |  commits  |  issues  |  pull_requests  |  
    +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  
    |  memcached              |              323  |        53  |          209  |            1  |                          0  |  
    |  three20                  |            7429  |    1521  |        1680  |        200  |                          0  |  
    |  platform                |              146  |        31  |          310  |            2  |                          0  |  
    |  bunny1                    |                43  |        15  |            10  |            0  |                          0  |  
    |  phpembed                |              132  |        26  |            31  |            1  |                          0  |  
    |  codemod                  |              309  |        49  |            13  |            9  |                          3  |  
    |  animation              |                  0  |          0  |              0  |            1  |                          0  |  
    |  scribe                    |            2572  |      469  |          117  |          59  |                        11  |  
    |  firefox-­‐toolbar  |                93  |        50  |          532  |          10  |                          0  |  
    |  cassandra              |              205  |        27  |          189  |            0  |                          0  |  
    +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+

    View Slide

  19. View Slide

  20. Average followers per repo

    Average forks per repo
    Average pull-request age

    Average issue age
    External commits

    View Slide

  21. View Slide

  22. View Slide

  23. View Slide

  24. View Slide

  25. View Slide

  26. Snapshot Upstream Fly the nest Deprecate Reboot
    OPEN
    SOURCE
    PROJECTS

    View Slide

  27. View Slide

  28. View Slide

  29. View Slide

  30. Why run an open source program?
    Policies for launching new projects
    Using external open source projects
    Employee projects on their own time
    Licenses, CLAs & other boilerplates
    Interacting with your communities
    Managing large open source portfolios
    Metrics for success
    The open source project lifecycle
    Open source & corporate identities
    What is the source of truth of truth?
    … and more!

    View Slide

  31. http://todogroup.org

    View Slide

  32. JAMES PEARCE

    @jamespearce

    View Slide