 So welcome. Welcome to the Drupal Council session. Welcome to Drupal Con. And we're happy you are here. Thank you for coming to this session. So about us, so let me introduce Jesus Manuel Olivas. Jesus is from Mexico, Mexicali. And he works as everything in Wino, which is our new adventures, dedicated to the trainings in Symphony Drupal 8. And we have another song produced in mind in the future. So if you are interested in consulting about Symphony Drupal 8, you can call us. Now let me introduce Eduardo Enzo. He's a Colombian living in Costa Rica. It's kind of complicated. Again, it's another commentator of the project. Well, you can find solutions. And if you are going to Australia, it will be there. So first thing, first, I mean you hear Drupal Council and you may say what? Another CLI? It might be a question. Another question is, it's a real full CLI. It's not only a generator. So touch those topics during this session. And let's keep moving. Okay, so many of you maybe do know Drupal Council as a tool to generate. But actually Drupal Council, the generation part is only one tier of the solution. The other tier is interaction with the Drupal system. And the other thing is try to do the book information. And if you are more interested about this subject tomorrow, we will have a session about how you can use the debugging commands we have inside Drupal Council to try to learn Drupal 8 from there. And well, let's add more information about it. Drupal Council, take advantage of Symphony in order to party components as you can figure out. Symphony console, tweak, dependency injection. A lot of the same components you will find out in DA, you can also find it here. And same thing for object oriented practices and modern development practices. Same approach that you see in DA, you will see in Drupal Council. And let's talk about who maintain this project. David Flores, unfortunately he's not here. Because Ricardo isn't representing him. And myself, Susana Olivas, right here in Omar Aguirre as well. As you can see, everybody looks Mexican, right? It's not a problem. It's not a racist. So they are Mexican. And I am almost Mexican. Yeah, you're almost. So the current supporting organizations for this product, that means companies that invest office time, I mean, paid hours for creating Drupal Council are our company, we know. I have another Drupal workshop in Costa Rica named Anaxes. So Drupal Council for us is like a comedy project. When someone is free, they need to invest his free time in Drupal Council during office hours. And in Dava, who is Ricardo company with David from Mexico, they provide, again, their hours through this. So this is what showed this. It's like when you want to start a project, first you don't need to live in USA or San Francisco or something like that, right? Second, you don't need to be a big company. So it's all about your passion, about your idea. So we started that from Mexico. I live in Costa Rica, a teeny tiny country that 80% of people doesn't know where it is located. But you can do that. If you are here in England, in Tasmania or whatever, it's just about the passion you have in the idea. Let's talk about the why. So we tell you Drupal Council is full CLI. Again, it's not only a boilerplate code generator. Why do you build it? And same thing. We build it because we want to follow the same approach as DAID. Object-oriented, all these really nice new things, these modern practices. And we all know DAID is more technically advanced. Creating a controller or a plugin involves a lot of boilerplate code nowadays. This tool can help you, yes, to generate that code. But it also can help you do several things, like debugging the system. There's a lot of new subsystems in Drupal now, like plugins, events, services in the service container, the routes on the routing system, all those different subsystems. You can use Drupal console to debug those and list what's registering in the system. So the problem with all those new tools is they are amazing. But the problem is, as a company or as a developer, you need to invest a huge amount of hours to try to handle them. So looking as a business perspective vision is like, that's mean you need to invest months in a developer to become from zero to a proficient developer. So the idea is, and the problem is in the process is three, four, five or six months doing that. That's mean that resource, they are not producing money for the company. The idea is, what we do, and we believe at least, is like from the day one, this person, even if he's a junior, he could be a little productive. And the output generated with the Drupal console could be a self-training process and also will be save money and will be productive for the company. From day one. From day one. All right. Okay, let me talk about a little statistics of the project. So right now we have more than a quarter million downloads from where we started this project. And this is counting based in packages, numbers, and GitHub. Downloads, yeah. We have more than 200 contributors around the world. So at the beginning we started only in Latin America, but now we have contributors in all continents. And we have 90 releases so far. We have been doing this for almost three years. Almost three years, yeah. And GitHub. Okay. As I asked before, so right now we are supported by 19 languages because as a Spanish speaker, we understand sometimes, even if you are available to speak English or maybe you don't speak English at all, sometimes it's better when someone is playing you in your mother tongue. So it's more clear and getting here, not here, right? So we embrace this in this project and we support 19 languages. So the curious thing is like maybe you think because we are Spanish speakers, Spanish is the more popular translator in the console. Naturally it's Hindi and Chinese simplified. Spanish is like a ranking in the sixth language. Probably we have languages like Hungarian, Romanian, Vietnamese, Russian, Hindi, another two languages from India. Mogherati, for sure I don't pronounce it properly. And number one, so it's very located and we are looking for people who want to do this because this is important as I say, it's a tool you can use for training. So imagine like you could hire a junior and maybe he doesn't speak English because he lives in Indonesia. He only speaks Bahasa. But if you could provide the tool that generates his content in Bahasa, he could and you say, read this documentation, learn how the commands are used in Bahasa. In the day one, even if he's a junior with some PHP knowledge, he could be a star to doing some Drupalite projects and this is a win-win relationship because when people hire an internship guy or something, the problem is you need to mentor these, mentor this guy, that means you need to put the most expensive resource to train a resource that doesn't produce money for the company. So it's a deadlock, right? And then if you just say do your best and obviously do your best is after three months he's not producing, nothing effective for the company. But if you provide something in the language and provide some self training or reduce the amount of hours that senior developers who need to supervise this will be good for both. Now the interesting guy, he will feel he will be productive for the company. I am producing something really valuable for the company. For the reason we encourage, if you want to translate the Drupal console to Ukrainian or any other language to do, please do. And it's actually really easy. Yeah, it's just text files, Jamo files, you don't need an IDE to do that. And just as a side note, we decided to use the translator component of Symphony in order to decouple all of the messages from the code because none of us was like an English speaker, so we decided to extract that. And then we figured out once we're already using this, why don't we just make this project translatable? And by default the Symphony console component does not support that so we end up adding more features to the component. We're still keeping it in a separate project. But yeah, it's like we end up like adding more features. So you will find out if you already use the Symphony components that we are currently using, you might be finding out a few things that are not there and we are extending sending it from that. If you want to take a look about how looks the Drupal console in the language, this is Hindi as you can see, right? I will say as you can read. No, you can read for sure. It's really difficult. And I really love these kind of images. Obviously I don't understand what they say, but I could see in their eyes when I was in India and I showed them this. They feel this like, oh, this is something for me. This is something for real. Even in almost IT guys in technology in India that you speak in Spanish, this is something that is really useful for that. So here you can do something in Irish if you want. And also, this is a separate idea, but this is possible to try to sustain how a language, because this is spoken only for a few people, maintain a life. We have a translation for Catalan and he said, this is a way that we could try to preserve our language living, to introduce in language. It's not because I speak English, I need to refuse my own language. I need to try to help to be continued using. But this is philosophical stuff. So in numbers right now we have 152 commands and counting. In recent two months, we slowed down because we did a refactoring the whole console, but starting today, we expect to have more new commands for this. So how we divided that, you say, generator is only 42, but obviously generator are so flexible that in one command could produce, depend the output, many different solutions. And we have 80 commands related with side integration. And 30 for the book. In this part, I always think in this way, the UI for Drupal 8 is only one story, one point of view. The point of view of the web publisher, right? But that doesn't mean there is no other stories. There are a lot of information in Drupal 8 that is not possible to be accessible. One of them, right now, dependency injection is a big deal in Drupal 8. But now there is no way, as for a developer, to recognize or get a list for all the containers. And if we have a command for that, then there are 522 services available in Drupal 8. And you need this information. For this reason, we create all these commands to try to expect this data and exposed to the developer. Because other ways, you get lost. You say, how many routers we have registered? How many containers? How many? So it's too difficult. So you're just adding this in the way we are. One other reason we add those commands. We start the project, again, as a scaffolding tool. We'll know that. And we were generating controllers, right? So controllers affect the routing system. It creates a new route. We start adding generators for services. So it register a new service on the service container. And at some point, we find out we didn't have any way for discover all those subsystems. So we end up adding all this debugging feature on the project. If you want to know more about debugging, there's a session tomorrow. Well, let's see. And finally, RC1 is here. And as you can see, released today, probably like 15 minutes before the session. Yeah, you would like to live in danger. And there's a lot of changes coming. And when I say a lot, it's a lot. We break the project. So long story short, we break the project into separate and separate them repos. So we have something called Drupal Console Core who contains like the main core nucleus of the project. Then we have something we call the launcher, which is basically a way for keep having the executable, the global executable. So this will help you to find Drupal. If Drupal is installed in a specific site. But probably the biggest, biggest changes now, it requires to install Drupal Console per site basis. So it means if you have a site, then you need to run a command for doing that. And I will show you in a few which command is this. So again, starting today, if you get the latest version, if you run the curl installer or the self-update command, you will get RC1. And you maybe find out, you know, something is broken or it's telling me Drupal Console is not installed on my site. This is because that's the new way of doing things. And main reason for doing this is to avoid dependency conflicts. Let's, we will let composer manage their dependencies and you know, because that's what composer tasks are supposed to do. Yeah, well if you are interested in details about how the Drupal Console works. So we have the Drupal Console website, you could find the statistics and how it's installed. We have documentation in Drupal Console. I say we have 19 languages support. But for 10 of 10, the documentation is in languages. It's in Japanese, Hindi, Russian and other languages. So you could read that. And we have also a channel in Gitter. If you want to get some level of support or ideas or something you could come in and talk with us. So if you already used Gitter before, this is a tool similar to Slack but with integrated with GitHub. So this is a modern way to do it because we don't like IRC. And when I say we, I say it's me. It's not that I don't like. It looks kind of old. Getting back to what again, how to install Drupal Console, remember? Before was something like, you know, it's getting the executable and then the executable used to contain all of the commands. But now it's not. Instructions are the same. So it's running a curl command calling a route or URL and this gets you that Drupal.far file. It's a far file. It's just something PHP archive. It's a whole application. It's packaged into one file and this file is marked as executable. And then second step that you need to do is move your file. So something like moveDrupal.far in a place that is globally accessible. In this case, use your local V. So this means after doing this I will be able to type Drupal anywhere in my system and Drupal Console will be executed. And well, in some system you need to do something like this. Just changing the mode of your file and marking your file as executable. And we highly recommend you to run the init command. This will allow you to copy configuration files to your system and modifying those files or updating those files is the way you can use for changing the behavior of the project. Yeah, languages, for instance, you can set a different language by modifying this file. And again, starting today, Drupal Console must be installed per site. So if you run Drupal in a site that you just get, let's say you get the tar from Drupal.org or you create something like Git clone Drupal repo and you try to run Drupal Console it will tell you that it's not installed. But I mean, it also, the same message is this is the command you need to require. Something like Drupal, I mean, sorry, Composer Require, Drupal Console, blah, blah, blah. So after running this command Composer will take care of downloading Drupal Console and the proper dependencies and he will do his best to fix any conflicts between the libraries or the dependencies of Drupal Console and Drupal. Yeah, I remember probably back in like six months, a year ago, we have an issue that just break the whole thing, you know, Drupal released and everything was broken and that's the point when we started thinking about doing this and it took us a long time because it was a big refactor. But it was a change version on a Gossel component of Drupal. Drupal was using a specific version and that version has a bug or something. It was loading a file and then we were loading another file different version of the same file. So everything was like broken and you're total like terrible error messages, right? And doing something like this like separating the project and requiring Drupal Console to be installed per site, it will fix those issues for you. Another benefit of the refactor is like a in the previous version if you want to use the latest command of the Drupal Console then you need to you are forced to use the latest Drupal because that version has the latest commands. So as a company developer usually you are in two or more sites at the same moment so you could maintain different versions and work independently. And this is how we live. Maybe this is weird in a way within Drupal Console is an application and it is, but remember Drupal Console is an extension of Symphony Console. So it's the same way when we use kernel for Symphony, this is the same. And just getting back to the same story, this will sound like fun, but when we started the project we used to do it like that. Composer requires Drupal Console and everyone within the community was complaining about we were hacking core. Back in that day, Composer was not well known in the Drupal community and I remember I was doing Drupal then moved to Symphony then when I went back to Symphony to work on this project Composer required and let Composer handle and manage dependencies and people were complaining and this shouldn't be happening so we decided to go all around just packaging as a project deploying as a far, getting to download. Then that brings us to another problem between probably two years of that the Drupal community re-embrace Composer and now this is a good practice so we are at the same point when we start. But it's good, I mean we learned a lot we end up discarding a lot of code on this new version because we have to do a lot of magics, it's no longer required so it's great for us. Again, if you want to get you can just running a Composer require, but if you want to avoid running this we highly recommend you using the Drupal Composer project you can run something like Composer, create project and then Drupal Composer. This is the Composer template it contains Drupal, Drupal console and all of the packages you need to manage your site. So instead of getting Drupal from DO and then adding Drupal you can just run this command and this will get Drupal and Drupal console for year. Actually this will be the new way because this is an independent project named Drupal Composer but starting in January 2017 we will have an official review from packages.drupal.org so all the this will be our best friend in Drupal and officially will be in January 2017. Now it's a good time to start playing with these kind of tools. If you want to know more about Composer and the workflow in Composer workflow we have a buff tomorrow so make sure you take a look at it, the schedule. Another thing you will might notice in the latest version is probably complaints about the configuration file or if you run it first time it will now tell you there is a missing configuration file and if you run this within a site it will tell you the possible option for it telling you this configuration could be either on the site or on the home directory, this is another change happening on RC1, you can keep configurations per site basis. It means you can commit that configuration in Drupal and share it with your team. You can set a specific configuration for running Drupal console like disabled specific commands or forcing some arguments or options in specific commands and you can do that at the repo level and everyone within your team can share the same configuration. Well, when you run Drupal init command something like this happens this is like really Chinese nice thing. If you use symphony console you can ask questions. This is great because interaction is great for user and start asking you a few questions first you want to copy the init file in the current directory it means you are in a Drupal site and then ask you what will be your web directory because if you are using Drupal Composer the web public directory is not the root of your project it's within this web directory if you are using lining distribution same thing it's within this web directory instead of the root of the project so init command ask you what do you want to set as your public web directory and ask you some other questions like what the language you want to use and a few questions that you might want to set and finally it will show you a message like this. All the files will copy it in your system and some other messages it will show you instruction for enabling auto-complete so when you start typing something like Drupal and generate something you will see the auto-completion on the CLI. As I said the idea is Drupal console could be working autopilot so you don't need to have previous experience with Drupal console or Drupal 8 to start to use so in all our commands we have an interactive mode so as soon as you start the execution if you don't know the parameters we offer you a question about what is required to execute this command and sometimes the question provide the actions it's like if you are generated a controller and you want to inject a service as we use independence injection you will have a list and just using the algorithm of your keyword you could navigate or search by the criteria or steps to find the services you want to execute and when you don't want you know that so it's not like you need to know around or hold the system because again the idea is you don't need to know everything you need to know specifically what you want and the output we generate is obviously all the decorations and the developers they need to concentrate only in the business logic which is the part of the client they want to pay if you say I spend six hours understanding PSR4 to be able to include the namespaces I will say I don't want to pay for that this is the objective this is why you need to use the Drupal console and again the junior it's not necessary to be prepared for that but if you are an experienced user you always you could put the parameters in line and then you will get the results and even better we have a global auction this is dash dash generate dash so you execute the command using interactive mode and at the end they will produce an output like that so you just need to copy share it with your friend in Slack and then he will get the same result as you in this way we will avoid any miscommunication like when you say by phone or something click here click here click here no you execute by yourself in interactive mode copy and paste and he will say he will get the same result as you and let me let me tell you how this happens you know you see all this really nice questions the auto completion thing and all this like you know confirmation yes no so we are using something called Drupal I mean symphony style well Drupal style is a class that we are extending for from symphony symphony is used to called symphony style and they say is a way for they decide to do some standard way of outputting information on the CLI and we are extending this adding a little more features but basically working with this is as easy as you know importing the class creating an instance of this you know and passing a few arguments and then you know in order to output like common text like title or section info or even a table you use the methods within the IO object you can easily I mean output error or warning messages or success messages in a really very good way of output and as you can and you can also ask for when you're asking for question you can say I want to ask and show a list so user can use errors and show as mentioned or start typing and then filter in the result using like choice for that or confirmation if you want to ask for yes no you can even use this as hiding you know for as if you don't want to show the value like you ask asking for a password for connecting to your database I mean features that you can just you see and what we just end up adding a few things or extending this is for adding a common block which is basically a different color of a common we want to we didn't want to use like this I mean red because I mean we use red for errors and warnings we do want another color like less like you know heavy for your eyes we have choice no list because the default component show you the whole list of options let's say you have a list of like it's totally fine but how about when you have like say selecting a service from the container and we have like a mongo's number of it so we add this choice no list I mean I know the name is totally like weird but I mean that's what we came at and this is something when we have time we will try to split out in a separate library to try to be able to use even in a symphony console project so you just import the library and create your symphony console for something and use it in our style yeah that's one of the goal of us for start breaking the project in separate projects instead of you having like monolithic things or ideas start contributing back to all those projects so you can take advantage of those in other parts and other applications and again I was mentioning the really reverse mode so this is how it looks like we have this red for errors or warnings big green thing for success and guess what we just take advantage of the symphony style I mean class and we just basically showing you something like this so that's one of the reasons we decide to build the project in top of other libraries right because we just want to take advantage of what's already there want to talk about code generation so this is the big one right everybody came for generator and stayed for the other commands so the idea is we provide generator for the almost basic more than basic needs you have a programmer so we have generator for models, controller, forms, blocks entity contents, plugins CK editor plugins and the REST API so if you find something that you can need to do in a jubilee project that we don't have a generator well this is a challenge for us but at least you must be a senior developer to not senior developer your requirement is very very specific but we handle almost everything I don't want to sound pretension but what I mean is if you face something that we don't have please start an issue and we will try to accomplish why don't better send a pull request exactly but again you can basically you can generate almost what a developer needs a controller, a routing, a form a block, a plugin for views this is a how many of you use views PHP in Drupal 6 or 7? bad guys because this is a security issue for that I use the part the problem is we have a generator to avoid to do that and use properly but we will always do that because create a handler for views in Drupal 6 and 7 7 was hell complicated but now it's easy with the generator so please try, test, and broke and report the issues okay that's fine and just kind of showing you some commands for talking about system interaction we have side status basically the status report you can see from the UI but you don't have to type your password click click like 4 times and see the result so you can get it from CLI use the login URL for all friends then you get it here module install as well as themes same for download and we are taking advantage of core features for generating like dummy data so we have create node, create term, and create user commands so you can populate your site or seed your site with fake data on your build process we have talking about debugging we have as we kept mentioning Drupal console give you the chance to discover all of the new subsystems in Drupal like container like services and service container routes on the routing system plugins definition in event definition it also allow you to like listing any configuration in a state but if you want to know again more about the debugging feature of Drupal console make sure you attend our session tomorrow 5 by p.m and you want to talk about this a lot of people ask what about to execute all commands in remote mode some people think oh it's a generator tool so we only need to use local but actually the idea is you can expect all your remote site to do that for that we have some commands you just need to define what is the the credentials and remote the SSH and everything and then you could say I want to because maybe you developed something you push in the server and the routing is not working so you need to review if the routing was properly registered but there is no way to do but if you install Drupal console in your remote server and enable the credentials from your machine you can get a list of all valid routers in your in your depth services to do that so what you need to do that you need to go to install the Drupal console in the remote server if you have a user obviously with remote execution shell and that's it until now only two hosting providers allowed that one in German and another I don't remember so channel me but we requested to the big ones to try to include but it's obviously out of our power right? I mean you have a VPS you can obviously have it and run it but if you are using any other provider you can ask them to you know I want to it will be great to have in Drupal console in your platform yeah probably and might be you are guessing could I write a command for this I mean there is a way I can write a command sure there is and actually we have a command for generate commands let's say you might have a module and have an idea of a command but you know that command is only for your needs it's not something that could be probably doesn't fit you know in Drupal console core so you want to add in your project Drupal generate module first generate the module and then have this Drupal generate command in this case we are using the inline mode so I'm passing all of the options and this is what it will happen a new class will be created and this is what it happens in every single generator it creates a class in the proper directory like this and with the proper name because you know when you have an object the type of between the object name and the file name didn't load it because of how PSR4 works and it also takes care of adding the namespace it creates the file in the proper directory register with the proper namespace it also add the proper importing the classes that you require in this case it's a command but if you are generating a plugin or a controller or something it imports the require core classes and then we are using annotations in order to set the if this command belonged to another extension in this case we call extension because extension could be anything like a module, theme, or profile so you just give it a single name instead of having you know team or different like values so we call extension so you need to do something like this well you don't have to because the generator does for you but if you want to create mentally and set which is the extension your command belongs to and the extension type and then it also extend you know we are extending symphony command class so we are trying to keep as much as possible standard symphony command then it also since I decided to inject a service it also takes care of you know creating the protective property adding injecting this using dependency injection on my constructor and adding the proper configure method all this is you know that for you this is how we manage translations so instead of putting the text we call a key and it also add the execute method this is the one who execute the command itself and then this is how you use your functionality right and you want to output something like this okay and how this service getting injected in my command well the generator it also takes care of creating the the service file for you so module.service.jammel and as you can see here we are defining the service name we are also telling which class should be registered as a service and it also we are using right here like passing the argument which this is a Drupal course in the Drupal course containers I mean Drupal service from the Drupal container and it also we are tagging this as Drupal command, tagging this as Drupal command this is how Drupal console find out this service is a command. While talking about current integration we have a few modules it made attack, web profiler, Drupal comers, configuration split and schedule updates I mean if you know about any other module please let us know because we are actually we are here this week to help this maintainers of those modules to kind of update to the latest release RC1 because as we mentioned it changed little things here and there so now command should be registered as a service okay maybe you think this project is kind of helpful and you want to contribute so this is not rocket science it's you know the steps are the same as usually you know work in the project, client and just getting the dependencies start working on it and yes send a pull request so we are using github we are syncing the project with Drupal.org with DO but we maintain you keep the development on github this is because when we started the project a lot of people more people from the symphony community start helping us with sending requests and they don't have like the user account and we cannot force them you know create a user there you'll be able to send a patch and then you know we decided to do it that way so we keep the development on github and we provide with two command examples if you want to create your own query command this is an example command and something we call example container hour please don't use that one just use it I mean there's no other way to do that and we provide you with those examples you can just copy paste it and just change the name space and start working it so again this is for creating commands within the Drupal console mean core project and as a big big notice this project is a symphony application so the code you look you will see here might be look little different you know the coding style we are using is PSR2 we are not like Drupal coding style on the project on the application level right but all of the generated code is Drupal coding style I mean well let's let's finish grabbing things up with about the roadmap so our roadmap is obviously increased code coverage and improved documentation and translation you know we need to we need to we know we need to like increase I mean adding more tests to the project make sure everything is working fine and the way we are now that we are taking advantage of injecting services from the Drupal container so we will be able to write test and say more Drupal alike tests so it will be easier for people to help us writing those tests as well and finally do you like to help I mean there are two ways you might be a freelance developer what you can do just try to find some time I mean at some point during your working day and just try the project love it or hate it reporting an issue it's really important I mean it's not like you require to write something again this is not broken science I mean using the project and reporting an issue is awesome it's great it helps a lot it also you can I mean if you will send a pull request we will really appreciate pull request and what if you are a company if you are a company maybe this will be a good starting for your resources to learn Drupal A from inside and we are more than happy to try to explain there how to contribute in office hours and obviously your thing will be getting reputation as one of the more new exciting projects in Drupal A universe in those days in my opinion so if you have any question for us feel free to stock ours in our Twitter or github.com or using the mic right here or using the microphone this is all we have so if you have any questions please go to the mic one last thing before the question we have a buff as well if you want to keep the conversation we can move to the buff after this closes or just keep the conversation on the hall feel free to interrupt us during the conference again thank you for coming thank you for staying all this time and if someone has a question here's the mic there are some stickers if you are interested I have a specific question with the user login command is there a way that you could pass there's a way that you can pass the site domain to the command is there a way that you can pass the browser you want the login URL to open in to the command open the browser? not actually but yeah well yeah the doable is not done yet and we can work on that during this week if you want to that would be awesome thank you yeah okay so the question was if there is any plan to do integration between Drosch and Drupal console we tried in the past actually one time an integration was written was sending a pull request but it wasn't accepted this is all we could do at the pass and also another problem is we work using OOP and Drosch doesn't and I think it's it's not necessary it's like asking an integration between panels and display suite why is that necessary? you could choose that's it right? we try we do Orbez with data session last triple con we spent hours doing this it didn't happen unfortunately it will probably not this is a good thing about open source you could choose the tools you want to to use that's it for us it's not like a competition so we decided to do a symphony because when we started this it's like we are more jealous than how symphony console works to have that in Drupal A that was the real motivation actually if you show this to a symphony developer because he don't know anything about Drupal he would say ah a symphony console in Drupal A that is exactly what it is hi I want to ask for help in the name of the third developer David who is working really hard today trying to port the Drupal console and actually Drupal 8 into a Debian package Debian start into code freeze at November 5 so we have at least more less 15 days to make that package and put it on Debian to have Drupal 8 and Drupal console at Debian and the next stable release so if someone has some experience maintaining Debian packages so if you are a Drupal Drupal console user he could be a great help for him another question we can go to another question you could so with the change to the installer so do you recommend doing a global install and have an install for each project the global install it's only a launcher so it's basically a target for accessing without typing user local or just finding out where the fire was downloaded that contains a minimum amount of commands just like for it like listing but once it finds a site it discovers the rest of the commands so what we just did is breaking the project we have the launcher which is again the global one that you should install we highly recommend you to do that then going to your site use bendor vindrupal or cdweb and that bendor vindrupal it's just a target for doing this but again it's a minimum number of commands and the rest of the commands get installed within your site it means if you have 8.1 you can have some commands then when it wants 8.2 got released next week maybe you have another version you can get new commands or new features without breaking 8.1 is that clear in the hierarchy of the project? not again that's something we need to fix it's broken on this version it's like a regression thing I won't say broken and one last one is there any plans for Drupal 7 support considering it might be around for the next 5 years? sadly no because they all would be yeah and the reason we decided to use a symphony component instead of doing in EAS is because we take advantage of a lot of components in the Drupal container we can discover things we didn't so that's why going to 7 will be hard I guess 7 is maybe going to be a supporting composer? probably the component is there someone could probably write commands we can help them actually I've been discussing this with backdrop people and they are interested we won't run it for sure I guess the hardest part is that if you're still supporting Drupal 7 and Drupal 8 sites over the next few years Drupal console is D8 only but actually technically it could be possible because now we have the launcher so the launcher if we invented some release for Drupal 7 or someone created a release for console for Drupal 7 then the launcher in theory could be the type that and execute that which is one of the idea of separation that we try to do this kind of crazy ideas and then we can use the Drupal console core thing which is basically an extended version of the symphony console component to in top of that build their commands what we do with that is that we request because we work in github people need to commit with the same email they have in Drupal.org and then when we sync in github but the company doesn't get the attribution this is the developer and that's a really nice thing about like DO you know I don't want to talk about the patching and then you know the Kishi Q but you know it's kind of it's highly complicated for newcomers for people new to the project and at some point again as I mentioned if you are not part of the Drupal community so you're required to have a login for that and I mean everyone has a github account nowadays it's like it's easier to find out someone a github account that with a Drupal.org account and I mean hopefully the Drupal system has a way to like passing extra value or metadata probably that could happen maybe it's already there and we don't know we can probably find out about this and if it's we can probably say if you want your company to get created for this do you have to like format your commit something like this if that it's doable from the DO side side of things we can easily even write some documentation for that Any other question? No? Thank you so much