Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python loves your contributions

Python loves your contributions

For PyCon Ukraine 2018, I made this talk, where I explain how to contribute to Python and how to contribute with the community and for the community.

Stéphane Wirtel

April 28, 2018
Tweet

More Decks by Stéphane Wirtel

Other Decks in Programming

Transcript

  1. PythonFOSDEM CPython contributor #fellow member of @ThePSF member of EuroPython

    Society I live in Belgium Hi PyCon! I am Stéphane @matrixise - 2 / 103
  2. for them, the main tool for the management, for the

    issues, and the contributions was the issue tracker! @matrixise - 10 / 103
  3. Rietveld was Custom fork of the official Rietveld Maintained by

    one person Not really sexy No hightligted diff Not perfectly integrated with the Bug Tracker @matrixise - 18 / 103
  4. Rietveld was Custom fork of the official Rietveld Maintained by

    one person Not really sexy No hightligted diff Not perfectly integrated with the Bug Tracker @matrixise - 19 / 103
  5. Typical Work ow As a contributor Open an issue Checkout

    the CPython source code from hg.python.org Make the fix Upload a patch Have a review with Rietveld @matrixise - 21 / 103
  6. Typical Work ow As a core dev Download the patch

    Make sure it still applies cleanly Fix the conflicts or ask a new patch to the contributor Run test suite manually (10-15 min) Commit the change manually Write the commit message Commit in the maintenance branches first and then merged in the default branch Run the test suite manually again Commit the merge Push the changes @matrixise - 22 / 103
  7. Typical Work ow About the patch Is there a conflict?

    Who is the author? Is there a description? Where is the reference of revision? diff --git a/Misc/python.man b/Misc/python.man --- a/Misc/python.man +++ b/Misc/python.man @matrixise - 23 / 103
  8. Typical Work ow About the continuous integration Check the buildbots

    (between 1h & 1d... if we are lucky) Frequent bugs on Windows the developers are on Linux or OSX or just too lazy If green, port to several branches can introduce new bugs in the other branches risk of conflicts tests executed by Buildbot @matrixise - 24 / 103
  9. Typical Work ow About the continuous integration Check the buildbots

    (between 1h & 1d... if we are lucky) Frequent bugs on Windows the developers are on Linux or OSX or just too lazy If green, port to several branches can introduce new bugs in the other branches risk of conflicts tests executed by Buildbot CI: Only on the stable branches (2.7, 3.4+) @matrixise - 25 / 103
  10. Typical Work ow Status Download the sources from https://hg.python.org Use

    Patches Store them on bugs.python.org Use a custom version of Rietveld Complex Workflow @matrixise - 26 / 103
  11. We have just switched to Git/GitHub! Read for more information:

    PEP 512: Migration from hg.python.org to Git/GitHub @matrixise - 31 / 103
  12. The Open Hub 48% for SVN 37% for Git 2%

    for Mercurial PyPI 62% for Git 22% for Mercurial 13% for the rest Why Git? Git is 3 times more popupar as Mercurial for the top 100 projects on PyPI. @matrixise - 32 / 103
  13. Why GitHub? GitHub is popular and familiar Primary place if

    you want to contribute to a project Avoid a custom infrastructure Concept of Pull Requests are easier to review have nice syntax hightligted diffs can be commented Web API ( REST & GraphQL ) @matrixise - 33 / 103
  14. Migrations to GitHub 15th January 2016: PEPs 22nd July 2016:

    DevGuide 11st February 2017: CPython (2 years) @matrixise - 38 / 103
  15. Run the test suite and the performance tests Run the

    code coverage Compile the documentation Execute for master and the stable branches (2.7, 3.6) Execute on the branches from the contributors Automation @matrixise - 40 / 103
  16. Job checks if the the commiter has signed the Contributor

    Agreement aka CLA The knights who say ni! https://github.com/python/the-knights-who-say-ni CLA: https://www.python.org/psf/contrib/contrib-form/ @matrixise - 42 / 103
  17. Job checks the title of the PR with bedevere/issue-number has

    a Misc/NEWS.d/next entry with bedevere/news play with the labels awaiting review, awaiting merge, awaiting core review Bedevere! https://github.com/python/bedevere @matrixise - 43 / 103
  18. Job based on needs backport to X.Y backports a Pull

    Request to an other branch merges a complete backport Miss Islington! https://github.com/python/miss-islington @matrixise - 44 / 103
  19. as you can see BOTS are really useful for the

    core-devs @matrixise - 48 / 103
  20. Before Contributor Open an issue Clone Upload a patch Core

    Dev Wait a review of a Core Dev Download the patch Fix the conflicts Run the tests manually Run the code coverage manually Commit manually Write the commit message Merge into the branches Run the test suite manually Commit the merge Push the changes etc... process is long & manual & error prone @matrixise - 50 / 103
  21. Before Contributor Open an issue Clone Upload a patch Core

    Dev Wait a review of a Core Dev Download the patch Fix the conflicts Run the tests manually Run the code coverage manually Commit manually Write the commit message Merge into the branches Run the test suite manually Commit the merge Push the changes etc... process is long & manual & error prone @matrixise - 51 / 103
  22. After Contributor Open an issue Clone Create a Pull Request

    Core Dev Review from contributors or core-dev Wait the feedback of the BOTS + Automation Wait the signal Mark the PR as needs backport to X.Y process is short & automatic @matrixise - 52 / 103
  23. After Contributor Open an issue Clone Create a Pull Request

    Core Dev Review from contributors or core-dev Wait the feedback of the BOTS + Automation Wait the signal Mark the PR as needs backport to X.Y process is short & automatic @matrixise - 53 / 103
  24. Statistics from Feb 2017 to Apr 2018 April is not

    yet nished @matrixise - 54 / 103
  25. Your rst contribution could be the Ukrainian/Russian translation of the

    documentation. Read PEP 545 @matrixise - 65 / 103
  26. Contributions Mailing lists IRC / slack channels / ZulipChat Meetups

    PyLadies DjangoGirls (Kiev, Kharkov?) Sprints PyCons @matrixise - 75 / 103
  27. Conferences PyCon Ukraine 2018 PyCon US in Cleveland (USA) EuroPython

    2018 (Edinburgh / UK) @matrixise - 80 / 103
  28. Conferences PyCon Ukraine 2018 PyCon US in Cleveland (USA) EuroPython

    2018 (Edinburgh / UK) but also a lot of conferences DjangoCon Europe PyCon CZ 2018 (Prague / Czech Republic) PyCon PL 2018 (Ossa / Poland) ... https://python.org/events @matrixise - 81 / 103
  29. Conferences PyCon Ukraine 2018 PyCon US in Cleveland (USA) EuroPython

    2018 (Edinburgh / UK) but also a lot of conferences DjangoCon Europe PyCon CZ 2018 (Prague / Czech Republic) PyCon PL 2018 (Ossa / Poland) ... https://python.org/events You could also create a new conference PyConWeb PyData @matrixise - 82 / 103
  30. No! maybe you will fail, but at least, you tried

    an initiative! @matrixise - 88 / 103
  31. PSF Mission "The mission of the Python Software Foundation is

    to promote, protect, and advance the Python programming language, and to support and facilitate the growth of a diverse and international community of Python programmers". @matrixise - 90 / 103
  32. Money goes to... Other PyCons Workshops Meetups fees Software projects

    Infrastructure Employees ... @matrixise - 95 / 103
  33. The PSF is NOT the Python Community, you are a

    member of this awesome Community @matrixise - 96 / 103
  34. Think globally; act locally Join the PSF (it's free) Engage

    with a community (or start one) Contribute - organise/mentor/code @matrixise - 97 / 103
  35. Credits Talks Naomi Ceder for her presentation "Stay for the

    community" Brett Cannon for his sentence "Came for the language, stayed for the community" Images http://www.pierre-leautey.fr/lagence-de-communication-et-marketing-ds- consulting-de-pierrette-sicot/ @matrixise - 103 / 103