Does the world of open-source sound both mysterious and appealing to you? You're not alone!
The best way to demystify it is to dare making your first pull request on a project!
You don't know where to start? No worries, this article should help you do so 😌.
Some of them could be open-source (it's the case for dev.to with forem ✨)
If you run out of ideas, you can get fresh ones by filtering by programming language for instance:
Ok now let's say you identified the project you want to work on! Where do you start, right?
You can filter the issues by topic or level of difficulty. For a first PR, you can for instance look for the labels
Click on the issue and go through the comments to make sure no one is working on it. If the last comment dates back from a few weeks, you can probably comment and ask to do it!
Leave a comment to ask if you can work on the issue. It's best if you wait for an approval before starting, as it can be frustrating to spend time working on something for nothing!
This way you'll also notify others that you are working on this issue.
Don't hesitate to ask questions in the comments to make sure you are crystal clear on the following before starting:
- what's the expected result
- how you can test it
This will create a copy of the repository on your GitHub account.
You can then clone the forked repository on your machine and let the fun begin! ✨
Take a look at the README.md and the CONTRIBUTING.md if there is one.
They should help you getting started and explain how to:
- create and name your branch: each project has its own conventions
- start the server and set-up the dev environment
Now that you got your server running, your environment setup, and your branch created... you can start coding! 🔥
Make sure you don't forget to test your feature or bugfix!
Once again, take a look at the doc, it should explain how to add tests to the project.
Once you're satisfied with your work, git push what you've done on the remote repository.
If you then go to the GitHub repo, it should now offer you to create a pull request!
Don't hesitate to provide details on what you've done, how you proceeded or why you chose this technical solution rather than another, in order to help the people who will review it and make sure your PR gets merged!
I hope you enjoyed this article and if it helps you take the plunge... I couldn't be happier! 🥳
If there are still bits that are not clear or you want to add anything, please don't hesitate to comment!