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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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