OSDC 2023.07 PyCon Israel


Adam Yonah Trachtman Adi Naamany Amit Goldblatt Anat Wax Assaf Razon Daniel Cohen Dennis Groisman Dvir Barzilai Hadar Serviansky Jonathan Berezin Noa Marom Or Kazaz Orel Tahary Ori Roza Shir Havron Uriya Pumerantz gal bicovsky


Gabor Szabo
  • site

  • Single-day event on: 2023.07.05


No videos, this was a class-room worksop.

My first contribution to an Open Source Python project

Writing Python inside a corporation is one thing, contributing to an open source project is a totally different experience. It brings a lot of joy.

During this workshop we'll go over the basics of contributing to an open source Python project hosted on GitHub and you will contribute to several open source projects.

  • First we'll learn about forks and pull-requests on GitHub.
  • Then GitHub Actions and Continuous Integration (CI) in general.
  • Then we'll see the basics of writing tests and creating test coverage report.
  • Finally we'll pick several Python projects, set up the local development environment for them and send at least one pull-request by each participant of the workshop.

You are expected to bring your own computer that already has Python installed and preferably also Docker, to make our tasks easier. You are expected to already have an account on GitHub and your picture or avatar added to it.


  • Self introduction
  • my open pull-requests
  • Contributing to a complex project is, well, complex. We'll start small and hopefully by the end of the day you will have conbtributed to at least one project and you have the understanding of how to contribute to some other project

  • What will we do today?

    • Pull-request to this project - a JSON file, CI, fixing
    • Introduction to Python testing.
    • Show GitHub Actions running Python tests.
    • Setting up local environment with or without Docker
  • What stops you from contributing to an open source project?

  • What is a contribution to an open source project?
    • Anwering a question on Stack Overflow
    • Opening and issue
    • Improving the documentation
    • Writing a test
    • Setting up Continuous Integration
    • Fixing a bug
    • Implementing a feature
  • How to select an open source project to contribute to? Which open source project to work on?
  • Set up local development environment



  • Send pull-request to our repository adding a json file to the participants/ folder.

    • The filename is your_github_user.json in lower-case
    • It contains at least one field, github with your username again.
  • Send a pull-request to the List of all awesome lists.

  • Setup PyDigger locally and run the tests.

  • Find a project that does not have instructions how to set up the local development environment and run the tests. Set it up, send a PR explaining how to do that.

  • Find a project that has tests, but no CI. Configure GitHub Actions.

  • Find a project that does not have (enough) tests. Write a test.