 Hello, I am Zefs Klarenka and I'm going to tell you a little bit about the Fedora package dashboard. It all started as an idea by Miro Hronchuk, proposed in December 2019 on the devil list. He scouted interest for landing page of sorts for the Fedora packages where he would collect some data about the packages and present it in a reasonably structured fashion. He also attached a mockup to the email so you can now feast your eyes on the original. And since Miro had no actual interest in developing the web application, we, as in Fedora QA, approached him and offered to take the project of his hands and make it a reality. This decision was based on a couple of factors. First of all, we already had a general QA landing page in the works and the way we developed the backend for it, we could easily use some of the data it already provided and adding more to it in order to accommodate for the new page was quite easy since the original design of the backend or ACUM as we call it is quite modular and we designed it with this or not this specifically but something like this in mind already so we could expand it on the fly basically. And we also believe that having some tool for packages has a direct impact on the community and once again we as a Fedora QA feel that our mission is to be the caretakers, enablers and maybe a catalyst so we hoped on the chance to make our community members lives a bit easier hopefully and we implemented the Fedora Package dashboard and we are now running it instead of Miro. Our main goal for the dashboard is, as I already said, making life of packages easier. What does it mean, we wanted to put together a set of information relevant to the packages from the various sources. You'd have to be manually checking on regular fashion advice for example you'd be checking bug zeal for bugs, Peggy here for new pull requests, Bode for updates, stuff like that. That obviously takes some time and it also takes some regular work that you need to spend browsing all the different systems. We decided that we'll be downloading or grabbing the data from all the sources, we'd boil down the information filter what's important and we would also cache what we've downloaded because some of the services tend to be slow sometimes, like I'm not pointing to bugs you're Peggy but you know it for yourself and the information we store is also relevant sometimes to more than one person because we don't only create the dashboards for people but also for package groups so you can imagine that if we queried all the sources ad hoc it would be next to unusable so figuring out the caching was quite some pain as you can probably imagine but we believe it was absolutely worth it because now we have the data stored in a readable JSON format and we can transform it to whatever we need at the moment. With the page itself, with the dashboard we felt that it needs to be responsive and fast obviously and that it shouldn't be too cluttered with information because still even if we only show what's relevant say we don't show poor requests that are quite new or we maybe show you only bugs with some severity that you can configure we believe that you as a package should be able to filter it further down so we also included additional filtering on top of the data that we already pre-crunched for you we'll show that in the live demo afterwards but we believe that these things together are a recipe for success and that we are not only making the life of packages a bit easier but we may be also roaring the entry barrier a bit because now you don't necessarily need to know about all the bits and bobs and pieces of information that you need to collect as a package you can with this in mind only hop to the dashboard and see what's going on and based on the initial feedback we got I think that we hit just the right buttons so here's some of it so we can read it for ourselves we are especially happy for Kevin's this is pretty awesome and now František will take over from me and he will show you the actual product in a live demo and he will also talk about what's next and maybe about some implementation issues that he hit on the way and how we solved them hello my name is František that local I'm going to show you a demo of federal package dashboard then I'll talk a little bit about its internals architecture some issues we've hit on the road and our plans with the project for the future let's jump to a demo so this is the front page of package dashboard it's very simple you need just your fast username or you can use basically any fast username of any federal package because we are showing we are currently showing only public information which are available without any passwords and so on so I'll use miros dashboard because he has lots of stuff there so this is basically the dashboard you can see there are pretty big number of different information boxes red boxes yellow boxes and so on there is a help page for cases when you are using a dashboard and don't understand some something some icon or some box and basically anything I'm not going to go through it completely let's close it so up here you can see number of packages yeah your fast username number of packages you own directly number of packages you own through groups and number of packages that are showing you something on dashboard if your package doesn't have any box updates or anything it won't be shown here at all right top right corner you can see some icons and numbers next to them you can click on these buttons and it will filter the results shown package dashboard so now I've selected to show just bugs I can enable more filtering options in options panel I can hide for the other 32 because it's it's already pretty old and all TPL and you see different number of bugs are shown here or different number of packages and bugs for them you can also show just CBEs which might be pretty interesting for for packages you can see the other other stuff is disabled because I've enabled showing of bugs only it's back there are various different filters we can add more if you want feel free to open open issue or ping us on IRC you can add more more stuff for for filtering you can hide for the release schedule this was added pretty recently we thought it might be good to have some sort of overview for for packages how we are progressing towards next for the release so yeah reset the filters default other thing you can you can see here are updates for our packages you can see comments karma and their const status or expected expected time when they shoot it stable we need still to iron out some cases when we are not counting days properly and we are off by one but it's not a huge huge issue if you have the if you have disabled automatic stable push it won't show any expected stable obviously and if you have enabled automatic stable push you can see see there when it should hit stable or if it should have already hit the stable this can mean that there is some negative karma or some other issue especially with com federal composer or basically anything the other interesting thing is active overrides for your packages active pulley quest and their ci results there can be multiple ci's yeah and you can see results for all of them we will add support for more ci's if they emerge we are fetching this data from from buggy here yeah hyperlink leads to that pulley quest in your distg it yeah while i'm here this icon means that you own package through group you can you can disable disable showing group packages on dashboard if if you want the other other interesting stuff is fails to build uh fails in federal health check this is from data provided by repo checker from fabio valentini so huge kudos to him uh sometimes data's data from this service can be different compared to for example koshe for example if we are talking about fails to build uh we are getting three different data and joining them together uh from bugzilla fails to build tickets and trackers koshe and repo checker the other interesting thing is orphans and especially if you click on drop down arrow you can see when issues begin and when the package might get retired according to fedora fedora policies uh about retiring uh retiring orphan packages obviously we have some issues with styling uh yeah and down there there is a reason for uh why why the package is uh impacted by by orphan it can either be orphaned orphaned directly or uh impacted in the way that some of its dependencies uh are orphaned you can click on and get dependency network this can be pretty interesting in for uh more complicated dependency sets so you can see how how is it how is your package impacted by some some or some package being orphaned uh this package is pretty simple but there are more more complicated situations and these graphs can can help a lot uh understanding the issue you can zoom in zoom out so on our reset filters once again um yeah you can hide hide uh some group group packages uh from the dashboard completely and the other interesting and important thing not that much interesting is uh to be aware that we are caching the results as you have said earlier and uh sometimes there might be some issues in infrastructure or on our side since we are still currently running on temporary server so uh it's best to start and uh if you have any trouble or doubts doubts about data shown there uh you can check uh page footer and you can see there how old are the data that you are currently seeing here the page updates itself automatically uh it refreshes uh i think every 15 minutes so if there is something new you don't need to manually hit f5 and and refresh the page one last thing i would like to mention is that yeah you can write in uh your package group name and see just packages owned by the group and you can see orphan and these are just orphan packages um mirror is mentioning this this page in his uh orphan packages reports in in the emails and i think it it's pretty pretty good representation and very clean and easy easy option to view uh everything that's currently orphans in federal or impacted by orphans um yeah um the interesting thing i wanted to mention is that you can obviously search in package dashboard and you can use regular regular expressions in in in the search box so i can disable python packages and i can disable so you see this uh this supports um simplified regular expressions and also full regular expressions so you can you can customize customize uh view of dashboard as you wish so that would be everything from demo let's get back to slides on the screen so uh something about implement implementation details the application itself is divided in two parts back and front end uh back end is leveraging flask and salary salary libraries um we were aiming for very paralyzed architecture because um we are fetching tons of data and we are fetching fetching them uh in scheduled intervals and uh it's tens of thousands of uh requests requests to various services uh you have talked about before bugzilla, pagir some of them can be unbelievably uh slow so we we need to be able to process uh i don't know uh tens of workers currently we are aiming to increase that number once we finish moving moving to proper server deployment in federal infrastructure yeah this is the third point here fourth actually um we we had some issues with server hosting it's still currently deployed on temporary server it actually might be moved by the time that this talk goes live because we are pre-recording this and we are planning to deploy package dashboard into community shift but then it went silent and uh uh it was uh uh decommissioned i would say for i don't know how how long it's not even even we don't even know for sure that we'll get something like that back so we are working with federal infrastructure team to deploy back end and front end into their open shift cluster and they are they are very helpful especially pingo who is helping me with uh anything i need i'm learning uh how to work with open shifts and especially open shift and and symbol together and deploy stuff so yeah we are working on on that uh front end is uh like basically any modern web application using react or and it's written javascript and it's uh asking asking back end communicating with back end with api which is i'm not going to talk a lot about the api site here but uh it's public uh we basically any anybody any developer any user any contributor to federal can can use the api or even talk talk to us if somebody wants to add that something into our back end or our column we are aiming aiming to make it uh or even at least try to make it more more used more widely used in federal world uh if so if you have any any data that you want to uh some process somehow have it cached have it refreshed automatically you can come come to ask and come to us and ask talk with us and even implement implement some something as oracle module so uh about some our future plans uh we are planning to uh take a look at federal c i it's uh it's api and uh figure out the ux and integrate integrate it all into a package dashboard because uh it's currently used only for public requests against your packages if you have set it up in your disk it but uh we think it uh it might make sense for packages to to see uh results from federal c i uh for packages themselves and not just blue requests now we are planning to add support for federal flood packs and modules this got uh stalled a bit uh but we are planning to work on that we are planning to take a look if there is if there are any possibilities uh to integrate oracle and package dashboard into some other federal processes we are planning to take a look uh on authentication and show private bugs uh we are planning to think and talk with other teams in redhead about some possibilities to use package dashboard for uh rel we are obviously planning to do some optimum optimizations because back end is currently not as effective as it as it could be uh we are not listening for federal messages so we are fetching all the data uh every hour or two from body bugzilla coji and so on and we will take a look uh and use leverage federal messages everywhere we can because it will be obviously faster and uh more effective use of resources we are planning to take a look and work on fastest things for first time visitors uh package dashboard uh is uh synchronizing and pre-caching data for users visited at least once per 14 days so and time before you get first first page loaded on your first visit it can be pretty long especially for packages with loads of packages and bugs and so on and in the end we are planning to work more on docs uh by this uh here we mean documentation for developers documentation about Oracle architecture it's ap api for modules and and on integration tests because we hit some some issues when some of the services change the format of data uh their turn and we had to adapt so we want to automatize uh something to uh warn us if there is some some issue this is basically it package dashboard is already live uh on package.federainfracloud.org and we'll start sending some more announcements uh and uh doing some more propagation for it once it's deployed on uh on federal infrastructure operative servers. Thanks for your attention and I guess it's time for questions. All right thank you Františku for taking us through that before we wrap this up I'd like to mention one other teammate that worked on the project with us and that is Lukáš Brabec also from FederaQE responsible for creating maintaining and uh developing the frontend bits and here is a page with couple of links first of all the link to the dashboard and then links to the repos where you can have a look for yourself or submit some rfe's or bug reports. Thank you for listening and now if you have any questions we are here to answer