A newcomer’s introduction to OSS contributions.

PyCon UK 2018, Cardiff, Wales

Presented By
Tania, Nikoleta & Kat
https://pyladies-nwuk.github.io/talks/Contributing-OSS

Pyladies NorthWest UK

Newly created group to support and empower women and members of the LGBTQ++ community across the NorthWest region of the UK

  • Meetups
  • Mentoring
  • Sprints
  • Workshops

Follow us at @PyLadiesNWUK

What is this session about?

  • Learn more about open source
  • Maybe start contributing to OSS
  • Meet people
  • Have fun

🤷🏻‍♀️ Why this session?

There are many many reasons

Let's explore the Python community

python community

And throw in some numbers...

python community

And again...

python community

Oh wait... it is getting better

Although the community is vast and diverse we are losing diversity all the way up.

Which means we also lose the opportunity to have more varied ideas and proposals for our community.

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. Fork the repository (fancy word for copy)
  4. Clone the copy (a.k.a download)
  5. Make a branch
  6. Do the work and document it
  7. Test
  8. Submit the work
  9. Be patient (you might need to revisit some steps)
  10. 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

Why are version control and GitHub important?

Things happen!

gone wrong

Why are version control and GitHub important?

Collaboration

double

Collaborating in GitHub

A.K.A your first Pull Request

2. Fork repository

global pyladies

2. Fork repository

global pyladies

2. Fork repository

global pyladies

3. Create new file

global pyladies

3. Create new file

global pyladies

4. Commit changes

global pyladies

4. Commit changes

(add meaningful comments)
global pyladies

5. Open a Pull Request

global pyladies

5. Open a Pull Request

global pyladies

5. Open a Pull Request

global pyladies

6. Wait for someone to check your changes

global pyladies

7. Merge successful! 💃🏻

global pyladies

8. Celebrate! 🤩🎉

global pyladies

Real world example

The one where Nikoleta shines

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!

Pair-up and have some fun!

global pyladies

Stand up time

The one where you all shine ✨

Celebrate

global pyladies