Skip to content

Instantly share code, notes, and snippets.

@mousemke
Created December 8, 2016 15:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mousemke/e38c34ac9c6491c531d9fe30f0eb2f30 to your computer and use it in GitHub Desktop.
Save mousemke/e38c34ac9c6491c531d9fe30f0eb2f30 to your computer and use it in GitHub Desktop.

What is Open Source?

"software that can be freely used, changed, and shared (in modified or unmodified form) by anyone."

  • FOSS / FLOSS -> Free Open Source Software -> because people thought free was as in free beer -> Free / Libere Open Source Software

Which means, its free as in open to everyone.

What do you need to contribute?

  • Time
  • Energy
  • Internet / Computer
  • Employment (or you are able to live without any money...)

++

  • Little experience of harassment
  • good communication skills

What is a contribution?

  • file an issue
  • disuss possible code fixes in open issues
  • send a PR with a code fix to an issue
  • review other PR's with code fixes

all, right? -> NO! There is even more!!!

  • Fix typos
  • translate content
  • add / improve README, add docs, tutorials, descriptions
  • write newsletter or blog post for project
  • help people in chat
  • improve website and logo designs, colours, readability (everything you think is helpful)
  • add tests
  • give talks about project
  • organise events around the projects community

-> what is your level? (in your expertise and in OS in general?) --> flow chart

How to choose a project?

  • Is it maintained? (when was the last update)
  • Is there a Code of Conduct?
  • Is there documentation or at least a README?
  • How welcoming is the community in general?
  • Are there instructions for contribution? (CONTRIBIUTE.md)
  • Are there specific code styles for the project?
  • Do the standard channels of communication fit your needs?

How to choose an issue?

  • yourFirstPR

Who can contribute?

  • everyone with a computer, internet connection and decent communication skills
  • Please ask yourself first... Why do I want to contribute? -> Make things better? Have an impact? Fame? Ego? (Do you hate free time?)

Why do you want to contribute to that project?

Upsides of contributing to a FOSS project?

  • learn new things
  • exchange knowledge / mentor others
  • make an impact
  • get to know people from all over the world
  • networking
  • get into community, conferences and speaking
  • realize what you truly love or not and what you are really good at

Downsides of contributing to a FOSS project?

Main tools for contributors?

  • communication skills
  • GitHub (mostly)

How to contribute?

  • file an issue
    • set a label to show exactly what needs to be done
    • write a description
      • what is the issue?
      • how can the issue be replicated?
      • what is the expected fix? (Definition of done)
  • discuss an issue
    • weigh in on someone elses issues
    • discuss with other to find a solution to the issue
  • send a Pull Request (PR)
    • fix an issue
    • add information to the README
    • translate documentation
    • fix typos
    • update the website or logo design
    • write tests (improve test coverage)

README's

  • Title of project
  • Short description
  • Link to CoC
  • How to install and use it
  • Link to tutorials
  • Where to go for help
  • How to file an issue
  • How to file a security issue
  • Things you want help on
  • How to get in touch

Issues http://www.charlotteis.co.uk/content/images/2016/05/issue.png

  • good title and description
  • add information about your dev enviroment, how they can reproduce the bug.
  • add labels, if there aren't any. Especially "starter" label is a great way to help new contributors. Other labels like "bug", "feature", "security" or "need help" are great for other contributors or maintainers.

Good things to know

  • Communication to the outside world matters. The better it is and more understandable, more people are willing to help out in their free time for FREE. It also sets a tone for how your company is communicating internally
  • Know your limits. There is this thing called life and it can be weird and very stressful sometimes. Make sure, it's ok to take a break from the project and support other contributers to take over your issues / PR's / features you are building
  • Be inclusive (especially when it comes to language). The more inclusive you are, the bigger the pool of people who can contribute to your project
  • Be nice and patient, especially with new people to the project or beginners in general. You are setting their future. Answer questions as simple as possible and show them, they and their opinions / contributions matter.

Licenses: http://choosealicense.com/ https://speakerdeck.com/andygrunwald/introduction-into-opensource-and-opensource-licenses

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment