In this blogpost, we'll explore how to get involved in CNCF(Cloud Native Computing Foundation) open source projects, what knowledge you need to contribute, and how to become part of this community.
First of all, what's in it for me?
Here are a few perks of contributing to open source, aside from making a positive global impact and ensuring software remains freely accessible for anyone:
- Gaining important skills, knowledge and learning from a global community of developers.
- Fixing that irritating bug or translation issue that has been bugging you for ages.
- Being able to add needed features to the software you've been using.
- Rather than implementing workarounds in your software, which relies on an open-source project, consider addressing the issue at its root. By fixing the underlying problem, you can ensure that your software remains stable for the foreseeable future.
- Participating in open-source projects can significantly enhance your personal growth and may also bolster your prospects in job hunting or exploring intriguing opportunities in the tech field.
But I'm not a developer, can i still help?
Of course, there are several important aspects of open source that Non-Code Contributors can help with:
- Documentation and Guides: Writing clear and comprehensive documentation can significantly impact a project's usability and is an important part of the software’s lifecycle.
- UX/UI Design: Elevate the user experience by enhancing the visual and interactive aspects of the project. Designing user interfaces, improving accessibility, and ensuring a seamless, intuitive experience not only boosts overall software quality but also aids developers in coding new features more effectively.
- Bug Reports and Issue Management: By creating, filing, and updating bug reports you help developers with the testing of the software and make sure that annoying bugs get fixed.
- Translation services: Translating project documentation, user interfaces, and other communication materials into different languages enhances accessibility and extends the global reach of the open source project.
- Community Engagement: Actively participate in community discussions, welcome new members, and contribute to a positive and inclusive atmosphere. Your input can be invaluable in shaping the project's direction and fostering a collaborative environment.
- Moderation and Civility: Volunteer to moderate discussions and ensure a civil and respectful tone within the community. This encourages a welcoming space for everyone.
Okay, now I can finally get started, right?
Not quite, there are still some important prerequisites to keep in mind before contributing to open source projects:
- Both technical and non-technical contributors should understand some basic Git, pull requests, and issues. Version control management tools are usually used to manage contributions and track changes of contributors.
- You need programming language proficiency and familiarity with testing frameworks if you would like to become a technical contributor. What kind of programming language is needed depends on the project you are interested in.
- It's great to have some knowledge about basic security measures like SSH keys and 2FA(two-factor authentication). These measures ensure secure contributions in the projects. You can usually find information about the security measures in the project documentation.
Already familiar with this? Then let's go!
Here are the 5 steps of getting started with contributing to CNCF technologies:
- Join the Community - The first step to contribute to open source is to join the community around the technology. Most open source projects have slack or GitHub repositories where you can find information on how to contribute. It's important to read and follow the community’s guidelines, to ensure a successful collaboration.
- Choose a Project - Selecting the right project for you is critical. CNCF hosts numerous open source projects in the global cloud-native ecosystem. Explore the Cloud Native Contributor page to discover an extensive list of projects available for your contribution, categorized by programming language and maturity level. Consider your interests and skill level when choosing a project. Being familiar or regularly using the open source project before contributing is essential. This helps you with the understanding of the architecture and software functionality. If you use the technology regularly you also gain insights into the project's bugs, features and of course how to improve them.
- Documentation - Before contributing, take some time to properly read the project's documentation, including all README files and contribution guidelines. Explore potential forums and open/closed issues and pull requests. This knowledge will provide insights into the project's context, goals, and challenges, and will also guide you for example on the intricacies of writing effective pull requests.
- Collaborate with Others/Asking for Help - Open source is all about coming together and working as a team. Reach out to other contributors for help or feedback if needed. Help other developers by reviewing code, providing feedback, and testing their changes. Building relationships with contributors and improving skills through collaboration is key. However it is important to remember to attempt to learn before seeking assistance. Many open source contributors do this in their spare time so try to limit seeking general mentoring of programming languages. Don't feel discouraged if you don't get help immediately, usually there is a time zone difference and they might not have seen your requests just yet.
- Contribute - It's time to do the work! Brew yourself a large cup of coffee and dive right in. It's best to quickly rip off that bandage and start coding. Tackling a series of smaller issues or tasks will boost your confidence, enhancing your skills and knowledge along the way. Submitting a pull request for testing and general feedback, even if the problem isn't fully resolved, is preferable to not submitting one at all. Other developers can pick up where you left off or help you continue on your journey.
Here are some other great tips and tricks:
Start Small
For beginners, starting small is crucial. Look for easier issues or small features to gain familiarity with the project's codebase. As you gain experience, then you can tackle the more challenging tasks. Remember, every contribution counts!
Glossary
If you stumble upon words or acronyms that seem outlandish to you then here is a great glossary that covers frequently used CNCF-specific terms.
Explore and join a Mentoring WG (Mentoring Working Group)
Through the Mentoring WG, individuals can explore various mentorship opportunities. Mentors, who are typically experienced contributors in the CNCF community, offer guidance and support to mentees looking to enhance their skills.
This is a great opportunity if you are new to contributing to Open source and cloud-native technologies.
Mentoring WG also manages the following mentorship initiatives:
- LFX Mentorship (ex-CommunityBridge): mentoring initiative by the Linux Foundation - details
- Google Summer of Code: mentoring program for the open source beginners - details
- Google Season of Docs: mentoring initiative for the technical writers - details
- Outreachy: mentoring initiative for the communities traditionally underrepresented in tech - details
Embarking on the CNCF open source journey opens doors to collaborative innovation. Whether a developer or non-code contributor, the benefits extend beyond the technical realm, fostering skill growth and global learning. Collaboration is key, so seek assistance and contribute at your own pace. Each contribution contributes to the collective progress of open source. Embrace the journey, as well as the learning experiences, and become an integral part of this dynamic ecosystem.
Happy contributing!