 All right, cool Hey, so this is a pretty quick talk. It's only half an hour. We're out at four So we're gonna give you a quick overview of the Fedora hubs project what it is why we're working on it an overview of how it works Technically and then we're doing a demo, right? Yeah Yeah, we're gonna do a small demo too so you can kind of see where the project's at and then where to go from here Okay, so oh My name is Maureen Duffy. I'm the UX designer for Fedora hubs This is a rallying and bomb part. He's one of the developers and then Saiyan Chowherty. He's the other one and You'll you'll get to hear from them directly to as we get to their parts of the presentation. So This is just an overview of what we're gonna talk about first. We'll talk about what is Fedora hubs? Why are we making it? What's the point because that's kind of important to know Then we're gonna go into the architecture of Fedora hubs the basic architecture how do the widgets work because widgets are a core concept in hubs and Sort of the our roadmap. What where are we going from here? What are we going to be working on and focusing on and then we'll talk a little bit about, you know, how you can get involved? You know all different things like that so let's move on So why are we why are we building Fedora hubs? one of the key kind of problems to solve that we were looking at for Fedora hubs is Trying to get new contributors Introduced into Fedora Without causing issues for pre-existing contributors. This has been something that on the Fedora infrastructure team We've been working on we've kind of tried different Approaches over the years of doing things and what we found is sometimes if you do something to help new users You disrupt existing users and sometimes when you cater to the existing users It's to the detriment of new users So we wanted to build a system that would help pre-existing users, you know, not throw them off They could use it if they wanted but for new contributors It would make it so much easier to get on board and I don't know how many of you in here have ever Unboarded a new contributor as sort of their mentor in Fedora or you know Maybe some of you have recently been on boarded in Fedora, but it's definitely a Very windy path involving a lot of different systems and you definitely need some hand-holding there So we wanted to make it a lot easier to join the project. We also wanted to make the different efforts across the project More kind of consistent more visible so each team within Fedora is almost like its own little I don't know what they call it like his own little organization, right? And every team has its own sort of workflow the the kinds of artifacts that they work with They have their own organization is how they work with the team and that's great We're a community project. We do things in that kind of organic matter and we let teams organize themselves However, they see see fit is the best way to do it But because of that the way teams work is somewhat inconsistent like like one team might use bugzilla another team might use Pagore one team might use the wiki and will lie very heavily on wiki documentation and another team might use get and Keep documents and get so we want to let teams do what they do You know you do you teams and we just want to look at kind of the artifacts and things are producing and Bubble them up to the surface in a single unified interface So if someone comes to Fedora and like they want to you know What is the design team working on is this a team that I want to join? You know kind of shop around and see what the teams are working on they could go to the design team hub See screenshots of what we're working on see our blog posts see our mailing list posts and really get a feel for what We're working on and not just what we're working on But what we're actively working on because wiki pages are kind of old the second that you hit publish on them Whereas if we could give people a feed of the activity that's going on in Fed message You know that people are actively working on that so if you wanted to jump in there's someone thinking about that right now It's not some dead wiki page that hasn't been touched for years right because we've all encountered that too. I think So yeah, I mean this is basically what I just told you But the other idea with hubs is that you know the primary focus was we want to make it easier for new contributors to join our project But another focus is can we make life easier for existing contributors a lot of contributors in Fedora are volunteers This is not their day job. This is something that they do on the side They enjoy being part of the community, but there's so much going on. It's really really hard to keep up So we were looking at models of you know, how do people keep up with the news? How do they keep up with friends and like the single consistent thing seems to be like this sort of stream of content Like a Twitter timeline or a Facebook feed all that kind of stuff So we wanted to make Keeping up with Fedora even when it's like an occasional thing to make it easy to keep up with what's going on So you have this one single interface that you can go to to keep up with all the things you missed since the last time You logged in rather than have to hunt like oh well I'll go to Fedora magazine then I'll go to you know The ticket system and then I'll go to IRC logs and instead of being pulled in a million directions You can just go to the Fedora team. You're interested in and check in on it All right, so now rallying is going to talk about the architecture so yeah, basically hubs is Web page where you have different components inside the web page and those components will be different depending on the team and The whole they're working what aspect they're working on in those so those components are called widgets and they're On the left you have the web browser and you have those widgets in your web page And they are they are connected to the back end and those widgets are connecting to external services What I mean by external services it can be Federal services like updates for example like the Badges all the thing that make That compose the Fedora Experience as a contributor or they can be really external services like github for example So they can be anything that brings information relevant to what you're working on in your team or as a single contributor Right here you have an example of a web page It's I don't know if we have a pointer here But basically you have a list of hubs that you've subscribed to on the menu on the left and you Thanks, and you have the the feed that Mo was talking about Which is all the activity of your team or of your single contributor and on the right You could have also separate widgets which has specific to your workflow You can have like widgets on your team activity on your badges on the people that you are following all that kind of stuff Go ahead so on the right that you see the badges and Like the members on stuff So these are basically the external services that we are connecting to and fetching the data from those external services and So on the left hand side you can see multiple Hubs in place and these are basically the different hubs like the design hub the infrastructure hub and Your personal profile is also considered as a hub So all the there all the hubs are basically listed on the left hand side as an app bar Yep So this is kind of an update that you can do like this is kind of a social media That we are building inside like the idea is a platform for the contributors to Collaborate communicate and get to know the status of what's happening in that particular hub So this is kind of a post that you can do. Yep So how does it work? Those widgets Basically everything that you see displayed on the page except the menu on the left is widgets We have tried to make a system that makes it very easy to create new widgets because we want teams to be able to Create their own widgets if they need to we will we'll be shipping a lot of them like for example wiki updates for example Update that packages update that are available that you have just worked on Badges too, but it should be easy for a team to create their own widgets if it's specific to their workflow So we have a framework for that The yeah, we just can can talk to external services like body badges by here Basically, that's just a bit of code, but it's just to show you how easy it is to create a widget You just import the class. It's in Python You just import the class and you set up name you set up a position and you have a root view basic View that will call up the component of the widgets on the page And that can be a very simple API REST call to something external Formatted to to to be displayed on the page and of course that will use that will use a template an HTML template and And of course when you do calls to external services and can be slow So we want to cache that any widget can use cached what we call cache functions Which are just a way to cache the results of an external call or a very intensive computing thing operation and this this cached functions will be Will of course display display much faster in the UI and they will also be automatic automatically invalidated when Relevant message appears on the bus. So for example, you have a wiki You have a wiki widget that shows you your last edits As soon as you edit something on the wiki page, there is a fed message sent to Well sent to the federal bus and that will get caught by hops And it will know to refresh this widget with the last edit that you've just made So everything will appear transparently you just do something on the federal infrastructure as a whole and it will refresh the relevant widgets on the hubs so The road ahead so the thing is now we have a hub instance devil instance running and You can actually log in there and see how actually hubs looks and get the feel of that Get the feel of hubs but going ahead We are planning to roll hubs into production because it has been there into devil instance for a long time and Before moving ahead. So first thing we are planning to do is so our always target was to Release the design hub first and get all the necessary widgets That's are necessary for the design hub But moving forward we would like to have the ambassador hub in place because there was a discussion going on like We should there was a necessity for the hubs to like know which all Ambassadors are there in which who all are the active ambassadors around the world? So knowing that can be easier to communicate around around the different ambassadors so The thing is we can have the ambassador hub and you can get all the latest updates in place and then we have something as regional hubs switch Suzanne will be talking on and and then we have the websites team having a separate hub and we a few of the mock-ups like Mismo has been working on the mock-ups for different widgets. So one of the team that is not included here But have all the most of the mock-ups ready is the translation Hub that we can go forward with it. So these are the few teams that we need to roll out first And then these teams can start working on their hub and like interact regularly do a Use it on a regular basis so that we can go get more feedback on how to improve hubs and like Get features and then have contributors from the team to work on hubs so that because we are kind of On low resource now, so if we get more people to work on hubs, it's better so that we can roll out more much more faster So one thing that I wanted to note that you know the reason that we targeted the teams that we did is because in the past We've built systems that were focused on packages because we figured well It's one of the largest communities within fedora and what we found out in trying to tailor tools like this To packages is that packages already have a pretty good personal workflow for doing what they do? And it's really hard to get them to try to adopt something new And we were trying to target teams that don't actually have tools that support their workflow in fedora right now Because we figured well, you know, they don't have any alternative So they'll be more willing and more receptive to trying a new tool and it might actually you know help them become more efficient So as I told like we have the translation team which after rolling out like the ambassador websites and the Design hub we will be working on the translation meeting and the regional hubs So and then moving ahead right now. We don't have a very much good communication on what actually happening in the federal house front So I was talking with One of the open stack folks on how they are getting more contributors So they usually have a bi-weekly sprint so where they dedicate two hours Two hours just to walk with the contributors on a bike weekly basis So that's something we should be starting on hub side also And then a bi-weekly blog post on what's actually happening around in the hubs project So how can you actually help so first and foremost is like you can build widgets in hub So we have a bunch of issues already created where the mock-ups are already done But there's no one right now working on it. So you can start building those widgets. So like like the meeting widget you can start building on you You need to know on how Fedoka works how the API works and then you can start building the widgets based on the API and Then try issues. So we have a lot of open issues as I told So you can go ahead and see if the the ones which are box if they can be reproduced and Like take appropriate action on it and then we have the documentation for hubs So right now we are focusing on more documentation because we try we really need to work on the contributor base and we So we are planning to have more and more documentation so that people can quickly build widgets and then help us with different stuffs and one of the main concerns is a Code documentation like having the documentation in the code. So that's one of the area you can actually start contributing and Then you have Okay, so then you can actually should not be designed widget is basically designed for hubs So there are a lot of mock-ups which are basically wireframes that have been made but not actual mock-ups Which should which should be kind of made into the front end But there are actually mock-ups like Suzanne has been working on the event and the regional hubs mock-ups So you can actually start working or with the team design team and convert them into proper mock-ups. So That's one area if you're a designer you can start contributing to that part and then connect teams for hubs So basically going forward we need more and more hubs in place So if you have if you're working in particular field, so you can actually start integrating and ask like which all features do that particular team need and Come on IRC and talk with us and then we can have a hub for you for your team And you can start using that as a full-time. Yeah so where do we meet so we usually are online on federal house channel and Every Tuesday at 1400 UTC. We have our weekly updates and we have a meeting actually so we usually have a Like what's going on and what's the status of? Basically a status update meeting and what are the focus that should we should be planning on in the future? so you can if you are planning to contribute you should drop to the hubs meeting and It's a place where you can get started Yeah, so this is one thing that I was talking of deploying hubs to production. Yes We are very close and earlier worked on the Ansible also. So the right now the vagrant setup is really really easy So you can just Go clone the project and just do a vagrant up and your project will be up and running so So the plan is after post log we start moving towards deploying it to production and then but we need to build our Ecosystem so we need your help on building those widgets. So we you can use the hubs Dev federal info cloud so you can just pay go on to this website and see how Actually Hubs looks right now. We are actually hacking on hubs tomorrow. So In that hack fist earlier will be giving a small workshop on how you can start building your Widgets and then we have a lot of open issues So you can start building and we would be around to help you around so it should be easy for you to start contributing and get active on the federal hubs community and so the hack fist is in I guess in the same room Yeah, so we have the Even hack fist in the same room. So please come down and start hack on hubs We really need you to help us with the project When I also I wanted to mention Suzanne is giving a talk at it's 2 p.m. on Thursday, right? And she's gonna go over sort of the regional hubs feature That you know, she's done all the initial design research and and the actual design and planning for the feature So if you're interested in contributing to hubs, this is how you can learn more about the design for this feature So you could get started implementing It's also a great case study of how to to perform UX within a project So if you have a project that needs UX help and you kind of want to DIY it Suzanne's gonna give you a pretty good roadmap For how to do that for your own project in a case study style. So please check that talk out, too Why if I hear is is slow and I wonder if that's because I'm on the wrong Wi-Fi, which is totally possible Let me check that Resolute and concentrate. Yeah, that's not the good one. Okay. Let me try that again Of course because I just changed my IP app. It's probably not happy about that Security, you know, is anybody here planning to go to the hackfest? Cool cool It's gonna be fun Yeah, he a reliance put together a really nice workshop like even if you're not familiar with web development You can kind of go in and it's you're gonna learn a lot from doing it You have a question So the question was is a widget linked to one team or can many teams use it and it really depends on the widget They're implemented in a pretty broad manner. So, you know, for example, I'll give you well actually you can look here So First this is my hub. So that's in the middle. That's what I'm that's my activity recently. So I Know that I've uploaded this module here I did this earlier and I you don't see the date here because we don't have a good contrast, but There's a time and I apparently there's something so much. I'm ingested. I don't know what this is But it's interesting. It may tell me that I have something else to do for example my build failed somewhere or The thing appears. Okay, very interesting. So, yeah, I've uploaded a new ticket here Move to oh I moved to position one on seven on bad leaderboard. Oh, that's yeah Oh, wow, okay. So that's just my activity coming from that message It actually gives a good idea of what is going on on for a person or a team So I think that's pretty useful and then we have here a widget on the right called bugzilla issues So I have my current open bugzillas when I'm a point of contact for the package That bugzilla widget like it can apply to a person's hub, but it can also apply to a team hub So that's an example of a widget that can apply to pretty much any team and you configure which you know You can figure. Oh, well, it's this pegor issue Or it's this bugzilla instance or whatever you can configure that stuff So it'll display and we have support for pegor I think track we're deprecating because we don't use it anymore, but it is implemented and bugzilla at this point We might we have github too, right? We do have a guitar. Yeah, we have github issue support too So this is like a way like you can kind of see like as an example is the widget looks the same and sort of the Implementation part whether or not the team uses github or track or whatever that's sort of hidden The main thing is you can see the team's issue So it's one of those things where teams are inconsistent as to where they track their issues and you don't need to worry about that We show it to you the team configures it and that's it and you have a consistent interface for seeing that So that's sort of a really good micro example of what we're trying to do here I'll show you just to how to add the widgets. So I switch into Edit mode and I add this I have this list of Already existing widgets which are available to anybody in a team. So those widgets can be are very common And now I don't know what I have a widget here, which is updates ready for stable It will get all the updates that are ready for well first table obviously and display them in a widget Yeah, so that's just an example If I add this one, it will not show anything because I don't have any of them right now So it's not very good example But I have like plenty of widgets if you have ideas for widgets You want please file an issue and we'll make sure someone looks at it We get a mock-up ready and you know in the workshop widget. I will show you how to make a widget that displays your current packaging Package reviews in the different state that they are in so that may be very useful because you don't always know when someone has Reviewed your package or when saw when saw when the reliance created the repo and all that that's a very simple thing That you'll be able to do if you go to the workshop Different teams if you're working on If you're building widgets for different teams you get to communicate with them and get to know the federal custom system more and And come up with more and more ideas. So that's what So that's one way to country like get into contribution into federal. So Yeah, yeah This is a very simple one. We just displayed a text here. This is my hub, but I could have a link to The I don't know our rules or how we work just wiki pages that describe how the team works or kind of conduct So suppose the infrastructure team has a hub so the admin can actually set up the different widgets in place Which are relevant to that their workflow and then in the sticky note They can add like how to what are the steps our new contributors should take and so these are the things that come in helpful and Kind of nice is who's the admin who's not admin that kind of stuff is out of fast So and the hub the way that and I don't know that this is implemented exactly right now yet But the plan is that each hub like a team hub is based on the fast groups So like the design team hub is going to be coming under the design team fast group Exactly anyone who's an admin for that fast group gets admin for this So it's sort of it's more consistent across the Fedora apps So the question is is as a news user if you were looking at this, would you see real data or would it be sort of mock-up data? The hub's instance we have the real data in place because it gets the data from Fed message and Does real query so the data that you see in the stream and then all the badges and the bugzilla issues are the real data It might just it might just not be formatted yet for sort of you know The final consumption that we'd like it to be at you know So you might there might not be widgets that we'd like to show you and you know the data might be a little rougher Okay, great Awesome Okay, so the question is are those as RSS or atom feeds available for the data and the feed widget Currently, I don't think we generate RSS or atom But if you have a source in RSS or atom and you want to display it in a widget then that's very easy You just make the back-end request to this thing and display it in an HTML template that will be just the widget So on this side, yeah on the other side, you know, we don't generate that Oh, then that's easy that's very easy. Yeah a Lot of infrastructure a lot of our infrastructures API give us back Jason But it's really not a problem to get something else I don't know why I have nothing in my feed your problem network issue or something Yeah So, yeah, we have the cobweb alert So, yeah, that's you know the first thing cobweb alert. Oh, yeah That's also a small widget that is by default on every way on every page and that just tells you that this team is hasn't been active for a while and So just you know take it take it with a grain of salt when you see data there Yeah, what do we have here? Okay, this is a development server. So it may have some dummy new widgets yet, but yeah, we see meetings So next meetings for this team request a new meeting here So like meeting is one of the place you can start Meeting is one of the place you can start contributing because there are a lot of Meetings edge cases and scenarios that needs to be handled and we have the mock-ups in place, but But they are still to be made so you if you are looking to contribute like I told you can start with meetings also Okay, so we're at time now So if anybody has any further questions, please we're we're here. We're at flock, you know email them We have on hubs dash develop at list up for our project at org is our mailing list. Oh Okay, we'll look into that Instead of link to slash we'll figure it out. Anyway, thank you. Sure. Thank you everyone for coming And please feel free to reach out at any time if you have any questions or anything