Code Review Approach Analysis: Brave Web Browser vs VLC Media Player
Published: 2022-01-17 04:42:05

## Open-source Software
[A open-source software](https://en.wikipedia.org/wiki/Open-source_software#Open-source_software_development) is a software that can be developed in a collaborative manner by the public community. Due to its collaborative nature, many open-source projects involves multiples ways of contributions. In this article, I will walk you through the different approaches [Brave web browser](https://brave.com) and [VLC media player](https://www.videolan.org/) use to manage the code contributions by developers.

## Brave Web Browser
![Brave_Icon](https://lh3.googleusercontent.com/v8h4MEDGbDtwKD13-38Jqwh7UgHU7XJ76DSp3yzyF99mwQTDoM8wgDg7apwMulpQgopG=s180)

- **License:** Mozilla Public License 2.0

Brave web browser is a open-source web browser that features the ultimate privacy of its users. 

It utilizes Git as a [version control system (VCS)](https://en.wikipedia.org/wiki/Version_control) and GitHub as a hosting service to manage its Git repository.

To contribute for the project, contributors can either submit a ticket for a issue if one does not already exist or work on a existing issue that is reported by others in GitHub. After that, contributors need to fork the repository to their local machines and create a new branch to commit their codes. Once completed, they can submit their patches by making pull requests. Then, the patches are evaluated by the reviewer(s) and get merged to the project.  

In [this example](https://github.com/brave/brave-browser/pull/4000), a pull request was submitted by a contributor to allow the host verification of [Widevine](https://en.wikipedia.org/wiki/Widevine) system. The request got evaluated by two reviewers who provided the contributor valuable feedbacks. This loop of submitting new codes and getting feedbacks continued for two months when the author finally received the approvals from the reviewers. Upon getting approvals, the pull request got merged into the master branch.

## VLC Media Player
![VLC_Icon](https://www.appmox.com/wp-content/uploads/2020/04/vlc-media-player-logo.png)


- **License:** GNU General Public License Version 2

VLC Media Player is another popular open-source software that can play a wide range of video, audio, and images files.

Similar to Brave web browser, it uses Git as VCS but utilizes GitLab to manage its Git repository.

In order to contribute for the project, it is **strongly recommended** to subscribe VLC mailing list and join the IRC channel to keep up with the latest changes and developments. Only then, contributors can either submit a ticket for a issue if one does not already exist or work on a existing issue that is reported by others in GitLab. Afterward, contributors must fork the repository to their local computers to create a new branch and commit their codes. Once completed, they can submit their patches by making pull requests and the patches get evaluated by the reviewer(s) before getting merged into the project.

In [this example](https://code.videolan.org/videolan/vlc/-/merge_requests/1014), a pull request was submitted by a contributor to solve [VDPAU](https://en.wikipedia.org/wiki/VDPAU)/[VAAPI](https://en.wikipedia.org/wiki/Video_Acceleration_API) issues for the video playback. There were 5 participants that were involved with this request - 1 developer, 1 reviewer and 3 maintainers. The reviewer and maintainers provided feedbacks on the developer's code. Once approved by the reviewer, the code got merged into the master branch. The whole process took about 11 days in total.

## Conclusion
Surprisingly, even though Brave web browser and VLC media player are under the different open-source licenses, they have somewhat-similar code review systems. The only difference is the number of communication tools (e.g. mailing list and IRC) they utilized to reach out for the contributors. The advantage and disadvantage of their code review systems are also very apparent - the amount of code review time can be varied with the size of the public community and the priority of the issue.