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

Contributing to Open Source: from beginning to lessons learned @ Tropical Ruby 2015

Contributing to Open Source: from beginning to lessons learned @ Tropical Ruby 2015

Carlos Antonio

March 07, 2015
Tweet

More Decks by Carlos Antonio

Other Decks in Technology

Transcript

  1. Contribu)ng+to+Open%Source
    from%beginning%to%lessons%learned

    View full-size slide

  2. Many%people%have%difficul1es%to%do%
    their%first%open%source%contribu1on,%
    while%others%struggle%to%keep%
    ac1vely%contribu1ng.
    —"Carlos"Antonio

    View full-size slide

  3. Carlos'Antonio
    @cantoniodasilva

    View full-size slide

  4. Timeline:(<=#2008

    View full-size slide

  5. Timeline:(2009

    View full-size slide

  6. Timeline
    2010!=>!maintaining!Plataformatec!OSS!
    projects,!ocasional!contribu9ons!to!Rails!and!
    other!projects.

    View full-size slide

  7. Timeline
    2011!=>!maintaining!Plataformatec!OSS!
    projects,!ocasional!contribu9ons!to!Rails!and!
    other!projects.

    View full-size slide

  8. Timeline
    2012!=>!Rafael!and!I!started!working!
    frequently!on!Rails.
    Life%got%in%the%way%=>%Burnout.

    View full-size slide

  9. Timeline
    2013!=>!Contribu,ng!again,!without!changing!
    the!way!I!worked.

    View full-size slide

  10. I"got"married.
    <3#<3#<3

    View full-size slide

  11. Timeline
    2013!=>!Contribu,ng!again,!without!changing!
    the!way!I!worked.
    Life%got%in%the%way%=>%Burnout.

    View full-size slide

  12. Timeline
    2014!=>!Contribu,ng!again,!but!trying!new!
    ways!to!remain!ac,ve.

    View full-size slide

  13. Timeline
    Today!=>!Par'cipate!while!balancing!my!'me!
    between!life,!work,!and!OSS.
    No#burnout.

    View full-size slide

  14. Timeline
    Future!=>!Trailblazer!
    Core!Team?!?

    View full-size slide

  15. Where%do%I%start?
    Contribu)ng+starts+with+using.

    View full-size slide

  16. Where%do%I%start?
    Find%something%fun%(or%painful).

    View full-size slide

  17. Where%do%I%start?
    Help%yourself.

    View full-size slide

  18. How$do$I$start?
    Look$for$how/what$others$are$doing.

    View full-size slide

  19. Rely%on%maintainers
    They%are%there%to%help%and%guide.

    View full-size slide

  20. How$do$I$start?
    Use$some$of$your$free$%me$(and$a$bit$of$your$
    work$%me$too).

    View full-size slide

  21. Virtually)no#company)will)give)you)
    specific#-me)for)Open)Source.
    —#Carlos#Antonio

    View full-size slide

  22. It#is#up#to#you!

    View full-size slide

  23. How$do$I$start?
    Don't&be&afraid&to&share&your&work.
    ques%ons,)thoughts,)bug)reports,)small)patches,)typo)or)doc)fixes,)
    anything!

    View full-size slide

  24. 27.43%!of!all!pull!requests!get!
    rejected.
    —(Made(up(number

    View full-size slide

  25. Who$cares?
    !\_()_/!

    View full-size slide

  26. It#is#OK#to#be#wrong.

    View full-size slide

  27. It#is#all#about
    learning!/!improving.

    View full-size slide

  28. Celebrate!when!it!is!accepted.

    View full-size slide

  29. Remember!
    Limit!your!&me.!Create!a!workflow.

    View full-size slide

  30. Remember!
    Mo#va#on!vs!discipline.
    h"p:/
    /www.wisdomina/on.com/screw3mo/va/on3what3you3need3is3discipline/

    View full-size slide

  31. Be#nice.
    Saying'thank&you'doesn't'hurt'<3.

    View full-size slide

  32. Ge#ng&prac%cal

    View full-size slide

  33. Asking'ques%ons
    Avoid!the!issues!tracker.
    Try$Mailing$Lists,$Stack$Overflow,$IRC,$etc.

    View full-size slide

  34. Repor&ng)issues
    Search'for'similar'issues!first.

    View full-size slide

  35. Repor&ng)issues
    Try$to$give$as#much#informa-on$as$possible.

    View full-size slide

  36. Repor&ng)issues
    Try$to$explain$how$to$reproduce$the$problem.

    View full-size slide

  37. Sending'comments
    Add#something!to!the!discussion.

    View full-size slide

  38. Sending'comments
    Don't&just&send&a&+1,&please.

    View full-size slide

  39. Sending'patches
    Follow%the%project's*code*conven.ons.

    View full-size slide

  40. Rails&indent&code&conven.on

    View full-size slide

  41. Sending'patches
    Review!what!you've!done!before!submi4ng.

    View full-size slide

  42. Sending'patches
    Try$to$give$as#much#context$as$possible.

    View full-size slide

  43. Sending'patches
    Add/update)the)docs)and)the)changelog.

    View full-size slide

  44. Sending'patches
    Tests?!?

    View full-size slide

  45. Sending'patches
    Include(tests(when(possible.

    View full-size slide

  46. Sending'patches
    Incomplete*patches!are!OK.

    View full-size slide

  47. Sending'security)patches
    Never%send%them%to%the%issues%tracker.

    View full-size slide

  48. Never%send%a%security%patch
    to#the#issues%tracker

    View full-size slide

  49. Sending'security)patches
    Look$for$specific'emails,$or$no-fy'the'
    maintainers$directly.

    View full-size slide

  50. RTFC
    Read%The%F*cking%Contribu)ng.md.

    View full-size slide

  51. Maintaining!a!project

    View full-size slide

  52. Split!the!work:!build!a!team
    Trust&people!to!do!the&right&thing™.

    View full-size slide

  53. Ask!for!contribu+ons
    Help%them%help%you.

    View full-size slide

  54. Turn%no#fica#ons(off%(some+mes)
    They%might%get%overwhelming.

    View full-size slide

  55. Respond(to(issues!frequently
    Create&a&workflow&to&avoid&them&piling&up.

    View full-size slide

  56. Tips%for%keeping%your%Open%Source%
    So2ware%issues%tracker%6dy
    —"José"Valim","Plataformatec

    View full-size slide

  57. Can$I$contribute$to$Rails$right&now?
    Help%reviewing%open%issues%and%PRs%❤.

    View full-size slide

  58. Using&the&merge&bu.on&is&easy,&
    ensuring&that&a&reported&bug&is&really&
    an&issue&and&that&the&code&in&a&PR&is&
    ready&to&be&merged&is&way&harder&
    and&(me*consuming.
    —*The*Rails*Team

    View full-size slide

  59. RTFC
    Read%The%F*cking%Contribu)ng.md.

    View full-size slide

  60. h"p:/
    /guides.rubyonrails.org/

    View full-size slide

  61. Giving&back:&A&prac/cal&guide&to&
    OSS&contribu/ons
    —"Aaron"Pa)erson","Red"Hat

    View full-size slide

  62. How$to$Contribute$to$Open$Source:$
    Extensibility$from$Simplicity
    —"Ryan"Davis"+"AT&T"Interac4ve

    View full-size slide

  63. Don't&feel&guilty&about&not&
    contribu2ng&to&open&source
    —"Julia"Evans","Stripe

    View full-size slide

  64. I"some'mes"hear"people"say"“you%
    should%write%open%source%so2ware!”"
    like"it’s"a"universal"good."Don’t."Do"it"
    if"it"makes"sense"for"you,"if"it’s"worth"
    your"'me!
    —%Julia%Evans

    View full-size slide

  65. Contribu)ng+to+Big+Bad+Open+
    Source
    —"Sean"Doyle"+"Thoughtbot

    View full-size slide

  66. Stay%mo#vated

    View full-size slide

  67. And$keep$patching!

    View full-size slide

  68. Let$me$know$if$I$can$help$:)

    View full-size slide

  69. Carlos'Antonio
    @cantoniodasilva
    [email protected]
    about.me/carlosantoniodasilva
    !"❤$%

    View full-size slide