Lesson 13: Contributing to Open Source

Joining vs Starting a Project


_images/cowbrush.gif
  • Scratch an itch.

  • Research first

  • Revive dead project vs. rewrite

  • Get involved with communities even if you plan to start your own
    • Learn from their examples

Know your licenses

Note

I am not a lawyer.

http://opensource.org/licenses is pretty cool

” Freely used, modified, and shared”

MIT/X11:Short, permissive, says attribution and no liability. Doesn’t discuss copyright. Can convert to Apache 2
Apache:Short, permissive, goes in every file, grants patent rights from contributors to users, author keeps copyright. Plays nice with GPL3 (?)
BSD:Attribution, keep copyright, no liability
AGPL:Demands source distribution even when software not distributed (for cloud/hosted)
GPL:Viral, copyleft. Viral = infects entire program if it links to GPL library or uses a single line of GPL’d code
LGPL:Fixes library linking issue with GPL
CC:Non-code content
_images/licensing.jpg

Assessing a new community

  • Elitism vs welcomeness
  • Communication style
  • Documentation and guides
  • Faster or slower change?
_images/welcome_mat.jpg

Getting involved

_images/keeptrying.png
  • Lurk more

  • Make accounts
    • Mailing lists
    • IRC channels
    • Wikis
    • Issue trackers
  • Your nick is your reputation

  • It’s okay to make mistakes... But learn from them.

Finding a project

Note

First contributions will be metric of how nice they are to newbies

There’s a thing where older project members get grumpy at newbies because they’ve answered the question over and over... read docs/faq then improve them

_images/osslogos.jpg
  • Openhatch
  • Easy bugs
  • GSOC submitters who didn’t get enough interns
  • Search by language
  • Search by project type – find something that interests you (web dev? bioinformatics? video games?)
  • Your immediate payment for contributions will be satisfaction, so pick something satisfying

First steps


_images/babypenguin.gif

Note

It will feel like you have only a vague idea what you’re doing. This means you’ve found a project that’s challenging and that you’ll learn from.

  • Lurk awhile then ask
  • Write a test
  • Fix a typo
  • Deploy and update the installation docs

DevOps Concerns

_images/devops_all_the_things.jpg
  • Configurations often managed in public repos
  • Root can’t be handed out to just anyone
  • Build trust, contribute to project consistently
  • Practice with the tools they use

Your Homework

  • Find a project that you’d like to get involved with this summer
  • Join IRC, mailing lists, etc.
  • Pull the code and run its tests using what you’ve learned
  • Find something you can contribute to the project
  • Discuss how it’s going in #devopsbootcamp on irc.freenode.net

Questions?

Any questions about anything from this year?

  • Conferences: OSBridge, OSCON may have free expo hall passes
  • In Corvallis? Want to come to the OSL and see what we do, pair program, etc.?
  • No meeting next week – please leave feedback!