 Welcome to our presentation. It's called Integrating at Stream Projects downstream. So I wanted to like figure out some catchy name, but in the end it's just like yet another talk about the packet project. And as you can see we finally have a nice logo and we have stickers over there. But the I won't give you the stickers just like that. There are three ways you can earn it. So the first way if you are already a packet user and you can prove it like you can have sticker. The second way is that we'll have a small contest in the middle of the presentations and if for correct answers you can get a sticker and the third way Okay, that's the third way. Alright in the end we'll have Q&A and if you ask questions you can get a sticker But you can I mean only for good questions and if you want to know like what good questions are you can ask these people over there They are from the packet team and they'll tell you what the good questions are Okay, so let's start. And speaking of the team Okay, I think something Speaking of the team and they are not seeing the slug So let me fix that. I don't know how to do it. I mean they should see the thing So, okay, so let's try again Okay, clone Unpresent one And now it should work. If it doesn't, oh nice. So speaking of the team, this is the team at the moment There are some changes like from the last year if you remember this picture I shuffle it a bit and some people left and we have some new people So if you ever get in touch with us open a pull request or create an issue Like one of the faces will be replying. So please be nice to them and you can meet them over here So that's the team Who am I? So I'm Tomas I work as an engineer for Redhead for almost 80 years and so So my role is supposed to be like either Technically or team lead like sometimes managers say one Sometimes they say other so today I decided they'll be the lead and in the past I was working on containers right now. It's automation integration and all this kind of stuff. So Let's go This was the slide. I was editing like five minutes before the talk started Because dominica told me yesterday that I should have it as a slide Like back then there was like a list of bullet points But usually when I create the whole site I try to do a small mind map of what I want to talk about So this is what we what we do today and probably you can't read it Like that's the point But so I'll give you a small intro to the project I mean we've been talking about packet for like a year and I'm pretty sure that you already heard all the intro Intro talks so let's don't do that. I'll do it very quickly and then we'll talk about project What's happening right now would be achieved so far If there were some challenges and then We'll talk about the future and then we can finish with q&a Okay, let's do this. So packet. What's packet? Uh, it's packet. It's a github app which helps you integrate your upstream project into federal operating system and sent to a stream That's it, right? Let's show some pictures. So this is how it looks in in real Uh, if you are github user, which I'm pretty sure that most of you are github users You are very familiar with this interface. So what's happening here is that uh, dominica open the pull request And franta gave review and said yeah, it's fine. But just please rebase then she rebased And you can see the oh, I can use the laser. That's nice You can see the green tick which means that the commit is good and like nothing breaks And then when you click on it, you can see like all the checks and one of the checks is actually packet, uh, which means that Uh, like the builds of rpm's of the project where the this pr is coming to Past and even the tests like you like we use that rpm in testing and even the test path. So yeah, I think it's good We are also using zoo like as another Testing layer you can see it over here. And so we merged the commit. Yes, everything's good Uh, so let's pack it pretty much. I mean now we could finish if this was an intro talk But let's do something more fun and talk about what we've achieved so far Uh, so as you can see you can enjoy a platform where you can integrate your upstream projects into fedora os And so far there was nothing like this which you could do it easily I mean here you can do it like in five minutes You can set it up for your project and you can integrate into fedora and you know like what versions Like you can be sure that your upstream project works inside fedora with the versions of software and dependencies which are inside Like otherwise in the past it usually worked like that that the emma upstream project created a new release Then the downstream maintainer picked the release up try to build it in fedora realized. Okay versions don't match We need to fix it upstream and then go back to upstream fixed it upstream then get back to fedora and like This infinite slope like with packet you can do it while you are working on the change So and this actually happened to us like recently when we were switching one of the dependencies. We started using oh, hello We started using uh Marshmallow, uh, it's like the schema definition something and our colleague created the pull request And then we realized that in rohite. There is a new version marshmallow Which doesn't work with our software, but the other versions work just fine So while we were working on the code, we realized that it wouldn't work in fedora and we could fix it right away So that's that's so nice And yesterday if you were at the talk from mirro there was a question like if Packet or like the whole thing can replace travis ci and mirro replied no, but i reply. Yes, you can't like we can easily We can replace it, but not easily The bar to get into travis ci is so easy You just like write two scripts and then you can test your code in travis ci But in packet it's like more complex because as I said, we are working with rpms And then we are testing in like real vms So which means that like there is like a little bit high bar You need to write a spec file or get the spec file make sure it works Like get it either to upstream or download it during the build process Like I mean it's no problem But like it's a little high bar but also higher value because you are working like with the latest fedora bits If you look at what travis ci is you are getting some ubuntu version from 16th century which super old dependencies and I know like does anyone want it like really I would say that like all the developers want the latest things right So that's why everyone in travis use these containers and gets the latest builds But like why not use directly vms with the latest software? Uh, so that's that's what we are working on uh Okay, I Yeah, I think I talked about everything within a slide uh So the only thing which we are being asked actually by the dnf team what they would love to have from packet is like having Uh cross pull request dependencies because the way they work is that they have multiple repositories And they for example introduce a new api in one repository and want to use it in pull request in different repository And like they need to cross reference the pull request so that like they are built together But so far we can't do it with packet, but hopefully in future real we would be Okay, so now's the time for the game. So does anyone play the game? Oh nice So it's a small preparation for tomorrow Like if you are familiar with defconf like the last presentation defconf is when eradek Creates a game and then we like do all this Nonsense we stand up sit down and in her hands. We wanted that today. I mean we just play a small game Okay, so okay, I have written down So first question is uh, so The the packet project it's like two things. It's like command light tool and the service itself But it has actually more repositories and my question is how many repositories does uh, Like all the packet project has like let's say the production deployment And I can make it easier for you. So do you think it's six or less? Who thinks it's six or less? Okay, so I'm sorry. You won't get the sticker, but the other ones can't get it. It's actually eight repositories It's actually the service code itself the command line tool Then we have documentation. I mean it's also important like part of the production deployment Then we have deployment repository. Then we have secrets repository Then we have sandboxing repository Come guys help me. So all right, then we have ogre, which is the library we are using to interact with git for these and number eight Sorry Oh, yeah, okay research it. Oh, we have another repository when we are doing research on like various topics Uh, yeah eight. We have actually much more but let's say the eight are really important Okay, another question. So uh, since we are working for ad head and We are deploying packet service into open shift and if you are familiar with kubernetes open shift You are familiar with ports, right? Like, you know what ports are in and if you don't it's like containers like Same thing. So how many Pots in open shift does the production packet service deployment date? And let's do it the other way around. So let's say do you think it's uh, 10 or more? Oh, nice. You have high hopes. Thank you, but it's actually seven But i'm pretty sure it will be 10 in like half a year because like the The ports which take like most resources are workers like which do all the like cloning and creating source rpms and sending it to somewhere else So right now we are like three workers, but i'm pretty sure that we'll be like upping it like every month by one worker So do you want to know what the other are But but that's tricky I mean, so okay, so we are using sandboxing like during the build process because if you think about packet It's like code execution as a service. I mean you literally have spec files and shell scripts in your repository And we are executing everything in our infrastructure So I mean no one tried to hack it so far, but i'm pretty sure that sooner or later someone will try So we are executing all the commands in a sandbox So that's why like we are having this small discussion like whether the sandbox ports also are being I didn't count them Because they are like a little different, but the other one is like database htp server another database and uh, three The three workers and then we have the import image thing, right? Okay, that's it. So, okay, no questions. Oh, I actually did this one yesterday because so Since we are deploying into open shift and we are using ansible to deploy everything So all is yaml and I was counting every yaml line in like in our service repository and deployment repository So how many lines of yaml code we have into the problem? So do you think it's a three thousand or less? actually more It's almost three and a half No, no, I excluded us Yeah, that would be insane And I actually realized that in one repository we have all the almost suffix fit yaml And the other one is yml. I mean what the hell like we should fix that that's Irritating as hell. Okay two more questions. I think no three actually Uh, okay, this one is super easy and you need to like you you need to make it right So how many team members does per packet project have? I mean you saw the picture Go on not stand one less It's nine Okay, two more questions and this one's actually step. We like this question So how many projects uh are using packet? And do you think it's 80 or more Oh, nice. You should get not just ticker, but also like everything else because it's 101 The truth is we were cheating like this much but it's 101 And we actually did it yesterday like yesterday was the time So the deal was that if you got over a hundred like they were not fun Oh, oh, yeah, so steve says that the deal was if we do 100 by def conce Steff will die his hair to blonde, but the thing is we did it at def conce. So I think it's up to you But you died it already so I think you're good Now it needs to happen Okay, and okay last questions and Like the projects 101 projects, uh, I don't have it in slides, but we can do it in at the end. I can show it to you Oh, okay, okay So when the last question is uh, you saw the amount of builds and tests And on the picture there was like six of them. So how many builds and tests we submitted so far I don't have the precise number. I have like good estimation But What do you think how many builds and tests we already submitted during the life? I know the past six months. You think it's more than a thousand Oh, nice. Yeah, obviously it's more than a thousand It's I would say that we are like around 10 000 because I mean the biggest users of packet projects Is like the backing team itself. So we are building like mad. So Okay, so that that was fun. Oh, let's do something less fun, which means me talking So how's the project doing on the like other side is that we try to release often like every two weeks Pretty much when our sprint ends and we deploy Often we even have cicd set up like It's kind of fake cd. I would say but I mean it's in the end. It's still Deployment. We are actually like every week. We build all the images and deploy them And then on Monday we come to work and realize everything's broken and spend two days fixing it and deploying like five times a day Uh, but it works And we try to automate everything so All those three and a half thousand files of yaml are Automating almost everything so we can really deploy the production with one command, which is like awesome and we don't need to do anything Yeah, we also have outages and the biggest problem is that like shooting about it the packet service it It talks to so many different services And those services sometimes have outages, which means that we have outages and it's like it's complicated Like so far the worst offender past few weeks is federal messaging Like sometimes we just stop consuming some messages Which means that like we don't get information that the builds are done and it's like really bad America is always mad because needs to fix it. So yeah, but uh, we already have like plans how to fix it Like don't rely on those services So like poll whether the build is done and just don't rely only on the messaging and like other things So if you are already users and you are like upset without it is like we are sorry But we are definitely working on it and in coming weeks. It should be much better and much smooth And obviously we are helping people to get on board of packet So if you want to try using it like don't think that it's up to you to figure it all out Like the whole team is the dev conf we are here for you and we can set up a meeting and talk to you and Show it show you what it can do and how to set that And today we have workshop. I have another slide audit and we can do it on the workshop So that's how the project is doing So how do we develop packet actually so we develop it like mad. I mean if I don't If I don't watch for notifications for a day, there is like so many poor requests emerged and new issues created So yeah, it's it's really it's a live project. It's changing all the time and it's it's really great Uh, we are doing a lot of code reviews obviously So we only merge code which is being code revealed unless it's yirka Yirka likes to do self merges and then realizes is broken and then tries to fix it for an hour But things happen. I mean that's usually happened when all of us are Out of work and no one can give him giving more code review We are actually heavy users of pre-commit hooks, which are really awesome Which means that we develop code locally then we run the pre-commit hook which will change everything We'll format our code Runs all the linters and even tells us that we need to rebase which is great and Uh, oh some and we have nice linear history. So definitely use pre-commit hooks if you want to like save your sanity Uh, as I said, we are doing scrum or like sprints or something like that We also have staging environment. We also have like continuous deployments set up for staging environment Which means that we deploy to staging like every hour the master branch of packet service And that's that's very cool because whenever we merge something like within hours, we know if it really works everywhere We also have like dedicated repository With pull request being opened to test various use cases And we use this to verify that it really works like in staging or production. So And also if you think about it since we communicate with so many services and there's like so many Moving pieces like our testing process is like worth another presentation. So that's why I Only made it on one line So we have like so many different types of testing that it's like Outrageous like unit testing integration functional then this like different pull requests Opened and then we try to hit the service and figure out if it works Uh, and and one thing we are using is uh called recorat It's also oh, that was the final git repository. I forgot about it. Okay. So recorat is a project We are using to actually record network Operations and then we replay them in the ci process And if you know more how it works and how you can use it So come tomorrow at 3 p.m. Honza and front. I will give a give a talk about it Okay, so do we have any challenges so far? Actually, no, I mean everything's Going just fine. I say it so So the thing is yeah, I mean everything was everything is on cluster fire So I decided to rename that term because so right now everyone is deploying to clusters and these Clusters are always on fire. So yeah, everything is on cluster fire and especially the infrastructure Uh, yeah, I don't want to talk about it. So So the other challenge we have is that Since packet has like so high goals. We are getting so many requests like okay We would love to use it, but we are using this kind of workflow So you need to implement this and that in order for us to use it And we have like 20 requests like these then we have like 50 different requests to change user experience And like we are just nine people and we didn't even wear nine people like two months ago We had to like refill our eggs to get new people or like to refill the existing racks So we were like our velocity like working on cobalt spray low, but it should get better right now since we are in full Uh, within the team. So Yeah, please come with us with the request and like we usually try to prioritize like If it's something very important or something affects so many people we prioritize it and work on it as soon as possible But if it's something like which is only affects you and it's like small issue It's very likely like we won't have time to fix it. So Like either send us a pull request or please be patient and maybe someday we'll be able to work on it Okay, more challenges spec files. I mean, did you ever use rpm spec files? I mean, they are really hard And what's even like more hard is to try to parse them. I mean, there are so many issues parsing spec files that it's like Actually the first time we were trying to onboard kernel It just blows away like parsing kernel spec files. So yeah spec files are really hard And Another thing which is hard is running a service. I'm not sure what you guys are working on But like running a service 24 seven That's really hard. And if you want the service to be like scalable secure and someone needs to operate it and Like resolve incidents and verify it works and Yeah, it's it's really hard and like for us for for the team. I mean it's challenging But I would say we are doing good. We are getting better And I'm pretty sure that in one year we'll I'll have completely different talk And my favorite running a production service is no routes to host that's That's happening in our cluster in like one One in a hundred requests ends with no route to host and how do I debug it? I don't even have rude access to the to the servers or So no route to host and we just reschedule the job and hopefully like next time it won't be no route to host And yeah, user experience already talk about it and I can give you a good example about How user experience is really hard is that we have two people we have lars. It's lars here. I can't see you Although we are not here. So lars Requested from us that hey package service gives us too many comments. It's just like two verbose. Please make it less verbose Like, okay. Yeah, that makes sense. So we'll work on it. And then we have yarda who said exact opposite It's not verbose enough. Please make it like spam more comments and bigger messages. It's like, okay. So what should we do? Like obviously we should make it configurable But this is like the good example that user experience is really hard everyone expect something different Okay, so integrating upstream code downstream is so much fun And we are actually nearing at the end of the presentation. So what's the future? I would say the future is like no carbon dioxide, but this is probably the not environmental conference So let's talk about the future for a big project And yeah, you tell us. I mean, we are all based on the requests So pretty much what our users tell us or we what we feel like should be doing That's what we are doing and I can't tell you because it changes every day But if you send us requests, we prioritize them and we'll work on them As I said user experience we can make it better every time and we are doing it And we would finally love to finish the Fedora RPM release automation So that you don't need to touch like Fedora services Fedora This give build it in Koji or anything like that You can do it everything from upstream and pick it would be able to do it. So that's our plan We are halfway through. We just need to like finish it and hopefully after DEF CON it will be time to do it Okay, let's future and as I said workshop we have it today 3 30 at see something which is hidden somewhere And it's gonna be amazed to get there. But if you get there You can have workshop and talk about whatever you want and help you on board your project on packet And what the week I'm pretty sure that like the next slide is Q&A I'm pretty sure one of the questions would be like what the weeks actually like we have so many people with weeks So do you want to hear the story of weeks? Okay, so our manager over here step Walter He likes to wear weeks. He likes to wear them like in the office and it's so much fun So one day he came to bernau because like so many people report to him in bernau And we we had nice dinner. Then we continued the beers obviously like And we had more beers and we started trying step speak and talking about like, okay We all should get the weeks, right? And we should wear them in DEF CON at the same day So that's the week so whole so you can easily Identify the packet team or even the whole cyborg group like that's our whole name of our group in weeks and You can talk to us and we'll be happy to chat. So That's it. That was my presentation I'm pretty stormy through it. I expected to take more But we have more time for questions and answers So Okay, so you are asking whether you need to like build the rpms or you just want to test it like Like test it from the repository. That's your question. Oh, yeah You Yes, you can like you can only use use the ci part of packet like just build rpms of your project And then test them in the vms. I mean, that's just fine And we can help you set it up. Oh nice. So we are all good So any more questions Oh Okay, so can you please tell me don't like don't do this. Okay, so github integration Yeah, I mean we would love to Give you github integration, but it's like it's a lot of work I mean doing the github integration that took us months to write it like to Parse all the github events and make sure it works and it looks nice and everything So like doing github integration that's like month's work. So you are asking us to do month's work No, why they's asking So, I mean if there is enough people like I don't know like tens or even hundreds of using like github We would love to do github integration. So we definitely have an Issue open upstream. So if you want github integration find that issue in our upstream And don't subscribe like comment. Hey, I want github integration as well And if there will be like 10 comments or some idea will rise. Okay, we probably need to do github integration So, yeah, thanks Okay, so that's actually two requests you are asking us to do integration with github.com and then with custom github instances, right? Okay, so please write down the use case and we'll talk about it since we sit on the same floor Okay, cool. Thank you Oh, all right. Yeah front I gave a good comment that if you are using the package tool like you can already do it from github But I'm pretty sure that you want the ci part when like pick it interact with your pull request And that's the hard thing like to get the web hook responses and respond back to github and all these things Okay, so more questions. I think Kevin had a question We can see So, uh, so as I said, we are doing okay, uh for the recording so the question is like about the priorities and where everyone can see them Uh, so, yeah, I said we are doing scrum and springs and we are doing it in internal g-run instance So yeah, it's not very transparent, uh, but at the same time we are using the upstream github trackers and we sometimes have like milestones over there and Like labels with hyper and all these things so You can watch it over there what we are working on and I would say that Like we could do maybe some mirroring from gira to github and maybe like set up some labels and describe it somewhere how it works like For example, like said labels that active in spring that we are working on Yeah, yeah, we can definitely work on it. Thank you for a question Oh, yeah, that's a good comment step So we have actually one document where we write down discussions with different projects and teams like what they need and It's like one document and based on the document we try to like prioritize for next brains. So Yeah, it's a github. Yeah, it's in github and it's hidden like nobody can find it and we should probably change that So more questions. Yes, uh in back. Yeah, it's impossible to do different actions based off the branch like this is the first day on master I want to build and test but like I don't know if I push a tag I want to build and update the door or something So the question is if you can configure packets to the different actions based on branches or tags Like not right now, but the way you describe it the way it's the way it works And okay, what would I mean? So right now we can Or okay, you can't configure the branch thing like packet would react to all the branches like all the pull requests It actually reacts only to pull requests in the CI mode And in the like deploy to fedora or like push my new option release to fedora that only works with tags or like github releases But it's not configurable at the moment But if you have an idea like how it should work or how it should work for you like we can talk to you or you can Like create an issue and Yes, please So was that the question Okay, so the comment was that there is a poc set up in fedora with zool and whether we could work together, right? So yeah, please come to the workshop and we can talk about this like Uh, I think like you if packet was able to like push jobs to zool That would be super cool or like some way to interact together like that would be great Okay more questions Sometimes Okay, so the question is if like if someone doesn't have like upstream commit access and wants to use packet anyway So the answer is very simple. You can fork upstream and like set up pick it over there and use it over there And like manage your the repository on your own And is there a way to update automatically update for from upstream releases? Uh, yeah, that's a good question The question is if packet is able to update automatically and synchronize it to repositories and the answer is no But it's a very good like it's a very good feature request. I think it's on our board somewhere Just didn't have time to like work on it. So Slavku No Yeah, the question is if packet works with other projects, which are not rpm based like something else than fedora or centOS Yeah, the answer is no Uh, because like right now we have it hard coded like spec file and all these things Okay, so sorry. I misunderstood your question. So the question is if you can use packet on a project Which is not in fedora and the answer is yes, obviously I mean, that's what I did yesterday that what I thought was the 100 project because I want to add Uh Nyankeet package into fedora. So the first I set it up with packets make sure that it builds and today Hopefully I'll create a review request on fedora. So yeah, you can see that easily. I mean being in fedora is not the requirement but On the other hand since we are like building in fedora infrastructure, uh, we yeah Uh Okay, since we are building in fedora infrastructure in koper and koper has requirements on the software which you can build So if the software is like licensed or like not even proprietary or something like that, uh, like you can't build it So we only build like open through open source software, which is which could be integrated in fedora Yes, so so actually the thing what we are talking about here right now is like terms of service and right now we don't have terms of service because three dots what we have right now is that If you want to use packet service like you click install for your projects Then we get requests that you did it Then we look look you up who you are and contact you and tell you okay. So in order to use packet you need to be Like you need to have a feather icon system Which means that you need to sign The agreement in fedora that's like you don't do harm and all these things And then we would be able to like whitelist you and then you are able to use packet So that's how we have it right now So in future, hopefully we'll have terms of service where all these things will be written down that You can't use proprietary software. You can't use like license of their own listings So we don't need the whitelist anymore, but we need the terms of service and we are working on that with the legal department and it just takes long Yeah Right now We haven't yet taken the step to get on that list To actually take the first hundred projects get on board at first, but that would be the first thing So we have I guess talk let's talk together about use case. We want to see okay It's just like So for the recording slavic wants to have like sla and we'll talk about it after representation More questions we have still have some time Yeah Oh arctic and spec files in upstream is the requirement. These are most favorite questions. We are getting it like so often No You don't need to have the spec file upstream, but you need spec file in order to build your software So in the like setup process, you can just download this from I don't know fedora this git or from your favorite URL or somewhere else So yeah, you don't need it upstream, but you need it Yes, because we want to build the package first then we install it in the vm and then we run the tests Actually, we were discussing this whether Like if we want to enable people like to bypass that don't have spec file and test directly like the travis ci or Circo ci mode, but so far we didn't decide if you want to do it or not. So So far very good questions. You'll get stickers Yeah And Yeah, that's a very good question and the question is if if we can Help newcomers who are new to fedora and rpm and generate help them generate spec files in their upstream project So that you they can use packet I wish young short covers here because this he is the qe engineer on our team and this is his favorite topic He talks about it all the time and the answer is like it's such a hard problem. I mean spec files are Yeah, I don't have an answer for you. I'm sorry. I mean, it's a very good request It would be awesome to have it in packet service and packet itself But it's just like such a hard problem to solve So we can talk about it like over beers and that would be pretty productive, I guess but Such a hard problem Oh, yeah, so the comment is that we should match people so they work in fedora and start maintaining or become packages in fedora Yeah, that makes sense. But like general upstream developers don't care about like spec files and all this thing They want to develop their little baby and not care about distributions So we should make it easier to work with spec files to generate them to update them And there's some work happening. I mean there are spec file generators and we could try using them Maybe that sounds like a good start But so far we had so many requests like Make the service work actually make it secure make a scale of land. This was more important that's like Polishing spec files things so maybe it could be our next target. So more questions The question is about if we actually need to parse spec files. Yeah, that's a very good question it was actually a technical decision to like The way we did it like parse spec files and work with them I mean, yes, we could do like set or grab or do regular expressions But like the thing that packet does expect files that it changes version Like by default it uses git describe to get like the unit version so that when you build it You can actually address like the commit the build was Did from so that's one thing we are doing changing version then we are changing source line so that The so that it points to the correct arbol then we edit the The setup line in prep section so again so that all of this madness works together And then we create new change look entry. So we do four things to the spec file And yeah, we decided to like parse them. You're essentially using rebase helper for that if you were in the presentation yesterday and it does all the parsing and all the magic so And yeah, that's the thing like that is a technical decision Maybe maybe at some point realize that's like there's so many spec files We can't parse and we need to figure out some new mechanism to work with them or or fix the parser Or I don't know but so far it's like kind of working More questions Yeah, that's a very good questions patches in spec file So in ideal world the like if you have the spec file upstream, there are no patches because I mean you are an upstream You don't need to like have dedicated patches in upstream. But that usually happens in downstream So the way we solve this is that like pecky is able to operate on like two types of repositories Like one type is like no normal upstream repository and the other one I already like Pitched it a little bit It's the one when you fork upstream and then you add the spec files I don't know pecky the animal and maybe additional commits and in downstream the additional commits means that they are patches, right So pecky this to work with such repository and the additional commits in transfers them into patch files So that they are included in the spec file and in the in the downstream So, yeah, it works like this. We call it source git. It's on our website You can go pecky the dev slash source git. I think and you'll be able to read about it and it's all supported and By keeping as long as possible in the form this commits And that's something that I have to maintain the patches and the spec file on two places No Yeah Yes, so ideally you work in the upstream repository and pecky will take care of this git for you So then you don't need to touch it like that. That's the idea more questions Okay, thank you very much for coming and see you at the workshop