 Good morning everyone. I hope you had a fun time with the keynotes and then some good coffee break So why are we here? We're going to talk about Contributing to Kubernetes in its next decade or the second decade and how Contributex has evolved from the start to where we are now and how it looks like Contributing to Kubernetes in the next few years I'm no baron Hey, everyone. My name is Priyanka Sagu. Hi, my name is Madhav and And I'm Kazlin Fields so today we are going to talk about like we just want to give a rundown of how to contribute and Inter on the Contributex what we what do we do and Then go over like what what are the changes that has happened for making contributor experience better over the years and then we will run through some of the hot topics that people can contribute to in sick Contributex and Then we want to talk about Some important pitfalls that contributors need to take care of when they contribute and that's the most important part Now going over how is the Kubernetes community structured? We have almost like 86,000 plus contributors at this point. We also reach like 10,000 contributors probably as the first project. So we need a lot of Segregation and structure to make sure the community works perfectly. So primarily we have three kinds of Groups you can say starting with special interest groups, which actually own code and take ownership of areas of Kubernetes sometimes they're Horizontal spanning across like areas like let's say release or like sick Contributex, which is us and then some six are vertical and focus on one specific area like node or CLI who are more concerned with specific functionality and then there are working groups which Are formed to serve certain goals for a small period in time and then when they achieve that They are dissolved key examples being reliability or structured logging or a pay expression if we have seen like sell expressions in CRD's Those come out from such short-term working groups And then there are committees The committee is mostly take care of like governance aspects of the project like set the non-technical direction And to make sure like everything is working fine. We have three committees the steering committee code of conduct and the product security committee and There is some sort of like decision escalation path and isolation of responsibilities across these groups so things start with like sub projects which are sub areas inside special interest groups and Technical things basically boil up the ladder eventually and then if those groups have any Non-technical things to discuss or any non-technical areas that they seek guidance with they reach out to the steering committee Or if they feel like some of the project values have been violated or the code of conduct is not followed or somebody is Or something is problematic. They can reach out to the code of conduct committee now With all this web of contributions and web of structure How does one even start get started and how do they grow in the community that needs to be important and should be should have a set Rules so that people know like what they need to do to reach a certain milestone So people start with being a non-member contributor So when you take up an issue or take up any area to work on and then once you have sufficient context You can apply for org membership Then you become a member contributor and then once you get technical expertise in that area of code Then you can ask to be a reviewer where the primary thing is There should be a good provenance of reviews that you have done across time in that area now once you have done Let's say reviews for a long period in time and you have gained like Intense technical experience in that area you can become an approver of that code base and Basically you go beyond the levels now. This is the ladder that we used to follow until last year. We made a change To introduce a new role called sub project lead and this was largely done to Make sure we segregated between people who do Technical approvals versus who do like who set technical direction for the specific groups So for example, let's say you are growing through the ladder and then you achieve to be a technical lead for a group One good stepping stone is to be a sub project lead like lead a specific sub-project to give an example 60 li has several sub-projects one of them is the customize So if you want to gain expertise in those areas you start becoming a sub-project lead in one of the areas and then That sets the tone for you to become a technical lead in the future and the existing chairs and tails of the group will have Good context on who they can ask to be the next technical leader of the chair Okay You have now seen like what is the structure and how do people grow? But where do you get all this information at your own cadence? so The Kubernetes community repo is the repo for all contributors is the starting point for every piece of information So you can go there by just going to a browser and typing it dot caters.io slash community once you go there you have several directories and Most of them are around the specific groups which have information on those groups now Let's see like what information is there to start with It's I'm just focusing on our special interest group, which is contributor experience to start with we Right like what does the group do and it links to the charter it the charter specifies? What are the duties that the special interest group should do and what areas does it own and? Then you might wonder like where do the people meet so most of the groups meet very regularly Maybe a bi-weekly or a weekly or a monthly meeting depending on How frequent they need to meet? Especially at second rebecks. We meet like every alternate week on Wednesday So if you want to join if you want to know like what is going on the meeting is the great point But then again The meeting time may not be very suitable for everyone to join around the globe and that is a problem that we try to really solve and Keep in our mind So we record all of our meetings and the agenda is recorded really clearly So you can go through the agenda the meeting notes and look over the recordings to find more context next up Who can you contact if you want to contribute to a certain area? So the first points of contact are the chairs and the technical leads you can reach out to them and they are listed down in each of those read me's inside the directories and Then how do you reach out to them? You can either poke them on the scuba nitty slack by joining slack dot k dash dot IO and Getting yourself an automatic invite you join the slack and then you go to the slack Channel that is mentioned on the repo and then ask questions If Slack is not your thing you can ask also ask a question in the mailing list You just need to join the mailing list and then shoot an email and then Anyone can respond Now I talked about sub-projects, but what sub-projects does a sig have those are also listed in that very specific read me For example here if you see we have a sub-project who handle and manage the community repo and then there is the community management Sub-project then there is a contributor com sub-project where which handles the contributor blog the Parts and pieces of the contributor website and the tweets that go out from the k-test contributors handle With that I would hand it over to case then who'd explain more about sick contracts So who here knew that the Kubernetes project had so much structure We've got a few hands out there who's feeling a little lost in all the structure of Kubernetes. Yeah, that's right Can relate folks so Basically the technical work of Kubernetes is split up into these special interest groups and further split up into sub-projects So as someone who is a potential individual contributor Those are the areas that you most want to look at in terms of figuring out what parts of the project interest you So We we didn't say it out loud, but we showed it on the screen actually Myself and Nabaroon are the co-chairs of the special interest group for contributor experience Which is why we're here talking to you about contribution and Priyanka and Madhav Are the technical leads of the Special interest group for contributor experience so what we do is We're responsible for improving the experience of folks who contribute to Kubernetes Which we hope will be you if it's not already We do this by creating and maintaining programs that and processes that promote community health and reduce project friction While retiring programs that are not serving the community a very important part of any project is Removing things the best PRs are negative code So as We have quite a few sub-projects in the special interest group for contributor experience Which means that we cover a whole lot of different areas and there's a lot of different areas that you could potentially have interest in So we have a community sub-project which is pretty general It used to run a community meeting every month and then that was one of those things that we got rid of because people weren't attending it And we weren't getting enough content for it But it does own and manage the overall community repo Including community group documentation and operations. I am a co-lead of the sub-project for contributor communications Which we'll talk a little bit more about later as a great place for new contributors to join in but basically what we do is we amplify the success and Actions of the contributor community by doing blog posts social media those kinds of things and also Communicating with the contributor community directly about things that impact them like the contributor summit We also have contributor documentation. This is not the same as project documentation This is specifically documentation about how to contribute to Kubernetes. We own that where the people to yell at Community management So managing operations and policy for upstream community group communication platforms So slack moderation falls under our purview also dev stats. I don't know if you've heard this I feel like it's one of the best-kept secrets of Kubernetes and the CNCF at large We have a platform where you can see Statistics about how many contributions are being made to projects where contributors which companies contributors companies yeah countries and companies contributors are from We also run elections so we have the steering committee which is like the governing body of the Kubernetes project and handles a lot of the bureaucratic things that go into running an open source project the more and more I dive into open source the more I think it's just a business without The making money part It's rough But it's important to have a body that can manage kind of the bureaucratic aspects and interacting with the CNCF All kinds of governance issues. We also run the contributor summit which happens at every cube con and on the day of Co-located events in this case So we run that and any other events that the contributor community wants to run we can help to run those GitHub management So everything the contributor community does on GitHub all of the processes that we use. How do you mark issues? How do you label them? What process do they go through to actually get PRed in and merged all of that process Determining it follows under our purview also mentoring of course We want new contributors to join from all walks of life and of all varieties of interest and technical skill So we do our best to interact with mentoring Communities like the LFX mentorship Google summer of code those official channels And then of course at more informal levels within the project we help with some of that as well And I mentioned earlier slack moderation There's also some infrastructure that goes into maintaining our ridiculously enormous slack for our community So we own a lot of that too Now we're going to talk about how Contribution has changed in Kubernetes first decade and then we're gonna dive into how you as individual contributors can get started So history first and then we're gonna tell you how to do it Thank You gasoline So before we go into details on how everyone sitting here can get involved into Kubernetes or especially in Contributor experience sake Let's look at some stats on how the project has changed in last decade. So this is a graph this is a screenshot of Kubernetes contributor growth and in Last decade starting from quarter second of 2014 till very recently last year And we have seen an exponential growth which also tells us we have changed and We had to undergo a lot of changes have to bring in a lot of processes programs and everything to Make sure we are capable of handling this awesome contributor growth These are the actual numbers right now. This is a these are the stats that we took from deaf stats This month itself. We are at a mark of eighty six point six thousands Contributors at this point of time with four point one three million contributions and out of all these Contributors that we are talking about we just have six point five Thousand reviewers. So we are in a great need of reviewers We are great need of people to grow up the ladder. So please look for the next section on how you can get involved This is where Kubernetes in the whole CNCF ecosystem is we are number five By activity. So these numbers are based on our GitHub activity Kubernetes project in the CNCF ecosystem is five by activity number three by the authors number two by the number of comments which I read Number 32 by commits 11 by issues four by PRs and 36 by pushes And it's growing. It's growing rapidly So we had to bring in a lot of changes to make sure we are able to Sustainability sustainability grow with this contributor growth and these are some of the things we did in last few years the The first one is GitHub label and process changes. So we we talked about the sakes We talked about the working groups We had to we have work happening across the project under these I think hundreds of sakes and working groups and small projects together and we use GitHub to manage our backlog or track our activities and we have a whole process of automation around applying labels or using those labels to fill our boards to manage our and track our activities so we have and Still improving our process and how we can better keep using our GitHub labels and Bring automations Or add new labels so that we don't have to do a lot of manual churn to fill our boards which we can use what the processes we have and Use the people to actually do the work GitHub or membership is a big thing for all of us right now. We saw the contributor Count increasing but that also means Not only we are getting new contributors every year every month. I would say but we also have to track How many of all those contributors are active? We we have to do that for many reasons because each contributor Costs a lot of resources to the project and if we don't use our resources properly then It's a course we can better utilize it so for GitHub or membership we have recently done a few changes We have introduced an audit tool What we do with that is we had a process in place For auditing all the inactive org members we improve the policies for that Earlier it was anybody who is a org member of Kubernetes and by org member of Kubernetes. I mean Kubernetes org or Kubernetes sakes CSI and all the GitHub organizations that Kubernetes project has Anybody who is a member if they are not active, let's say for 12 months They would be deemed as inactive and marked for cleanup but every time like in case of Kubernetes project GitHub is not the only place where contributors to Their contribution. So it's a hard process to actually mark people as inactive if they are Doing their work outside GitHub so this this Last few months with the help of Nabaroon and other people in the Contrabex We actually did our very first inactive org membership cleanup with a lot of exceptions, but we brought in a tool audit tool that Uses Dev stats that takes numbers from Dev stats on For all the contributors of Kubernetes project gives us a list of all the org members Who are inactive and then we can use another tool which is called peri ballers to actually do our Inactive org members removal and there is more updates and improvements happening Right now as well We have another project in place for our Kubernetes community meetings. So every like Nabaroon mentioned every SIG has their weekly meetings weekly bi-weekly Sometime more than one meeting for a single SIG or multiple sub projects and working group So each of those meetings are recorded and we publish them for people who can't consume them in person or in life For them to consume the recordings. So we have a Zapier automation in place to Take all the zoom recordings and put them on YouTube and thanks to the work of Nigel and Chris short for helping us with that Another one is peri-ballers peri-ballers is our tool created by Kubernetes project to manage our github configuration so we use this tool to Manage github things like org membership or github teams management or access management etc And we are keep on improve. We are keeping on improving the peri-ballers tool to not only do what we what I just mentioned, but Start Maybe managing more of the github things that we are not doing right now One of the things that we did recently is adding capability to peri-ballers to manage repo level permissions to github teams but not just Managing repo level permissions. We also added a Restrictions model with a default deny policy for reasons like we don't want people to just be part of a just add We don't want people to be added to a team and then Because of they are already part of a team They get escalated access to repos like Kubernetes Kubernetes. We don't want to do that So we have a restriction model in place the ones that we will write less are the only repos that people Can add to a github team for example on the Right-hand side we have some projects which are currently woke in progress or in discussion but are on our roadmap for sick contracts for this year and I Would say coming months itself. So mailing list migration is another one We were using Google groups I think for past years and we are trying to move under a Kubernetes managed Infrastructure, so we are working on a mailing list migration tooling for that slack channel reorganization is Especially for the new contributors anybody who joins a Kubernetes slack for the very first time It's a very overwhelming place for somebody Just there are Thousands of channels and it's really hard to understand where to start even the channels We have which are marked as Kubernetes users or Kubernetes new contributors They are also filled with questions that can make the new contributors over one. So we have put better Bought messages or resources in place there so that people who are just joining know what Exactly they have to do next or what are the next steps for them? We also Have initiatives happening around revitalizing known code contributions. This is in collaboration with CNCF in general What we are trying to do is we are trying to develop actionable and more generalized Guidelines for all of CNCF projects on how to also Advocate about non-code contributions, which are very very important for any project for example the contributor comms is One of the best examples we have for sick contracts and finally Google Drive and one password management we We use Google Drive for all our sake and work working group Documentation as well as all our credentials for the project are managed in one password, but this is a huge Responsibility this is this also needs its own policy for example We have a whole project for managing our GitHub operations. We are working on making such policies and for Google Drive and one password management as well and moving on very quickly a lot has changed in the project in the past ticket But a lot has stayed same what has changed is we have improved our org membership Criteria's requirements earlier anybody with a few Defined number of contributions can join but right now we are fine with the same number of contributions But we encourage we really encourage you to make Substantial very important contributions because the only motivation is we want people to stay in the project and to Walk that that also that is not just like a one week worth of work. We want to all membership is It's a it's an ongoing commitment, but it's also Like a title you get this is like one of the first contributor ladder you achieve when you get a org membership So we really want to make it worth it Contributor ladder we already discussed and lasting contributions and contributors across time zones We this is an ongoing problem and will stay so we are trying to bring in more us in communication and processes so that We can cater to requirements of contributors across time zones what has stayed the same though is Getting involved in the project is still same It's any contributor who is just starting with the project is somebody who needs to get involved engage with the community resolve and stay in the project to Absorb what's going on so it that definition has not changed. It's the same thing just said the Processes are developing and only thing that's required is just to stay in the project and come in some time And with that Yeah, okay, let's let's let's move on Hey So that was our overview of Contribution we promised you that you would get an overview of contribution in the last decade and how it's changing in the next decade So that was that now we're going to talk about how you get involved. So first thing Shout out to contributor comms because that is the sub project that I run And I think it's an awesome place for new contributors to join in so Here's something concrete that you could come into the project and join us to work on right now the contributor comms Group like I said earlier is all about Communicating externally about the awesome work that contributors are doing and also internally with contributors about the stuff going on in the Project, which you just learned a whole lot about So one of the things that we do is an ongoing project that is basically always going to be there because we have so many Special interest groups is the special interest group spotlight blog series. So in our comms group We have a blogging leader shout out to Frederico. I don't know if he's in here But sorry Frederico. I'm giving you a lot of work What we do is we have our new contributors pick a sig that you're interested in any of them that haven't been done in the last two years Go find the co-chairs of that special interest group and Interview them about what their special interest group is about Then you write up what you learned about that special interest group into a blog so that other people can learn about that special Interest group too, then we publish that blog on kubernetes.io the official kubernetes website and Usually on kates.dev, which is the developer contributor website as well so at the end of this project you've learned about a sig within kubernetes and You have a contribution that is concrete out there in the world that anyone can see So this is a project that I highly recommend to anyone who wants to become a new contributor you can find us in slack at Sig contribex comms is the name of the channel. We'll have that later too. I think So reach out to us in there. Say that you're interested in doing a spotlight blog We meet weekly on Fridays, but won't meet this week or next week because kubecon But get involved say hello say you want to do one of these and we'll get you going I'll quickly go through the other areas that we need help with in the interest of time and we have one All section left So we run the elections as well and we built a tool called electo ourselves So if you have knowledge of python and you want to help with this come help us We need your help But if you want to run your elections do check out the tool it's on Electo.dev or you can come and see in select in the channel called electo Next up we run this event called kubernetes contributor summit at almost all kubecons If you have event management experience and want to Do something for the kubernetes community at the same time you are welcome to help You can just come to the Sig contribex channel on kubernetes slack and ask how to how do you get started? On the automation side of things there are two three specific areas one is the contributor website Which is the first stop stop for any contributor to get some more information other than the kubernetes community report If you have experience with go and bash we really need your help In changing the generator that we use to convert markdown to a stemel. We would really love your help there And if you have experience with go Pianca talked a lot about like peribolos and how peribolos does org management There are a couple of areas of work that you can help us with Do look at the issues once we share the slides you can just click on the issues and come and register your interest Now once you when you register your interest do also mention like why you want to do this and some prior precedents So that it becomes more relevant for someone to mentor you With that I'll give it to mother to talk about contribution pitfalls. Okay. I think there was a lot of info that was just thrown at you, right? so this section of the talk was essentially meant to share some of The pitfalls that we face some of the failures that we had personally when we started contributing one in hopes of normalizing that these things happen and do in to let you know that there are very tangible ways to Avoid them and if you do face them, there's very tangible ways to get help as well. So One of the benefits of so much information being thrown at you isn't that you understand and absorb all of it right now It's that you have things to go and look up once you go back And this is just for contrabex that are maintain our tracks of all six that are going on today And some of them happened yesterday as well and some maybe tomorrow as well so These are great opportunities to like know that these are things that you can look up and learn about and get involved So without further ado, let's get started These are things that we've noticed in the past couple of years and we want to share with you The first is this thing called the good first issue trap When you go to any open source project one of the first things that you might look for are good first issues And they're excellent ways to get started with they have a low by barrier to entry however Your experience in the Kubernetes project might not be the same as with other open source projects because a lot of the Good first issues that you will come across still require you to have some of the context over there About the any of the sub parts of the project that it's meant for right so you might feel Overwhelmed to the extent that you might not want to Stick around or you might not want to work on it anymore Which is completely understandable and it comes with justifiable frustration. So when that does happen You know, please remember that this is going to be slightly more difficult, but it's going to be that much more Worth it and I'll tell you why Okay, the next part is what I like to call embracing the entropy a little bit So Kubernetes has a lot of moving parts and picking up a task that might seem tangible can also prove to be overwhelming as I said There's a few reasons for it. The project as a whole has a ton of undocumented context. So There's a lot of institutional knowledge that goes into running Kubernetes that goes into writing code for Kubernetes and you someone who's coming in A new might feel like, you know, what's going on. I thought I knew what I had to do, but this is completely different that's understandable and Typically you are you might have long and multiple review cycles, right? So if you look at Dev stats the median time to merge of PR and Kubernetes is approximately two weeks, right? One and a half to two weeks and That's the time from PR open to getting an LGTM approved label on it So these things happen and this this takes time because we need to make sure that things are going into Kubernetes are stable and but that is just the main Kubernetes project. There are Probably a hundred other support Hundred other repositories and Kubernetes that you can be a part of right Kubernetes being a great great starting point for you So these are some things that you might experience But I just want to let you know that if you do experience them, you're doing something right, right? so let's say you a future maintainer of our project take up a task and You have to travel this perilous road where you need to explore multiple areas of the Kubernetes project like the SIG bar Working group ABC sub project XYZ and then finally you explore all of these areas and then the task is complete But you signed up for SIG foo. Why do you need to go through all of these different areas to get something done? That's because everything in a lot big projects like Kubernetes is highly interconnected and you might need to do this but There is good news if you decide to embrace all of this chaos that comes with it all of this Unsigned up for work that you end up facing eventually It becomes slightly easier because now in the future when you take up something similar Let's say you assign a task to yourself for SIG bar You already have some knowledge of SIG bar from your previous thing and So on and so forth. So you're essentially caching a lot of context and caching a lot of knowledge for yourself for the future So all of this sticking around compounds over time Now finally right finding your place in the community. There's this thing called law of two feet So when you get started in the project, it takes time to figure out what's the best fit for you So take your time float around but just keep learning Ask questions people are there to help you out Sometimes they might not be too responsive and that's understandable because there's a million other things going on life happens You have a day job you have a family and so on and so forth But ask informed questions after doing your requisite amount of homework and that's the best way to stick around on the Kubernetes project and Irrespective of your skill set and your background we could really use your help right like nabarun said we have things that need help in Python We have things that need help in JavaScript If you're not a person who calls a lot and you're if you're a person who helps Plan things and develop processes for teams. We have areas in the Kubernetes project at the release team that could use your help So whatever your background your skill set is we could definitely really really use your help if you're willing to stick around Right and please help us help you stick around We look forward to working with you learning from you and welcoming you as future maintainers of our project So please come find us afterwards all of us are also involved with other six So if you need more information some of the other six that are out there We are happy to provide that as well and see you in the counterbex slack channel. Thank you