DPS909 Release 02: My First Open Source Contribution Part 1

Our second Open Source project was to solve a "good-first-bug" in any project that suited our interests. Since I mostly prefer doing Java and/or C++ programming, I looked at many places for opportunities to solve bugs in those languages. Unfortunately, I couldn't find what I was looking for and I settled with solving a JavaScript bug in the Brave laptop-browser project on GitHub.

Github Project Repository: https://github.com/brave/browser-laptop
Brave Browser regular download: https://www.brave.com/


"Brave is open source, and built by a team of privacy focused, performance oriented pioneers of the web, founded by the inventor of Javascript and co-founder of Mozilla."

This blog post will attempt to highlight all the major steps in the development of this project, including finding the bug, solving it, and contributing to the Brave community. To help visualize the timeline of this project, these following questions and answers will illustrate my progress better;

1. What is the project about?

Like mentioned above, Brave is an open source project aimed to create a browser that can compete with today's most popular browsers; notably Google Chrome and Mozilla FireFox. Brave has different GitHub repositories for different versions of their browsers. The following links are for every version of their project;

The Brave Desktop Browser Dev: https://github.com/brave/browser-laptop
The Brave Android Mobile Browser Dev: https://github.com/brave/browser-android-tabs

The Brace C++ Back-End Dev: https://github.com/brave/muon

One reason why the Brave project became attractive to me is because the Android Browser development was done in Java, while the Muon C++ back-end development was done in C++. These two projects were the ones I analyzed and discovered the most about, and that's what allowed me to end up picking a bug in the Desktop Browser development instead, which is done in JavaScript. The knowledge gathered from observing the other two main project branches made a big difference.

2. Where are their docs?

The documents for the browser-laptop branch I worked on is located within their repository as follows;



3. How can you get involved? Where can you go to get help?

Brave is a fairly large community of developers, and because of that, there's quite a few ways to get involved while still being able to receive adequate guidance and help. The most common ways to help is to contribute to the open source projects. However, there are other options as Brave tries to get all the types of feedback it can to better the community and its projects. Here is a good site showcasing their contributions;

https://community.brave.com/c/contributing

When taking a closer look at the contribution section, you'll find 4 major categories allowing diverse feedback from the community to Brave;


The two biggest categories being the developers for multiple of their projects and the design needs which includes a lot of feedback from users and the community, this wraps up a good portion of the most valuable feedback needed for future design decisions on any of their projects.

4. What are some interesting things you've learned while observing the project?

Since this also coupled as my first experience contributing to an open source project, one of the interesting things I've noticed is the response from the devs on issues, and the amount of devs assigned to certain parts or issues of the project. Generally speaking, and also from observing other projects briefly, Brave has an average amount of support available for their contributors. 

Within the projects themselves, I've discovered many interesting programming techniques, moreso in the way they organized their layers of code within the browser code. The design patterns they use are similar to the ones I learned in other courses, and it was great to see that these concepts are applied in real programming projects.

The other important and noticeable thing I want to mention is how easy it was to setup Brave for developing compared to some other projects I've tried setting up. The instructions on setting up a dev environment are straightforward and sufficient, and they've packaged their project in such a way that allows for a short installation.

Comments

Popular posts from this blog

DPS909 Release 03: My Second Open Source Contribution

Fixing a Bug, Adding Tests