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 Slide

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

    View Slide

  3. Carlos'Antonio
    @cantoniodasilva

    View Slide

  4. Marley

    View Slide

  5. View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  9. View Slide

  10. View Slide

  11. View Slide

  12. Timeline:(<=#2008

    View Slide

  13. View Slide

  14. View Slide

  15. View Slide

  16. View Slide

  17. Timeline:(2009

    View Slide

  18. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  27. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  37. 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 Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  42. Celebrate!when!it!is!accepted.

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  46. Ge#ng&prac%cal

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  53. View Slide

  54. View Slide

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

    View Slide

  56. Rails&indent&code&conven.on

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  60. Sending'patches
    Tests?!?

    View Slide

  61. TDD
    is#dead

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  68. View Slide

  69. View Slide

  70. View Slide

  71. Maintaining!a!project

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  78. View Slide

  79. 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 Slide

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

    View Slide

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

    View Slide

  82. homework

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  86. 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 Slide

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

    View Slide

  88. Start%small

    View Slide

  89. Stay%mo#vated

    View Slide

  90. And$keep$patching!

    View Slide

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

    View Slide

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

    View Slide