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

'ProTalking' your way into Open Source

01da6d807a29ad6d49801c0157518148?s=47 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.

01da6d807a29ad6d49801c0157518148?s=128

Michelle Sanver

September 14, 2013
Tweet

More Decks by Michelle Sanver

Other Decks in Programming

Transcript

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

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

  3. None
  4. None
  5. About ProTalk Videos about PHP! In fact.... If you want

    to see this talk again @michellesanver
  6. About ProTalk ProTalk.ME @michellesanver

  7. About ProTalk Contribute! @michellesanver

  8. Who are you? @michellesanver

  9. Contribute to my talk @michellesanver

  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
  11. Better Quality @michellesanver

  12. Higher Reliability @michellesanver

  13. More Flexibility @michellesanver

  14. Lower Cost @michellesanver

  15. End to predatory vendor lock-in @michellesanver

  16. Convinced Yet? @michellesanver

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

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

    get it wrong
  19. Before we get started... Top3: Kim @michellesanver You might not

    get an immediate response
  20. Before we get started... Top3: Kim @michellesanver Don't be afraid

    to ask for a task to be assigned to you
  21. Before we get started... Top3: Lineke @michellesanver Git

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

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

  24. Contributing to Open Source In 10 steps @michellesanver

  25. Step 1: Choose The Project @michellesanver

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

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

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

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

    @michellesanver
  30. @michellesanver

  31. Step 1: Choose The Project Activity @michellesanver

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

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

  34. @michellesanver

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

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

  37. Step 2: Install The Project @michellesanver

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

  39. @michellesanver

  40. @michellesanver

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

  42. @michellesanver

  43. @michellesanver

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

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

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

  47. Step 2: Install The Project Manually @michellesanver

  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
  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
  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 adminadmin@example.com password -- super-admin @michellesanver
  51. Do you like vagrant now? @michellesanver

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

  53. Step 3: Investigation @michellesanver

  54. Step 3: Investigation Codebase @michellesanver

  55. Step 3: Investigation Coding guidelines @michellesanver

  56. Step 3: Investigation Tests? @michellesanver

  57. Step 3: Investigation Questions and Pointers @michellesanver

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

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

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

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

  62. Step 4: Hiiiiiii!!! :-) Observe the responses (Should I stay,

    or should I go?) @michellesanver
  63. Step 4: Hiiiiiii!!! :-) Questions and Pointers @michellesanver

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

  65. Step 5: What can I do? It’s not your project.

    (But nothing stops you from branching...) @michellesanver
  66. Step 5: What can I do? The github issuetracker @michellesanver

  67. @michellesanver

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

  69. @michellesanver

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

  71. @michellesanver

  72. @michellesanver

  73. Step 5: What can I do? Communicate! In open source

    - Communication is key @michellesanver
  74. Step 5: What can I do? Questions and Pointers @michellesanver

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

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

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

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

  79. Step 6: How... ? It’s private, for now. (If you

    want it to be) @michellesanver
  80. Step 6: How... ? Ask questions... @michellesanver

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

  82. Step 7: Just do it @michellesanver

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

  84. Step 7: Just do it $ git remote add upstream

    https://github.com/protalk/pro $ git fetch upstream $ git merge upstream/master @michellesanver
  85. Step 7: Just do it Make your changes (You know

    how to code, right?) @michellesanver
  86. Step 7: Just do it Commit often $ git commit

    -m 'Michelle will be pleased <3' @michellesanver
  87. Step 7: Just do it Questions and Pointers @michellesanver

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

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

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

    Pointers @michellesanver
  91. Step 9: The pull request @michellesanver

  92. Step 9: The pull request Time to show the world

    (Except those poor sods without Internet) @michellesanver
  93. Step 9: The pull request Don’t worry (Be happy) @michellesanver

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

    a form...) @michellesanver
  95. @michellesanver

  96. @michellesanver

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

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

  99. Step 10: Code Review @michellesanver

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

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

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

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

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

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

  106. You did it... @michellesanver

  107. General Questions? @michellesanver

  108. Thank you! :) Git: http://gitimmersion.com/ Licenses: http://www.tldrlegal.com/ Rate my talk!!

    (PLZ) :-) http://joind.in/talk/view/8950 @michellesanver