Slide 1

Slide 1 text

Contribute with me! Getting started with the tools of free software development Wednesday, March 20, 13

Slide 2

Slide 2 text

Hello @jessicamckellar http://jesstess.com Wednesday, March 20, 13

Slide 3

Slide 3 text

Why contribute to free software? • Give back to the community • People • Education • Work • Fun Wednesday, March 20, 13

Slide 4

Slide 4 text

Ways to contribute Features Bugs Tests Documentation Website Infrastructure Translation Artwork Helping users Wednesday, March 20, 13

Slide 5

Slide 5 text

Today Part I: the life cycle of a bug Part II: practicing the tools Part III: contributing to a toy project Part IV: next steps, contributing to a real project Wednesday, March 20, 13

Slide 6

Slide 6 text

A note on bonus material Wednesday, March 20, 13

Slide 7

Slide 7 text

Part I: Lifecycle of a bug Wednesday, March 20, 13

Slide 8

Slide 8 text

• Report • Triage • Patch • Test • Review • Resolve Part I: Lifecycle of a bug Wednesday, March 20, 13

Slide 9

Slide 9 text

Report and triage: communication • mailing lists • IRC Report Triage Patch Test Review Resolve Wednesday, March 20, 13

Slide 10

Slide 10 text

Report and triage: issue trackers Report Triage Patch Test Review Resolve Demo! Wednesday, March 20, 13

Slide 11

Slide 11 text

Report and triage: How to write a good bug report • Short, self-contained example • Explicit steps to reproduce • Input • Expected output • Actual output Report Triage Patch Test Review Resolve Demo! Wednesday, March 20, 13

Slide 12

Slide 12 text

Patch: diff and patch Report Triage Patch Test Review Resolve Demo! Wednesday, March 20, 13

Slide 13

Slide 13 text

Patch: revision control • Collaborative development • Managing changes / history • Like Wikipedia Demo! Report Triage Patch Test Review Resolve Wednesday, March 20, 13

Slide 14

Slide 14 text

Test: test suite and automation Report Triage Patch Test Review Resolve Demo! Wednesday, March 20, 13

Slide 15

Slide 15 text

Review Report Triage Patch Test Review Resolve Correct Clean Well-documented Tested Demo! Wednesday, March 20, 13

Slide 16

Slide 16 text

Resolve Report Triage Patch Test Review Resolve Wednesday, March 20, 13

Slide 17

Slide 17 text

• Report • Triage • Patch • Test • Review • Resolve Part I: Lifecycle of a bug Wednesday, March 20, 13

Slide 18

Slide 18 text

• Command line navigation • Text editors • IRC http://bit.ly/open-source1 Part II: practicing the tools Wednesday, March 20, 13

Slide 19

Slide 19 text

• Create an account on openhatch.org • Complete the diff/patch mission • Complete the git mission http://openhatch.org/missions Part II: practicing the tools Wednesday, March 20, 13

Slide 20

Slide 20 text

Bonus • Complete the OpenHatch tar training mission: http://openhatch.org/missions • Read about Python’s unittest module: http://docs.python.org/2/library/ unittest.html • Read about packaging and distributing your Python projects: http://guide.python-distribute.org Wednesday, March 20, 13

Slide 21

Slide 21 text

Part III: contributing to a toy project • projects hosted on github.com • ColorWall project: https://github.com/jesstesstest/ColorWall • Wordplay project: https://github.com/jesstesstest/Wordplay • demo projects Wednesday, March 20, 13

Slide 22

Slide 22 text

Finding bugs •ColorWall: Letters are sideways •Wordplay: Doesn’t work if you use upper-case letters Wednesday, March 20, 13

Slide 23

Slide 23 text

Reporting and fixing bugs, github-style https://help.github.com/articles/fork-a-repo https://help.github.com/articles/using-pull-requests Wednesday, March 20, 13

Slide 24

Slide 24 text

Writing a good bug report • Short, self-contained example • Explicit steps to reproduce • Input • Expected output • Actual output Wednesday, March 20, 13

Slide 25

Slide 25 text

Bonus • Add a project of yours to GitHub • Skim http://opensource.org/ licenses, read http://bit.ly/ open-source-licenses, and add a LICENSE file to your project • Submit a patch for a new ColorWall effect • Submit a patch to support blank tiles in Wordplay Wednesday, March 20, 13

Slide 26

Slide 26 text

Questions Wednesday, March 20, 13

Slide 27

Slide 27 text

Next steps: at PyCon • Join the sprints • Sunday: intro tutorial + project introductions • Monday - Thursday: sprinting • Great opportunity even if remote https://us.pycon.org/2013/community/sprints/ Wednesday, March 20, 13

Slide 28

Slide 28 text

Beginner tickets • Python http://bit.ly/beginner-python-tickets • Buildbot http://trac.buildbot.net/wiki/ BuildbotSprint2013 • Django http://bit.ly/beginner-django-tickets • Twisted https://bit.ly/easy-twisted-tickets Wednesday, March 20, 13

Slide 29

Slide 29 text

Next steps: Put your projects online Wednesday, March 20, 13

Slide 30

Slide 30 text

Next steps: Pick a project • Python mentors: http://pythonmentors.com • Django’s exceptionally detailed new-contributor guide: http://docs.djangoproject.com/ en/dev/internals/contributing/ • Google Summer of Code Wednesday, March 20, 13

Slide 31

Slide 31 text

Next steps: Work on a bug • Read new-contributor documentation • Check out the source code • Join the IRC channel • Browse the issue tracker • Look for “bitesized” or “easy” bugs • Ask OpenHatch for help! #openhatch Wednesday, March 20, 13

Slide 32

Slide 32 text

Wednesday, March 20, 13