 Hi, everyone, you are here for talk anaconda the incubator of projects and I will talk this this presentation will be about list of projects which were rest from the anaconda, which were originally part of the anaconda or started as a Project we have to you we need for anaconda. So It's about that So a little bit about me I'm anaconda developer for some few years for four years, I will be five I'm red-hitter and here are contacts on me. These two are important for you You can contact us about any of the projects. I will talk about it about them You can contact us about it here I would prefer the IRC But you have a bad time zone for the Berno time because we are all Berno people then Anaconda developers is a good place for you So we are entering the anaconda land There will be plenty of snakes mostly python and A few bugs may spying around mainly python So What is anaconda in case you don't know? it's also installer for centos, rel, scientific linux and fedora and I think there more but I'm not that sure at least Also if you have Questions about any project I will be mentioning it will be like I will have two slides about one project or something like that I will talk about it and then I will go to another project So ask me immediately if I won't react you can throw something on me But please make it something which won't hurt me and I hope it won't be tomato Because you know two i-programmer will do more work than one i-programmer so Why anaconda? Why there are projects? Thanks to the anaconda So first as a os installer anaconda has to control and set up many parts of the system Yeah, we need to set up services. We need to do a partitioning. We need to Run a creator or in the drum disk and so on and so on We are most most of the time we are controlling other applications Which are doing this for us But we also have plenty and plenty and plenty of API and user interface things and Yeah, so Thanks to this we have plenty of projects Plenty we have some of many many of the projects which are usable for for Big projects like anaconda and of course even small projects we are trying to make the library usable for anything and Also, it's much better for maintenance instead of one giant git hub repo You can have plenty of smaller ones with separate issues separate tests separate Examples and so and so on so it's much better This is by the way anaconda logo looks nice. I think you love it And Another reason why anaconda is because it's all really all it's the first comment is from 1999 and I'm telling I'm saying first comment because we don't know when the project started Unfortunately, it would be pretty pretty interesting. I would guess that it's something around 1996 or something like that In the Wikipedia you find 1999 because that's the first comment We don't know Main thing of which I want to say you please use the projects I want to make this something like an advert advertisement for the pro for our projects because I think they are great for any size projects these libraries most of the time and And Shame that only mostly anaconda is using it It would be great if we get some community around it if it will be there will be issues requests and so on So please use it try it They are some of the really great projects between between others And I think anyone can find something interesting yeah so This is some kind of graph I've created for for the stall so Just a weekly summarization of what I will be talking about And there's storage libraries to create a partitioning planning Communicate with the truth and so on so on so This is to create a great ISO so you can boot and install from or you can pay your life ISO and so on This is for the updates of the system these are libraries which are used by anaconda and I think they are one of the most useful ones because they are usable for your future projects You can use it basically even without anything else This is something special I don't talk about it and this I will miss because it's not interesting for other people outside of outside of anaconda is a tool which will Which will run when you have after the installation and it will allow you to make the post installation configuration steps I it's basically frontend for anaconda other frontend for anaconda and You can you can't make the installation which means You won't use your data, but it will allow you to I don't know set up services Install user create user mainly create user. That's the main main part So first of our projects Python simple line This is a few Python library For text UI if you ever installed Anaconda in the text UI you can use this library. It will be the same it's We basically grabbed the Grab the code from the anaconda and created a separate library first. It's easier to maintain Second it would it helped us with our current issues with migrating anaconda Interesting thing it's pure Python library. There's no other dependencies than Python free Which it could be interesting for you and second big benefit is it's line-based It's Specifically designed to for line-based processing Which means that you can connect by a console or Seria console or If you want you can even use line-based printers or anything and create UI based on that The point is that that we never Never remove anything from the screen one once it's printed it will be there This is from the anacondas text UI. So It's pretty simple early. It's that you have a screen between the screen there are separators and Brown which will give you and what do you want to do? What you can do and also information about About spokes you can enter or think you can set up and so on and so on The main thing we are trying to trying to get From this library is it should be simple. It should be simple to use. I don't think we get where we want to be but If you will try it and you find a way how to improve user experience developer experience anything please file an issue or Better pages are welcome. That's always so Also interesting thing Optional Benefit of this library you can use existing glib glib even look Which means that if you have if you have already graphical text graphical user interface Which is in glib or you need to communicate with debuffs or anything you just need to even look You can use the Python one, which is by default created there But you can also use The glib existing glib you can look that could be interesting for We are using that pretty heavily because we are using the bus there Yeah, if you want to try this library or you want to get more More details about it. Please look on the github repository. It's there and There are examples and I think it's much better than any tutorial They could never no one never asked us about about this and that's the reason why I'm doing this talk I would be good. I would be glad if anyone would use it because I think the library is used to Yeah Thanks, so so another interesting library Is that bus? Wendy Ponsova have had a talk Hour before this presentation unfortunately about If you want to if you are interesting you can look on the streams from from the talk if you weren't there if you were there You know this I will talk about it in short It's pretty new library But I think it's major even it's pretty new because It's stable sorry it's stable because it's used in anaconda on Federa for some time Even before even it wasn't like separate library, but the code was similar and It's the bus library pretty easy to use It's heavily Inspired by or king it started basically from the by deboss is inspired by by deboss and The reason why this Even was created. I know we had another deboss library The reason was because fightin see fightin By deboss is a great library until you need something changed in that and then you will find out that That the maintainer is Not reacting on anything Which is not really great and we had plenty of things we want to change. So we are we are right now packaging by deboss to the Federa and With our patches Don't don't worry. It won't break your your by deboss usage It's just we have another another functionality Which we need for anaconda and it's much easier to get it into into by deboss than having it to In inside the anaconda is basically not we are not able to do that from anaconda side to Inject the code to by deboss. That's one of the reasons why the dust bus how dust bus goals of dust bus to be Extendable extensible you are able to extend that with your features Overrides things so Some features You can create proxy objects that means when you are using client application You will just point it to the deboss service the bus the bus path and interface and it will create for you the proxy And you can call it this normal all python Python call by the class by the instance class It's pretty easy to use from the client's clients Solution you are basically done. You don't need anything else. You can use just this and be happy if you're using server If you creating server for deboss, it's a little bit more interesting and in that case you will definitely make use of generation of And the point is when you are creating Services on deboss, which means you are creating servers on deboss basically you have to Create XML files, which will tell deboss what is Registered on your on your application and the deboss will basically when someone use deboss call the bus signal The bus the bus interface with call it will point to your class in the call. Thanks to this XML file Thanks to the dust bus you can just create just use decorator in python over the class and it will generate it from the From the current class in python. You don't need to do anything else. You just point it with the path Yeah, we are using Python typing system So you will have you have to provide types which will be registered on deboss, but it's used is using Python syntax It's nothing like something special you have to deal with something you have to learn you can use normal Python syntax in Python 3 We are Creating our own typing system, but it's just another import and the similar types. No nothing like so such a problem and Also, we have exception pro propagation there So when you rise exception, it will create Correct deboss error and run it through the deboss Yes No, we were thinking about it But mainly Wendy the author but the code is so different and we wanted to find some we wanted to create the something Extensible so even on this level you will get the to the point that you need to rewrite almost everything so unfortunately now It would be great if we can use by by deboss and create a not create another new project But in this case unfortunately as this was this was much better easy a much easier solution and much better It's a very written from scratch basically we or mainly when they I don't want to take her credit created basically Or she used Code we created for by deboss But of course with different different back end different background and so on so it's even from this point of view It's our code. What have we taken from took from by deboss is Their solution for the interfaces and basically the ideas ideas from the project, but the code unfortunately So this is just few features from that. There are plenty of Mars if you are interesting as I said look on the presentation or Talk with Wendy she's sitting there or you can reach us on IRC or email This is one of the most important. Sorry. I have broken flights, but This is the most important project. I will say from our from our projects For basically any project using deboss or in general most usable project I will just repeat it for for the recording That python deboss is not really usable by deboss a solution is fine, but Unfortunately not great maintain not active maintainer. I don't want to say he he created a really great project by deboss is not bad But yeah, he doesn't have a time So there's nothing more much more on on the deboss library side. Yep Yeah If if we make it if we've created by dust bus compatible for the transition from the pie deboss to dust bus I think we It yeah, yeah, so I will I will be there are some we It's pretty much compatible in short We are using the similar syntax I think by deboss if I'm not mistaken does not use the Python types So that's one of the extension for you But I think it's it's not that hard my great to migrate from from from by deboss to dust bus So if one project this should be the one, okay So then and we have a blivet, so blivet is a Python library Okay one thing About It's a great library. The problem is I don't think there will be many Users of the partitioning library like potential users, but in case they are here's some of them Then I will make it quick summary of that so It's fighting library. It's using to it's Separating you from using tools to create the Insane partitioning we are supporting the anaconda basically anaconda is using just Let I will say and blivet is using plenty of other things and If you need dynamic partitioning Oh, sorry If you need partitioning planning Basically to create your partitions before you will execute the commands then you can use this library If you are in Python, that's great. There's some new bear new real library Which I was Which I was pointed some time ago with storage and G is written in C So that's an alternative, but I think that was working really fine And it's used by anaconda heavily so it's tested. I think storage and G is used by open source I'm not sure how long One thing why this why this was started is that there was no alternative To create your partitioning without executing the commands. That's the problem You can file you can create the tools everything but plan planning the partitioning ahead of Removing erasing all your data. It's not that easy Yeah, so I Will show you definition of blivet one definition when you give it to a Google is this one This is a graphical definition. Yeah, it's somehow somehow hurt eyes When you are looking in the and the second one is from Urban Dictionary And I think this is pretty precise What is blivet is trying to do basically when you try to interact with the tools? Which are doing storage like butter fs tools LVM to six of us X4 and there are even Even the remote one like fcoe and and and so So you will get to plenty of different use cases and you're trying to do something With them with same API and that's really not an easy task so They are really trying to get something where it shouldn't be another project is Blivet Gui it was created as diplomat he's by Vojta Trefni. He's here. So he's sitting there All look of them, of course It's great great Basically, I would say it's a replacement of gparted in many cases, maybe all cases It's doing the same Difference is that the gparted does not support if I'm not mistaken But the gparted does not support container types of Storage which means LVM butter fs and so on so Because I kind of understand them in in the in time when gparted was created There was no such thing They were they were they couldn't think of LVM something you will create and storage Storage on your okay container on your storage and in that you can create another container and another container and another container and you can link them and use between discs and so on it's Really really pain to somehow create a GUI which will show you which discs are used and so on That's something you don't want to challenge but Vojta did it and I think pretty successful You can find to Blivet Gui also in Anaconda It's it's not project which happened from Anaconda directly, but it's in Anaconda in Fedora You can find it as another partitioning way if you don't like our custom partitioning which is kind of complicated This is more gparted like and you can use it feel free to answer. That's great great Project and thanks a lot Vojta for that When you have when you want to try to get your get LVM partitioning or butter fs partitioning on on your flash drive It's it's a hell if you are not using it like normal daily breads so another storage libraries we Okay, not to me, but it's kind of also created from Anaconda These two are I I think they are pretty pretty useful for even low small projects If you ever have to interact with storage to link Then please use the block def instead. It's library written in C it has G lip introspection geobjic introspection, which means that you can use it from almost any language You should should be able to use it from almost any language It's it's what what Blivet is using as I said before to make sane Sane control of the insane storage tools and They are really insane on it's like when you I Remember for a few bucks we had like when you type minus minus Dash dash help it will behave different like it will return minus one on some cases but on other cases not it depends what tool you are using and Also when you invoke some commands it can behave differently on Like version from version and so on you really don't want to mess with it Another interesting which could be interesting for anyone who have to show or interact with user and tell ask him for storage Units give me 100 megabits or anything like that is like bite size it's implemented in C and Python and It's really making sane Storage unit management in insanity of this because it looks like pretty easy Okay, you will give one combo box or something and you will write like I want to 100 megabits But then you have an EB then you have MB you may have K EB and so on and so on and so on and it has different Translations and when you start to jack into this mess even translations because for example Arabic language has a totally different view on these units So you can use this and it will make your life much easier And another interesting Interesting thing is fed up Who from you knows no fed up who? Okay Who is using Fedora doesn't know that up? Okay, so Fed up holds it was here before DNF system upgrade basically they Decided that DNF is much better place for the for the fed up to be or for the functionality to be more precisely So fed up transfer to DNF system update which you Probably know today It's how you upgrade for Fedora 19 to nice federal Federal 20 and so on and so on it will download your download the packages make the reboot and Install your packages in a special environment and reboot to the new version of Fedora, so you don't have to install your system so this happened from like Started from Fedora 18 2012 it's pretty old But I really like the History about how this was created. Thanks. Will for sharing by the way. There's an author of this So will work as Fedora QE at the time and He had as part of his job. He was testing Upgrades upgrades that time looked like you have to burn the DVD of the anaconda with the anaconda boots a special environment around the scripts and it will make some magic and Upgrade you to a new system to a new version of the system. That's great, but when you are few poor QE and you have to test it then you burn Penty and plenty and plenty of DVDs to test it on real hardware. So when the wheel burned thousands of these DVDs he start to think there must be better way and He started to create pre upgrade Which was in place upgrades we have now It was that way at that time. It was plenty of skits Which you were basically we were you were able to run and avoid this mess of DVD install DVD burning booting to special state and running something and you can do that or you Could have do that on existing system Yeah from that fed up was created and And it was more same solution of this of this Idea and this was used for on federal. I would say a few quite few releases fed up It was switched to the NF system upgrade. I was maybe eight fire eight releases back or something 26 okay, it's not even 80 releases So so thanks to thanks to well, we have we have DNF system upgrade now Thanks. Well, I owe you this one So and another project Is piping pocket let it If you saw my presentation, I have this presentation on open out here in Here in UTB of UT But I said I told there that it's great project and you should look on that and so on but then I Okay, I will start from from the beginning. What pocket land is it's a rapper around pylons to make saying their false to to make saying their work with the false positives You are able to create a regex to match your to match your false positives and That way you are able to not disable like the complete check or make the disabled check on like I don't know hundred places in your code, which is both variants are what ways are Bad because the check could be could be valid on some cases So we have this solution It's even dead smart that it will tell you that the false positive is not used anymore When you run the around the pylons On that so it means you know that you can turn it off and get rid of it That's that's great. It also has the great feature which was great in the beginning When the project started, I don't know when when it was but The feature was that we basically found found all the Python files in the code base and Run pylons on each of this file Because pylons wasn't able to scale that time most probably I'm not that sure but I guess it's it's there Even I don't imagine you can imagine why wouldn't why would someone else wrote that code When I tried to benchmark it before this presentation I found out that it's like four times slower than when you run pylons on just one processor Even it's in the end. It's using all of your processors. Thanks to the context sharing between the pylons and so on It's hell slow. It's it's insane. So My current recommendation is do not use this It's not that easy Pylons, okay, I will repeat the question why pylons why not like eight or anything anything else We looked on the alternative and pylons is still one of the most configurable and most Robust system for the style static checker for Python even though the flag eight is so pretty like I would say sexy It has it has interesting interesting things, but still the pilot is if you really want to have great checker You will go for pylons this or that was our our decision Our result from our analysis Okay, so what I did Last few days. I basically replace the pylon and most of the things it done because most of the things it done was Anaconda specific pretty anaconda specific which is funny because plenty of projects are using it basically all the projects which Happened to start from or which which were Created by developers of anaconda. So I Will soon create a pull request for pocket land and tell that it's deprecated and try to get the only useful ability it has which is The false positives to get this to pylon directly Not saying I will be successful I'm not sure if that's doable really But if it will be it will be great if not maybe there's a place or for something new which will do this just this But do it correctly Right now the pilot is the pocket lens or the pocket land is doing plenty of stuff. You really don't need and it's Plenty really pylons specific Except the false positives here false positives filter and that's great feature, but it doesn't it doesn't Help you when you want to run your pylon and it's eight minutes and you can get it Get it down for one minute. So it's really really really too much for this and One of the last things I want to talk about here is Lorax and the family I would say I Hope I won't I won't Offend anyone like I would say it's based on Lorax is the base library and even and also a tool to create a bootable isos You are using it Fedora is using it to create a bootable iso for Fedora and also rel and so and sentos is you are using it if I'm not mistaken and What it does it will it's Starting anaconda in a special mode to create our image basically it will also start up a VM to separate environment from your current working environment because You know running anaconda on your system is doesn't look like a smart way to do you can if we mess up one if we can erase your data and Break your system. So it's much much better to to run it in a VM everything this is hidden in Lorax and You can I would say you can create boot iso with it pretty easily. It just they consumes a lot of time It's a little bit harder if you want to create some some special custom scenario, but What what do you need to create a bootable iso is to use kickstart and that's basically and Lorax templates, sorry It's Lorax templates, but you can use Lorax templates. You can inspired be inspired by Lorax templates from Fedora, which is great thing Then Then There is life media creator and life media creator is a tool around which which on the back end it's using Lorax and It's the same functionality basically much harder to To control there's plenty of plenty of more Options parameters and so on To to think about But it's for creating live also. So that's the reason Yeah, yeah it's The question if this is used to create life life medias. Yeah, it's used for Fedora and The reason why may miss it is because there's spungy tool Which is running live media creator and Lorax on behind on like In in the process. So it's doing much more. Yes Yeah, and there's as my colleagues said there's even Life CD tools life CD creator or life CD life CD tools. Not sure how to create to create Create life CDs. It's not It's not the recommended way to for from Fedora perspective if I'm not mistaken, but it's also working Okay, you are free to use it. The difference is if I'm not mistaken that life CD tools does not use anaconda So they can have other problems and other benefits You have to choose By the way in I Have it here maybe not sure No You can there isn't why it's like anaconda related project is because anaconda does this and They're in the old anaconda. I'm not sure if rail 5 branch or 6 pinch. I think it's real 5 branch In anaconda github repo you can find scripts to create a bootable isos so before it was these scripts then the tool was created to Unify all these all these tools to create life iso to create bootable net net net install iso and so and so and so so It was mainly big mainly to Get everything in one place and the anaconda will be underneath It's not that's true what they are trying to do right now is to get anaconda out of it, but you have my You have my vote for that because it could be interesting I Shouldn't shouldn't tell that because you know, we are losing some some some work workflow But on the other hand It will make our life easier when we don't have to count on Running system because right now we have plenty of code to just switch if we are on the running system And it's dear install or in which install or on the other hand We are in the in the stage 2 and we have to format things and so on. That's why That's the reason why we don't recommend running anaconda or creating iso without The VM running like outside of the VM on your on your host system Because it's plenty. It's pretty complicated to do this And the last thing and the newest thing family member, I would say youngest family as well there You can also know it under name composer. It's the same tool Valder is just the upstream name Oh So it will be the will be composer even for upstream. Okay, so it will be composing for upstream. I should update my slides Yeah, it's okay. It's even more confusing. So there are plenty of names for that. Okay. I Would end up with this But the important thing you can find it here and if not, there will be a level building for the current for the current project current name So what it does is you is to Make the above projects with plenty of parameters plenty of parameters and plenty of Your knowledge you have to run these to create nice UI in the cockpit, which mean web interface, basically sure and To just add your packages set your settings click what you want and then it It's great if you won't just you produce your own install install I'm not sure if you're doing installation isos or just installed like you have installed system and you will boot it Yeah, so it's just Yeah, that's that's true for now We will be So Yeah, I will repeat it. It's right now. It's just you will create ISO Which will you boot which you will boot up on for example Amazon or anything VM and you will run it for your use case So you will you can create Fred You can create your your environment You want to run it you don't run your application By this it's much easier to use I Recommend it for you if you're not using like creating isos every day and That's everything from my presentation There are sources on all the interesting things This is our WordPress you can Read about news in anaconda and the projects That's about the storage thing storage things stuff Any questions you asked during the presentation, so I guess there are Okay, okay