Hacktoberfest 2020
Tags: hacktoberfest, github, contributorswanted
Published: 2020-10-01 20:10:04

Hi!

It's that time of the year again, **Hacktoberfest**!

### What is Hacktoberfest?

Shortly, Hacktoberfest is a month-long (every october) celebration of open source software and it's open for everyone to participate. To participate all you need to create is 4 pull request, when you create 4 valid PRs you also get a t-shirt. 

It started in 2014.

I first heard of hacktoberfest in 2018 from GitHub and got interested in it. I joined on GitHub in 2018 as well so I had zero experience contributing to open source.
I started off with making small PRs (typo fixes etc.) always making sure to follow the contributing guidelines.
Now it's my third year participating and I absolutely love it. 
There are some issues that maintainers face though, see valid prs below. I talk about spammy PRs.

This in-no way means that you shouldn't create PRs such as. typo fixes. They are highly encouraged. Remember to check the contributing guidelines though, because in certain projects they don't have documentation so unless it's code you're fixing, it might not be good to make a typo fix. This is coming from a maintaners perspective, typo fixing comments in code is fine with me, but not for example. if I have a function hllo(), I don't want that to be "fixed" to hello().

So just keep that in mind when participating and contributing to projects.

Also, some maintainers might be fine with this. If you're totally not sure, it's best to open a issue and ask instead of wasting your time making the PR and wasting the maintainers time by going through the PR.

#### Valid PRs

First of all, why?
- Because many maintainers of repositories will get tons of prs, so in order to not just have some add a random letter and make a pr, making it annoying for maintainers to go through.

What is a valid pr?
- Valid PRs can differ from certain repositories, but general consensus is that don't add random text, random letters or random code.
Typo fixes are a common way to get started and are highly encouraged.

How to report/not count a PR?
- In order to fight back on spammy PRs, DigitalOcean has 
added a feature where if you add a spam label to a PR it will not count.
Also DigitalOcean is implementing later on a feature where if the person making spam PRs has a certain amount, they wil be banned from the current hacktoberfest and the ones after that.

It is definitely a good way to fight back on spammy PRs. I'm not sure if DigitalOcean is implementing tgis by default, but I think you should see repos not participating in hacktoberfest.

#### How do you make a PR?
I also included this here,  because I assume there a ton of people just starting out with open source and github.
I'm looking at this PR from a perspective of one of my own personal projects called [awesome-dj](https://github.com/endormi/awesome-dj). Ok, so what I'm looking for contribution wise in that project are new package links (not just that, but mainly).

1. You obviously need a GitHub account (if you don't have one, create it).
2. Now that you have created an account, go to the project and click fork (since you don't have access to the repository). What this will do is that it will fork the repository to you, giving you the access to make changes (note: if you make changes in the forked repository, the main repository will not have those changes).
3. Now that you have forked the repository, you can start by making a new branch, for this you don't need to make a branch. If you were to have access to repository and could contribute to the project without needing to fork, then working with branches is always good. If you don't and you are making a certain change and another person is making a similar change, you will have conflicts. Which you will get when merging branches, but it's best to work with branches and figure out the conflicts when merging.
4. Since this will be a small change, you can just create it directly from the github website. If you have bigger changes, you need to git clone it. Linux has included git by default, but you need to install it on windows (not sure about mac). So to make the change, go to the README.md file, click the pencil icon and go down to packages. Add a new package to the list, it should have django in the name.
The format to add a link is: `- [text](link)`.
Remember to include a link to your own github account with your name to AUTHORS.md.
5. So now, push the commit it should be in the bottom file when using the github website.
Now you should see automatically, but if you don't refresh the page and you'll see compare and .... Click that and it will direct you to the main branch, where it can be merged to the repository.

I did this quickly, so if this is confusing there are a ton of good youtube videos and articles explaining this more consiscely.

I am part of community called [devisle](https://devisle.netlify.app/), we have a [discord](https://discord.com/invite/MSTQKRE) as well.

We at devisle are looking for contributors to contribute to our [projects](https://github.com/devisle), if you have any sort of fixes and additions feel free to make PR and follow the projects contributing guidelines.

Happy hacking!