My experience contributing in Google Summer of Code


FOR THOSE WHO DON'T KNOW a

GSOC FACTS a

PROPOSAL PERIOD a

IN THE MIDDLE a

PERSONAL REFLECTIONS a

There are several takeaways I came up with, but first I'll start with a story: There was a week when the p5js core library and web editor both released new versions. I happened to be catching up on GSoC that weekend and noticed the web editor kept crashing on errors. (Kinda bad, like make-a-typo-and-page-turns-irreversably-white-until-refresh-bad, which is frustrating but still usable in a sense; some would say "serious". This was the public coding environment.)

Usually, as a tech user, I would search for bug reports and workarounds, and maybe wait for someone else to fix things. But now I was a contributor, and I felt like an insider, and I had enough confidence and experience and funding to dig in and fix things.

Turns out the root cause was one line in some updated dependency. Credit to @lindapaiste to figuring out the details - all I did was give logs and reproduce on my machine.

But reproducing meant initializing the new repo, which meant downloading a database tool (MongoDB) for the first time and troubleshooting that installation, and then installing 1000 packages (really 100 dependencies that spawned 1000 node_modules), and then running tests and confirming results. The fix? Downgrading the dependency from 3.5.0 to 3.2.0.

The maintainer said I could make a PR for the change if I wanted, which felt silly because it was such a small diff, and she was an experienced maintainer whereas I was just a visitor from a sibling repo. She was doing all the hard work. But maybe she was busy sleuthing further, and maybe she wanted to encourage collaboration, and so I made the PR.

The main maintainer @raclim ended up pushing fixes around midnight. This wasn't part of my paid assignment, but it's still relevant. It was fun to be around something important that broke. I was surprised how empowered I felt to contribute to that new repository. And it's a good launching point for some other reflections:

ON PEOPLE(WARE)

ON COMPLEXITY

ON DOCUMENTATION

ON TOOLS

LEFTOVER THOUGHTS

FOOTNOTES a

1 The first commit was by @lmccart 10 years ago. Missed opportunity for an anniversary party...