The weekend has come and that means my release 0.3 was due and has been finished. As I told you guys last week that for release 0.3 we needed to have both an internal PR and an external PR. Where our internal PR had to be merged for it to count.
For my internal PR I decided to create a test for a feature that was going to be landed, which was the ability for blog planet called “telescope” to be able to send out emails to people if something went wrong. Since someone else was implementing that feature I worked on helping review his PR and ensuring that it was correct. If you follow the link, you can see that we had multiple back and forths trying to get the code to land. Where I requested a few changes before I approved his changes. These changes were essential to help myself create a proper tester for his code. I requested that he change his function to resolve a promise by returning the recipients that received the email. This allowed me to check the output much easier.
Now, when I started to write my test I messed up with the way I rebased my branch onto my master. Instead of checkout to my branch that I was working on. I believed on my branch and tried to rebase my master onto my branch. I don’t remember exactly the sequence of commands I ran, but I know I messed up and that I have to be more mindful of that going on. This caused my git history to have many “merge branch ‘master'” commits. After learning that I had messed up, I asked a friend to help me with rebasing and squashing and fixing some of my commits, but we couldn’t fix everything unfortunately.
When I created the PR I also had some back and forth with the person who wrote the code I was testing. We tried to get the test to be better on how it gets the credentials it uses test and we ended up figuring out how we wanted to do it. One thing we did find though was that the original function was failing the test since it was using and old format. So, it was decided on the internal slack that we should .skip() the test until it was fixed. We did end up fixing the issue with the original code and the test failed for the right reason since we didn’t have the connection to our server. After this, we put the test back to be a skip and the changes were approved and finally landed.
So, last week I told you guys that I was working on a fix for an issue for ODK Collect. While I am still actively working on that issue, I found out it was actually a lot more work and the bug was harder to figure than I had thought. This is because the codebase was pretty complex and large and it was written in android, which is something I’m not as familiar with. I still plan to work on and try and figure out the issue, but for this PR I decided to work on something more attainable. I found a new issue for meshery, which is tool to benchmark the performance of service meshes. The issue was about changing the text of a certain button on the Mesh Service page. To fix this issue, I went into the codebase looking for where the value of that button was being set. Once I found it on vscode, I set it to the desired text. I feel like this issue wasn’t was big or as hard as I wanted it to be, but I did learn how to try and look more effectively through a large codebase, which I hope will help with the ODK Collect issue.
In the End
I learned a lot about working on an open source project. The speed and the chaos at times can be crazy. Having code being constantly change and code landing that can create issues for other individuals. It really opened my eyes to a different side of open source development. It leaves me wondering how on earth big companies and projects maintain their git properly.