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

Contribute with me! Getting started with the tools of free software development by Jessica McKellar

Contribute with me! Getting started with the tools of free software development by Jessica McKellar

PyCon 2013

March 21, 2013
Tweet

More Decks by PyCon 2013

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  5. 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

    View Slide

  6. A note on bonus
    material
    Wednesday, March 20, 13

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  11. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  19. • 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

    View Slide

  20. 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

    View Slide

  21. 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

    View Slide

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

    View Slide

  23. 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

    View Slide

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

    View Slide

  25. 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

    View Slide

  26. Questions
    Wednesday, March 20, 13

    View Slide

  27. 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

    View Slide

  28. 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

    View Slide

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

    View Slide

  30. 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

    View Slide

  31. 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

    View Slide

  32. Wednesday, March 20, 13

    View Slide