$30 off During Our Annual Pro Sale. View Details »

Contributing to Python

Mariatta
January 10, 2023

Contributing to Python

Python is one of the most popular programming language out there, and it is also an open source project. The Python community relies on contributions by volunteers, and you too can take part in this rewarding experience. Contributing to open source is not just about opening pull requests. In this talk, we’ll go through the workflow of contributing to CPython repository, as well as other ways to contribute to the project, including documentation, triaging, and infrastructure.

Presented at IndyPy January 10, 2023

Mariatta

January 10, 2023
Tweet

More Decks by Mariatta

Other Decks in Technology

Transcript

  1. Contributing to Python
    IndyPy January 2023
    Mariatta

    View Slide

  2. Mariatta
    Senior Developer Relations
    Engineer @ Google


    Vancouver, Canada


    She/her


    @[email protected]


    @mariatta


    @mariatta81


    IndyPy January 2023
    Contributing to Python


    @[email protected]

    View Slide

  3. Mariatta
    PyCon US Chair 2023-2024


    https://us.pycon.org/2023/


    Salt Lake City, USA


    April 19-27, 2023


    Travel Grants application
    deadline: Jan 20, 2023


    IndyPy January 2023
    Contributing to Python


    @[email protected]

    View Slide

  4. Python Core Developer
    IndyPy January 2023
    Contributing to Python


    @[email protected]

    View Slide

  5. Python Core Developer
    What people think: What I really do:
    ???
    IndyPy January 2023
    Contributing to Python


    @[email protected]
    C Programmer


    View Slide

  6. https://github.com/python/cpython


    IndyPy January 2023
    Contributing to Python


    @[email protected]

    View Slide

  7. Python Core Developer
    C Programmer


    What people think: What I really do:
    Python


    Documentation


    DevGuide


    Core-Work
    f
    low


    GitHub Bots


    Contributor Experience


    Docs Community


    Language Summit
    IndyPy January 2023
    Contributing to Python


    @[email protected]

    View Slide

  8. Open Source
    ???
    IndyPy January 2023
    Contributing to Python


    @[email protected]

    View Slide

  9. Open Source
    Source code available


    What people think: What it really is:
    IndyPy January 2023
    Contributing to Python


    @[email protected]
    ???

    View Slide

  10. Open Source
    Source code available


    What people think: What it really is:
    Source code available


    License


    Community


    Contributions
    IndyPy January 2023
    Contributing to Python


    @[email protected]

    View Slide

  11. Open Source
    Source code available


    What people think: What it really is:
    IndyPy January 2023
    Contributing to Python


    @[email protected]
    Source code available


    License


    Community


    Contributions

    View Slide

  12. Open Source
    Source code available


    What people think: What it really is:
    IndyPy January 2023
    Contributing to Python


    @[email protected]
    Source code available


    License


    Community


    Contributions

    View Slide

  13. Contributing to Python
    Make lots of pull requests


    What people think What it really is:
    Make pull requests


    Review lots of pull requests


    Read mailing lists / Discourse forums


    Participate in discussions


    Replicate bugs


    Write Tests


    Issue Triage


    Documentation


    Infrastructure


    Mentorship
    IndyPy January 2023
    Contributing to Python


    @[email protected]

    View Slide

  14. How to Contribute to Python in 2023
    Read the DevGuide


    https://devguide.python.org
    Getting Started
    Work
    f
    low
    Python Release Cycle
    Documentation
    Triaging Guide
    Testing and Buildbots
    Experts Index Translating Python Internals
    IndyPy January 2023
    Contributing to Python


    @[email protected]

    View Slide

  15. How to Contribute to Python in 2023
    Get the Source Code & Setup env


    Make changes (code, test suite, docs)


    Sign the CLA


    Write the Misc/News
    f
    ile (use Blurb/Blurb-it tool)


    Backport (if applicable)
    IndyPy January 2023
    Contributing to Python


    @[email protected]

    View Slide

  16. How to Compile and Build Python in 2023
    https://devguide.python.org/getting-started/setup-building/
    IndyPy January 2023
    Contributing to Python


    @[email protected]

    View Slide

  17. How to Run Python Test Suite in 2023
    https://devguide.python.org/testing/
    IndyPy January 2023
    Contributing to Python


    @[email protected]

    View Slide

  18. How to Build Python Docs in 2023
    https://devguide.python.org/documentation/
    IndyPy January 2023
    Contributing to Python


    @[email protected]

    View Slide

  19. Contributing to Documentation
    Intro to reStructuredText and Sphinx


    https://www.youtube.com/watch?v=v4eoYpCON_c


    Documentation Forum


    https://discuss.python.org/c/documentation/26


    Docs Issues / PRs


    https://github.com/python/cpython/issues?q=is%3Aopen+is%3Aissue+label%3Adocs




    Docs Community


    https://github.com/python/docs-community
    IndyPy January 2023
    Contributing to Python


    @[email protected]

    View Slide

  20. Contributing to Documentation
    Write lots of text


    Correcting grammar


    What people think: What it really is:
    Write text


    Proofread


    Translation


    Tools


    Sphinx Theme


    What’s New


    SEO


    DevGuide


    Diataxis


    Docs Triage
    IndyPy January 2023
    Contributing to Python


    @[email protected]

    View Slide

  21. How to Choose an Issue to Work on
    It’s up to you


    Find a focus area of your interest


    Subscribe to Labeled Issues


    Learning how to
    f
    ix an issue is part of the process


    Spend time to research the issue and solution
    IndyPy January 2023
    Contributing to Python


    @[email protected]

    View Slide

  22. Don’t: Do:
    How to Review PRs
    No additional privilege needed
    Review the original issue


    Explain your thought process


    Test and validate the change


    Thank the contributor


    Suggest improvement
    Approve without comment


    https://devguide.python.org/getting-started/pull-request-lifecycle/#leaving-a-pull-request-review-on-github
    IndyPy January 2023
    Contributing to Python


    @[email protected]

    View Slide

  23. How to Triage
    https://devguide.python.org/triage/triaging/
    IndyPy January 2023
    Contributing to Python


    @[email protected]
    Python Triage privileges needed
    Classify Issues


    Set appropriate labels


    Set Assignees, Reviewers, etc
    Close invalid issues


    Notify relevant core devs


    View Slide

  24. How to Triage
    IndyPy January 2023
    Contributing to Python


    @[email protected]
    When you don’t have the triaging privileges
    Review incoming Issues and PRs


    Assist other contributors


    Participate in issue discussions


    Suggest next action

    View Slide

  25. How to Become a Triager
    IndyPy January 2023
    Contributing to Python


    @[email protected]
    https://devguide.python.org/triage/triage-team/#becoming-a-member-of-the-python-triage-team
    Either nominated by a core dev


    or


    Self nominate, and approved by one core dev


    View Slide

  26. How to Become a Triager
    IndyPy January 2023
    Contributing to Python


    @[email protected]
    https://devguide.python.org/triage/triage-team/#becoming-a-member-of-the-python-triage-team
    Actively contributing over a period of time


    (PRs, reviews, Docs, PEPs, etc)


    Positive interactions with the team


    (open, considerate, & respectful)
    https://www.python.org/psf/conduct/

    View Slide

  27. Recent Triagers
    IndyPy January 2023
    Contributing to Python


    @[email protected]
    Barney Gale


    https://github.com/python/core-work
    f
    low/issues/485
    Michael Droettboom


    https://github.com/python/core-work
    f
    low/issues/472
    Thomas Grainger


    https://github.com/python/core-work
    f
    low/issues/471
    Carl Meyer


    https://github.com/python/core-work
    f
    low/issues/448

    View Slide

  28. How to Become a Core Developer
    IndyPy January 2023
    Contributing to Python


    @[email protected]
    https://peps.python.org/pep-0013/#membership
    Python core team members demonstrate:


    a good grasp of the philosophy of the Python Project


    a solid track record of being constructive and helpful


    signi
    f
    icant contributions to the project’s goals, in any form


    willingness to dedicate some time to improving Python


    View Slide

  29. How to Become a Core Developer
    IndyPy January 2023
    Contributing to Python


    @[email protected]
    https://peps.python.org/pep-0013/#membership
    Nominated by a core dev


    2/3 positive votes in the nomination poll


    Not vetoed by the Steering Council

    View Slide

  30. Recent Core Devs
    IndyPy January 2023
    Contributing to Python


    @[email protected]
    Shantanu Jain


    https://discuss.python.org/t/vote-to-promote-shantanu/21846
    Kumar Aditya


    https://discuss.python.org/t/vote-to-promote-kumar-aditya/21033
    Hugo van Kemenade


    https://discuss.python.org/t/vote-to-promote-hugo-van-kemenade/20990
    Alex Waygood


    https://discuss.python.org/t/vote-to-promote-alex-waygood/19690

    View Slide

  31. Thank you!
    @[email protected]
    Contributing to Python


    @[email protected]
    IndyPy January 2023

    View Slide