Intro to open source and how to contribute to it

Hacktoberfest 2018

Presented By
PyLadiesNWUK, Her+Data, PyData Mcr
https://pyladies-nwuk.github.io/talks/Hacktoberfest

What is Hacktoberfest?

  • A one month celebration of open source on GitHub
  • All about meaningful contribution to the open source ecosystem
  • Make 5 pull request to a public repository (or 5 different ones)
  • Get free t-shirts and stickers

What is open source?

Software whose source code is released under a license in which the copyright holder grants users the rights to study, change, and distribute the software to anyone and for any purpose.
Some examples: Linux, Python, Mozilla Firefox, R, GitLab... and many more

Let's not forget

  • OSS is all about the people
  • It is community driven for the community
  • Maintainers mostly do this during their free time
  • Be respectful
  • Maintainers/core developers have the ultimate say in many things
  • Large projects adhere to a Code of Conduct

The anatomy of an OSS contribution

Step-by-step guide to getting started

They all roughly follow the same steps

  1. Make a GitHub account
  2. Choose a project and issue to work on
  3. Read the contributing guidelines
  4. Fork the repository (fancy word for copy)
  5. Clone the copy (a.k.a download)
  6. Make a branch
  7. Do the work and document it
  8. Test
  9. Submit the work
  10. Be patient (you might need to revisit some steps)
  11. Your work has been accepted 🎉

Git/GitHub terms

  • Repository: a project where all your files are online or on your computer (e.g. https://github.com/pandas-dev/pandas)
  • Version control: tools that allow you to track the progress of your code/work over time

Imagine you are working on the following project

what

Git/GitHub terms

  • Commit: saving a version of a file

You get much more info like: who, when, why

Git/GitHub terms

  • Fork: create a copy of someone else's work
  • Clone: copy a repository to your local computer
  • Pull Request: request to add your changes to the original of a repository

Real world example

From the awesome Nikoleta

Choose a project

global pyladies

Looking at the issues

global pyladies
  1. branch
  2. write code
  3. write test
global pyladies

Open PR!

global pyladies

Discussion

global pyladies

SUCCESS!

global pyladies

Hack time!

The one where you get to use what you've learned

Finding issues to work on

Still a bit confused?

confused
confused

Other suggestions

  • Documentations are the best place to make your first contribution (yes, they are valuable contributions and people really appreciate them 😎)
  • Think about those packages you already use
  • Come chat to us!