 Good morning everybody. Nice that you are here. I think my main task is to keep you awake, entertain you a little bit after a hot and hot night. So, yes. I'm, as usually talking about Blends, if I'm with the Debian conference, and I hope that I previously made it some good introduction, what are good reasons to have Blends and what they are. And today I want a little bit, become a little bit more verbose about the tools we are using. However, I give a short introduction, and then I come to the techniques we are using, about meta packages, web sentinel. I also dive a little bit into the team analysis we are doing. I have some tiny scripts and queries for the UDD, and I also want to tell you what we are doing to reach out to newcomers. And in the last part, I will talk a little bit about what we plan to do. Okay, I give a very short introduction, because it might be helpful for you. For me, this is a few onto Debian. You have a lot of packages which are maintained by several people, and a user is happy to install it on its computer. The problem is Debian has, I don't have the current numbers, but 30,000 or even more packages. And if a new user gets an intermediate for Debian, he looks probably like this, and has no idea where the applications are in Debian, which are useful for him, and what packages to install for the specific tasks the user has. And a possible solution for this problem is that we create some kinds of focus groups on this large pool, which is just for example here, Scholar Linux or Debian Edu for schools. We have Debian Meet, which is for biologists and medicine, and we have Debian GIS for geographic information system. We have also Debian Astro, we have Debian Chem, we have Debian Science. So we have special groups, which have the task to provide Debian in a comfortable way to a specific target group. For one instance is we create in the Debian Meet plant, we create a task Meet Bio, which is targeting at biologists, who is working on DNA sequencing and so on, and one of the tasks of the Debian Meet plant is biology, and there you see for biologists quite common software. It's way more, we have more than 500 packages, but just for examples. So everything is in and you get to focus on the packages, which are useful for your task, and every plant is doing this in a similar way. So in my opinion a plant, or Debian also in general, is kind of a bridge between upstream developers and the user. So we should be the connection between them, and we should try to tie a solid network of Debian developers and upstream developers and users. In the specific field of plans, you have kind of experts in some fields, and the users are also experts, and to build this bridge between them is kind of an interesting thing. The rationale is that the experts are happy if somebody has a look on their build system and packaging and so on, because they are focusing on their own topic, and we somehow see fancy things in their build system, so we can give some good advice, and usually upstream anticipators, enhancements and security audits or whatever a Debian developer can provide. And what we are finally doing in the Debian media team, we are trying to teach upstream developers how to create packages, and this works out quite well because I'm personally not an expert in this field, I'm a physicist, I don't have any idea about this biology stuff, and if the person who develops the software creates a Debian package as a good means to test if it's doing what it should do and so on, so providing the knowledge how to package is quite a good idea. And my idea is that if he penetrates specific word fields with Linux, then it makes it even more acceptable in general, because if a person who has good experiences on his work with Linux might consider it very useful also at home and put this in the family, and so I think if we could penetrate more work fields, we could get some rise in the number of Debian installations in general. So the point is we try to attract people to use plans, and on one hand these are developers, and we need to make sure that we provide good methods so the acceptance to use this is way higher, and in Blends we have some kind of simple way to categorize software. These categories are in the Blends terminology tasks, task files, and these are not exclusive tasks, so for instance we share in the biology task some packages with Debian, with Debian team because they also are investigating molecules, and there are certain overlaps between different tasks of different Blends which is quite good, and so these are not exclusive categorizations, but one software can be used in different fields. These tasks are also some kind of key documentation feature because I show later that it's very easy if you have once categorized your packages to display them on webpages and have all the information assembled in one place. We have also quality assurance pages where we list bugs, or we have also some page where we can watch the Debian external health status which means we are checking if there are new upstream versions available or not. From the user point of view the webpages we are creating provide very simple means to do translations. You just need to click a button to provide a translation for your non-languages, and these webpages which are created out of the tasks can be very helpful to promote the software and gives the user a means how to create a complete working environment. The thing we are trying to approach is that we can raise the user interest by providing ready-to-install software in his specific work field. Ready-to-install means we create meta packages and it's in principle one click experience to install everything what's inside Debian for this work field. The meaning of you have seen the lenses which put the focus on the thing, this is kind of bringing the user very easily to this place. The user asks me how can I install all this stuff and I say just install the meta package and you are done. What about the blends features in general? So we define a set of dependency relations and turn these into installable codes. By the tool I will show you this installable code are the meta packages and you can do the online demonstration in the so-called web sentinel and this is also a major point. A blend is not only some technique, some code, it's also a team behind. I try to stress this point very much because it's finally the people you have contact to which you can ask and this is a very good resource we should not underestimate. So what about these meta packages? There is a package which is called blends def and this is dealing with some task files and it's do the following things automatically. In the task file you do specify, depends and recommends relations and blends def is verifying if the package exists and if the package is not existing in main it will be turned to suggests which means the meta package is installable in main and if you have maybe some external or some local package mirror or some packages are in non-free also then you can install even with minus-minus suggests and then you get everything like this one usage. In any case, blends def makes sure that the package is policy conform and the package exists. It creates a Debian control file automatically and thus this control file contains all the meta packages which were defined in the task files and it also creates task cell control file which you can use with task cell. By the way, feel free to ask questions it's unclear, it's perfectly fine if you interrupt me and I'm just telling you, the mics are there. So how it is working, you just use a very simple rules file you just include the rules file which comes with blends def that's all you need to do, it's actually using DH and you can also use some overriders but in principle that's not necessary. Then you provide just a stub of a control file the whole control file will be auto-generated there's also a line in it, don't edit it because it's auto-generated and this stub contains only information about the source package on the header of the usual control file and there are examples which you can easily use or you can sneak into a random blends source package so use Debian Astro or Debian Giz also, Debian Meto so download the source and you will see a working example that's very easy. There's also an example for a task file you could copy for the first moment that it looks like this so if you start a new blend by the way there's also a documentation which gives hints how to start a new blend. You can copy an example task you can copy a readme file which has some template and then you can edit this task file which consists of a task name a description, short description, long description as you know it from every normal Debian control file in principle you can imagine that the task file is a control file which is glued together with all tasks then you define depends, recommends and suggests if you want to suggest only packages please make sure you add a new line between all the depends and recommends that's important for the tool but these are details I will not undergo if you have problems come to the mailing list and ask a new thing is the format line we now have defined a new format I come back to this soon and then you do this for every task you want to provide and as I said there are working examples hanging around for the blends and it should be easy to copy so once you have defined all this you just say make dist as you say to create some kind of source tab and this is doing all the useful stuff if a package is not interesting it goes to suggest and there is also one meta package that is called all this has a special meaning and the final purpose is that we want to get blends into the Debian installer which is not yet the case I have an open bug from 2003 so 15 years ago and we really really really hope that this will happen for the booster release because all meta packages can define what meta packages of your blends are really important and they are installed immediately and the other are free for the user and this also creates a task, an input file what about this new format formally it was the meta packages were defined that they do not contain any depends they only contain recommends for very good reasons which I do not want to discuss here but it turned out that in some very special cases we need hard depends and it was not possible with format 1.0 and so format 1.1 will keep depends as depends and not degrade them to recommends the format line changes and so depends remain as it is it's available since blendstaff 0.7 so the task files are created as well as I said includes task description files and as I said I really hope that we get this included into the booster installer it's called Buster, sorry and it installs this meta package moreover some not so important feature but I like it anyway is that blendstaff 0.7 has some methods to add some data files about package statistics it's just create a JSON file which contains all the previous versions and the packages which are in depends, recommends and suggests so you can create some graphs I will show some in a moment and it also helps maintaining the changelog because if we change the task at least I'm very lazy to maintain the dbn changelog and this can generate the changelog with all the changes here which is added compared to the previous version of the source package of your blend this is for instance a graph I generated with these JSON files it displays the dbn-made task or at least the selected task of the dbn-made blend you see over the time from 2002 until 2018 the number of packages in the biology task was rising a lot other tasks were rising not that steeply for certain reason I do not want to comment but you can create this kind of 3D graphs if you have all this data and this data is created or you have needs to create this data in this blendstaff framework so the web sentinel is a way to somehow show off what we have and it just provides information about packages in one task so it is assembled on one web page the information is gathered from UDD UDD is the ultimate dbn database it contains all the metadata you can imagine about packages the package descriptions, translations dependencies and upstream versions and whatever it is everything that is why the name is ultimate dbn database these task pages are more user oriented so if somebody is asking me what are you providing in this blend I usually point to the task pages and it is more or less key entry point for users because it provides a quick overview what is inside dbn regarding a specific work field it might contain a to-do list I will show immediately one example and it also turned out to be a quality assurance tool for developers as well so I now show you one of the task pages this is for instance the biology task of the dbn-mit blend we have for every package we have the package name short description, home page who is the maintainer who is the last uploader is the package up to date is the translation available for instance I am showing you currently the German locale so if you can read it then it is not yet translated then you get the yellow button on the right side translate description if I would be motivated to translate it I could do it I don't do it because I leave the translation to other interested persons and it is any way questionable to translate scientific description because most scientists can speak English but for instance if you look at the dbn-games blend it would be really nice if the game's description would be translated you can also upload the screenshots here we have some packages with screenshots not so many but you can scroll down here and see some different things for instance you also see if there are new upstream versions so this page says oh this is not fully up to date you could check what is your new version by moving the mouse here and see we are at version 16.0 and up to 17.0 so there is some work to do this is something which is more my field of tasks a little bit hard in this case and you have also some screenshot to see here so this is something I really want the users to do these pages are user oriented and if the user decide to provide a screenshot he can just click here and upload a screenshot and this goes to the main dbn infrastructure so not only these pages will profit from this but all dbn-tools that are consuming screenshots will get the screenshot same with the translations if a translation is provided also up gets the translation and so on specifically for the scientific packages we have citations there this is very important because in the beginning I told you that we try to build a bridge between upstream and their users and if upstream sees oh they are quoting my publication that's a good thing and the users can read it here at this place with the links and so upstream is happy that we are packaging the software and we provide some some service for upstream and the users and I also told you that we have kind of a to-do list we have here dbn packages in uq which is well yeah there are some packages we have packaged which are hanging in uq and oh there are many and we have some packages which have started the packaging in git and are not yet finished for whatever reason so what the users sees are they are working on this maybe I ask if I can help to get this happen or I can provide some input or the user can say well this would be really interesting for me could you please package please finalize the package in general I must say I was hoping way more for user interaction that users come to me and say please could you do this or that for me it does not happen even if I know the users next to my office and tell them please if you tell me something I can probably do something for you I have no idea why this is not happening maybe it's some kind of this yeah if you are in the propriety software world people approach you with advertising and push you stuff ready made stuff and push it on you and we are just yeah you should join us and ask for something and then we can do something for you but I will not spend my time to run behind users or push them on them I have other things to do okay well these are the task pages and these task pages are generated automatically from the task file once a day for every blend for every task so you don't need to care you just need to define one recommends file name or depends package name and depends file name all this is generated or you just give one package name and all the meta information is drained from the ultimate Debian database so we have also kind of bugs pages which is more developer oriented so who tries to fix bugs and this is the idea why I am I think is the good thing to have the existing bugs in certain work fields is that if I am a user in this work field I am probably the right person to fix a specific bug and so we try to attract competent people to specific bugs and it's just an attempt to make blends more relevant for all these QA means I show the bug pages it is here it's I found some means to categorize tasks this is the number over there it's not the number of bugs it mixes a little bit the severity of the bug and so if you look here into this for instance we take a smaller one in dental practice there are not so many packages there is only one bug it's even tucked patch it's also not really maintained by the by the JBNM team but some photo tools for dentists taking a photo of your teeth so this is not so heavy but we have a lot of bugs we have a lot of packages for sure and then we have some kind of color codes so start with the red ones the green ones are not so heavy you can see if there are patches and you can go there and check what thing you can fix and I would be really happy if somebody would go to the we have also this for games and so if you want to fix a bug in games go to task page check it and then you find some targets to fix maybe a depconf that would be nice so what about team analysis without Blenz and Davion made wanted to answer the question who is member of the team it's a hard question we have at this time in Aliat now in Salsa we have people who have permission to commit to the team but this permission there is nothing some people never commit some people frequently commit but who is in the team and a number of active contributors and saying who is active on the mailing list who uploads packages and fixes bugs who commits to Git and how many contributors we have per package the last question is specifically important if you look at this graph the following in the first column displays or the left the most left column displays the packages which are in the version control system by a single maintainer I removed some noise you need at least to do five commits if it's a random commit some NMU or so I do not want to calculate because it's just noise so what we see in the Davion made case is that more than 350 packages are only maintained by a single person which is not good because it's not really a team it's way better on the packaging the minority of packages is maintained by a single person we have different examples different teams this is just a contrast so our goal should be that we get the shape of the Perl team that packages usually have three, four or five maintainers who at some point in time commit to this package this would be some kind of ideal situation and I need to admit also that if we have two committers to some package in Davion made team it's the usual pattern is that somebody started to package something left the team and I took over these are the two persons who are contributing these two people are also a little bit fake it's just one person we need more contributors because the more eyes sorry this is the next graph about the uploaders here in this example I think that Davion made is doing is performing the good thing and it's just a random example the packaging of the XFCE desktop environment we have other examples what you see here is if you forget this very active person the top uploader of Davion made team one of the graph is settled by a lot of people so it's not only one person who is maintaining all the stuff in the XFCE case you see in the last four years it's only one person contributed so it's actually not really a team it's one person with some support of others and in this case I'm very happy that we have more people contributing to the team upload and if you are running some teams not necessarily blend nice or peccary pearl not XFCE AR blends we can create these graphs as well if you want me to do this just tell me so I also found some means which just helped me to do simple SQL queries that's just a script not documented, not published but very helpful and if you are interested I can document it and publish a little bit more visible UDD is a very cool tool it provides the translations and all the features I'm mentioning here I've written originally for blends purposes but they are taken over into Debian in general so the translations formally were not contained in the UDD now they are very basic part inside UDD we have the content of the new queue is inside UDD I included the screenshots you have seen we have also I called it we have seen on our to-do list so if you mention a package where you just created the packaging in Git it is parsed from Git and you get the information in UDD and if you put it in the task file then it's showing up on the Web Sentinel we have also the upstream metadata this is basically the publications I have shown you so more scientific the upstream metadata which can be stored in UDD and we have for the Debian mid-team some specific things some ontologies which are also stored in UDD and all the blends task content is inside UDD as well so you can easily join the tables and gather the information you need with a single query this is very handy so for instance before I create the metadata packages I want to make sure that every package that was created by the team is mentioned in at least one task and I have a query which lists all packages that are not mentioned and it starts and say oh I need to add this package to this task this package to this task or a blacklist so this is kind of a nifty tool specifically for the Debian science team which is not so so structured and then I see this maintainer forgot to add this new mathematics tool to the mathematics task or this new data plotting tool to this one and so this helps a lot to make sure that everything the team is doing is really mentioned there then I have a query where I have sought the packages of a task and add one column if there is an auto-pick-a-g test or not this is specifically helpful for my outreach student she is currently doing the video stream and then I can pick from this list she is writing auto-pick-a-g test and we want to cover the more used packages first and so it just provides the list what's a useful target for the next test very simple one what I'm also doing is I'm sorting all the packages of the blend according to their latest upload this is I'm doing this specifically every second year before we have a release so I say well I think we should at least one upload per release and if there are packages not touched a long time it might be that the watch file is outdated and check lintian problems and currently we need to touch every package anyway to move the VCS fields from earlier to Salsa and this script is quite handy so I start with the packages from 2014, 15, 16 and just work down the list of the old non-ted packages and update them to recent policy and whatever it's also quite healthy list of upgradable packages which is also a nice tool to see how we should do this it's quite redundant information you get it at several places but with this script I get it very focused on the things I'm really interested in so far for the tools these tiny tools if you are interested or you have ideas what you want to do with UDD then just tell me which I'm very keen on having a good team and so I do some project which is called Mentoring of the Month it's just getting new people in I reported about this in Switzerland and will not go very much into detail if you want to know more just ask me the thing is that because we are doing this kind of 38 DMs and ADs which is some kind of special because I always say Debian Meet is not really important for Debian we are very very small topic but we gathered for Debian 19 Debian developer only because the project exists that means an unimportant project inside Debian gather a lot of Debian developers we have and they also reach out into different fields so it's very motivating for people that they find friends inside Debian at first and then they come to Debian so this is my argument for you to reach out to people in your work fields create a blend or just make a small group to attract other people and 14 of these 19 newcomers are staying active inside Debian Meet so it's a very healthy thing to reach out for people the time I spend for this mentoring is definitely worth the effort and I can also learn from the students because I've read the documentation 20 years ago so this is very efficient and spreading the knowledge from the mentor to the student is very fine and we also have strong connections to upstream because we frequently teach upstream developers to package and work on the mom thing I'm also offering sponsoring for people who are working in any blend it's we have frequently people who are packaging interesting software but they don't find a sponsor for the package and I make sure they understand the blend framework they make sure that the package is mentioned on the task page they have understood the blends principle and then I sponsor not before so what are the plan features for blends well we like to enhance the web layout of these task pages we need a better web layout did I say that the web layout should be enhanced okay I think I did it we could add some more info report over a few maybe even Ubuntu bugs are interesting and this is all easy to do just somebody needs to do it and we want to do it with a little bit better layout we have followed three years follow this layout please raise your hand now or later okay yeah and we try to make the blends code more flexible all has written some Python module which is planned to become enhanced and we are working on different stuff it's well it's a little bit of shame I did not wrote so much code in this general brand stuff anymore because I'm very occupied with single packages I don't know how to enhance this a little bit but luckily there are other people who took over this like Ola and others who became a bit involved in this more than a bit involved so here is the link to the general blends documentation which explains the sense of blends in general all the techniques hopefully all the techniques if the documentations up to date at least it has no Elliot links anymore and it also explains how to create a new blends what are the criteria to create a new blends what pitfalls might be there you find my talk as always on my talks page and I hope that the the blends some will rise more and more and you start contributing or we have fun with your contribution or continuous fun to work together with us that's all of my talk and this session is now open for questions are there any questions did I maintain to keep you awake in the morning or please raise your hand if you are awake no hands raised who is not awake so nobody can just stop we have two minutes left I can go a little bit more in detail with with his pages here I always like to show this if you want to do a translation oops I can show you how it works translate description then you go to this maybe good good that I have shown this it leads to dttp.dvm.net but it should be translation.dvm.org meanwhile as far as I know I need to check this upload screen shots so you can there is screen shots.dvm.net and you fire up the package do a screen shot according to the advice that was given here there is some general advice and then you can add a screen shot there we can have also a look at some other blends all are at blends.dvm.org let's have a look at games and there is tasks and you there is a task finest this is most probably most interesting tasks you see in this blend more or higher popcorn values than in the scientific stuff and you have the games people are quite behind screen shots it looks good and things are translated here this is good you can even fix the translation but I need to fix the link to the right thing so you see German translation here you can even check the Chinese translation I hope this is the right one Chinese Taiwan here is some work to do some Chinese develop some Chinese users here please fix the translation translation description oh no I need to fix it first and then you click it but you can also find other means to to access the DDTP server then from the from these pages is just one way to enter you have even Astro they have a little bit this different design for their pages also nice this is more modern but for me I would like to provide more information oh no I wanted to go to packages Astro I prefer education because this is something I have chances to understand and then you can click here to enhance the information so the advantage of this web layout is that you have a short overview and then you can go into detail easy design decision probably more modern what's what I have what I was used to this so more questions oh no we are running out of time no question anymore thank you very much for joining me in the early morning see you later