Beginner’s guide: How to start contributing to open-source
Contributing to open-source is rewarding in many ways. You can improve your coding skills, learn new technologies, and get more practice. It’s also a great way to meet new people and work together. Since potential employers can see your work, it might even help you land a job. Plus, it’s personally fulfilling to solve real-world problems.
How to contribute to open-source projects?
Sometimes, people want to contribute to open-source but find it challenging to get started. They have questions about how to find projects that need contributions, the best strategies to begin, or how to make their contributions valuable.
I have several tips that may help if you’re looking to get involved in open-source projects.
The open-source community thrives on mutual learning. Teams are open to contributions and will welcome your initiative. Every contribution, no matter its size, holds value. The most challenging aspect is identifying a project that aligns with your interests and skills.
Choosing the right: What to consider?
Choose a project driven by your personal interests. Which open-source tools do you use or know really well? What aspects could you improve? If you have an answer to this question, you’re already halfway there :)))
If no specific tool comes to mind, look for issues labeled as “good first issue”, “help-wanted” or “beginner-friendly”. These are designed to help you get your feet wet without feeling overwhelmed.
Contributing to open-source: How to get started?
1. Code:
If you encounter a problem within the tool and think you can help solve it, open a Pull Request and wait for feedback from the maintainers. Go ahead and tackle the problem.
This is a great start, as you will enjoy working on the project while having a sense of solving a problem and making an impact. This could be anything from fixing bugs, improving infrastructure to adding a feature.
2. Documentation:
If you’re unsure about how to offer a solution to a problem or suggest enhancements, consider helping to improve the documentation. Sometimes, users get frustrated by poorly written or organized docs, so your contribution will be highly appreciated!
Another tip: Consider adding examples or demos to documentation. Docs often lack practical examples, so creating and including these can be a significant contribution. Take the stage. 🌟
3. Discussions:
Connect with the community and participate in discussions! If you know answer to any usage questions, feel free to jump in and give a hand. Many projects have chat channels on communities on platforms like Slack or Discord where you can get involved.
4. Testing:
You can engage in beta testing of products or newly added features, noting and even fixing bugs as you find them. This proactive approach not only helps you stand out from other contributors but also significantly aids the maintainers. By testing early versions and reporting back, you provide essential feedback that can guide the final adjustments before a public release. Your contributions in this area can enhance the reliability and user experience of the software.
More tips
You can also contribute to new projects by sharing your ideas with like-minded people! Engaging with a community of enthusiasts who share your interests not only enhances the project but also enriches your own understanding and skills. Attend virtual meetups and participate in webinars or local events to network and learn more about open-source projects.
Understanding open-source Code of Conduct and Licensing:
Before you start, it’s important to understand the licensing associated with open-source projects. Knowing whether a project is under MIT, GPL, Apache, or another license can affect how you use and contribute to the software. Each license has different requirements and restrictions that can impact your contributions.
Amplify open-source by sharing your experiences and promoting projects through social media or blogs. Your interest and contribution will be noticed by open-source community and they will support you right back.
Here are some platforms where you can find projects to contribute to in the open-source community:
- GitHub: The largest and most popular platform for hosting open-source projects. You can search for projects by language, topic, or label. Explore Good First Issues on GitHub to find beginner-friendly opportunities.
- GitLab: Similar to GitHub, GitLab hosts a wide variety of open-source projects and is another great place to start looking for opportunities to contribute.
Here are my selected open-source ML projects built on community feedback that you might consider contributing to:
- 🤗Hugging Face: A machine learning (ML) and data science platform that helps users build, deploy, and train machine learning models.
- 🚀Aim: An open-source experiment tracking tool that logs training runs and AI metadata, and provides a supercharged UI to compare and observe them.
- 🦙LlamaIndex: An open-source tool specifically designed for building search and retrieval applications powered by large language models (LLMs).
Code contribution, technical setup:
If you want to make a code contribution and aren’t sure how to technically go about it, you may find this helpful:
- Set up your environment: Once you’ve selected a project, set up your development environment. This usually involves cloning the project repository to your local machine and installing any necessary dependencies.
- Understand the Contribution Guidelines: Before making any changes, read the project’s contribution guidelines if available. These guidelines will provide specifics about coding standards, branch naming conventions, and the process for submitting contributions. This can vary by each project and following these instructions is a must.
- Look for issues to tackle: Start with issues labeled as “good first issue” or “beginner-friendly” if you’re new. These tags are commonly used to indicate tasks that are suitable for newcomers.
- Fork and clone the Repository: Fork the repository to your own GitHub account and then clone it from your account to your local machine.
- Create a new branch: Always create a new branch for your changes. This keeps your modifications separate from the main project during development.
- Make your changes: Implement your changes in the new branch. Make sure you adhere to the coding standards and practices of the project.
- Test your changes: Run any existing tests to ensure you haven’t broken anything. If your changes are substantial, consider adding new tests that cover your changes. Test few times :))
- Commit your changes: Once you’re satisfied with your changes, commit them to your branch. Make sure your commit messages are clear and descriptive.
- Push changes to your fork: Push your changes to your fork on GitHub (or other platform).
- Submit a Pull Request (PR): From your fork, submit a pull to the original repository. Provide a clear description of what problems your changes solve and any additional context the maintainers might need.
- Participate in the review process: Respond to any comments or requests for changes from the project maintainers. This can involve making further modifications based on feedback.
- Get merged: Once your pull request is approved and merged, your changes will be incorporated into the project. Congratulations, you’ve successfully contributed!
- Clean up: After your PR is merged, you can clean up your branches and pull the latest changes from the original repository to your local setup.
That’s it! Not that hard, right?
Learn by Doing: Don’t be afraid to make mistakes. The open-source community is generally understanding and supportive.
Always maintain kindness and patience in your interactions within a project. Many maintainers are often focused on resolving issues or work on these projects in their free time, so it might take some time for them to review your changes.
If you’re looking to deepen your understanding of Machine Learning and MLOps and contribute to open-source project, we would love to have you join Aim Discord Community. ✨
Remember, all contributions are valuable, no matter how small they may seem. Let’s spread the love for open-source. Good luck on your journey! 🚀