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

'ProTalking' your way into Open Source

Michelle Sanver
September 14, 2013

'ProTalking' your way into Open Source

So, you want to join the open source party, but you're not used to every man and his dog looking at your code. You keep putting it off, you don't know anyone involved in the project, you might be a burden...
If you want to get involved but keep talking yourself out of it, let me show you how to take that first step. I'll cover the mechanics of contributing, from saying hello and installing the project to selecting a bug, your first pull request and code review.
I recently joined my first open source project - ProTalk. Come along and let me ProTalk you into Open Source.

Michelle Sanver

September 14, 2013
Tweet

More Decks by Michelle Sanver

Other Decks in Programming

Transcript

  1. ‘ProTalking’
    Your way into Open Source
    @michellesanver

    View Slide

  2. Michelle Sanver
    A code-passionate colourful geek.
    @michellesanver

    View Slide

  3. View Slide

  4. View Slide

  5. About ProTalk
    Videos about PHP!
    In fact.... If you want to see this talk again
    @michellesanver

    View Slide

  6. About ProTalk
    ProTalk.ME
    @michellesanver

    View Slide

  7. About ProTalk
    Contribute!
    @michellesanver

    View Slide

  8. Who are you?
    @michellesanver

    View Slide

  9. Contribute to my talk
    @michellesanver

    View Slide

  10. “The promise of open source is better quality, higher
    reliability, more flexibility, lower cost, and an end to
    predatory vendor lock-in.” - opensource.org
    @michellesanver

    View Slide

  11. Better Quality
    @michellesanver

    View Slide

  12. Higher Reliability
    @michellesanver

    View Slide

  13. More Flexibility
    @michellesanver

    View Slide

  14. Lower Cost
    @michellesanver

    View Slide

  15. End to predatory vendor lock-in
    @michellesanver

    View Slide

  16. Convinced Yet?
    @michellesanver

    View Slide

  17. Before we get started...
    Top3: Lineke an Kim
    @michellesanver

    View Slide

  18. Before we get started...
    Top3: Kim
    @michellesanver
    It’s ok to get it wrong

    View Slide

  19. Before we get started...
    Top3: Kim
    @michellesanver
    You might not get an immediate response

    View Slide

  20. Before we get started...
    Top3: Kim
    @michellesanver
    Don't be afraid to ask for a task to be assigned to you

    View Slide

  21. Before we get started...
    Top3: Lineke
    @michellesanver
    Git

    View Slide

  22. Before we get started...
    Top3: Lineke
    @michellesanver
    Passion & Usability

    View Slide

  23. Before we get started...
    Top3: Lineke
    @michellesanver
    The development process

    View Slide

  24. Contributing to Open Source
    In 10 steps
    @michellesanver

    View Slide

  25. Step 1: Choose The Project
    @michellesanver

    View Slide

  26. Step 1: Choose The Project
    Be phpassionate about it
    Lineke’s

    View Slide

  27. Step 1: Choose The Project
    (ab)use github!
    @michellesanver

    View Slide

  28. Step 1: Choose The Project
    Search! :)
    @michellesanver

    View Slide

  29. Step 1: Choose The Project
    What are your ‘friends’ doing?
    @michellesanver

    View Slide

  30. @michellesanver

    View Slide

  31. Step 1: Choose The Project
    Activity
    @michellesanver

    View Slide

  32. Step 1: Choose The Project
    Check the commit history
    @michellesanver

    View Slide

  33. Step 1: Choose The Project
    Your Skills
    @michellesanver

    View Slide

  34. @michellesanver

    View Slide

  35. Step 1: Choose The Project
    Erm... License?
    @michellesanver

    View Slide

  36. Questions and Pointers
    Step 1: Choose The Project
    @michellesanver

    View Slide

  37. Step 2: Install The Project
    @michellesanver

    View Slide

  38. Step 2: Install The Project
    Fork It
    @michellesanver

    View Slide

  39. @michellesanver

    View Slide

  40. @michellesanver

    View Slide

  41. Step 2: Install The Project
    Clone It
    @michellesanver

    View Slide

  42. @michellesanver

    View Slide

  43. @michellesanver

    View Slide

  44. Step 2: Install The Project
    Using vagrant
    @michellesanver

    View Slide

  45. Step 2: Install The Project
    Ruby, Vagrant,
    Oracle VirtualBox
    @michellesanver

    View Slide

  46. Step 2: Install The Project
    $ vagrant up
    @michellesanver

    View Slide

  47. Step 2: Install The Project
    Manually
    @michellesanver

    View Slide

  48. Step 2: Install The Project
    • Fork the protalk repository
    • Use git clone to get your fork on your local
    machine
    • Run ant - this will install all dependencies,
    clear the cache and run tests
    @michellesanver

    View Slide

  49. Step 2: Install The Project
    • Make sure the app/cache and app/logs
    directories are writable by the webserver
    • Create the database and change the
    parameters.ini in app/config to set the
    database connection details
    • Run the command "app/console
    doctrine:schema:create" to create the
    database tables
    @michellesanver

    View Slide

  50. Step 2: Install The Project
    • Import the doc/db/seed_data.sql in your
    database for initial data
    • Creating a admin user for the backend can
    be done by running this command: "app/
    console fos:user:create
    [email protected] password --
    super-admin
    @michellesanver

    View Slide

  51. Do you like vagrant now?
    @michellesanver

    View Slide

  52. Step 2: Install The Project
    Questions and Pointers
    @michellesanver

    View Slide

  53. Step 3: Investigation
    @michellesanver

    View Slide

  54. Step 3: Investigation
    Codebase
    @michellesanver

    View Slide

  55. Step 3: Investigation
    Coding guidelines
    @michellesanver

    View Slide

  56. Step 3: Investigation
    Tests?
    @michellesanver

    View Slide

  57. Step 3: Investigation
    Questions and Pointers
    @michellesanver

    View Slide

  58. Step 4: Hiiiiiii!!! :-)
    @michellesanver

    View Slide

  59. Step 4: Hiiiiiii!!! :-)
    Where art thou?
    @michellesanver

    View Slide

  60. Step 4: Hiiiiiii!!! :-)
    IRC
    I’m geekie
    @michellesanver

    View Slide

  61. Step 4: Hiiiiiii!!! :-)
    Contact them
    @michellesanver

    View Slide

  62. Step 4: Hiiiiiii!!! :-)
    Observe the responses
    (Should I stay, or should I go?)
    @michellesanver

    View Slide

  63. Step 4: Hiiiiiii!!! :-)
    Questions and Pointers
    @michellesanver

    View Slide

  64. Step 5: What can I do?
    @michellesanver

    View Slide

  65. Step 5: What can I do?
    It’s not your project.
    (But nothing stops you from branching...)
    @michellesanver

    View Slide

  66. Step 5: What can I do?
    The github issuetracker
    @michellesanver

    View Slide

  67. @michellesanver

    View Slide

  68. Step 5: What can I do?
    Pick an issue
    @michellesanver

    View Slide

  69. @michellesanver

    View Slide

  70. Step 5: What can I do?
    Create an issue
    @michellesanver

    View Slide

  71. @michellesanver

    View Slide

  72. @michellesanver

    View Slide

  73. Step 5: What can I do?
    Communicate!
    In open source - Communication is key
    @michellesanver

    View Slide

  74. Step 5: What can I do?
    Questions and Pointers
    @michellesanver

    View Slide

  75. Step 6: How... ?
    @michellesanver

    View Slide

  76. Step 6: How... ?
    Read The Guidelines
    @michellesanver

    View Slide

  77. Step 6: How... ?
    It’s “just” code.
    @michellesanver

    View Slide

  78. Step 6: How... ?
    If that scares you...
    @michellesanver

    View Slide

  79. Step 6: How... ?
    It’s private, for now.
    (If you want it to be)
    @michellesanver

    View Slide

  80. Step 6: How... ?
    Ask questions...
    @michellesanver

    View Slide

  81. Step 6: How... ?
    Questions and Pointers
    @michellesanver

    View Slide

  82. Step 7: Just do it
    @michellesanver

    View Slide

  83. Step 7: Just do it
    Keep yourself updated
    @michellesanver

    View Slide

  84. Step 7: Just do it
    $ git remote add upstream https://github.com/protalk/pro
    $ git fetch upstream
    $ git merge upstream/master
    @michellesanver

    View Slide

  85. Step 7: Just do it
    Make your changes
    (You know how to code, right?)
    @michellesanver

    View Slide

  86. Step 7: Just do it
    Commit often
    $ git commit -m 'Michelle will be pleased <3'
    @michellesanver

    View Slide

  87. Step 7: Just do it
    Questions and Pointers
    @michellesanver

    View Slide

  88. Step 8: Push it (Just push it push it)
    @michellesanver

    View Slide

  89. Step 8: Push it (Push it real good)
    $ git push
    @michellesanver

    View Slide

  90. Step 8: Push it (Push it real good)
    Questions and Pointers
    @michellesanver

    View Slide

  91. Step 9: The pull request
    @michellesanver

    View Slide

  92. Step 9: The pull request
    Time to show the world
    (Except those poor sods without Internet)
    @michellesanver

    View Slide

  93. Step 9: The pull request
    Don’t worry
    (Be happy)
    @michellesanver

    View Slide

  94. Step 9: The pull request
    It’s just a button
    (And a form...)
    @michellesanver

    View Slide

  95. @michellesanver

    View Slide

  96. @michellesanver

    View Slide

  97. Step 9: The pull request
    Linking to the issuetracker
    #1337
    @michellesanver

    View Slide

  98. Step 9: The pull request
    Questions and Pointers
    @michellesanver

    View Slide

  99. Step 10: Code Review
    @michellesanver

    View Slide

  100. Step 10: Code Review
    It’s constructive criticism
    @michellesanver

    View Slide

  101. Step 10: Code Review
    Correct or discuss
    @michellesanver

    View Slide

  102. Step 10: Code Review
    You learn so much!
    @michellesanver

    View Slide

  103. Step 10: Code Review
    And if there’s trolls...
    @michellesanver

    View Slide

  104. Step 10: Code Review
    Trolls can be cute too!
    @michellesanver

    View Slide

  105. Step 10: Code Review
    Questions and Pointers
    @michellesanver

    View Slide

  106. You did it...
    @michellesanver

    View Slide

  107. General Questions?
    @michellesanver

    View Slide

  108. Thank you! :)
    Git: http://gitimmersion.com/
    Licenses: http://www.tldrlegal.com/
    Rate my talk!! (PLZ) :-)
    http://joind.in/talk/view/8950
    @michellesanver

    View Slide