 Hi everybody, I am Matthew Miller and this is another Fedora Council video meeting. We try to do most of our business online on mailing lists and tickets and IRC meetings, text-based meetings. But it's also good to now and then do a face-to-face kind of video call. I'm sure everybody in coronavirus times is used to this by now, so I won't talk about video calls too much. This month we've got kind of a special presentation by a lot of interns who've been working on awesome things in Fedora. And so we've got a lot of people to get through here, so I won't take up a lot of time. I will turn it over to Vipple, who's one of the coordinators for the program and he's going to introduce that and we'll go from there. Welcome everybody, let's get started. Hey, thank you Matthew for the start-up and hey, I'm Vipple, I work in Red Hat, in CPE. I work things around Fedora CI, but today's not about me. We have a lot of interns who did a great amount of work on things around Fedora. We had outreach interns and GSoc and this Council call is to highlight their works. So can anyone see my screen? I just want confirmation once. Yes. Yes. Awesome. So I'm just going to act as an MC and I'll be going through different slides, calling people out and it will be their turn to speak. So I'm just here to help coordinate this call. So Fedora organizes, we had tea and sometimes more minted projects where we try to work with different folks and try to get into the community, work on a project and it has always worked very good for us. This year we had GCI, Outreachy and GSoc, which is Google Code, Google Summer of Code and Outreachy. GCI, for GCI it was the last year this time, Google has stopped that thing. But for now we have Google Summer of Code and Outreachy. Let's just jump right into it. I want to call first Murray to give a very brief introduction on Outreachy so that all of us are on the same page about these programs. Hi, my name is Murray Norden. I am Fedora's Community Action and Impact Coordinator and I coordinate the Outreachy internships. The Outreachy program is, I believe, six or seven years old and it is a program that expressly invites and creates opportunities for folks who face under-representation, systematic bias or discrimination in the technology industry of their country. So we have a very wide range of different types of projects everywhere from design to coding projects within Outreachy. And a fun fact, I was an Outreachy intern. That's all I got. Thank you very much, Murray. That was a short and sweet introduction. That was all about Outreachy in brief. And now we have Sumanthro, who is the Google Summer of Code admin. And I would like him to talk about the program for a minute if possible. So, hey guys, this is Sumanthro. And I will coordinate the Google Summer of Code. The program in itself is basically supposed to be for students who want to start learning or this is a stepping stone for them in open source and programming. So usually we have a lot of mentors from Fedora come together and propose a bunch of projects. And then we go ahead and pick some of them and then we try to find interns and there is a certain application period which goes on. This program is dedicated towards students and we have great mentors every year mentor the students. We have org admins like people and me help them facilitate weekly reports and stuff like that. That's mostly what GSock is. So every year we kind of cure their proposals and go ahead. Yes, and thank you Sumanthro for that. In the end, if we have some time, we would like to go through some of the questions if we have around any questions around these mentor projects. But right now I just want to jump into the main focus of this call, which is introducing our interns and what they've worked on. So his order of presentation just so that we know who is coming next alphabetically ordered will start with GSock. And the first project is dashboard for packet packet is a great project. I'm really excited about this. So until if you can take the floor and I'll be controlling the slides. Just let me know. Okay then. So hi, I'm Anshut and I'm working on dashboard packet my mentors are who know and Francis the packet service of the book and you've changed the slide. The packet service is an installable after get for just like GitHub, Badger or GitLab and basically enable it on a repository. And then when you make a pull request on said repository, it validates it. It builds the project in Fedora and basically it gives you the you can basically install the copper. You can use the NF enable copper and then install that that build project and test it out and maintenance can easily see if it's working. And if it is, they can basically approve the pull request and merge it. So it's easy to test packet service also enables you it helps you to work in source kit instead of this kit. So well, that's thing. But we can you change the slide? I have. Is it not visible there? Okay. So progress. I built the rest API for packet and I did it using flask post quest SQL and SQL alchemy. So the thing here to the one new thing I learned here was packet. Basically, we have different triggers right so far full request can be a trigger. The branch push can be a trigger. So basically packet follow this different. What do you call a design partner for databases that I was unfamiliar with and well, thanks to who not on the team. Well, I learned it and basically it was different and I learned something. So that's great. Then I built the dashboard using react and flask. And what can you go back. I mean, that's for good. So well, Thomas actually constantly bothered me to make that's for good and that's something I learned. So yeah, I also learned Ansible and I played with containers and open. But we can choose slide. So this is a picture of the swagger API documentation since there's nothing else to say. Well, it's already changed. I'm sorry. I didn't account for the lag inside changing. This is the next. There's a lag or something. Yeah, I guess. Yes, so yes. The video one. This is a dashboard. I see. Sorry about that. There you go. I built this using react and pattern fly pattern fly and the pattern fly team is great basically because they help me I had some issues and they help me. Yeah, this is basically the jobs page where you can see your list of all the jobs that packet does jobs can be copper bills or Koji bills or even testing farm run where basically tests it tests your rapid transit test inside of Fedora in a virtualized environment. And this is the projects page where you can see all the list of projects that have packet service enabled and you can search it by repository wise or namespace wise. So basically you see the easy you see you enter the namespace and so example get her dot com or get la dot com and you see it. And then you see the list of peers that have been handled by packet. The dash funds that are on testing farm. The center was testing farm I think and you can see the releases that have been handled by packet the branches for branch pushes instead of pull requests. And issues packet creation creates issues so well that's just system. So my takeaways well I learned the importance of good commit messages because I was constantly bordered by who know and. Now I learned to make good commit messages and probably proper grammar and no punctuation. And basically consistent so it's important and then tests. When I was applying for Jesus Thomas constantly. Like in every single bestie thing me to make tests and I learned and now I do. And I would make them and I was with the packet team and they were great all of them and I learned a lot obviously good programming practice. Well that's thank you. Awesome thank you very much for sharing that and I don't see any questions in chat so I guess we'll jump right ahead because I've got a quick one. What what makes a good commit message. Oh. Basically describes what you are doing basic the headline should be at should describe them. Once intense what you did and one thing who not told me was to use it so like this basically embedded. Add this feature update this modify this something like that instead of. Instead of something like packet can now do this or packet can now do that instead of something like that you have to make their imperative. And no full stops I added full stops. Thank you very much Matthew for the question and I'm sure a lot of people will learn a lot of things from this slide now. Next we have improving the network role at Linux systems roles. And the mentee is Elvira why didn't you go ahead and take the presentation. So hi I'm Elvira and my work has been to improve the network role at Linux system role. So yeah next slide. So as you will is an automation tool that helps user configure different target systems at the same time and also deploy software and many other tasks as continuous integration rolling updates and many more. Linux system roles is a collection of roles and modules that assist different system administrators in the configuration of their Linux subsystems. A module here is what we could call in other programs. Go back please. Yeah, thank you. So a module here is what we could call in other programs. An extension or a plugin. And it's written in any programming language and our role is a collection of different tasks that these users can. Can get unused and it usually simplifies their work for many different tasks in this case in Linux system roles. There are many different roles like the network role which is the one I've been working with that helps you. Creating different network interfaces and editing them. But there's also the post fix one or the firewall one. So there are many different things you can do with with Linux system roles. Yeah, now next slide. So my main task in the network role is to add pythons to the integration testing. Right now they use Ansible playbooks written in YAML. Each are the real way that users execute the Linux system roles when they need to. But this is difficult to debug because of the output we get that is the full Ansible output and not just the errors and it's not very specific. It is still useful and we will still use it because you get how the module interacts with Ansible. But we need a way to get into the particular classes or function to test them. So this is the advantage that has added pythons. The fact that you can directly execute the network module from Python and you can get the full power of this programming language. And that you can reuse code easily from one test to another. Next. So here you can see on the top part you have the how you write a playbook. It's just a part of it. And on the bottom part how you write a test with pythons. On a glance you can see that for example an assert would take you on a playbook more than three lines while on pythons as you can see on line 89. An assert is really intuitive and it's just one line and it's easy to see. Another thing that you can see here is that on pythons you can set a specific input for the setup of a test. This case is test NIC1 which means network interface card. And this will ensure that independently of which system you are developing from you will put the same input into the different functions of the module. Next. My work until now was I've been doing different smaller PRs in order to get in touch with how the network role worked because I didn't have much previous experience with it. So I've been working a bit on bugs and also a bit on documentation but the main challenge was the pythons integration and as you can see the PR is open. Next slide. So the current progress on this PR is that right now we've been able to execute the module without Ansible which was the most interesting thing to do because that way you got rid of the unuseful testing, unuseful output and it was quite a challenge because I had to simulate how Ansible modified different files, like different Python modules that it needs. So we had to mock them. And the other thing that is the only thing left right now is to make it really compatible with all the supported distributions. Right now it works with CentOS 8 but we need to make it available for the versions that you can see listed from Fedora, CentOS and Red Hat. So yeah, next slide. So my takeaways that I get from this project is that I've been learning how to use Ansible which I've never done before and also to use PyTest and I'm really liking it so it's a really cool thing to say. I'm also getting deeper insight on debugging many system tools. Before this I was a Linux user but I've never really taken a real look about how providers worked with your network information and how they created network interfaces and so I've really learned a lot from that. I've also started contributing seriously to a free software project which is something that I really wanted to do and that is quite a challenge when you are maybe a bit shy and you just interact with other people through, yeah, digitally. So yeah, I really like that too and also learning to work remotely which is something that I think it's going to be quite useful from now on. And I also think it's a challenge because you get many different distractions and you really need to go through that and really get the work done. So I will answer any questions now. What are your questions? I'd like to hear. Yes, definitely. Thank you. I'd love to hear a tip for working remotely. I think even those of us who worked remotely for a long time can learn from people's experiences. So you want me to say a tip? Yes. Well, I would say. What did you learn? Yeah, I learned that I work pretty well at night. More than I would think and what's important is that you no matter what timetable but you need to get a timetable because otherwise you spend the whole day thinking about all the things you need to do and you are never really working. You're never really resting and it can really bring you out easily. So maybe I was like that for only two or three days and I was already thinking I was going to lose my mind. So it's really important to set timetables for that. Awesome. Thank you. Yeah, we all could do better in that. Thanks a lot. Let's move to the next slide then. We have package integration with GitLab and the mentee is Sreyas. Yeah, hi, I am Sreyas. I've been working on package service integration with GitLab. My mentors are Francis and North. Can you go to the next slide? Yeah, what is package service? So package service validates your pull request or merge request and builds your project into a federal operating system. So when you meet a pull request or a merge request into a repository, package service will build your project into a federal operating system and make this build status back to the pull request. Can you go to the next slide? Yeah, I guess this is the lab. I moved to the next slide. Yeah, package service integration in GitLab. So this is what I've been working on. So the first thing that I've been working on was adding Webhook to the project to get the GitLab Webhook and understand the events. So authenticating the Webhooks in GitLab is a way different than GitHub because GitHub has its own way of authenticating the website as the events are coming from GitHub. So I had to work on that manually and how to automate the things for a bit of a different part. So the first thing that we do is pass the events which are coming from GitLab and do things on specific events like if the event is a pull request or a merge request, we know that we have to build that project into a federal operating system and send the build status back to the pull request. So, yeah, so GitLab has a different way of sending the build status back because in GitLab you require permissions of the repository to send the status commit. So unlike GitHub, you cannot send a commit status to a GitLab pull request pipeline. So unlike GitHub where you can send a build status to a commit, I mean commit status to a pull request, in GitLab you need to have permissions of the repositories from which the pull request is coming from. So there's nothing as external pipeline in a merge request. So this is one way we are sending the commit status as a pipeline, external pipeline and if party service doesn't have permissions of the repository, I'm sending the status commit as a comment on that merge request. So here you can see that the comments are pending pending and then these will be auto updated with the running and the state of the each test or build status. My data is where research is really important because the first week I've been working on was the project integration with GitLab which didn't do really well. There's always a better way of doing it, so plan ahead. Making draft PRs is a really good idea because you can communicate and see if you're doing in the right direction or have a better understanding of what you're doing. Well, I've learned a good programming practices in terms of readable code and small changes into the repositories and by looking into high stuff of GitLab, we can say that GitLab is not really different in terms of handling of things. But when working on GitLab, I've seen that there are a lot of differences in GitHub per year, so you really need to plan ahead while working on GitLab or these type of things. Awesome. Thank you. Do we have any questions for Stres? Someone else that may have a question? Okay. Yeah, I have a question here. You mentioned, I think, multiple times while you were talking about planning and GitLab being different from GitHub really kind of messed with what you were hoping to do. What do you think you would have done differently if you could go back and do this again? Like, what would you have thought about? What would you have done to do this better the second time around? So while planning, I had a different plan because GitLab has something known as project integrations, which is similar to GitHub app. So I spent a lot of time researching about it and the two weeks I think I spent on it were a waste of time and I think I could gain that more and work on the webbed part more efficiently. So you overestimated or underestimated how the differences or difficulties? What would you say that that was? The difficulty part was a bit underestimated because I thought I could do it in that time period, but then I realized there are a lot more things that I have to do to integrate it with budget. Alright. Awesome. Thanks a lot, Neil, for the question. Yeah, no, my pleasure, question mark. Alright, so moving to the next project we have NM State, which is implementing wireless support for NM State. Sudarshan, are you in the call? I just see a left the call. Okay, we can move ahead and we can come back to this once Sudarshan is back on the call. Is that alright with everyone? Jumping through the slides. And now we have, we are in outreach zone and this is Karma's time to talk about how to create a GraphQL API for Boothi. My name is Haan and the name of my project is to create a GraphQL API for Boothi. I'm a developer and I've been coding. Could you, could you hold that? So, let me introduce Boothi and GraphQL. So Boothi, Dora's operating system, it's basically an interface for developers to test updates to students and for students. Yeah, I couldn't hear you. Am I all audio trouble? Can you hear me now? Thank you. So I was introducing Boothi, it's Fedora's update training system and it's an interface for developers to suggest update changes and for testers to test those changes. And a GraphQL API is basically an HTTP based API, which can be used to create and post data. So right now it helps us to get data out of Boothi. And this is actually the first time a GraphQL API is being used. A GraphQL API has a typical graphic structure which is composed of nodes, edges and fields. A node is like an individual object like a release and an edge is a connection between two different objects. For example, all releases in an update. And a field is an attribute of an object like the ID prefix of a release. Could you go to the next? Why GraphQL? Currently we have a REST API for Boothi, but it was not following the best practices and vis-a-vis its counterparts. GraphQL is, GraphQL exposes a single endpoint and it allows for a faster deployment speed. And it also enables declarative data fetching and therefore we get flexible output structure. The next slide. So a more interesting way to realize GraphQL's uniqueness would be through the analogy. And say you want to order a pizza. So with REST you can only choose from three pizzas on a menu. And if you want something custom, you would have to manually combine their topic. But with GraphQL you can order any custom pizza and you get exactly what you asked for. So if you want mozzarella cheese, you'll get that. And if you want mushrooms or something else as a topping, you'll get that. Next slide. Thank you. So about the timeline and my progress. As part of the final application, we had to give a timeline and my mentors and I came up with the timeline as shown on the Gantt chart. So currently we've added the GraphQL endpoint and we're using the graphical client for querying data. And we've also added graphene and other dependencies. We've added three queries as of now. All releases, get releases and get updates. The first one fetches all releases. And the last two fetch specific releases and specific updates based on the arguments which we send to the query, which is user. And we're valid tests for each of the aforementioned queries. And currently we're extending the implementation to other objects like users and bills. And we're also looking at pagination. And currently we are just getting data out of body. In the future, we also want to write data on the body or allow users to write data on the body. And for that, a stretch goal for the project is to add authentication and authorization, which we work on. Could you change the slide? This is a working demonstration of the GraphQL API. So could you please start that? So we're using the GraphQL API. And we will use code to send a post request to the flash GraphQL endpoint. For example, we want to query all releases and we want their names and their state. So this is the structure of the query. And this is the post request we're using called to write that. This is the output that we're getting. But if we want a nicer output, then we can also use a client like HTTP Pi. So if you want to query like a specific release, we can do that as well. This is the query and the argument is F33. And this is the output. We get a similar output on the GraphQL client. So let's say we want to query the long name as well. We got an error message which gave us a nice hint about the name or about the correct attribute. So let's do that. That is the long name and the state of the update. Thanks. So my key takeaway is one of the major key takeaway has been a considerable growth, avoiding knowledge and capabilities and also confidence in the work I deliver. And much of the credit goes to my mentors. And I also learned about the importance of good intervals, skills and communication abilities. And I had a great community experience and it was a wonderful first time experience in the industry. So thank you. Does anyone have any questions? Thanks a lot. So great presentation. Do we have any questions? I don't think so. That's good. Let's move ahead. Next we have Fedora Baziz migrating to Bazza and Snehal. Take this part. Hi, I'm Snehal and I've been working on migration to Badger. So yeah, my mentors are Michael and Sian and let's go get right into the... So this is how Fedora Badgers looks right now. You can see that there's a Fed message hub, which collects all the messages from every event that is happening. And Fed Badgers is the heart and soul of Fedora Badgers, which reads these messages and applies some rules on them and checks whether someone is earning a badge and awards it to them. Similarly, we have Chrome services, which for some third party... Some applications, some messages which don't come on Fed message, we need Chrome services. And of course, you can also award badges through scripts that sysadmins can run on the server. And yeah, so the plan for migration is pretty simple. Just replace everything that has the rear on it and move it to Badger. So here 30 API would be replaced with Badger Client and yeah, the Postgres DB would be Badger's MySQL DB. Can you go to the next slide? So yeah, the things that I've already done for Badger have been... The first thing that I did was make up SDK. We call this Badger Client and this is basically a Python interface to call the rest API of Badger. Pretty... Yeah, it's a class-based API, which I'll talk about up to this slide. Then of course, I learned about unit tests and yeah, this is the first time I wrote tests. So it was pretty nice to actually learn that. And then we also... I also wrote scripts to add, issue, and revoke badges. So this is admins. If they prefer to use scripts, they can still use them. Then I built... S2, I built images for Badger server, which was probably the task which was the toughest. Probably explains why I've written it down twice. And yeah, so I had to try like a bunch of different base images for this to work, but in the end it was working. And then I also made OpenShift templates and added Fedora authentication. So there are two major tasks that are pending right now, which is migration of Fed badges to Fedora messaging and its integration to Badger Client. And then there's also the migration of data, which so yeah, I have to migrate the Postgres data into the MySQL data. Can go to the next slide. So this is the Badger Client. And you can take a look at the API that provides. It's pretty simple. It's a class-based API. I've tried to type check it. So if you are using any code editor, you'll get all the types that are required by these APIs along with that. And yeah, I think that's it. Can you go to the next slide? So yeah, my takeaway. Well, some people call it takeaway. I'd call it things I didn't do. So yeah, so working from home was a different kind of experience. I'm not really used to it. Most of the time I worked from my bedroom and which was a big no-no because working from the bedroom means you're most likely going to fall asleep. It's better if you have a different room and then work there. So you have that mindset just as soon as you get inside that room. Communication is key. Of course, be in touch with the mentors always. Usually I'd have weekly meetings and that's the only point I communicate with them. Sometimes I contact them between weeks as well. But yeah, that's one thing that I like. And DOTS, which stands for don't overthink stuff. And I think it's most of the time whenever I was trying to carry out some task, I would overthink it. And end of the day, I'd realize that the solution to my problem was the first instinct that I had and overthinking this made me lose time. So yeah, thank you. And if anyone has any questions, I can answer them. I've got a question. How many badges do you have personally? And what is your favorite one? I think my favorite one is Baby Badger. But yeah, I don't have a lot of badges. I think I have some 10. I haven't been that keen on collecting them. But yeah, once Badger is online, I'll be trying to grab them all. Excellent. Thank you. Awesome. Yeah, go ahead. Yeah. You briefly mentioned in your presentation that part of this was involving moving the database from Postgres to MySQL. Did I hear that right? Yeah. Yeah. Okay. I just didn't expect to hear that. I was just trying to make sure I didn't hear that wrong. Yeah, Badger is using MySQL. That's a little unfortunate. Yeah, you don't usually see people moving the other way. But let's move ahead for now. Sure. Great. So next we have Smira, who will talk about creating and improving designs for different federal project initiatives and events. So Smira, go ahead. Hi everyone, I'm Smira. My mentor is Marie Norden, and my project is creating and improving designs for Fedora's initiatives and events. So the project, basically I'm a part of the design team, and the design team provides artworks, user experience services, usability and general design services to the Fedora project. So there are a lot of new initiatives that are always in motion in Fedora, and so you need design stuff for them. So my task was to work on them. Next slide. Okay, so this is the first project that I worked on. So we needed a template for the budget reports. Currently the Fedora budget website requires you to manually enter data because the script isn't always work. So the idea behind the project was to make a template so that anyone can easily enter the data and it looks consistent, easy to analyze and looks pretty too. Next slide. So the process was my first, the first thing I always had to do was research, which was very important in any design project. So research meant evaluating what my project deliverable was, how others did it. So if I was making the budget report, how do others make a budget report? What does it look like? What is the current trend? How does it look? So that was my first, the first step that I would do. The next one was to make a couple of templates. Can you go back? Next slide. We'll see what works. We'll look up stuff from each template and then narrow it down and then iterate over and over until you reach a final deliverable reports. Next slide. So I made a design that I decided even after the final project is submitted, a lot of feedback, good input and a lot of questions. So after I'm using this project, I'll go back. Next slide. Okay. The next project I worked on was for graphics. So to highlight the different components of the work done to make sure that people understand what other things are doing and painful contributions, that was my idea behind this project. Next slide. So again, it started with research. So I had to look up how the graphics look, what are the things I have to take care of even technically. Infographics are supposed to have big bold text, colorful, more graphics, things like that. The next step was drafting templates. So these were the two templates that I worked on and the third step was soliciting information. So if you guys must have seen my mails and messages and tickets and comments that I left. And the fourth part was the bigger research which was actually understanding all this information that I got because then I had to work on it to represent the information. I had to understand it myself so that I could make graphics, make designs, make artwork for that information. So that took up a huge chunk of the task understanding what each team does, what are their motivations or what are their goals, the current projects they have going on and what exactly is the project. Because if I didn't know myself I could never actually depict them in the infographic. The left one, you see the design that is actually the final template that we ended up using and this is the final one for Fedora Join. Next slide. This is the project that I'm currently working on so this is the Fedora Zine. The motivation behind this is to recognize people who are making Fedora awesome, gain more contributors, highlight products and Zine will also be distributed at conferences hopefully soon when we have more physical conferences and of course a digital copy will also be available. Next slide. So of course again, research. I had to look up how Zines were. So Zine was a concept I was not familiar with what exactly is the aesthetic of Zine why are they like how are they different from a magazine? It's not just a smaller mini magazine it's a publication in itself. So I had to look up and actually understand what Zines are. The next step was designing covers so these two that you see these are actually like the final ones and we'll be using one of them for the cover the other one will be somewhere in the Zine itself. And the third part is soliciting content which is currently going on. Next slide. So for the third part I need your help. I want everyone to contribute to the Zine. You can submit anything you want. It can be paintings, it can be poetry, photography, anything that you want to submit. It would be good to have in the Zine and that is the ticket link for the Zine if you're interested in making a contribution. Next slide. Okay, so these are the things that I learned. Stop doubting your work. Honestly, this is because of Marie and the Fedora community with all those always nervous about my designs the stuff that I've worked on. I would always think this does not look that good or this is not really wow, but Marie always encouraged my designs and it's not just her even after I would submit my work everyone worked from the Fedora community would appreciate it and then love that put in bridge my confidence up and kind of help me be more comfortable with showing my work the second is research is very important especially in design you have to make sure that you understand the content of the product and the product itself the target audience, why are you making what you're making otherwise the final design will lack vision or if you don't put enough research in your work then the user will not be able to understand it and it won't make sense to the user and the last one is to step back from time to time there were some periods where I would just for one week I would just keep working and working and the thing is more work did not equate to a better work or a better designs because sometimes I would lose vision or track of what I was supposed to be doing so this is what Marie would always suggest me to take a step back see, evaluate again what I'm supposed to be doing take a breather and then go at it again and that would help a lot even in programming I guess this is called rubber duck programming I think so when you are stuck on a problem you just look away and it comes to you, the solution comes to you so that actually helps a lot in design too so yeah, thanks for anyone has any questions I don't have any questions but I want to say thank you for the beautiful artwork, the join poster stood out to me in particular but you may have seen it in my Nest keynote so thank you for that, I probably should have put the credit there by it so I apologize for not including the credit credit is important and open source so thank you very much for making that and all the other things you are working on as well thank you these designs are a great smear I'm sorry for pronouncing your name incorrectly earlier yes I don't think we have any questions so let's move to the next slides then next we have porting and redesigning Fedora websites and Meher why don't you start now hi everyone I'm Meher and I've been working on porting and redesigning the Fedora websites and my mentor is Rick Ilrod we can move on okay so I know most of you must be aware that currently the Fedora websites are being maintained in two different repositories the sub domains like alt.federac.org spins, labs, arms those are being maintained in the Fedora websites repository and they are independent sites as of now and the main website which is getpedora.org isn't the new repository so my job was mostly basically to move all of those independent websites to bring them under getpedora.org and rewriting them in the new framework which is the flask and frozen flask okay so basically I had to integrate the current build script to include all of those websites and all of those download pages have several download links and the checks and stuff so for that we are using a YAML file and it's a one point destination if anyone wants to update the download links like for instance if you want to include display the beta edition or if some link is broken and we don't want that to appear or if I want to overwrite a certain download link so I don't have to know the entire code base but I can just make the changes in the YAML file and it will automatically reflect in the download links there and for the rest of the the routing part it's these are just static HTML pages we just have to tell frozen flask where to find them so and for the checksum download the current websites that the currents of domains have most of them have a different page for the checksum downloads and some of them are directly linking the checksums along with the downloads so we are planning to move all of those checksums to the security page and so that anyone who wants to find any of the checksums can go over there and it would be easier so yeah that's also something I'm working on yeah we can move forward yeah so the major part of this project was redesigning all of those pages so I try to you know these websites are the first point of contact for anyone who is not that familiar with Fedora for the downloads and so I try to make it as user friendly and easy to navigate as possible and I try to make sure that the user finds what they're looking for and not they are supposed to be minimalistic and concise and yet they should be containing all the important information about the download and the support resources required to use them so and all the websites should be consistent and pretty yeah we can move on these are just some examples you can just skim through these I'll just go this is the IOT page these are spins and labs but this is alt, cloud yeah this is an example of the KD plasma desktop for spins yeah so I I started working around like I started in early July or something and this is my first open source experience so it was a bit intimidating in the beginning you know understanding the whole code base and trying to make sense of how things work and especially establishing a good workflow to have it all work together so yeah it was a bit overwhelming in the beginning but my mentor Rick really helped me at every step and now that I'm comfortable I am having a lot of fun yeah so my some of my takeaways are that when you are building something for the user you have to look at things from their perspective you have to understand like how they perceive and what they want so you have to make sure that you consider all of that and not just see your own perspective and another thing is that you can never get something right in the first try itself you have to keep reiterating and take input and consider their opinions and sometimes you can run out of ideas or things to do and so yeah you should always keep looking for inspiration and one of the most important things was writing clean code so I try to keep in mind that I am not the only one who is going to be reading this code there are people after there will be people after me who are going to work on this code so I try to make it as easy to understand and readable as possible so yeah that's it from my side thank you awesome thanks a lot do we have any questions around this yeah I have a question where can we see or work in progress or maybe to another point when do you expect this to start being merged into the production website yeah most of my lips I have we are all locally built but I'm just waiting for Rick to finish the AMI script for the alt and then I can start sending out PRs looking forward to it yeah I have a small question just from my confirmation Fedora easy fix was not part of your work right no no that wasn't awesome okay that was something just going into it thanks a lot for clarifying that so Sudarshan is back I'll go back to the slides we don't have anything anymore so I'll try to go back and Sudarshan you'll be next let me just see if I can find the slides sometime I'm really sorry for the minute there was an issue no no no it happens hopefully I can reach there before all of us are okay I think I found it there you go you introduce yourself now Hi I'm I'm Sudarshan and I'm a third year computer science undergrad and I'm really excited I was excited to work on this project because this was my first open source project but I have and a person as a student who is interested in networking it was very exciting and next and next slide please I was working in the end state and the project aim was to enable end state to be used by other programming languages and system that doesn't support Python end state is a Python library that manages networking states of hosts and using a defined schema and the project we used was VALINC and VALINC is a simple protocol that encoded all the messages in JSON format and communicates through Unix and TCP software connections and next slide please and so far I have completed the implementing the support for VALINC VALINC support in end state now the basic all functions can be accessed by VALINC and still this implementer is pending for review stage it's all been amended slowly bit of small changes from the members of the group and we have also I have also implemented the system deservices as end state VALINC and during this process it was we were able to identify some issues and Python VALINC package that didn't support what we expected as documented and we had some discussions to review or change the version and we understand that we should support the package it's been shipped to most in default so we have been working around that to manage those issues next slide so this is a sample screenshot I have posted how VALINC works with the command line tool and the first line it shows that we can call the VALINC end state functions show in the specified way using mentioning the VALINC address it's been listening to or we can use the resolve either currently the VALINC is only being we encourage the users to use only this unique socket file based addresses because of some because of some access control that should be addressed later and the second line shows that there's some we can use the directly the using the VALINC interface and the show we bear when we use VALINC utility call resolver to resolve it system wide and we no need to specify the address each time and the second line shows how to pass an arguments in this case the state of the state we desire using VALINC command line tool and actually VALINC doesn't accept JSON but it just accepts only the JSON string slide very good yeah and VALINC can be we can also access this using VALINC clients and interesting thing is we can the VALINC clients can build the clients using any programming languages just with the support of JSON and unique sockets so this is just an example using Python client and the left the screenshot shows that the NM state VALINC interface definitions and as you can see every method in errors returns a log which is a debug or higher level so the debug it and one of the things we had to work around is passing the arguments through to VALINC and one of the issue was that and we had to because of that we cannot directly pass the arguments and we can only pass it without any issue using JSON or JSON object and we are passing currently the NM state VALINC accepts the parameters in a VALINC object under the arguments key and yeah I hope it will be addressed in later VALINC packages and these are some outputs how VALINC show come on and error formats that being that's currently in use and my take away is as being a new experience I really enjoyed working in the community and I was shy to come in because I thought that contributing to open source and need to have a great understanding in code and good practices but these days I'm learning a new language and while learning I am contributing for the packet open source and it really changed my idea on open source and working with professionals thank you I should mention my mentors they were very helpful and Fernando helped me really completing and giving me feedbacks to improve my commit messages and testings and other mentors too and this is being a challenging experience and hope to continue contributing for open source thank you very much do we have any questions for Sudarshan I don't think so let me stop sharing my screen now I can see everyone's faces that's awesome thanks a lot to all the interns you did a great job in explaining all the projects you have worked on and we have very much on time I guess in my opinion and if you have any more questions around mentor project now we can talk about that unless someone else has to discuss something yeah I guess I have general question people talked about enjoying the experience I'm glad we were able to provide that for you in Fedora what could we have done to make it easier to be part of the Fedora project and what can we do to make it so that when your internship is done even if you go on to a job somewhere else or whatever else you're doing we can make it so you would like to stay involved with Fedora as you continue your career in life I think that was a question for interns right oh yes the current system is great it's okay so well it's great yeah I think the thing about the thing you said about contributing even after the internship I think I'm going to keep contributing just because it's a challenging task to contribute here and yeah it's helped me grow and yeah that's one of the reasons why I keep contributing I like working with other people just the first time I worked on open source projects before but not as in with other people I have to interact with the team every day and we discuss things sometimes they don't know the answers either so we do research together and stuff like that basically working as part of a team that's what was the what I like most yeah the community here is really amazing I think I came here for the project but I'm going to stay because of the people oh let's write that one down that's good thank you if I did put you on the spot with that question there but if anybody wants to tell me later like if there's things we can improve experience better or to make especially going forward or as an intern like that DM you can find me let me know thank you in my case I just want to say thank you to all of you because the work you are doing is pretty awesome I think all the projects are going pretty well and thanks to people to to organize to everything related to the internships and you are very welcome you can any of us not only Matthew but anyone in the council or even in any of the teams you can you already should know where to find us or your CEO matrix or whatever so please raise your hand if you have any questions if you want to contribute further or just hang out in the community you know just hang out talk to people that's even very appreciated we love you all having here I know people have already said these things but we mean it we just don't say it because we want to say it I have another thought I just wanted to say thank you to the mentors the folks have taken their time to mentor the new fresh blood no but really thank you to the mentors for putting the time I mentored this this round it was my first time and I found it to be fun and fulfilling there was a lot of good time so hopefully people have enjoyed the mentoring experience as well if anyone wants to comment on that if there's I'm sure there's more mentors on the call yeah hello I'm on the call yep do you have a comment or just hello sorry did you have a comment or was it just to say hello no just to say hello I'm on the call hi glad to have you here alright then thank you again everybody mentors mentees support people all of everything it's great to see this it's one of the many things that makes me excited about the future of fedora and open source so nice to hear from you all thank you again goodbye bye bye everyone thanks everybody