Intro to Open Source - Lesson 2 - How to find a Community and Project?

Welcome to the second lesson in the Intro to Open Source learning path! Now that you have learned the basics of what open source is and why you should consider contributing to it, we are going to discuss how you can find a community and project to work on. If you follow along with us throughout this article, then by the end you should have found a community you can contribute to!

 

 

 

In general, there are two pathways to finding something to work on and contribute to. The first is to take a big picture approach where you look at what technologies interest you first, before narrowing down to a community. The second is to take a task based approach, where you start with what you will be doing and then work your way backwards to a repository and a community. 

 

In this lesson we will be walking you through how to use both of these approaches, with a particular focus on tools you can use in the CNCF space to make this process easier. However, please note that while many of the tools we will mention are CNCF specific, the concepts are general and can be applied to non-CNCF communities as well. With that disclaimer out of the way, let’s jump right into our discussion, beginning with the big picture approach.

 

In the big picture approach, the first step is to figure out what kind of technology you are interested in contributing to. To figure this out, think about what technologies you would like to learn more about, or what technologies you would like to work in/with. For example, maybe you have heard about something called “Serverless Computing” and it sounded interesting. In that case, you may decide that you want to contribute to some open source communitiesy that does serverless computing. 

 

If you are unsure of what technologies interest you, or you feel like you don’t know what technologies are out there, that is okay! In this case, your first step will be to find out more about the technologies that are most exciting for you currently. In the CNCF, there is the CNCF landscape which divides many different communities by their technology category. 

Check out this video on how to navigate in CNCF landscape!

 

Similarly, for AI projects, there is the Linux Foundation (LF)F AI landscape. If you look at these landscapes, they can be very overwhelming with lots of communities grouped together by types of technology. However, these types of technology being listed are a great starting point for you to research what technology you would like to contribute to! Try googling and researching about the technologies you see on the landscapes and you should be able to find something that interests you.

 

Once you have selected a technology, now is the time to find a specific community that works in that technology. This is a good time to go back to those landscapes from earlier! This time, look at the communities with that technology category that you are interested in. 

 

Continuing with our serverless computing example, you would go to the CNCF landscape and look under the “Serverless” section. In this section you will see communities like KEDA and Knative. For each of these, you can click on them to have a pop up card which will tell you more and link to their website. This is a great way for you to find out more about which open source communities are producing technologies in your area of interest. After reading these websites, you should be able to make a decision about what community you would like to contribute to.

 

Another option to find a community that is in your area of interest is to try googling for open source projects in your area of interest. For example, if you are interested in machine learning libraries, you could google “open source ml libraries”, and you would then be able to peruse the articles to find different open source communities. 

 

At this point, if you have found a community which interests you and that you would like to contribute to, continue to the next lesson where we will talk about the types of contributions you can make to the community you just found! If you haven’t found a community just yet, no worries - keep on reading and we will walk you through another pathway to finding a community.

 

The second pathway to finding a community is to start at what task you would like to do. If you are not sure how to contribute to an open source project, or don’;t know what you need to know before contributing code to a project please refer to the next two articles in this learning path before returning here. 

 

This second pathway to finding a project to contribute to, and a community to work with is to just start looking at open tasks (often called “issues”), and seeing which ones interest you. If you have an idea of what you want to do, this can be a lot less work than the earlier approach we outlined! 

 

To enable you to do this in the CNCF/LF AI space, there is a special website that has been created: https://clotributor.dev/ This website lists all the open issues that need help in the CNCF/LF AI space.

We have made this video to help you walk-through how to use CLOTributor! 

 

There is a search bar where you can filter the tasks by various queries to help find something that interests you.

 

 

Once you have searched for something (leave it blank if you have no particular queries you want to make), you can select from a dropdown to only show issues marked “good first issue”. 

 

In general, these will be more beginner friendly. Look through the list and find something that you would like to work on, then comment on the corresponding GitHub issue that you would like to work on the issue.
 

Now at this point you have found a task, not a community or project. So why did we say that this was a way for you to find a community? Well, it’s quite simple really - we recommend that if you find a task that interests you, you join the community and work on that project for now. If you find down the line that your interests change, then definitely change it up and go work on a different project in a different community. We’ll discuss the reasoning behind our recommendation to stick with a project for a while in much more depth in the final article of this learning path, but for now suffice it to say that you will be able to accomplish much more if you stick with a project for a while. 

 

At this point you have found a community. Maybe you found this community by starting with what type of technology you would like to contribute to and then you worked your way towards the community you want to contribute to. Maybe you started with a task that sounded interesting and then worked your way backwards to the community. Either way, now you want to join them and get started!

 

To join the community that you have chosen, start by looking around on their website. Most open source community websites will have a section titled something along the lines of “Community” or “Contribute to the project”. 

 

Go look at this section, and you will find specific details about how to participate. Generally speaking, there will probably be meetings you can choose to attend, a discussion forum where you can meet others in the community and ask your questions, and one or more GitHub repositories you can go find issues in and make contributions to. We recommend you do as many of the things listed in this section as you can, as it will help you join the community and get started on your journey into open source!

 

Thanks for taking the time to read this and find a community to start contributing to! We hope to see you in the next lesson in this learning path, where we will be discussing how you can contribute to the community you chose today, as well as what types of contributions you can make.

 

Calum's headshot
Calum Murray
Software Engineering Intern
Calum is a Software Engineering Intern at Red Hat and an Engineering Science Student at the University of Toronto, where he majors in Electrical and Computer Engineering. He is passionate about Open Source, and strongly believes in building in the open by default. He is interested in the intersection of algorithms, control theory, distributed systems, and machine learning. Calum currently works on Knative Eventing, the Eventing Kafka Broker, and a Getting Started in Open Source with Knative Blog Series. He is also the lead of the newly revived User Experience Working Group in Knative.
Leo's headshot
Leo Li
Software Engineering Intern
Leo Li is currently a third-year computer engineering student at the University of Toronto, where he is also pursuing a minor in Artificial Intelligence. Leo has a passion for coding and is dedicated to building tools that can assist people in need and make a positive impact on the community. During his internship at Red Hat, Leo has been deeply involved in working with Knative Eventing and the Eventing Kafka Broker. He is also contributing to a blog series titled "Getting Started in Open Source with Knative." Furthermore, Leo is leading the IEEE student branch at the University of Toronto, where he is committed to fostering student community involvement. Through his work and leadership, Leo continuously strives to make a difference and drive innovation.