 Hi! So, today I'm here to talk about rules or common agreements. So, the first question is why do we even create this sort of thing? Basically, we want to live together, right? It's a community and in certain communities and smaller and bigger. We discuss and say, I like this and I like the orange and I like the pink, but how are these basic things that we can do so we all can feel better living together? This is where we come up with those common agreements. I will give you an example. In my house I live with George. George, that happens to be a cat, by nature likes a lot birds, like this dove with the arrow on it. And when in the spring, like now, the birds start coming and they are super hungry, so I feed them. I live in front of a park, they are here all the time, I feel they are hungry, I just feed them. And George, of course, wants to play with them, but when he plays, they get hurt, so it's not cool. Then we get together, me, the birds, George. Let's, we need an agreement here, this is not working. So the deal is, George, you cannot eat the birds, nor try to play with them because they get hurt, but you get cookies. And then the birds are happy, I am happy, George. George is not so much, but he's also happy. It's like, but I was in the window and I was scared them when I get too pissed, okay? Otherwise, I'm like, I'm like, shit, but I just stand, but I would not touch them. Cool, we have an agreement. But why? Why do we even follow such rules? I got a feeling that most of them, to be honest, it's merely the convenience or we don't want to think about it. Or it's just, we think it's just a bit logical. For example, in the most of the western places, we tend to form lines. There's a lot for lines. And no one likes it, but it works. And if I wake up in the morning and I just want a warm bread, I just, there's five different people, we kind of understand who are right first and we form a line and wait and we kind of know the time we'll get there. It's not a rule, but it's kind of a best practice per se. I, of course, don't need to follow this, but it will take a lot of energy and we can just say, no, I don't want line and we can get a group and reinvent this best thing that will work for everyone. Sometimes it is necessary to not to follow this route. Then, you know what? Break it! Smash it! I am the first one to raise my hand and say, please reinvent this rule. This is not working. It's like Mr. Duro wrote in his fabulous resistance to civil government book as known as A.K.A. civil disobedience. And disobedience is great. It's awesome. This is why, for example, we have open source, right? Open source was started, was born, when someone defied a rule, say no, no, no, I don't want copyright. I don't want this law that is by default to exist. I want to create my own law and have the right to allow others to copy this tribute, modify this code. Beautiful. But, wow, what is open source? Well, one could say that open source is a very technical definition about source code that is open, again, to copy, modify and distribute traditional by the book. Others, by the other hand, may defend that before you even think about open source you have to participate and understand what collaboration means. What it means to collaborate. It's the basic. So, start to get together the open with the collaboration principles. I understand it's because open source is not a verb, not one thing. It can be a workflow, a philosophy that indeed went way over just code and approach, of course, to software development. It's definitely way much more than just hitting push-push and public into a public repository. My personal definition is that open source is an ecosystem. And by ecosystem, that means that it's composed not by one thing. It's technical things like code, but mostly by people. The ones that are right in the code or doing other things that it's just not code. Every project shall have its own probabilistic culture and probably they will have its social norms. And just like the place in the code into this public repository will not achieve this idea of being shareable. In open means that I'm open to the other. This one I do not know. It's not me. And this other should be able to participate somehow in the project. The meaning and the idea of open, right? But people are very, very complex. Independent of your definition, what you want to... how do you think about open source? Can we agree on one thing? I mean, to think about open source is to think about sharing and having this property of enabling sharing. But to share, we need to communicate something. And this is another very complex human thing, communication. If you think about communication theory, for example, you need someone giving the message and someone receiving the message with a medium that we'll get in between. In this case, like the ear, the sound, the voice, my brain receiving the mouth. So there's the message, the meter, the ones receiving it and the medium in between. This is basic theory. Have you ever played, like to make it more explicit, have you ever played this child's play called the broken telephone? There's other names for it. But basically, you have someone just like in the picture, you spread your voice for something. And then the other will hear and will pass along to the next, to the next, to the next and to the end. And then the fun part is that the first one will compare with the last one. And it's super fun when they are not the same. And I mean, if you said in the beginning, I want to play with George and at the end I hear, I want to kick George. You would be super mad, super super mad, but then you just wanted to play, right? So it's not fun when the noise happens in some circumstances, right? What? This is noise, I guess. But this we're talking about, it's last wall. One of the theories, right? We could use this person there. It's a vision, message, medium, receiver, the effect it calls. This was like an image for that. And this is linear. And you got into this whole complexity. No one understanding anything. George, it happened something to him that we don't know what happened. Noise. But an open source project, it's not linear. And usually there are several messages coming from all around, asynchronously. And then, whoa, how can we imagine? So we give this example of just this linear really control thing, but an open source that's not this control, that's very basically the centralized thing most of the time or partially. One other way to explain or try to think about it, it's McLuhan. McLuhan, it's a Canadian philosopher. It's one of the cornstones of media theory. And there is this really famous phrase from him where he says, the medium is the message. Well, it could be, in that case, the whisper. The whisper is by default something that it's not clear, loud, and it's meant to be a little disturbing. But he also said that the medium is the massage. And what does he mean by that? By massage, he meant to denote the effect of numerous medias and how they massage the human sensorium. He's talking not about the proper content, but all the surroundings and how we are perceiving. Because humans are made of several types of perceptions. We're not only reading or not only hearing or not even the something in between that we haven't named yet or will never do. So not only the message comes to play, but also how this message is sent. That would be a little bit more complex. And then we have other theories. There's Burloughs, but there's many others. And in Burlough, for example, you see that the source comes from many places. From attitude, from knowledge. And the message, you have the element, the treatment, you have a coding. You have the channel. The channel can be smiling or yelling. And you have how am I receiving this? Which culture do I come from in influencing this perception, for example? And this is interesting to note, especially in open source, because one of the challenges of open source is dealing with information imbalance. Let's take this image, for example. Here you have a case of a doctor that contains information like, hey, it's free. Free data. Use it. All there. But if I do not have this specifically knowledge before, it's creating a symmetry of knowledge where only me who detains the core necessity of the knowledge can actually understand or decipher this data, this information, and that's information imbalance. What happened is that we, of course, by nature, like I can't have my pit maintainer and just send a signal message and say, yo, let's do that. Cool. But what about all the other people that wants to contribute? So think about this wall. But what is after behind this wall? We should have mechanisms or ways to communicate in a way that everyone is in equal footing in terms of access to information and the ability also to influence this project. Otherwise, why would that be open? And that could be in numbers of ways. Procedural and data communication and long-term. What do I mean by that? Procedural, it's like at the way we do things. For example, having one public issue tracker instead of having two different ones, a very close and a very open. The other one, it's how we're meeting and then making this available for people to have a chance to sit on a table and having a proper discussion about the changes that, in its opinion, needs to be made. And on-day communication is the basic stuff, like how is the status, is this just a proof of concept, is being actually becoming inactive, is that deprecated or things just like how do I even submit an issue? This is daily worries. Or long-term communication, like how well is it recommended because I just arrived, I want to start now, but I don't know where you are, you project, so can I have a road map or understanding the philosophy so I can get in and already know kind of the social norms and where we are standing at the moment, for example. Just like open source, it's not equal, just a repository with open available code is all of this ecosystem, right? And working asynchronously, it's very big characteristics of open source. This is another reason for as much as possible though we do have this interesting creative disobedience inside of us, as clear as possible, having some best practices, it is a cool thing in this case. So, R2. You probably understand why the rules are there for, right? I think, yeah. I hope I convinced you enough. But can you imagine how can you apply all these rules if you're maintaining or overseeing or making sure hundreds, dozens or hundreds of repositories are healthy, are having this clear communication? This is crazy. And we understand that maintainers needs to be multi-tasking. Maintainers, it's, yeah, are the ones who are being part of the project and being part, it's not only having awesome, really cool, clear code, it's taking care of the community, taking care of the engagement, participating, collaborating, governance, it's like those tons of tasks. It is a lot of work and a lot of interwoven work. And more recently, there's also someone else in the game, which are the OSPOS, the open source program office. Those are the ones that, yeah, they have to take care of a lot of places and a lot of places has to be really healthy because OSPOS main thing is to make sure the organization's repositories are healthy and aligned with the company's strategies. And this is why CheckMyRipple was created to make sure that we're helping you to have healthier repositories. But what are we talking about? I'll show you. This is CheckMyRipple. It is designed to be as neutral as possible, so more like RGB colors, dark mode, high contrast, complying with accessibility, using ViewAx Check from Deci. So it is made to be a website that you can just fucking use it and call your own. It does use GitHub actions behind. So you just grab your repository and link it all and make sure it is complying with open source best practices. It is built with a repellentor, which is another open source project maintained by ToDoGroup, which is super important for the open source community. And that's what it does. It just looks like, do you have this that makes this code more clean? Do you have this and this? But what are these? What are these things I'm talking about? Those are some rules that we expect or best practice that we expect all repositories to have. And before I get into what each rule does and why they're important, I just want to say that this is automated. This is why you use GitHub actions for it, because we used to have in my department, I am from a South Lab open source program office department. And before we create that, we used to do that by hand using a classic Excel spreadsheet. And it was cool for a while, but we supervised. We make sure repositories are healthy. We do not maintain them, per se. So one day we have it all updated and the next day, maybe all they're gone or do you have 200 other rules failing because they just changed everything, which is their freedom to choose, right? This is why automation is so helpful. It makes this multitasking complex word a fortless and makes you with much more tools to be able to act upon what it's failing and what you need to do to improve your organization. Repositors. So let's take a look on the rules. Check my repo uses by default 11 rules. And we create those badges if you go to the website. Like I did three badges in three priorities. The high ones are the red ones. Let's take a look at what I consider them. Of course, you can choose it, but danger. Those are the dangerous one. First of all is the binaries. It's the security rule. It looks for binary files, executables and passwords. But of course, should not for security reasons contain in an open source project. The other one is license because compliance with open source software requirements, it's so necessary. And most of the projects are composed by several open source which has had each one its own license and things can get crazy this mixing and matching. That's why when you ensure you already tell your user in advance the permission, the permissions allowed or not to do as an it's essential for you to use it, but also to protect you maintainer legally. So this is why license is the first thing cool to have in a project. The other one is to read me. It's like at this entrance door to your project where it's like hi, hello, welcome. This is what it's not only how what is written but how is written. So this read me when it's welcoming and giving you all the primary information you need to know the best your project would be. And that would be like the highly recommended first high super do not have a project without that. And then when you have time because it's all about balance, right? You have the medium budget. Medium not because they're less important but because without them you can kind of have an okayish but that will of course make your project be much more welcome and easier for people to contribute. Change log for example makes it way much easier for people to understand the actual development state or if it's lacking lots of maintenance and then decided to go for it or not. The check my rebel will look either for a document that say change log or if it has a release release tag on GitHub the contributing guideline Oh, this is my favorite because like a guiding hand it will tell you hopefully very didetically all the resources how do you do it, how do you start step by step is a guiding hand for the eager contributor. The ownership is how do you search for who own the things so then you can get in touch and make decisions, propose things and the test directory is what helps a lot your project to keep a good code without breaks and with avoiding lots of regressions helps you assure your digital confidence of your project and of course your user satisfaction makes sense, right? And what about what I say low? It's not low because it doesn't matter it's like those very nice birds in the background they are super good to have they harmonize the things and for example the code of conduct it's not that the project cannot exist with but it will surely avoid lots of headaches and dramas and telenovelas which I do like but if we avoid lots of them if you just keep it by default yeah, no you cannot kick George for example it's my cat you cannot do something else than love him for example right, yep so that also foster welcoming community because me if I'm very introvert or I don't know what happens in my life before I can have my own traumas and if it is state that this project protects me from that of course I will feel welcome license and read me license it is valid if it's just on the read me but if you have a file and also it's nice to have in the read me because again it's your open door it's where you need to know it's there security it's where it's like your emergency button which is very easy to find and you can easy act upon something needs to be done in an emergency case and the support file basically how can the user get help so how can I be supported which communication channels and avoiding lots of noise on that cool those are basically the rules and we're getting almost to the last party so how to how to and I will show you a live demo ha ha literally fork it you fork into your repository and then you go to settings in settings you enable actions sometimes just click there is not enough but you just check after yeah you just check if they are make sure it is allowed you tell the deployment to happen using the github pages and voila you have a check my report to call your own and the first time you do it you will see there is still source labs information on it it's because github actions it's set up to run on and redeploy every time you do a push to main or in crown zero zero time every kind of a midnight so it may take a little while to see your actual information there and I thank you so so much for spending this time with us if you have any doubts or would like to contribute you're obviously welcome I am Paola Motiveta probably part of open source program office and sales labs if you check, if you like it but you want to change a few things it's open call your own or check my report in the contribution guidelines there's the guides on how can you put more rules less rules, change the colors change the budgets and do the adjustments enough but it should all be simple and well described trying to make it as clear and less noisy as possible for you and I thank you all for joining us