@MaritvanDijk77
github.com/mlvandijk
medium.com/@mlvandijk
Collaborating on
Open Source Software
Slide 2
Slide 2 text
How I got started
•Learn: Looking for a real life project to learn
in a more useful way
•Contribute: Give back / Feel useful
@MaritvanDijk77
Slide 3
Slide 3 text
Why Cucumber?
•Started: I liked using it
•Stayed: The community
@MaritvanDijk77
Slide 4
Slide 4 text
Why Cucumber?
•Started: I liked using it
•Stayed: The community
@MaritvanDijk77
Slide 5
Slide 5 text
Why Cucumber?
•Started: I liked using it
•Stayed: The community
@MaritvanDijk77
Slide 6
Slide 6 text
Reasons to contribute
•Learning
•Give back / Feel useful
•Build CV
•“Scratch an itch” (fix something you need)
•Other?
@MaritvanDijk77
Slide 7
Slide 7 text
What to contribute: Code
•Fix bugs
•Add new features
https://github.com/cucumber/cucumber-jvm/pull/1200 @MaritvanDijk77
Slide 8
Slide 8 text
What to contribute: Code
•Fix bugs
•Add new features
@MaritvanDijk77
Slide 9
Slide 9 text
What to contribute: Code
•Fix bugs
•Add new features
•Refactor
https://github.com/cucumber/cucumber-jvm/pull/1590 @MaritvanDijk77
Slide 10
Slide 10 text
What to contribute: Code
•Fix bugs
•Add new features
•Refactor
•Add unit tests
https://github.com/cucumber/cucumber-jvm/pull/1194 @MaritvanDijk77
Slide 11
Slide 11 text
What to contribute: Code
•Fix bugs
•Add new features
•Refactor
•Add unit tests
•Upgrade dependencies
•Review PR’s
@MaritvanDijk77
Slide 12
Slide 12 text
What to contribute: Code
•Fix bugs
•Add new features
•Refactor
•Add unit tests
•Upgrade dependencies
•Review PR’s
@MaritvanDijk77
Slide 13
Slide 13 text
What to contribute: Not code
@MaritvanDijk77
Slide 14
Slide 14 text
What to contribute: Not code
•Documentation
•Help the community
•Issues
•Testing
•Other?
•Ask!
@MaritvanDijk77
Slide 15
Slide 15 text
Documentation
•Fix typos
•Fix dead links
•Edit for clarity
•Add missing info
•Point out what’s unclear / missing (issues)
•Review PR’s
@MaritvanDijk77
Slide 16
Slide 16 text
Documentation
•Fix typos
•Fix dead links
•Edit for clarity
•Add missing info
•Point out what’s unclear / missing (issues)
•Review PR’s
@MaritvanDijk77
Slide 17
Slide 17 text
Documentation
•Fix typos
•Fix dead links
•Edit for clarity
•Add missing info
•Point out what’s unclear / missing (issues)
•Review PR’s
@MaritvanDijk77
Slide 18
Slide 18 text
Documentation
•Fix typos
•Fix dead links
•Edit for clarity
•Add missing info
•Point out what’s unclear / missing (issues)
•Review PR’s
@MaritvanDijk77
Slide 19
Slide 19 text
Documentation
•Fix typos
•Fix dead links
•Edit for clarity
•Add missing info
•Point out what’s unclear / missing (issues)
•Review PR’s
@MaritvanDijk77
Slide 20
Slide 20 text
Documentation
•Fix typos
•Fix dead links
•Edit for clarity
•Add missing info
•Point out what’s unclear / missing (issues)
•Review PR’s
@MaritvanDijk77
Slide 21
Slide 21 text
Help the community
•Answer questions
•Slack
•Gitter
•Mailing list
•Etc
•Protip: Consider adding that info to the
documentation!
@MaritvanDijk77
Slide 22
Slide 22 text
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
Slide 23
Slide 23 text
Testing
•Test a bugfix
•Test a new feature
•Test a new release
•”Test” documentation / tutorials
@MaritvanDijk77
Slide 24
Slide 24 text
What to contribute: Not time
@MaritvanDijk77
Slide 25
Slide 25 text
What to contribute: Not time
@MaritvanDijk77
Slide 26
Slide 26 text
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
Slide 27
Slide 27 text
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
Slide 28
Slide 28 text
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
Slide 29
Slide 29 text
Get started: Guides / Tasks
• How:
• CONTRIBUTING.md
• README.md
• What:
• Solve your own problem J
• Check for “Good first issue” or similar
• Ask!
@MaritvanDijk77
Slide 30
Slide 30 text
Get started: Tools
•Git
•Markdown
•Programming environment
• JDK / tools for your language
• Package manager (Maven, npm, etc)
@MaritvanDijk77
Slide 31
Slide 31 text
@MaritvanDijk77
github.com/mlvandijk
medium.com/@mlvandijk
Collaborating on
Open Source Software