Hacktoberfest: Good First Issue
Tags: hacktoberfest, goodfirstissue, opensource, beginners
Published: 2023-10-06 00:57:58

Welcome to the end of week 1 of [Hacktoberfest](https://hacktoberfest.com)! If you're new to the world of open-source, you might not have heard of Hacktoberfest until recently. I certainly hadn't until a few weeks ago. It's an annual month-long event that takes place in October, encouraging open-source contributions to various software projects hosted on platforms like GitHub. Participants are invited to submit a minimum of four valid pull requests to open-source repositories. In return, you can earn limited-edition swag and, most importantly, gain valuable experience in collaborative coding. Hacktoberfest fosters community engagement and supports the growth of open-source software by bringing developers together from around the world. I highly recommend that you [sign up](https://hacktoberfest.com/auth/) and give it a shot. This is my first year participating in Hacktoberfest, and I'm going to document my journey here every week to keep you all updated.

## Finding the Right Project

One of the most daunting tasks when it comes to contributing to an open-source project is finding the right one. There are several approaches you can take:

### 1. Hacktoberfest Topic and Tag

A great place to start is by exploring the [Hacktoberfest topic](https://github.com/topics/hacktoberfest) on GitHub. Here, you can discover numerous repositories that have added the `hacktoberfest` tag to their projects. You can also filter these repositories by different programming languages to find projects that align with your skills and interests. Another approach is to use GitHub's advanced search features to look for [issues](https://github.com/search?q=label%3Ahacktoberfest&state=open&type=Issues) that have the `hacktoberfest` label.

Keep in mind that many of these issues get claimed quickly since Hacktoberfest attracts thousands of participants each year.

### 2. Good First Issue

Another effective label to search for is `good first issue`. GitHub's advanced search capabilities allow you to narrow down your search further. In addition to the `good first issue` label, you can filter the results to show only open issues that were not assigned to anyone. Even with these filters in place, there will still thousands of issues to sift through. It may take some time to find one that truly excites you.

### 3. Documentation

If you're still unable to find a suitable issue to work on, consider searching for projects with different labels. One label I found quite useful was `documentation`. Remember that contributing to open source isn't always about writing code, fixing bugs, or adding new features. Open source often requires assistance with documentation tasks, such as adding or improving comments, updating `README` files, and more.

#### Additional Tips

Ideally, you want to identify repositories that are actively maintained. You can determine this by checking the creation dates of their issues and recent pull requests. Also, look for issues with few or no comments, as this often indicates that no one has taken up the challenge yet. However, don't disregard issues with comments entirely, as sometimes people discuss an issue without actually contributing. Don't hesitate to start with small and straightforward issues to gain experience and build confidence.

### 4. Fixing the Issue

Once you've identified an issue that interests you, post a comment on it, asking for the owner's approval to work on it. You might be surprised by how quickly people respond. The open-source community is known for its helpfulness and friendliness, so don't hesitate to seek clarification or assistance.

### 5. Fork, Create a Topic Branch, and Submit Pull Requests

After obtaining approval for an issue, follow these steps:

- Fork the repository to create your copy.
- Clone the forked repository to your local machine.
- Create a new branch dedicated to the issue you're working on.
- Complete your work and push the branch to your remote repository.
- Create a pull request (PR) to propose your changes.

If you're fortunate and have followed the instructions clearly, the review process will likely go smoothly, and the owner will merge your changes. However, like my experience, you might be asked to make adjustments or revert certain changes.

## My Contribution To Hacktoberfest

After searching for a day or two earlier in the week, I came across [EnumConverter](https://github.com/kurnakovv/EnumConverter), a simple tool for converting Enums. One of their open [issues](https://github.com/kurnakovv/EnumConverter/issues/33) involved fixing errors in their documentation. This was a straightforward issue that required minimal time to complete. Since I was only altering the documentation, I didn't need to run the application itself, so there was no setup involved. I made the requested changes and created a [pull request](https://github.com/kurnakovv/EnumConverter/pull/35). However, there was a misunderstanding, as I thought they wanted a certain phrase replaced throughout the source code, but the review clarified that it was meant only for the documentation of a single method. I promptly reverted the unnecessary changes, made the final commit, and the PR was [merged](https://github.com/kurnakovv/EnumConverter/commit/e5b0f4be6bf5746bc29fba7bf3b6c4d470b072ca) quickly after.

I was genuinely surprised by the kindness and helpfulness of the community. This was a great initial experience for me, starting my Hacktoberfest journey and making a meaningful contribution to an open-source project. Now, I feel more confident about tackling larger issues and making a more significant impact. I'll keep you updated in the following weeks!