Mentored Sprints for Diverse Beginners at PyCon US 2020

A newcomer’s introduction to contributing to an open-source project.

Mentored sprints banner

TL;DR

🎉✨ The mentored sprints for diverse community members are back for PyCon US 2020 online!✨🎉

When

16-17th May 2020 online!

TimeZones

The event runs from 9AM-9PM PDT on May 16th, covering timezones in the US, Europe, and APAC through the morning of May 17th.

Check the Americas + Europe friendly time slot.

Check the APAC friendly time slot.

Applications timeline

Now closed

Note

If you are not a member of an underrepresented group of the community and want to take on the sprint, we encourage you to bring someone from an underrepresented group with you.

Resources for Contributors

Pre-requisites

Python

For the mentored sprints, we will be using Python. Installing all of Python’s research packages individually can be a bit complicated, so we recommend using Anaconda which provides a variety of useful packages/tools.

To download Anaconda, follow the link https://www.anaconda.com/download/ and select Python 3. Following the download, run the installer as per usual on your machine.

Git

Git is a version control software that records changes to a file or set of files. Git is especially helpful for software developers as it allows changes to be tracked (including who and when) when working on a project.

To download Git, go to the following link and choose the correct version for your operating system: https://git-scm.com/downloads.

GitHub

GitHub is a web-based service for version control using Git. You will need to set up an account at https://github.com. Basic GitHub accounts are free.

Text Editors

Text editors are tools with powerful features designed to optimize writing code. There are several text editors that you can choose from. Here are some we recommend:

We suggest trying several editors before settling on one.

Your local environment

Bring your own laptop. Setting up your local environment can be time-consuming, and the step can vary from one project to another. We recommend that you check out the contributing guidelines of the project that you’re interested in, and pre-install the requirements before coming to the sprint. If you’re stuck in any way, let us know so we can help. We have also requested each of the projects that signed up to have their contributing guidelines up to date by April 3rd.

Additional Resources

Resources for Mentors

Thank you for signing up to mentor at the mentored sprint for diverse beginners at PyCon US. We’re pleased to welcome you to the sprint.

The mentored sprint will take place on 16th - 17th of May 2020 online.

Some useful information:

  • The mentored sprint is organized as part of PyCon US online initiatives. Pre-registration to the event is required.

  • We’re excited that numerous projects and mentors have signed up for the sprint! Each project will have the opportunity to pitch for their own project to the group. Please be prepared with a 3-minute pitch. Feel free to bring a slide (or two) with more details about you and the projects you are mentoring for if you feel like it. Please send us the link to your Google Slides one day in advance.

  • We understand that setting up a local environment can be time-consuming, and the steps can vary from one project to another. To help the event more successful, we recommend that you include detailed setup instruction in your project’s contributing guidelines before the event. This will give the attendees enough time to get set up before the sprint.

  • We also recommend that you prepare at least 5 beginner-friendly issues to be worked on during the sprint. Here are some ideas to get you started:

    • Identify problems that require low-effort involvement (i.e. it will take no more than a couple of hours to complete).

    • Get creative: select both coding and non-coding issues to work on the day (i.e. design a logo, add sections to the docs, help create a schematic) this will make your project more accessible and inclusive for the sprinters.

    • Label the issues accordingly on your issue tracker (i.e. beginner-friendly, good-first the issue, whatever style you follow).

By attending the mentored sprint at PyCon, you are also accepting to uphold PyCon and the PSF’sPSF’s code of conduct. Please take a moment to read it through at https://us.pycon.org/2020/about/code-of-conduct/

Thank you again for your time to mentor! We are grateful for your work in open source and Python.

Please do not hesitate to reach us if you have additional questions or would like an extra bit of help preparing your project for the sprint.

The mentored sprints organizers.

https://img.shields.io/badge/-NEW-gray.svg?colorB=12CBC4

Projects registered for mentoring

Below you will find the list of projects that will be present on the days of the sprint.

Make sure to check their repository and contributing guidelines. If you already have a project in mind, you can follow the contributing guidelines and have your environment ready on the day.

