[00:00.000 --> 00:19.280] Okay. Good. Hi everyone. Welcome to this one. Hopefully it's not going to keep doing that. [00:19.280 --> 00:24.920] So today my talk is called Putting the R in LibreOffice Shiny Dashboard for QA. My name [00:25.360 --> 00:31.360] is Stefan Guyou. I joined the TDF team, the Document Foundation, just recently in November [00:31.360 --> 00:41.280] as a QA analyst. And this is about a little project that recently started to create something [00:41.280 --> 00:47.120] that everyone can come to and to learn a bit more about QA numbers around the project, [00:47.120 --> 00:51.760] around LibreOffice, but also everything else that's hosted by the Document Foundation. So [00:51.800 --> 00:57.240] just a little bit about where I come from because it matters in some way. Quickly I studied [00:57.240 --> 01:01.760] plants, ecology, sustainability. That's my background. Then we've done two working in [01:01.760 --> 01:06.840] agricultural research and then finished the last four years working in the library as a [01:06.840 --> 01:13.400] research software trainer and in research support. But throughout the last 15 years I've [01:13.400 --> 01:18.960] been a free Libre and open source software user and advocate trying to push for the solutions, [01:19.000 --> 01:24.760] especially in teaching, learning, research, environment. And because of that I've been a [01:24.760 --> 01:30.000] user of a few different tools including the programming language R. This is what I use for [01:30.000 --> 01:39.520] this project. There's quite a few things already around QA and LibreOffice. So quality assurance, [01:39.520 --> 01:45.720] numbers and graphs can be found in lots of different places. Here I've listed a few. There's a [01:45.760 --> 01:50.480] wiki that has an absolute wealth of different pages and tables and links you can use and also [01:50.480 --> 01:59.880] stats about our QA project, our QA team and community. There's a blog also that's a specific QA [01:59.880 --> 02:04.880] blog. It's not just one blog at the Document Foundation, around LibreOffice. It's also the QA [02:04.880 --> 02:09.320] blog. There's a deaf blog. There's a few different blogs. And I really recommend having a look at [02:09.320 --> 02:13.960] this one where there's excellent monthly reports that are done with a few different graphs to [02:14.000 --> 02:20.680] explore and also updates on who has been working on what, so what new features and bug fixes are [02:20.680 --> 02:24.960] coming up. So it's a great reader really. I think you should subscribe to that one if you're [02:24.960 --> 02:31.520] interested. Obviously Bugzilla, this is where we report bugs and where we try them and mark them [02:31.520 --> 02:38.640] as fixed eventually. If someone's keen to take those ones. We've got QA scripts and our QA [02:38.640 --> 02:43.600] repository. There's our Python scripts to process that bugzilla data. We've got a crush [02:43.600 --> 02:49.120] reports website that has some, for example, timeline graphs where you can see how numbers of [02:49.120 --> 02:55.760] crushes evolve throughout in different versions. And there's an interesting website as well called [02:55.760 --> 03:02.000] depth central which gives you quick links to different important tools for development around [03:02.080 --> 03:09.840] LibreOffice. Just to give you a quick idea, this is the wiki page where you can also find ways to [03:09.840 --> 03:17.360] keep in touch with us. And there's going to be options for chat rooms, but also the mailing [03:17.360 --> 03:22.640] list. So if you want to keep hearing about those things, do join that. This is the December 2022 [03:22.640 --> 03:28.160] blog post and you'll find a few graphs in there to see how things are evolving. But at the top, [03:28.160 --> 03:33.360] there's a lot about new features and new fixes by different developers. And this is the crush [03:33.360 --> 03:39.840] report website. This is what I mentioned just before, depth central where you can find links [03:39.840 --> 03:44.800] directly to, for example, the wiki bugzilla to report a bug, the crush report website, [03:45.520 --> 03:49.440] but also other ones like web late for translation, Gary for submitting your patches. [03:50.000 --> 03:58.800] Now the idea of the QA dashboard, an extra tool that's not supposed to necessarily replace other [03:58.800 --> 04:05.840] things, but complement them. I think I've used R and Shiny with it, so R the R programming language, [04:05.840 --> 04:12.880] very useful for data analysis, statistics. Shiny is the framework for creating web apps that goes [04:13.840 --> 04:20.240] on top. So interactive visualizations and tables using two packages called Plotly and DT, there's [04:20.240 --> 04:28.640] Ggplot2 in the background too. Quite a few other packages are coming in, in play there. And also, [04:28.640 --> 04:32.800] very importantly, I don't want it to be just pictures, just nice pictures to look at, but it [04:32.800 --> 04:37.600] needs to also link to activities, to things that we can do. And it doesn't need to be this bottleneck [04:38.160 --> 04:47.920] or this dead end. So I'll show you what it looks like currently, this work in progress. [04:47.920 --> 04:56.320] We've got a few different files here that we will eventually share once we're happier with what [04:56.320 --> 05:02.800] we've got, and we want everyone to use it. Now there's a few helper functions, a script to prepor [05:02.800 --> 05:09.200] assess the data because it is currently based on a dump from a bugzilla, that's quite large, [05:09.760 --> 05:17.520] and finally the app that has both the UI and the server functions on there. [05:18.400 --> 05:23.760] So I'll open this in the browser, maybe a bit better. [05:26.320 --> 05:29.840] And I'll quickly show you what we've got. So it starts with this page where [05:29.840 --> 05:37.760] it looks at the snapshot, the most recent data we've got, depending on what export we've used. [05:38.320 --> 05:44.880] And we can see, for example, the first graph here are the most important components of the project [05:45.760 --> 05:50.800] and other projects, not just LibreFist, but you can see that most reports will be related to writer, [05:50.800 --> 05:55.440] calc, LibreFist in general, and then you've got impress, you'll see that base and drawer [05:55.440 --> 06:01.200] probably attract a bit less attention. Looking at the importance of reports or how it's been [06:01.200 --> 06:08.720] classified, we've got a graph on severity, thank you, and priority which work together. You can [06:08.720 --> 06:12.720] learn a bit more about those ones with the links underneath if they don't necessarily mean that [06:12.720 --> 06:18.960] much, and you can see that obviously it's going to be bigger in the middle where there's the [06:18.960 --> 06:26.640] default fields that are used, normal, severity, and medium priority. Now looking at how bugs have [06:26.640 --> 06:31.200] been classified, depending on what happens with them, you can see in general green is what has [06:31.200 --> 06:36.240] been resolved for different reasons, what has been actually fixed by a commit, and what has [06:36.240 --> 06:40.400] been resolved with other resolutions. You can see that there's a few different categories where it [06:40.400 --> 06:46.320] might fall, and you can see the numbers by using your mouse going over them. It's looking also [06:46.320 --> 06:53.280] more precisely at just that green part that's up there, looking at how bugs were resolved. [06:53.280 --> 06:57.840] So you might be interested in knowing that most of them have been fixed, but then a lot of them [06:57.840 --> 07:02.560] have been closed because they've already been reported before. Duplicates quite a few are [07:02.560 --> 07:07.440] closed as works for me because it's been resolved without necessarily knowing how it has been resolved. [07:09.440 --> 07:14.640] We've got a graph on which is the first version that's been affected as far as we know. You've [07:14.640 --> 07:19.280] got all the major versions of LibreOffice here, and the creation time as well as the last time [07:19.280 --> 07:24.320] of modification. But for example here there's a link to action, a list of bugs that haven't changed [07:24.320 --> 07:29.200] for more than five years. This is where this potentially bugs that we can very quickly close. [07:29.200 --> 07:36.880] You can use this date range picker to focus on one particular period. You can remove enhancement [07:36.880 --> 07:42.800] requests, and automatically invalid reports are removed as well. But I also want to work with [07:42.880 --> 07:49.040] timelines. This is often the graphs that we've got in the QA report, the monthly one. And here [07:49.040 --> 07:54.720] we can see how unconfirmed bugs have evolved over the last 13 years. If you're interested in just [07:54.720 --> 08:00.000] the last year, you can toggle those ones. And if you want to look good, you can remove the zero, [08:00.000 --> 08:07.680] and it looks like it's really dropping. And then, thank you. I've got a table here that looks at that [08:07.680 --> 08:12.320] specific snapshot. So that stops on the second of Feb, I think. First of Feb maybe. There it is. [08:12.320 --> 08:18.000] There's the date. It tells you. And you can look for different bugs here. Bugzilla might be a bit [08:18.000 --> 08:23.520] daunting sometimes to do a search. This table is a condensed table. It doesn't have all the [08:23.520 --> 08:30.240] information. But if you're interested in, for example, dark mode bugs that are unconfirmed, [08:32.640 --> 08:36.720] you can use those filters at the top. It might take a bit of time because there's thousands of [08:36.720 --> 08:41.920] thousands of them. But it should come up with a short list of those unconfirmed bugs for dark [08:41.920 --> 08:46.880] mode. There we go. We've got four of them. You can click on that link. It takes you straight [08:46.880 --> 08:53.920] to Bugzilla. You can sort them by whatever you want, or look at only a specific version of [08:54.960 --> 09:03.440] LibreOffice. The next steps would be those ones. Thank you. [09:03.600 --> 09:14.880] And if you want to contact me or contact the QA team, there's options here. Yeah, thanks. [09:14.880 --> 09:18.720] Have a great afternoon, everyone.