 Can you see my slides? Ah. Yes. Yeah. I'm sorry. Are the slides visible? Assuming they are visible, I'll continue to start. So welcome to the talk on the Fedora Husker Packaging Building Work for Right Hair. Unfortunately, I wasn't able to get to the US this time during this presentation remotely. This has jumped ahead of the slide since time is a bit tight. So first of all, why do people use Haskell? Several reasons. I'm not going to do much detail about Haskell as talk, but just a brief motivation. Functional purity and immutability. Your Haskell functions are mathematical functions. They were predictable. Then another important aspect of Haskell is the type system. People try to push types as much as they can, try and help make using sort of long-stage structures to install the state and structure their code. And then they try to make the compiler do more work for them so that they can have more confidence in that code. GAC also has good, or GAC is the main Haskell components, but good concurrency support. The reasonable performance in your generation that you should code. But, whoops. One more time I can take this. So, I'm sure I probably can't hear you very well, so you can try to make it a little more interactive, but do you know any famous Haskell projects? This, have you heard some of these? PanDoc, the Markup generator. I could rather shell check the X-Mine, when they're running through the X, or the others listed here. Wellwoods yesterday was talking about the WellDoc project, and they've also been using Haskell actually for that, obviously. And Haskells are really great for writing programming languages, a few other functional languages. These days, pure script is getting quite a bit of attention in its JavaScript. Also, Ion also worked in Haskell, like ACA and the interest. So, who had to use Haskell to put this slide up? Wellwoods has been doing more uses, for example, Facebook is using it, or the Spam, well, in Spam, or trading and other functional applications. So, it's getting used in blockchains, and nowadays, like consultancy companies have been forming on it. Alright, then everyone to the Haskell account system update. Firstly, some of you may have heard of Hackage, which is kind of the main Haskell package repository. So, basically, almost everyone these days publishes their Haskell packages, updates, and so on, on Hackage. Hackage is on Haskell. Haskell package is usually a really nice packaging system called Kabao, which is really easy to use. There's a tool called Kabao Install, which you just can use to install Haskell packages pretty easily. So, Kabao packages have quite detailed metadata, so they don't know what to talk about generating RPM packages in some, but basically, the Kabao files which contain the metadata have basically all the information needed to generate a package, for example, what requires, and descriptions, and so on. So, the data files. So, sometimes, on dependency, make-to-be-tweet, and so on, that can be done, you know, out of the local, you know, kind of thing on the server. So, anyway, this makes, because you know, they're not tricky, we'll mention it again later. And, okay, there's an example of Package here. This happens to be one of my packages, but given that you haven't seen Haskell before, but it's, there's all the versions here, dependency, the authors and copyrights, and licensing and something like that. Okay. And, well, there are lots of packages on Package. It's big. I mean, this morning, there's about 13,000 packages. I mean, I don't have versions, but actually, I'm supposed to put packages in this one. Obviously, a lot of these are no longer maintained. It's been quite a while now. There are a lot of packages we don't actually maintain. Package. Package is kind of a dance thing from Package. And it's a sort of small subset of, well, if you actually, well, we don't actually have to actually maintain, but generally, we actually do maintain packages which are consistent, and they can all be built in one. They can all build together, because they don't all depend on each other, but there are no conflicts and so on, and they will build and work well. So, yeah, there's a great set there. And there are also some different streams. There's a nice stream, and there's plenty more stable, we won't go to any streams, like this version's 12. It is sort of Package, so it's kind of comparable to the prior install. There were series before that, but it's been growing quite well and it needs to help address people. Well, the better challenge is, I mean, personally, we don't have a link, so it's quite easier unless payment is around. It's one of the most tedious work. In the sense that the GSC compiler is very strict. I'm sorry. Yeah, I mean, version dependency is rather... Yeah, so any package depends on another package, and that dependency gets bumped, and we need to rebuild all of those dependencies. So, there are only... I've been pushing for... It's not as easy to refresh all the packages once per development cycle, which is, like, a few every six months, but we do have some extra updates out of the band, but this isn't an example of change, but we did a major update along with Dora 28, which was in 2016. There's a lot of people that have been contributing in the years. I just wanted to mention the first slide, I think. Yeah, so let's talk a little bit about the tools that have been used. So the first tool is called Cabal-APM. This is a tool which generates my spec files for APM under these Cabal files. It has a few nice things you can do. You can also update packages, so if you have an existing package saying Dora or something, you want to update it. But if you're just spreading a diff between the spec files that would be generated between the two versions and then applying that diff to the... Not generally works, pretty well. Perfect. I actually want to kind of write a Cabal-APM edit at some point. I mean, it's kind of a tool to edit the spec files, but for refresh, which means sometimes I update the packaging for Cabal-APM, which packages like the reasons like this. Obviously, I was also using Cabal-APM for a while, but now that I'm using a different tool to write package. I think I'm going to skip these demos because we're not going to be very quick. I can just show you I'm not sure how easy that is to see this screen, but then I can take over here. I hope you can see that. But yeah, those two commands support spec. If you have a spec file, if you don't store something, you can do a lot of quick builds. You can also install dependencies or list-missing dependencies in your system. You can do a diff to prepare a transfect file for a fresh and new pristine spec file. Also these updated fresh ones. I'll show you more right now. So, Cabal-APM is basically a tool for working at the individual package level, but then I have some tools or visuals to work with the whole set of packages. So it helps with rebuilding and well, there's a bit for FH package which kind of comes from different types of meetings. So it's maybe working on the package kit things. And then there's a build command which can do a lot of builds or it can also do builds in a full build system and so on. One of the things I can actually do is kind of chain-builds which are not only supported by the Fedora's package build, so you can build for updates for current releases and I'm not sure if you're familiar with that one. And then there's also a bugzilla tool which helps to refresh optical update bugs in like burden update bugs. Actually, this is in some times redundant now because we're basically just packing stackage and so we can start these bugs but we have done them from time. All right, very quickly I'll just show you what the package is. Each package has a lot of commands that can do builds in the command generator method data, upload the destroyer method data, upload it to stackage and can do various things like this package is check like if the un-push commits and all kinds of bugs. There are various things that are very useful. And the build tool has less commands as I mentioned but it has a privilege for building certain pending builds on its own. And there's a lot of other bugs in the command. This is a bugzilla tool it's not specifically to direct but it's an application which can order packages by build dependency order so our current is kind of useful and it's not so easy to run. It's pretty handy but it's a small thing but you can also calculate reverse dependencies and dependencies to check out. I can talk a little bit about future plans. Some of this has been previously I already gave similar talks about prompt in Brunner and yeah one of the things about building is that we just talked about the COGE using the project client and it's very frequent and I just connected from the I think I improved the reliability of this and it reconnects and retries and builds dependency response. But what I really like to do is to do like this ampian build order tool which does type logical sorting of packages and I like to extend that ampian to building as well so that they would basically do the dependency graph of the packages that are being built and build them in parallel that would help to speed up things at the moment. It's basically kind of a serial process but sometimes I do some kind of hacks where I run several builds at the same time but it's a bit messy and it should really be done properly in parallel making the dependencies have been finished by building these builds and stuff. Most of what I wanted to say was a breakthrough in the history of the packaging has to obviously what many are doing so maybe you know something that makes us move something out of that. They actually package the whole most of the packages I think they actually have packages one by one or another and I think they have all of the package LTS of a scale of 2300 packages but in that sense we're sort of different. I think we have different packages now but many of them at least in Fugaro but obviously there's competition here with the packages and just to have my boots and make a coupler or a couro or at least a lance, sub-senate, or a standage I think for photography we'll move that grid into the men's world and launch standage once a year. Yeah, they don't have any questions or I don't know how I can hear I put the slides on Twitter to show you. Thank you. Yeah, we are in front of you but I think that's about it so thank you to our speaker again and of course we gave you the email so you guys can all contact them questions later on. Perfect. Thank you. Thank you. Thank you.