Last week I received my first pull request to a project on GitHub. This post is about my thoughts on the experience.
The pull request was for hubot-lmgtfy; a hubot script. I wrote the script around 2 years ago, while I was contributing to the Mozilla Web QA team. I published it to GitHub and npm at the time. I have not touched it since then and have not kept track of its stats on npm.
Fortunately, I blogged at the time about hubot and scripting. I also had a unit test as well. So, I was able to refresh my knowledge quickly. It took about a week from the initial submission of the pull request to when I had the new version published on npm. The week was not total time worked on it though. The total time was a few hours spread over the week.
Some thoughts on the process:
Contributing to open source leads to opportunities I would not have otherwise. In this case, it started with contributing to the Mozilla WebQA team. I had the opportunity to work with hubot. That event led to this first pull request. These may be small projects; but, the topics were new to me and were a good experience.
I was glad I blogged about my work as it made catching up easier. Things have changed since I first wrote the blog posts, but it gave me a place to start from. I sometimes wonder if it is worthwhile blogging while I code as it does slow me down. I am not a fast writer, so it takes me several hours to put a blog post together. In this case, it definitely helped me.
Publishing blogs/projects/stackoverflow question&answers will lead to interactions years into the future. As another example, I have an answer on stackoverflow from 2015 that gets an upvote about once a quarter. It is fun to see that my work has helped other people, even if it is in a minor way.
Squashing commits is easy to do on GitHub via the merge button on pull requests!
I have since added a contributing file to the repository. It is not a large file. It points out the unit test and asks for unit tests for new functionality.
My first pull request was a good experience! I will continue to publish code and articles. They may be small projects and thoughts, but they give me opportunities to learn new things.