Today I attempted to contribute to Python open source code as part of Enhackathon. On the whole, it was a very rewarding and enjoyable experience. Not only did I gain some insight into the process of contributing to Python open source code but also made my first ever contribution! :smile:

Getting started

I had initially set things up to work on a remote server after going through the Python developer guide. However, I soon realised that setting things locally on the laptop would make editing files much simpler and ultimately save time in the long run. So I went through the steps again to set things up locally. There were some missing package dependencies on my laptop and some other minor issues which needed to be resolved in order to be able to build Python. Apart from that, the rest of the setup was mostly straightforward.

Looking for suitable issues and first PR

The next task was to look through issues on the Python bug tracker and try to find a suitable one to work on. I tried looking at different areas of Python and filtering on tags such as ‘newcomer-friendly’ or ‘easy’. In the end, I ended up picking a simple issue, tagged ‘newcomer-friendly’, which needed a small change to existing documentation for Python 3.8 and 3.9. After doing the required change, I committed and pushed to my repository. I opened a pull request so that the change could be approved and made my first small contribution to CPython! As mentioned in other posts, the steps to open a pull request and the associated requirements are all very well documented, so you shouldn’t be afraid of anything!

After raising the PR, I went back to looking for more issues to work on. I started looking at one about an overflow error when passing around file descriptors which seemed quite interesting. I left a comment on the issue and was a bit surprised to see that I received a response within just five minutes of leaving the comment! From the little experience that I’ve had, the Python open source community seems very friendly and I’d definitely recommend asking any questions or doubts you may have.

Conclusions

  • Picking an issue can be the trickiest part, filtering by tag or area of interest is a good starting point.
  • While it may seem dauting, there is plenty of documentation as well as support from the community, so do feel free to ask for help when stuck!
  • It is very rewarding when you finally get to the stage of opening a PR!
  • I really enjoyed working on this today and very much look forward to resuming my work on the overflow error issue as well as looking at other issues next week!