My first contribution to the Swift programming language was merged earlier this year. Despite the simplicity of the bug I fixed, the process took awhile and I learned a good deal in the process. This post will briefly go over the fix I made and some give some advice for future contributors.
After deciding to contribute I browsed the Swift Jira to find a suitable beginner bug. The first thing I did was filter for issues within the Standard Library and the Swift Package Manager. As someone completely new to a daunting codebase, it seemed best to start somewhere where I could mostly just write code in Swift. My goal in looking through the bugs was to find the easiest possible thing to fix. I used two general filters my search:
- Fixes that would require small, additive changes
- Fixes that were tightly related to one specific type/class.
I ended up landing on this. The bug was fairly straightforward
make () == ()
compile. This fulfilled my filters: I needed to make a small, additive change (add an ==
method)
and the fix was tightly related to one specific type (Tuple
).
The first pass implementation only took me a short while, but it was the process of building the code and adding and modifying tests that took much more time.