Open Source Code Review

This blog post is for my SPO600 class I am participating at Seneca College, this is Lab1 detailed HERE.


My Selection

The two open source software packages I chose to research are Apache Web Server and ROS (Robot Operating System). The reason for these two specifically are quite simple.

 

ROS I chose due to robotics being an interest of mine ever since my first programming class in high school. My programming journey began with me fiddling with Lego NXT robotics kits, quickly igniting my love for computers and software development. I briefly learned about ROS in a robotics course I recently completed at Seneca, and the name jumped out at me during my research, making it an easy choice.

ROS is licensed under the BSD 3-Clause license.

 


Apache I chose because admittedly I know very little about it, and I had used Apache Tomcat briefly in a Java programming class when learning about JSF and JSTL. This seems like an opportunity to examine the software slightly, and become more familiar with it.

Apache, unsurprisingly, is licensed under the Apache 2.0 license.

 

Both of these licenses fall under the umbrella of 'Permissive' open source licensing. Delving into the differences between 'Permissive' and the other, 'Copyleft', could easily be an entire blog post on it's own, so I will instead direct you to THIS handy post I stumbled upon. This post details the key differences in these licenses and what it means for users and developers that are interested in the software.


How Do I Contribute?

Beginning with ROS, the process seems very simple, you have the option to submit a ticket, but they seem to prefer you skip straight to submitting a pull-request on github. Unfortunately on Github they are missing contribution guidelines so I will have to resort to investigating and speculating.

Observing THIS successful pull request and many others, the process seems to simply include submitting a pull request with your contribution and either requesting a review from someone specific, or just waiting for someone to review and accept the pull-request. There are examples of both throughout the accepted pull requests. The process of submitting a pull request seems to move along quickly with most examples being reviewed, merged, and closed within days.

 

Moving on to Apache, the process is fortunately explained in detail on the Apache website. The process includes submitting your patch to the bug database on Bugzilla, with specifics on the bug and the testing that went into your patch. You specify on your bug report that a patch is available, and you add your proposed patch as an attachment.

Although it isn't specified on the Apache contribution page, it also seems possible to submit a pull request on github after creating a bug report. THIS is an example of a bug report that was resolved by a pull request on the Apache Tomcat repository on github. Much like the ROS review process, the time it takes for a solution to be reviewed and approved is surprisingly short, the first response is often within days and the approval shortly after that.

 

Conclusions

Only examining two different software packages, and two permissive licensed packages at that, doesn't make for incredibly insightful conclusions on code review in general. I do, however, want to note how simple it seems to contribute these packages specifically. If I found something I needed to fix, went out of my way to fork from these repos, formulate a solution, and simply submitted it, I could begin contributing to software that is used everywhere. I find that beautiful and exciting, it's why I can't wait to dive head first into open source development.

Now to find something I can fix...

Comments