Throughout October, I took part in Hactoberfest as part of an assignment for my course in Open-Source Development. I worked on four issues in three different projects. Even though I could not get four pull requests approved before the end of October, I still learned a lot by contributing.
Before October, I knew little about open-source development. I was somewhat anxious about contributing to other repositories, especially if they used technologies that I was not familiar with or had not even worked with before. However, I found that open-source community is open and welcoming. I was able to understand how projects were setup and work my way through issues, and a big part of that was due to the awesome contribution documentation provided by the maintainers. This made contributing quite fun and rewarding.
I learned a lot about different languages and technologies. For example, I worked on an issue in a project called AppFlowy which is build using Rust, and Flutter. Prior to working on it, I knew about rust. I had heard about it and started learning it. However, I did not know how it could be used to create large scale applications. I had never heard of flutter or dart, and how they could be used with rust to create an application. Flutter could be used to create the user interface, and rust to create the backend infrastructure.
I also learned more about git, and got more familiar with the process of forking, squashing, and rebasing. I used to leave squashing to the GitHub UI (before merging) when I was working on my own projects or projects at work. However, it is not possible to do this when contributing to an open-source project since usually you do not have write access to squash commits when merging.
So, when I squashed my commits locally when working on an issue, I ended up facing issues while trying to push to the remote branch in my fork. Git's error message told me that my local branch was behind the remote branch. Therefore, I tried to do a git pull
to fix this. This allowed me to push my changes but resulted in commits being duplicated on the PR. I later found that in order to be able to push the squashed commits to the remote branch, the -f
option (i.e., force) should be specified in the git push
command.
Finally, I also learned that for quite a few issues, writing the code to address the issue can take far less time than setting up the project locally and understanding how it works. Though this may also be because I had not used the technologies used by the projects that I worked on.
Top comments (0)