Week 6 - Searching for Open Source Projects

This week, I started evaluating various different open source projects in order to determine one for my final open source project. Given it is not midterm yet, no doubt how much effort it would require to find and work on a suitable open source project. I cannot foresee whether I will be able to successfully contribute to the open source project that I’ve chosen, but as follows are some insights and thoughts that I want to share in the process of looking for them.

Tradeoff: Activeness vs. Easiness

Though having certain coding experience, as a beginner to open source contributions, I tried to look for smaller projects at first so that I can understand their codes and project structure faster and more easily. However, it seems that these small projects often have only small numbers of issues and pull requests, and the oldest open issue may trace back to a few years ago, indicating that they are not very active. For instance, I looked at a cute app called NMF, which seems to mainly focus on its UI and with its codes relatively easy to understand. However, there are only 25 open issues, and even the latest issue was nearly two months ago. It is likely that I cannot get any feedback from the maintainers even till the end of the semester if I choose to work on this project. On the other hand, I also looked for projects based on their activeness. For instance, I first looked at Visual Studio Code which has new issues reported every serveral minutes, and is very active in that most issues are closed within a day. However, the project is so large that I don’t even know where to start looking at. Even though its maintainers said that they could provide code pointers as to where one should look at for a specific bug, most of the issues are in fact automatically assigned by the VSCode Triage Bot to Microsoft members. The cost of the activeness of the project seems to be the difficulty to understand the code, and moreover the difficulty to even be assigned some issues to work on. The case is similar for other projects that I searched, for instance, Jupyter Extension for Visual Studio Code.

Challenge: Finding Issues to Work On

Without finding an issue, nothing can be done. However, not every open source project has beginner-friendly issues (or good first issues). Even if it has, those issues may not really be beginner friendly, and there tends not to be a lot of them. Morover, even if there are beginner-friendly issues that I can understand and that I can be assigned to work on, most of them are just minor edits either on the documentation or the code. Considering this is going to be my final project for this course, I definitely want to make some bigger and more meaningful open source contributions, and thus finding suitable issues to work on is for sure on of the greatest challenges. That being said, such a goal cannot be accomplished without paying significant efforts. I will spend much time to try to read and understand the codes of the project that I’m going to work on. Also, I will try to ask questions whenever needed to get a better idea of the project. By starting from the scratch (to solve some minor issues) and then dig deeper into the project to make greater contributions, I believe I will be able to tackle this challenge.

Expectation

Having discussed the obstacles as above, I’m also looking forward to this final open source project a lot. Unlike writing some codes for assignment or labs of my courses, or doing some small projects within a small team for some course finals, this is really going to be a brand-new experience, in that I can familiarize myself with working with people in the industry, and that I may be able to make meaningful contributions that can provide real convenience to a lot of users rather than just improving my own computer science (or programming) skills.

Summary

I’ve talked about the tradeoff between the easiness of a project and its activeness, which is tricky as to picking a suitable project. Moreover, I’ve discussed the challenge in finding issues to work on, but I believe I will be able to tackle that. Overall, this final open source project would definitely be a brand-new experience for me, and I’m really looking forward to it. Finally, thank you very much for your meticulous reading and hope you enjoy this blog.

Written before or on March 5, 2023