Slide 1

Slide 1 text

Your First Patch!
 Submitting a patch to CPython Lisa N Roach Facebook Production Engineer

Slide 2

Slide 2 text

Me • Production Engineer at Facebook in Infrastructure Security • Been contributing to CPython for ~1 year

Slide 3

Slide 3 text

What is CPython? The main implementation of Python

Slide 4

Slide 4 text

Two Truths and a Lie 1. CPython is an interpreter 2. The majority of CPython is written in C 3. CPython is the most widely used implementation of Python

Slide 5

Slide 5 text

Two Truths and a Lie 1. CPython is an interpreter 2. The majority of CPython is written in C 3. CPython is the most widely used implementation of Python

Slide 6

Slide 6 text

2% C++ 1% C 40% Python 58% Languages of
 CPython

Slide 7

Slide 7 text

Patches? But Python is Perfect! • Bug Fixes • Feature Enhancements • Performance Enhancements • New Features • Documentation Updates

Slide 8

Slide 8 text

Python Developer’s Guide
 https://docs.python.org/devguide/

Slide 9

Slide 9 text

Lifecycle of a Patch 1. Find an issue

Slide 10

Slide 10 text

Python Issues List http://bugs.python.org/

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

Issue30486: Allow setting cell value

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

Lifecycle of a Patch 1. Find an issue 2. Update the code

Slide 19

Slide 19 text

Updating the Code 1. Code it 2. Write unit tests 3. Update documentation 4. Update Misc/NEWS

Slide 20

Slide 20 text

Updating the Code: Code It Objects/cellobject.c

Slide 21

Slide 21 text

Updating the Code: Write unit tests
 Lib/test/test_funcattrs.py

Slide 22

Slide 22 text

Updating the Code: Update documentation
 Doc/reference/datamodel.rst

Slide 23

Slide 23 text

Updating the Code: Update Misc/NEWS
 Misc/NEWS

Slide 24

Slide 24 text

Lifecycle of a Patch 1. Find an issue 2. Update the code 3. Submit a Pull Request 4. Receive feedback 5. Make updates 6. Get merged

Slide 25

Slide 25 text

Pull Request

Slide 26

Slide 26 text

Get Help! • Slack channel: PyLadies: #cpython-dev • Github: pyladies/pyladies-maintainers • Mailers: • Core-mentorship-request • Python-ideas

Slide 27

Slide 27 text

We Need You!