Talks Tech #57: Intro to Open Source Contributions

Talks Tech #57: Intro to Open Source Contributions

Written by Women Who Code

Open SourcePodcast

This article is adapted from the podcast recording of Talks Tech #57. 

Watch or Listen on YouTube

Cecelia Martinez, Developer Advocate for Appflow at Ionic, and Devanshi Modha, iOS Engineer at Accenture, share their workshop, “Intro to Open Source Contributions.” Devanshi discusses the benefits of contributing to open source and the many skill sets that are needed, and Cecelia shares the steps to the processes.

Devanshi Modha: “OSS” is basically open source software and code, which is disputed, along with its source code, which means that anyone can modify, inspect, or enhance the code, including for commercial purposes, and is typically licensed with very limited restriction on its reusability. Popular open-source licenses include Apache license, MIT, etc. The project can have one or many contributors. The code is typically distributed in public repositories like GitHub, GitLab, etc. 

Most common open-source projects have maintainers. Our core team is responsible for managing the contributions and ensuring the quality of the code. Contributing includes many benefits. 

For example, when you contribute to an open source, you are helping to improve the software that you and others rely on. This can lead to a better user experience, and the software can include more features and bug fixes. Contributing is a great way to learn new skills or improve your existing skills as well. You’ll get to work on real-world software projects and collaborate with other developers, which is a great way to meet the community and help each other grow. If you are an experienced developer, you can mentor new developers and help others learn, grow, and teach them to contribute. This is a great way to give back to the community and see others succeed in their respective fields as well. 

Your contributions are pretty much in a public record, which can be a great demonstration for your portfolio if you are looking for a new job. It helps you learn about different software development sources and practices, making you a well-rounded developer.

Choose a project that is related to your skill and interest so that you can make a meaningful contribution. Start by reading the project documentation, which is very important and will further help you understand the project’s code base and the contributing guidelines. Generally, the projects will have known bugs or feature requests, and you can start by picking them up by contacting the maintainer and picking up the open issue. If you have a new idea or feature, you can also propose that to the project maintainer. Once approved, you can implement the feature and submit a full request. If you have design skills, you can help by designing new interfaces or other assets for the project. Writers can help by writing documentation for the project, including tutorials, API documentation, project guidelines, contributing guidelines, etc. Testers can help by writing tests for the project, which will ensure the stability of the project. Also, you can help by maintaining the CI/CD pipeline, which can improve the automation process for building and testing the project.

If you are good at communication skills, you can help by managing issues and requests for the project. It could involve triggering issues, assigning issues to developers, reviewing requests, etc. No matter what your skills are, there is a way for you to contribute to open-source software. Do not be afraid of making mistakes. Contributing to open source is a great way to learn new skills. Start small, be patient, and be respectful when interacting with the community. 

Cecelia Martinez: The first thing that you need to do is to prepare to contribute. You’ll find a project that works well for you that you’re interested in contributing to and review the contributing guide. There should be a contributing .markdown file in the repository for the project that you’re looking to contribute to. This guide will include things such as what is required for new contributions if there are any processes you need to take to claim an issue, if there are requirements for writing tests, or anything that should accompany your pull requests. All of that will be outlined in the contributing guide. 

Then, you’ll review the open issues for that project and find and claim an issue. It’s best to work from an existing issue rather than just create a new pull request that is not tied to an issue. This is because the maintainers have already identified what things they would like you to work on. An unsolicited pull request that does not accompany any issue may not get approved if it’s not in line with the project. Start by looking at what’s already been identified that can be worked on. 

Then, you’re going to fork the repo, which means essentially making your own copy of the original project repository under your GitHub username. Then, you’re going to clone or make a local copy of that repository so that you can go ahead and make changes. Then, you’re going to create your contribution. You do this by creating a new branch locally, making your changes, saving them, staging them, and committing them, as well as pushing those changes to your own remote branch of your fork. You’ll submit your contribution by creating a pull request to that original project repository. 

There’s likely a code review process that you’ll need to work through with the maintainer. Finally, the maintainer will then merge your pull request once it’s been approved.

Devanshi Modha: DigitalOcean runs Hacktoberfest in October and celebrates open-source software, a great way to get started with open-source contributions or increase your contribution account in open-source. To participate, visit the hacktoberfest.com website and get yourself registered. The website has all the information you need to know about how to participate in the event, including the rules and regulations. Join the Discord server to ask questions and get help from other participants. Also, make sure the projects you contribute to are participating in Hacktoberfest to get your PRs counted and be eligible for the rewards. You can check this by looking at the Hacktoberfest tag on the project’s repository page. Make sure all your PRs are quality contributions and not just for the sake of it. So once your four PRs or MRs are accepted before October 31, you should be eligible for the reward. Don’t forget to check the website for more details.