My First Open Source Contribution
For the past several months, I've been working on a Rails application called MyTennisStats that offers data visualization and analysis of tennis matches captured from a mobile device. We have many different types of graphs and charts, and I've made heavy use of Morris.js, which has been fantastic.
Morris.js line charts makes an assumption that your data is time-based, which for me isn't the case. I'm trying to track the momentum over the course of a match, so my x-axis is tennis point based. My issue came from the need to show important events of the tennis match on the graph, but not being able to due to my data not being time-based. Morris.js allows for showing events, but only for time-based graphs.
Finally, an opportunity to make a contribution to the open source software that I rely on! I forked the repo, made the fix I needed, and submitted the pull request. It was accepted.
I've often heard that open source contributions can be addicting, which I now agree with. It is extremely satisfying to know that you've made a piece of software a little bit better, and that many people could potentially benefit from that.
I've since looked for other areas that I could put some effort into, and have run into difficulty. Since I'm mostly developing sites for clients, I mostly rely on battle-tested software, which I find difficult to start contributing to. On well established projects, there tend to be no simple fixes left, for which to get my feet wet. The low hanging fruit is long gone, and the remaining needs tend to be for those that have worked in the depths of the codebase for a long time. The projects that are a bit easier to jump in with are those that are young and generally not ready for client work.
I'd be interested if others have advice on this subject. What are the best resources of open source projects that have needs? I don't feel that the issues page of a GitHub repo is a good place to start, as it is a list of user issues, not project needs. The issues may or may not even be in line with project goals.
Please contact me through Twitter if you have suggestions, I'd like to compile what I've found and share it for others in a similar situation.