DEV Community

Cover image for Hacktoberfest's first PR
Tue
Tue

Posted on • Updated on

Hacktoberfest's first PR

A complicated software or application takes lots of effort to build and it takes extra effort to maintain. That is why developers utilize GitHub to make their source code open to the public, so that others can fix bugs, add features to their applications.

In the course, I've been using GitHub with other students to somehow simulate the open-source processes. However, with Hacktoberfest, it's the perfect opportunity to contribute to real projects and participate in the event.

Looking for good issues

After filtering the search results with the label Hacktoberfest, there were more than 50,000 issues open, but finding a perfect is not an easy task. I've come across a lot of issues which were out of my knowledge or issues that people created for the sake of Hacktoberfest which were not worth spending time on.

I finally chose a few interesting repos and issues that I liked. My 2 pull requests this week got merged and I felt very happy about it. Since this PR got accepted first, I will talk about it.

First PR merged

I asked and got assigned the issue to add better error messages from a npm package youtube-uploader. At first, the script looked a bit complicated, most error messages were quite clear and I was also working on another issue, I asked the owner to drop my assignment but he insisted me to look over it again. Taken aback by his generosity, I opened the text editor and tried to understand the code to improve error messages. Eventually, I understood the script, found a few debug messages to clarify and an hour a later, a Pull Request was up and waiting to be reviewed.

These are some of the improvements that I did

try {
    await localPage.waitForSelector(avatarButtonSelector)
  } catch (e) {
    throw new Error('Avatar/Profile picture button not found : ' + e.name)
  }
//... 
try {
    await localPage.waitForSelector(langMenuItemSelector)
  } catch (e) {
    throw new Error('Language menu item selector/button(">") not found : ' + e.name)
  }
Enter fullscreen mode Exit fullscreen mode

What have I learned?

There are some lessons that I've drawn:

  • Take time to filter the issues that you like
  • Be patient when installing and reading the the others' code
  • Ask for help by reaching out to the author in GitHub, Discord,...

Top comments (0)