Week 3: Contributing

How to contribute to a project theoretically and physically?

Theoretically

Monday’s class was the most efficient class so far for me. I am very new to GitHub, never have I ever used it for a project before. Although I was pretty comfortable updating my weekly blogs on the web, I have never download it on my MacBook, not mentioning using it through the command line.

Though the different commands are very helpful to know, I think the most significant learning from today’s lecture is actually how local and remote are connected – they are kind of linked together like magic to me. I think I am pretty familiar with the entire logic behind the connection. Chronologically, we first fork the repository to our own, and we clone it to our local environment. Then, we can modify it however we like – creating new files, updating existing files. Once we are done changing stuff, we are able to add the updates back to the remote repository by committing. And after everyone commits, the master repository is able to include everyone’s work in itself.

The entire process is very smooth and solves most of the problems we would encounter when we are all contributing to the same project. However, there are only around thirty people in our class, so I wonder if there are any potential problems we need to face when the contributors are a lot more.

physically

We are done with our extension, and we finally named it repcage. The concept and the implementation part is very simple, but the project itself is very interesting. We are able to contribute differently to the extension through GitHub. For example, Barkin created the initial code, Noah updated it, and I included the readme, license, code of conduct files in our repository to make this extension an actual open source project.

Thinking about how people are able to potentially just download the file from our repository, add it to their Firefox browser and run it the way we’ve designed it is pretty exciting, and this is the first time I have a taste of sense of accomplishment from an open source project.

Written before or on February 17, 2020