Open source software is becoming more and more popular. The open-source world has been around since the 1950s, but with projects like Linux, Hadoop and Apache Spark, open source has grown to become a critical part of modern day computing. Here's a few tips on how to get started as an open-source developer on GitHub, from setting up your account and issue tracker to making friends in the community. Let's get started!
Getting set up
The first thing we'll need is a GitHub account - it's a web-based hosting service that's primarily for open source projects.
The easiest way to start working on an open source project is to join an existing open source organization or project. You can find public projects on GitHub or post a request for help finding one.
If you want to start your own open source project, the first thing you should do is set up an issue tracker and labels. This will be your primary roadmap going forward so make sure it's all ready before getting started with any coding!
Configure your Issue tracker to be as useful as possible by supporting labels and milestones with tasks for the future (a good idea is to set up a milestone for every major section of work you need).
Label your issues with the type of issue, to make it easy for someone who's browsing a list of open issues. It also helps keep organized and easily findable when you have tons of other projects going on at the same time. For example: "newbie-friendly", "UI/UX" or "documentation".
Create milestones for major sections of code that don't yet exist or need work. You may want to divide them into releases, like "Alpha" or "Beta", so that you can more easily measure success.
Experiment and have fun! There's no way to know how to be a developer until you start making mistakes. Write down what doesn't work, so when you revisit the problem in six months it will make sense again. Keep your project open source
Write a short summary of what it is, as well as the outcome if the issue isn't resolved by then. Marking an issue with this type will flag your milestone for updates and keep things on track. With labels and milestones in place, you'll have a roadmap to follow.
You can also use version control if you're working in a team - you should!
Write your code and make sure it's open source (MIT or GPL) before releasing anything, because now is the time for feedback from other developers.
Publishing to NPM
Follow the guide on npmjs.com/package-yardstick and google "npm module name" for more information about how other developers have built open source modules that others can reuse in their projects!
Set up an Open Collective account
If you want to run your open-source project full-time, you may want to consider getting sponsored through a site like Open Collective. OC provides a way for open-source developers to offer their project as a service, charging money through the site. If you want someone to sponsor your work, this is an easy and straightforward way of making that happen!
At Jellypepper, we like to give back to the community that has given us so much, so we've started an Open Source initiative (https://jellypepper.com/opensource) to fund the projects we work with every day.
Write a README
Do the world a favour and write up a README for your open-source project, with all of the instructions you need to get it running. This will not only make it easier on people who want to work on your code, but also anyone else in the future who wants to use or interact with that same process.
Good READMEs are formatted with an overview as well as instructions to setup a local environment and how to contribute back to the parent project. You should also include guidelines for submitting pull requests and issues. Speaking off...
Pull requests are the bread-and-butter of open source. They don't have to be complicated, but you do need to follow some basic etiquette and best practices:
- Make sure your pull request is a good fit for the repository you're submitting it to; projects with strict guidelines and goals will reject PRs that don't align with their philosophy.
- Keep your PR's title as descriptive and precise as possible, including the name of what you're submitting a fix for or adding (e.g., "fix typo")
- Include steps to reproduce in your description if applicable; people may not know how to replicate an issue unless they're given instructions
Contributing and maintaining open source projects can be super fun. You'll get a sense of accomplishment and see your name in code you didn't write.
You'll meet people from all over the world, learn new things about tech that only seasoned professionals will know and build up your portfolio as an open source developer with contributions to projects like WordPress or React Native.
Don't be afraid to give back! The foundation of any great development community is to build off each other's work, creating libraries that introduce new functionality and abstraction on top of others.