Project

GitHub Repository

Issue tracker & Contributing guidelines

Hypothesis

https://github.com/HypothesisWorks/hypothesis

https://github.com/HypothesisWorks/hypothesis/issues https://github.com/HypothesisWorks/hypothesis/tree/master/guides

Prefect

https://github.com/PrefectHQ/prefect

https://github.com/PrefectHQ/prefect/issues https://github.com/PrefectHQ/prefect/blob/master/CONTRIBUTING.md

RustPython

https://github.com/RustPython/RustPython/

https://github.com/RustPython/RustPython/issues https://github.com/RustPython/RustPython/blob/master/README.md#contributing

Strawberry GraphQL

https://github.com/strawberry-graphql/strawberry

https://github.com/strawberry-graphql/strawberry/issues https://github.com/strawberry-graphql/strawberry/blob/master/CONTRIBUTING.md

Red Hat / PyCon AU

https://caitelatte.com

https://caitelatte.com https://caitelatte.com

CPython

https://github.com/python/cpython

https://bugs.python.org https://github.com/python/cpython/CONTRIBUTING

Tensorflow

http://www.github.com/tensorflow

https://github.com/tensorflow/tensorflow/issues https://www.tensorflow.org/community/contribute

CircuitPython

https://github.com/adafruit/circuitpython

https://github.com/adafruit/circuitpython/issues https://circuitpython.org/contributing

Bokeh

https://github.com/bokeh/bokeh

https://github.com/bokeh/bokeh/issues https://github.com/bokeh/bokeh/blob/master/.github/CONTRIBUTING.md

Agenda for the day

Welcome to the mentored sprints, this is the schedule for the day:

The event will start at 9:00 PST on the Saturday 16th May 2020 and finish at 13:00 JST on the Sunday 17th May 2020.

For convenience, we have divided the event sections in two major timezones block. Choose whichever fits you best.

Americas | Europe | Africa

8:30 PST | 16:30 BST | 18:30 EAT

Introduction to GitHub and contributing to open source (optional but good if you’ve never used GitHub before)

9:00 PST | 17:00 BST | 19:00 EAT

Sprints start

13:00 PST | 21:00 BST | 24:00 EAT

Sprints official finish for the timezone

APAC

:widths: 40 60 :header-rows: 0

8:30 am JST | 9:30 AEST

Introduction to GitHub and contributing to open source (optional but good if you’ve never used GitHub before)

9:00 am JST | 10:00 AEST

Sprints start

13:00 JST | 21:00 EAT

Sprints official finish for the timezone

Housekeeping rules

  • Observe the code of conduct

  • Join the Discord Server using the link sent via email.

  • Once you have joined the Discord server, perform the following actions:

    1. Make sure you have your real name or GitHub name

    2. Head to the general channel and read the rules. Only when you have accepted the standards, you will be able to see the other channels

    3. Introduce yourself in the introductions channel

  • Once you have assembled your working teams join the relevant Discord channel and listen to your mentor

  • You can work in more than one project during the day if you would like to

  • Collaborative working and discussions with your peers are highly encouraged

Good to know

  • We have dedicated Git mentors that will be hanging around in the #helpdesk channel in Discord, make sure to chat to them if you need any assistance

  • We will be observing the PyCon code of conduct at all times

About the sprints

Open source projects such as Python and its multiple stacks(web, scientific, etc.) are nothing but a collaborative effort from many community members. It is the constant involvement of the numerous maintainers, contributors, and users that make open-source software sustainable and keeps the community as a whole going.

Walking the path from user to collaborator, and thus contributing to an open-source project, can sometimes be intimidating especially for newcomers. From a technical perspective, interacting with web-based hosting services (such as GitHub, GitLab, etc.), branching and opening pull requests can be overwhelming if these are not everyday actions of your workflow. The correctness of the code and potential bugs are other common obstacles and fears any newcomer might face. Not to mention the time and frustration accumulated over the task of finding a ‘beginner-friendly’ issue to work on.

