Hacktoberfest is a month-long event organized by DigitalOcean. The rules are,
- Sign-up at the Hacktoberfest website
- Open four pull requests on any GitHub-hosted repositories between October 1st and October 31th
- Get a t-shirt!
And I opened four pull requests and all of them are merged! Woo-hoo!
I initially wanted to learn and contribute to Rust. The issues were nicely labelled and organized. But learning the new language and contributing to the language itself were too hard to do in a month.
Instead I was looking Hugo, which I had worked during Hacktoberfest 2014.
There was this interesting issue – Hugo’s Polish support seemd half-working. But the root cause was that, Polish’s plural form has 4 categories (one, few, many and other) and the reporter didn’t define the 4 forms.
Then, through this issue, I realized that there were at least two TOML parsers;
pelletier/go-toml. Hugo switched to go-toml once, but reverted back to BurntSushi’s.
Can I make go-toml better/faster to be the TOML parser for Hugo again?
I ended up having 4 pull requests
- Support single quoted keys
- Add fuzz.sh to do fuzzing with go-fuzz
- Fix typos
- Unmarshal should report a type mismatch as an error
The first one was good. I simplified
escapeNext by having
state. The only problem here was what I wrote was very similar to
lexString(). I probably should send a follow-up PR.
The second one was interesting, but I didn’t find any interesting issues through fuzzing yet. Probably due to the corpus?
The last one was so Go. Don’t panic. Return an error. I missed Scala’s
match syntax where I can combine
I’m not a first-time open source contributor. I probably can claim “seasoned” (kids, I know SourceForge and Google Code). But I didn’t do much these days after getting married and having a baby. That is legitimate and will continue. I’m the only husband/dad for them, whereas I’m just a yet another software developer.
However it is still good to see I can code in my spare time, relatively quickly understand codebase and contribute to the world. It is fun!