The Hacktoberfest adventure continues and the difficulty has already increased. The first week of Hacktoberfest was pretty simple. I followed my goals, found an issue I wanted to work on, fixed the issue, created a pull request and done. This week was more stressful compared to last week and you must be questioning why it’s so complicated for me the 2nd week into the month. Well long story short, I went on a whole journey to find the perfect issue. I like to think of my programming skills are very limited so I tried my best to stick to working on issues that are around my skill level or a bit beyond. I decided to branch out of my comfort zone and relearn some react so I decided to look into react related repositories. As of right now, I’ve been through 3 react issues with only one of them being the most positive experience and I’m going to tell you my experiences.
The first Issue I decided to work on was issue #2 for the passygen repository. Passygen is a password generator built using react. I thought this would be a great way to start learning react so I decided to request working on an option to alternate lowercase and uppercase letters for the passwords. I cloned the repository and started planning out how I can add this feature. Unfortunately, I went to double-check on the issue and found out that someone has done the issue without commenting anything. The issue was closed the day after so I decided to continue my issue search.
The second Issue I decided to work on was issue #98 for the datenanfragen repository. datenanfragen is a request generator and a company database website. This repository seemed cool to me because not only did it seem like a big project but it was also something out of the country (it was a project originating from Germany). I decided to try helping them out by creating the option for the user to delete multiple individual requests. They already had a feature that clears all of the requests at the same time so I thought that it shouldn’t be too hard. Yeah, I was wrong about that, unfortunately. As soon as I got assigned, I dropped everything I was doing at the time and tried to fix the issue. I didn’t want someone to come around and suddenly fix the issue before I got the chance too so I needed to make some progress asap. I started making small progress here and there. I added a new delete button and I got it to delete requests too but here’s where things got challenging for me. Unfortunately, I ended up adding bugs to the website as I was trying to add a new feature. Clicking the delete button would delete all requests and refreshing the page would end up deleting all of the requests as well. I also had issues with the environment setup for the project. I had everything set up and ready but trying to get the website to update with all my new changes to the files was tedious and a huge pain for me. I also had an idea for what I could do to fix the bugs and add the deletion feature but I didn’t have the extensive knowledge of react to implement everything. Eventually, I decided that it would be better off for someone else to give it a shot. I didn’t think I was skilled enough to complete the issue so I told the owners of the repository that I couldn’t complete the issue. They were very understanding and even told me “thanks for trying” and reading that made me feel much better about the outcome of the issue. I decided to continue my issue search once again but this time, I decided to be a bit pickier cause I didn’t want to bite off more than I can chew once more.
The last issue I stumbled on was issue #17 for commit-status repository. Commit-status is a react app that shows a list of Github projects and displays their commit status. The issue was about the remove button not working as it should be. I requested to work on fixing the bug and then got assigned not too long after. Not too long after all of that, someone had already created a pull request for the issue I was assigned to and that kind of annoyed me once more. I was already on the verge of giving up on this issue when I haven’t even started doing anything with it yet. Eventually, I decided that I should fix it and create my pull request anyway. I’ve forgotten that the whole purpose of this assignment isn’t just to get it over and done with, its to learn from the experience and improve your programming skills with it. After getting the environment setup, I opened up the react documentation and got to work. The first thing I did was look through the history of the project and landed on the commit that added the remove button in the first place. The previous contributor implemented the ability to add and remove projects from the list so it should only be fair to only focus on the code they added to the project. The main cause of the bug was the location of the remove button on the project list.
The list is designed so that when the user clicks on the project they want to look at, it creates a drop down list with info about that one project. Because the remove button is placed on the same area of that event, it’s actually triggering two events at the same time with the main focus being on the drop down event. I decided to do some research about how I can fix this issue and found out that the main issue causing all of this was propagation. To fix this, I changed up the function to take in an “event” parameter and added the event.stopPropagation function.
When I saw that my solution worked, It made me feel so much better after struggling days before. I created my pull request and just left it at that. Regardless of what happens with my pull request, I ended up learning something new anyway. I’m kinda glad that I didn’t give up like I was originally going to or this post would honestly just be me crying about not having an issue.
This week has taught me two things when it comes to finding issues to work on. I can’t always be searching for that one perfect issue or I’m just gonna make things worse for me. What really affected me throughout the week was me endlessly going on issuehub.io every day and constantly refreshing and going page to page, skipping all the possible issues I probably could have fixed if I wasn’t so picky. Another lesson I learned is that I can’t always rely on issues labeled with “Hacktoberfest”. Sure it’s easier for me to find some issues that way but wow, people are hungry for a pull request. Just imagine putting time and effort into your assigned issue only to find out someone else did it faster than you. I’ve honestly never seen so many people get desperate for a free t-shirt. I’m probably gonna try to look for issues on big projects for the next few weeks. I think it’ll be more professional and will be much better on my resume too. Let’s see how next week goes, I pray I find an issue very soon.