Week 11 - Back From Break
Shivam’s Presentation
This week our class TA, Shivam, gave a presentation on his experience with open source. I found that this presentation actually helped ease a lot of my own doubts when it comes to open source. Shivam is currently in a graduate CS program at NYU, but he told us that his undergraduate degree wasn’t in computer science, but rather in electronics and communication. In fact, the reason he got involved in open source was to learn programming and software development, despite having no formal education in the topic. Despite having limited programming experience, Shivam used open source projects and their community to teach himself what he wanted to know.
When I have been contributing to open source, I have often found myself concerned because I am struggling to understand the tehcniques and technologies used by the projects I’m working on. After hearing Shivam’s story, though, I’ve realized that this is not just ok, but a totally normal part of the open source process. Sure, it’s great if you know exactly what you’re doing, but a big part of open source is about exposing yourself to new ideas and learning new things from others. (Indeed, a core principle of open source is the idea that useful knowledge doesn’t have to be developed twice, and can instead be shared. If I immediately knew exactly how every project I looked at worked, then there would be no need for open source- I could just do it myself!) Shivam showed me that contributing to open source might not always be easy- you’ll often run into things that are challenging- but you’ll come out the other end being a more knowledgable and effective programmer.
Progress on Preswald
We’ve had some ups and downs when it comes to contributing to Preswald. On the postive end, one of our PRs got merged! I created a PR to refactor the topbar component before break, and during break I got some feedback on my code, implemented the suggestions, and got the PR merged! This was a pretty big win for us. On the negative end, a lot of the issues we’re all working on are getting completed by others before we have a chance to finish our solutions. When we started work on this project, we didn’t realize how much of a free-for-all the PR process was. Often we will comment that we are working on an issue, and just a day or two later someone will submit a PR for the same issue without so much as a comment! Unfortunately, this is just the reality of the kind of project Preswald is— it is a pretty new project and the maintainers are trying to move development along as fast as possible, so even if you claim and issue, that doesn’t give you any right to the PR.
Although it hasn’t been working out super well for us, we don’t want to try to change this fast-paced culture. One thing we think would be beneficial to everyone, though, is if people could comment when they’re working on an issue; not to bar others from working on it, but just to let others know, so they don’t potentially waste time working on a fix when someone else is almost done. We added a paragraph to the CONTRIBUTING.md file asking users to do this, and it got merged! We hope that this will increase efficiency and decrease frustration among contributors without disrupting the fast pace of Preswald contributions.
Finally, we’ve decided that instead of giving up on an issue when someone beats us to it, we will try to build on their PRs. Since contributors often submit PRs so fast, there are often opportunies to add features onto their PRs, fix bugs, and improve the UI. This way, when we’ve spent a lot of time familairizing ourselves with an issue, our time isn’t wasted if we aren’t the first to PR. We’re excited to see how this new approach goes next week!