My first* OSS contributions got merged!
The asterisk after first is because I have contributed to open source software that Enthought (my employer at the moment) maintains so these are my first contributions to a project which isn't maintained by Enthought. Also, i'm not counting opening issues on open source software as contributions at the moment, which I have done a couple of times in the past.
In this specific case, I was looking at code in the Jupyter ecosystem in Python and I came across a few trivial changes that could be made in the projects, given that they dropped support for Python 2 and only supported Python 3.
There are actually a few more PRs (5 more, I think), for which I am waiting for reviews. But they all make pretty much the same kind of changes.
If you took a look at the PRs, you will notice that the changes themselves are extremely trivial and pretty straightforward. And I suspect these kind of changes will be needed in a number of other Python open source software, which have only recently dropped support for Python 2.
- Removing u prefixes from strings,
- Updating the use of super,
- Removing use of six to provide compatibility for Python 2,
- Alternatively, removing internal utility modules which were used instead of six for Python 2/3 compatibility,
- Replacing old string formatting conventions (% and .format) with the latest and greatest f-strings - this might be a controversial and unwanted change.
I doubt issues will exist on the Project repositories for these changes but a quick glance/search through the codebase should tell you if these changes are needed or not. I, for one, didn't even bother setting up a development environment to test the changes I was making - all of them were trivial enough that I didn't suspect tests to fail - and the few times they did, they were trivial to fix.
If any of you are interested in contributing to a Python open source software and aren't sure where to start, I would recommend the aforementioned changes. They are trivial. They are low risk. They have a low knowledge entry barrier i.e. knowledge of Python/codebase and a low skill entry barrier i.e. exprience writing/developing software/Python.