We have reached the end, and what a ride it has been! This blog marks the very end of release 0.4, and all of the things I have learned along the way. There were a lot of notable moments in this release, however I have chosen a few highlights. Firstly was conquering the learning curve that was Project Allium, specifically learning and keeping up with the pace.
Project Allium was an interesting project, because it’s a very DIY approach, in the sense that everyone has the ability to self assign themselves to issues. As soon as I displayed an interest in contributing to the project, I was invited to join the group, giving me the permissions to assign myself, as well as create and manage branches. My first pull request was a little rocky, as it turns out assigning yourself to an issue does not mean nobody will work on it. Learning from this, I made sure to choose a fresh issue, for my second pull request, and this led me to another learning opportunity. After creating the pull request (on a forked version of the repo) The project manager requested I create a new branch on the original repo, and create the pull request from there. This allowed me to learn a lot, as I needed to look into creating and fetching from an upstream in order to fetch from the correct branch.
One of the notable errors from the release 0.4 was circular dependencies when adding a new method. This error stuck out for a few reasons, 1 being it was my first time encountering such an error, and secondly because it wasn’t an error so much in code, but in structure. After some google searches left me with suggestions such as reorganizing the structure of the system, I began to tinker with the imports in the files and see if I could get it to work. After changing some local imports, I managed to get a working system, and shared these changes in my pull request. This change sparked a conversation between myself and the project lead, as I explained the need for changing this, and he came back with an alternative suggestion to fix the circular dependency. This was a great issue to allow me to learn about circular dependencies, as well as the importance of a good structure.
The next step
Where do we go from here? To more open source of course! This is the end of a course, but the beginning of a chapter for me in open source. This release gave me a feel for what it is like to work in a (fast-paced) project, as well as the importance of discussing errors, and creating solutions.
Thank you for reading.