We also recognise that some groups are traditionally underrepresented in the open-source community, and we would like to support them in their open-source path. For these reasons, we are running for the second time the PyCon mentored sprints for individuals from underrepresented groups willing to start contributing to Python projects. This event will provide a supportive, friendly, and safe environment for all the attendees and partner open source projects.

To achieve this goal, we are seeking to work with several Python projects and their maintainers interested in providing mentorship to these individuals. In return, we will provide guidance and advice on how to prepare the projects for the day and to better serve a diverse range of contributors.

Why do we need a mentored sprint when we already run sprints within PyCon?

The PyCon sprints certainly offer an excellent opportunity to get contributors and developers together and to squash several bugs in a relatively short time. However, with this happening at the end of the event many people, particularly less experienced developers, are not able to stay around for this additional time, or cannot easily justify attending an event for an an extra day or two. Also, a good amount of the people that attend the sprints are often comfortable doing so and in many cases have made multiple contributions to open source before or are, in fact, developers or maintainers of open-source projects.

This mentored sprint focuses on providing less experienced developers with a supportive environment in which they can learn, collaborate, expand their network, and celebrate their victories at the end of it.

Furthermore, it serves as an excellent opportunity for some open source projects to get some practical advice around inclusion and how to serve a global and diverse pool of contributors. And perhaps establish longer-term mentor-mentee or contributor relationships.

What projects will you be sprinting on?

PyCon US is the biggest Python conference organised every year, thousands of developers, teachers, maintainers, and aficionados attend the event every year. As such, it provides a unique opportunity to bring together creators, maintainers, and users for a few days.

By running similar events in smaller conferences, we have learned that the attendees (and projects) get much more out of it by having maintainers, organisers and attendees working together. This way the maintainers of a particular package can provide directed, effective and in-person mentoring to a group of individuals and the attendees feel more confident and usually leave with a higher sense of accomplishment.

Projects that took part in 2019

We want to thank the source maintainers and mentors who signed up and participated in the 2019 mentored sprint! This would not have been possible without you.

Say hello

If you would like to contact the organisers for any business related to the mentored sprints, please send us an email to tania@pyladies.com.

About the organisers

  • Tania Allard Tania is a Senior Cloud Advocate at Microsoft focusing on Machine Learning, scientific computing, research and open source. She is also the founder and organiser of PyLadies NorthWest UK and contributor to and maintainer of several open-source projects.

  • Nina Zakharenko. Nina is a Principal Cloud Developer Advocate at Microsoft, focusing on Python. Before joining Microsoft, she was a Senior Software Engineer with over a decade of experience writing software for companies like Reddit, Meetup, and HBO. In her spare time, she enjoys snowboarding, hiking, and tinkering with wearable electronics from her home base in San Diego, CA.

  • Cheuk Tin Ho Cheuk is a Developer advocate at Terminus DB and one of the co-organisers of AI Club for Gender Minorities and Python Sprints in London.

  • Valery Briz Valery is a software engineer, the co-founder of Python Guatemala and co-organiser of PyLadies Mexico City.

  • Katia Lira Katia is a DEFNADO board member as well as one of the co-organisers of PyCon Latam and Django CDMX.

  • Zac Hatfield-Dodds Zac is a cybernetics and computer science researcher at the Australian National University, and an enthusiastic open source community member and developer. What remains of his free time is usually spent reading books, savoring chocolate, and camping in the bush.

Code of Conduct

By attending the mentored sprint at PyCon 2019, you are also accepting to uphold PyCon and the PSF’s code of conduct. Please take a moment to read it through at https://us.pycon.org/2020/about/code-of-conduct/

Contribute

We welcome your contribution to this documentation. Propose a PR on our GitHub repo.

Quick guide:
  • Fork our repo on GitHub.

  • Make your changes to your fork.

  • When you’re happy with them, submit a pull request back to our repo.

Have ideas but no time today? Or do you need ideas on what to do? Check out our issues page. Any change, no matter how large or small, is welcome!

Acknowledgement

This document uses the PyCascades Welcome Wagon as the base document, and modified for our purpose.