SPO600 - Lab 1
Tags: spo600
Published: 2021-09-13 02:58:50

Lab 1 contained us finding two open source projects that had different licenses. You can find the exact details here: [Lab 1 - Code Review Lab](https://wiki.cdot.senecacollege.ca/wiki/SPO600_Code_Review_Lab)

The two open source projects I chose are previous projects that I actually looked into / committed to!

1. [Seneca's Telescope Project](https://github.com/Seneca-CDOT/telescope)

I previously had the chance to work on Seneca's Telescope project when I was in OSD600. It was a great experience. Basically Telescope is a blog aggregator which aggregates most of the Seneca students that have open source classes & need to blog about the progress.

This project is hosted on Github & is licensed under **BSD 2-Clause "Simplified" License**

You can find my pull request [here](https://github.com/Seneca-CDOT/telescope/pull/1306) where I changed the 'Guide' for the search box.

The review process was pretty simple and Telescope actually has a contributors documentation that you can follow along [here](https://github.com/Seneca-CDOT/telescope/blob/master/docs/CONTRIBUTING.md)

But in essence, a contributor chooses / creates an issue, then creates a pull request for it. Reviewers then take a look at the code and either approve it, reject it, or make some comments & hold off on approval or rejection. In this specific case, I had some changes that I had to make. The entire process took ~8 days (from creation of the pull request to merge) and had around 5 commits one of which was a rebase to pick up the latest changes from master.

The pull request also had to go through 3 checks before it could successfully be merged (Building on MacOS, Linux, and Windows)


2. [Freetube](https://github.com/FreeTubeApp/FreeTube)

Freetube is an open source application that displays youtube without all the ad's, trackers, and anything else that is invasive to your privacy.

This project is hosted on Github & is licensed under **GNU Affero General Public License v3.0**

The pull request that I tracked was [Pull request 1148](https://github.com/FreeTubeApp/FreeTube/pull/1148). I chose this pull request because I actually previously made a pull request that got rejected which you can find [here](https://github.com/FreeTubeApp/FreeTube/pull/852). My code changes did fix the problems but not for non-portable versions of FreeTube.

Freetube also has contribution documentation & guidelines which can be found [here](https://github.com/FreeTubeApp/FreeTube/blob/development/CONTRIBUTING.md)

Freetube is a lot more strict with their contribution but if you take a look at the pull request, but there is actually no discussion for the fix.

Look at their contribution document [![Image from Gyazo](https://i.gyazo.com/b13afda2eedf889569323a50f86dc91a.png)](https://gyazo.com/b13afda2eedf889569323a50f86dc91a)

This specific pull request actually took from March 28th to April 10th! Pretty long but to be fair the code change was fairly large.


In conclusion since both projects were on Github the contribution was similar but had differences in the response from the community. I also noticed a huge difference in where with the Telescope project, if there was something wrong they would tell me to fix it & keep the pull request up (then approve it after). With Freetube, the pull request was rejected & I was told to remake a new pull request. Maybe the reason why this did this was to remove the pull request from the queue & make it organized.

I think the advantage of the Telescope way is you give the chance for the programmer to keep working on the project & can continuously keep a stream of help for the programmer. Which the Freetube way you end the communication and leave the programmer in the dark when it comes to help (You can still post comments on the issue instead)

But the advantage for the Freetube way is that you don't have a bunch of open pull requests & you can keep it clean and organized.