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

Collaborating on Open Source Software

Collaborating on Open Source Software

Slides for my presentation at Cukenfest, London on April 3rd, 2019.

Marit van Dijk

April 03, 2019
Tweet

More Decks by Marit van Dijk

Other Decks in Programming

Transcript

  1. @MaritvanDijk77
    github.com/mlvandijk
    medium.com/@mlvandijk
    Collaborating on
    Open Source Software

    View full-size slide

  2. How I got started
    •Learn: Looking for a real life project to learn
    in a more useful way
    •Contribute: Give back / Feel useful
    @MaritvanDijk77

    View full-size slide

  3. Why Cucumber?
    •Started: I liked using it
    •Stayed: The community
    @MaritvanDijk77

    View full-size slide

  4. Why Cucumber?
    •Started: I liked using it
    •Stayed: The community
    @MaritvanDijk77

    View full-size slide

  5. Why Cucumber?
    •Started: I liked using it
    •Stayed: The community
    @MaritvanDijk77

    View full-size slide

  6. Reasons to contribute
    •Learning
    •Give back / Feel useful
    •Build CV
    •“Scratch an itch” (fix something you need)
    •Other?
    @MaritvanDijk77

    View full-size slide

  7. What to contribute: Code
    •Fix bugs
    •Add new features
    https://github.com/cucumber/cucumber-jvm/pull/1200 @MaritvanDijk77

    View full-size slide

  8. What to contribute: Code
    •Fix bugs
    •Add new features
    @MaritvanDijk77

    View full-size slide

  9. What to contribute: Code
    •Fix bugs
    •Add new features
    •Refactor
    https://github.com/cucumber/cucumber-jvm/pull/1590 @MaritvanDijk77

    View full-size slide

  10. What to contribute: Code
    •Fix bugs
    •Add new features
    •Refactor
    •Add unit tests
    https://github.com/cucumber/cucumber-jvm/pull/1194 @MaritvanDijk77

    View full-size slide

  11. What to contribute: Code
    •Fix bugs
    •Add new features
    •Refactor
    •Add unit tests
    •Upgrade dependencies
    •Review PR’s
    @MaritvanDijk77

    View full-size slide

  12. What to contribute: Code
    •Fix bugs
    •Add new features
    •Refactor
    •Add unit tests
    •Upgrade dependencies
    •Review PR’s
    @MaritvanDijk77

    View full-size slide

  13. What to contribute: Not code
    @MaritvanDijk77

    View full-size slide

  14. What to contribute: Not code
    •Documentation
    •Help the community
    •Issues
    •Testing
    •Other?
    •Ask!
    @MaritvanDijk77

    View full-size slide

  15. Documentation
    •Fix typos
    •Fix dead links
    •Edit for clarity
    •Add missing info
    •Point out what’s unclear / missing (issues)
    •Review PR’s
    @MaritvanDijk77

    View full-size slide

  16. Documentation
    •Fix typos
    •Fix dead links
    •Edit for clarity
    •Add missing info
    •Point out what’s unclear / missing (issues)
    •Review PR’s
    @MaritvanDijk77

    View full-size slide

  17. Documentation
    •Fix typos
    •Fix dead links
    •Edit for clarity
    •Add missing info
    •Point out what’s unclear / missing (issues)
    •Review PR’s
    @MaritvanDijk77

    View full-size slide

  18. Documentation
    •Fix typos
    •Fix dead links
    •Edit for clarity
    •Add missing info
    •Point out what’s unclear / missing (issues)
    •Review PR’s
    @MaritvanDijk77

    View full-size slide

  19. Documentation
    •Fix typos
    •Fix dead links
    •Edit for clarity
    •Add missing info
    •Point out what’s unclear / missing (issues)
    •Review PR’s
    @MaritvanDijk77

    View full-size slide

  20. Documentation
    •Fix typos
    •Fix dead links
    •Edit for clarity
    •Add missing info
    •Point out what’s unclear / missing (issues)
    •Review PR’s
    @MaritvanDijk77

    View full-size slide

  21. Help the community
    •Answer questions
    •Slack
    •Gitter
    •Mailing list
    •Etc
    •Protip: Consider adding that info to the
    documentation!
    @MaritvanDijk77

    View full-size slide

  22. Issues
    •Report issues
    • Ask if not sure
    • Check for duplicates
    • Provide relevant information: use template (or add one!)
    • Create an MCVE (https://stackoverflow.com/help/mcve)
    •Reproduce and add info (or tests!)
    •Triage & label issues
    @MaritvanDijk77

    View full-size slide

  23. Testing
    •Test a bugfix
    •Test a new feature
    •Test a new release
    •”Test” documentation / tutorials
    @MaritvanDijk77

    View full-size slide

  24. What to contribute: Not time
    @MaritvanDijk77

    View full-size slide

  25. What to contribute: Not time
    @MaritvanDijk77

    View full-size slide

  26. What to contribute: Not time
    •Most projects run on volunteers
    •You (or your employer) can donate money
    •Cucumber uses Open Collective:
    https://opencollective.com/cucumber
    @MaritvanDijk77

    View full-size slide

  27. How to get started
    •Find a project
    •Check how to contribute to that project
    •Pick a task
    •Set up tools (if needed)
    •Have fun!
    @MaritvanDijk77

    View full-size slide

  28. Get started: Find a project
    •A project you use
    •Websites
    •https://github.com/collections/choosing-projects
    •https://hacktoberfest.digitalocean.com/ (oktober)
    •https://www.codetriage.com/
    •https://up-for-grabs.net/#/
    •https://www.firsttimersonly.com/
    @MaritvanDijk77

    View full-size slide

  29. Get started: Guides / Tasks
    • How:
    • CONTRIBUTING.md
    • README.md
    • What:
    • Solve your own problem J
    • Check for “Good first issue” or similar
    • Ask!
    @MaritvanDijk77

    View full-size slide

  30. Get started: Tools
    •Git
    •Markdown
    •Programming environment
    • JDK / tools for your language
    • Package manager (Maven, npm, etc)
    @MaritvanDijk77

    View full-size slide

  31. @MaritvanDijk77
    github.com/mlvandijk
    medium.com/@mlvandijk
    Collaborating on
    Open Source Software

    View full-size slide