Go back

Talking Drupal #549 - Catching up with the DDEV Team

77m 15s

Talking Drupal #549 - Catching up with the DDEV Team

This episode of Talking Drupal (episode 549) focuses on the DDEV tool, with guests Randy Fay and Stas Hook discussing its current state and future. DDEV is a local development environment that allows developers to work in isolated spaces on their computers, ensuring reliability and consistency across platforms. Recent release 1.25 emphasizes reliability and support, with new features including a revamped DDEV share that now supports Cloudflare for sharing projects with collaborators, and Podman support, a Docker alternative without root access, developed by Stas over a year. Stas, a DDEV maintainer from Ukraine, has been involved for three years, focusing on solving complex network problems and improving stability. The module of the week is DDEV Drupal Contrib, an add-on by Moshe Whitesman and Deza Bezo that optimizes local development for Drupal Contrib projects. It aligns with GitLab CI, providing commands for code quality tools like PHPUnit and ESLint, and allows cloning a module and adding Drupal to it, simplifying the development process. The add-on also features a core version command for switching Drupal versions. The episode also promotes the Drupal AI Summit in New York City on May 14, 2026, which will cover AI governance, data ownership, and production integration.

Transcription

10751 Words, 56874 Characters

English
This is Talking Drupal, a weekly chat about web design development from a group of people with one thing in common. We love Drupal. This is episode 549, catching up with the DDEV team. On today's show, we're talking about DDEV, what's new, and where the popular dev tool is going with our guests, Randy Fay and Stas Hook. We'll also cover DDEV Drupal Contrib as our module of the week. Welcome to Talking Drupal, our guests today, our Randy Fay and Stas Hook. Stas is a DDEV maintainer and longtime PHP developer from Ukraine. He focuses on making local development more stable and easier for thousands of developers around the world. Stas, welcome to the show and thanks for joining us. And Randy is an old Drupal hack. I disagree with that, but we'll give it to you. Or an old hack in general, who has ended up maintaining DDEV these many years. He loves helping people out with the local development and web, with their local development and web troubles. And also has quite a life of bike packing. Randy, how are you doing today? It's great to see everybody again. We fun. I'm John Picosi Solutions Architect, and today my co-hosts are joining us back doing well, I hear, Rod Martin, owner at Navigate Tomorrow. Rodger feeling better? I am, thanks. It was not the experience I wanted last week, but glad to be back. We're glad to have you. Nick Lafflin, founder at Enlightened Development. How's it going, Nick? Good morning. I said just talk about DDEV. I am too. But before we do that, let's talk about our module of the week. And to do that, we're going to turn it over to Martin. And just includes a product marketing manager for Aquia, for Drupal at Aquia. Sorry, Martin. And to maintain our number of Drupal modules of his own, Martin, what do you have for us this week? Thanks, John. Have you ever wanted a local development environment specifically optimized for working on Drupal Contrib projects? There's a DDEV add on for that. It's called DDEV Drupal Contrib. It was created in April of 2023 by Moshe Whitesman and Deza Bezo of the DDEV team. It has a 1.1.5 version available. It is actively maintained. In fact, I see there is a commit just this morning and it does have test coverage and for documentation there is a pretty good readme. It does have eight open issues, three of which are bugs, which is pretty good considering it has 130 stars on GitHub. Now when you use this DDEV add on, you'll have a local environment for your Contrib projects specifically set up to be aligned with the GitLab CI approach from the Drupal Association. That means you're set up to run locally all the code quality tools that can run in the GitLab CI. CodeLinters, data analysis tools like PHP, CS and PHP stand. Add any test that you have set up for your project. Running these locally should be much faster than in the GitLab CI so you can iterate faster through the process of identifying and rectifying any issues. Plus, less time spent running those jobs in GitLab should save the DA a little money as well. This add on provides new DDEV commands, notionally one for each of the CI jobs, PHP unit, ESLint, Stylent and so on. That makes it fast to rerun a specific job that you're working on. It also adds a new Pozer command that creates a temporary composer.contrib.json so that Drupal Core recommended becomes a dev dependency and runs composer install so that your projects dependencies are all available. Another new command is Simlink project which creates a Simlink to your project in the appropriate directory by default web/modules/custom. The new command worth noting is Core version which updates your codebase to a newer or older version of Drupal Core and that sounds super useful to me. I will add that in the process of researching this add on, I notice that the DA GitLab CI now includes a new job to test compatibility with Drupal CMS which I personally hadn't heard of before. I didn't see a command for that in DDEV Drupal Contrib so maybe that could be a future request. Let's talk about DDEV Drupal Contrib. You go first Nick. I have questions because I'm curious that the biggest problem I always have with Contrib development is getting to the issue fork and I'm curious that this helps all of that because I'll be honest I normally actually do work on Contrib modules that I'm not a maintainer of so I don't have a setup. So as an example I helped convert the Meditag module hooks to object oriented a couple weeks back and my process had been and maybe these work together but my process had been I just I have a Drupal environment that I have set up that's on 11 whatever and works and has core recommended and all that stuff and then I just require Meditag and then your team has a tool that you compose a tool that will do the switch it from like a package to a git clone and then you can then just check out the issue fork but that's always the most painful painful part for me is getting a git clone of the project does does this add on solve that piece of the puzzle. It's actually quite a bit better than well you're you're you're approach is fine anyway that you want to approach the problem is fine but the way this works is you check out the Contrib module meaning you can check out your fork if you want and then it adds Drupal to it so it's kind of an opposite approach and it's very well I hadn't tried it for quite a while till this morning but it's very for to solve the problem you just said it is so clean it's perfect. Okay so you just do a clone check out the issue fork and then add this add on and you get Drupal running that's it that actually solves one of the big problems with the other method which is when you have multiple projects in there things with Drupal versions get a little sticky. And there's a group of core version command that let you choose which version which Martin just mentioned. Yeah I'll have to try this out then because yeah I mean now I don't have a question because I just answered my question I was like I was wondering if I had to have like Drupal running in 1d dev and then this running in another and then like there was some sort of back and forth they were doing but it sounds like that's not the case as this will install Drupal into your kind of directory or your DDEV environment. The Joaquim approach which is intended for core development is very sophisticated and it can be used as Nick has used it with also sim linking a checkout of a contripe file but that's not the you know that's not exactly the normal situation so it's good. Just one minor thing so he has multiple projects so the one that I'm using for this is specifically for contribe. Yeah I actually don't use his setup for the core I mean the core development. I've only used that one okay. I have the core one my core development pipeline is let's just say more complicated than average so that's kind of custom but no he has a contripe specific one and it helps with switching back and forth between like a composer install and a get this one has been. So well maintained by Moche and company that it's just a delight to see how well taken care of it is it's one of the definitely one of the best maintained add-ons that we have. I mean you know except all the ones that Stas maintains all the time but yeah I mean just it's been lovely lovely maintenance. Awesome. I did want to add one thing Nick which is in that scenario of just wanting to pull of you know the get maybe a specific branch on a project like maybe to evaluate an MR or something the other approach that I've used is just doing composer require and then you can do the prefer source flag on there and then that gives you the get repository that then you can switch to any branch so for me that also has been pretty clean but you know this gives you certainly a lot of extra advantages over that. I have to get that out of mind because I have used that actually in the past but I was forget about it. How I mean this sounds like pretty easy like way to approach a contrab module development even for like a dumb dumb like me right so like yeah would you say it's pretty easy to implement are there any. that any of you have seen kind of working with us. That people people should know of? I just followed the readme and boom, there I had it. The only thing I was missing, maybe was the core version. I had trouble with Drush that I don't understand, but I think it's because of the current Drush being in the middle of multiple worlds problem. I think they finally fixed this infinite stuff for Drush, but there was about three weeks who were Drush just didn't work with heads. If you didn't end up on a release version of Drupal, Drush wouldn't work. We'll say I haven't actually personally had a chance to try this yet, but as I discovered this and was reading through how it works, I could definitely think back to a number of occasions where this would have been a huge time to ever form me, so I'm pretty excited to try it out. Awesome. Maybe you can provide us an update up once you do. Maybe we can just get Mochon and talk about it for a whole episode. Sounds like a pretty good idea. I have a whole Moch episode. You could just have a Moch episode like 25 years of Drush, you know? So 540-540-something-moch. We should get him on to talk about the new Drupal command that they're working on. The new CLI command that they're working on, there's a lot of energy behind that. Gosh, that sounds ominous. Yeah, they're looking to get rid of Drush and basically put it in court directly. Oh, man, could they please do that? That feels like a way better thing. You don't agree, Nick? I can see it in your eyes. You're like, no, no, no. No, thank you. No, there's advantages and disadvantages. So very briefly, we're going off topic, but very briefly, the big disadvantages, as I mentioned, Drush was broken for about three weeks because we upgraded core to Symphony 8 and Drush didn't support Symphony 8. Yeah, but that wouldn't happen if it were coupled. There'd be tasks. Exactly. That means that we wouldn't be able to do something like update Symphony without updating everything that Drush has to do right now, which can take a decent amount of effort. Okay. So having them synchronized or like Drush supports all the way from Drupal 9 to Drupal 11 right now, whereas the internal tool won't, it will only support the current version. So let me ask, and I know this would return on the send of the Drush show, but let me ask, is there a method at which Drupal core? I mean, I'm sure there is because we include Symphony and other projects, right? Could Drush just be brought in as a composer dependency for core? Your answer is that, yes, that option has been discussed, but for the same reason, because like the Symphony stuff, you literally could install Drupal at that point because it requires a different version of it. And Drush, yeah, short answer is no. Long, slightly longer answer is look at the issue queue to see why. All right. I'll put it in the show. I need some late night reading. I'll be sure to go to the issue queue. And with that said, Martin, thank you for bringing us such a topical module of the week. If folks wanted to suggest a module of the week or just chat with you, how could they go about doing that? One thing I just wanted to also mention in closing is that there is a D-Dev add-on registry. So we've talked about a super cool one today, but there are also ones for doing things like core contribution or even for like visual regression testing. If that's the thing you wanted to do locally. So we'll have a link in the show notes, but by all means, you know, people should check that out and see if there are ways that they can, you know, get even more capability out of dev using that library of add-ons. If folks want to talk to us about candidates for module of the week, so as we've seen, they could be modules, but they could be themes or D-Dev add-ons or all kinds of other fun things. We're happy to talk about those in the Talking Drupal channel of Drupal Slack, or if folks can reach out to me directly as Manclu on a variety of Drupal social and Drupal platforms. Also, I will be at the Drupal AI Summit next month, actually a month from today in New York City. So hopefully I'll see some folks there. Great. Thanks, Martin. Thanks a lot. See you next week. See you next week. And here's Matthew Saunders to tell us a little bit more about the Drupal AI Summit. The conversation around AI is changing. We've moved past imagining what AI can do. The real question now is, how do you operate it in production under real conditions with real consequences? That is what the Drupal AI Summit in New York City is about. It's happening May 14, 2026 in New York City, co-located with API Days New York. This puts Drupal into a much broader conversation with enterprise leaders and teams already running AI in production. We'll have a focus on governance, data ownership, integration, what actually happens when AI systems are live. You'll hear from people who are doing this work today, including what worked, what didn't, what need to be fixed. So if you're responsible for platform or architectural decisions, this is a conversation I think is really worth being part of. You can find full details at dripple.org/ai. I really hope to see you there. All right. Well, thank you, Matthew. And hopefully folks can get down to New York and enjoy the Drupal AI Summit. Okay. So I like to think that everybody knows what Ddev is, but I'm probably incorrect in that thinking. I know that everybody on this call knows what Ddev is, but Randy, can you just kind of tell the audience what Ddev is and the problem that it's trying to solve for Drupal developers or developers in general for that matter? Oh, the simplest way to think about it is that every contributor to code in a website project needs to have their own space to work in. And the normal place to do that work is on their own computer. I like to make the comparison to like artists working together on a project. They can't work on the same easel. It's just not going to work out. They have to have a separate space where they can work that has their tools and their setup for it. And we've gone through a lot of things over the years to figure out how to do local development procedurally with Git and pull requests and branches and that kind of thing, but you have to have your own space to work. And you would really like that space to be reliable and configurable to do what you need to do. So our aim with Ddev is to make that work the same on every platform and every Docker provider so that developers can have their own space to work and do local development or separate development, you know, development of a space that I own. So that's the basic idea of Ddev. So Stas, can you maybe give us a quick introduction to how you got involved with Ddev? Because I know that you from the Drupal community ran this very much the face of Ddev, right? He started it. But I know the contribution that I did to Ddev, I worked with you and I know that you work on it a significant amount. So can you tell us how you first heard about Ddev and how you got involved? Yeah, I came into Ddev from Laravl, that was my framework. I was working on it at that time. And I just searched for some tools that helped me do my work and do not think about how can I set up my environment for this and one of the first my findings was Ddev and it really got my attention because it had so many features and also very nice documentation. So I immediately started using it and after some time I wanted to contribute back and here I am now I maintain it. How long have you been maintaining Ddev now? It's been three years, four years? It's about three years from 2023. So three years as an official full-time developer but before that he was doing really sophisticated things, solving really sophisticated network problems that nobody else had a clue how to solve and things like that. So getting back to Ddev. of the show notes. I'm a second question in already went off track. Can you tell us some new notable features or improvements in the most recent releases? You guys are always working. Yeah, go ahead, go ahead, stuff. Yeah, I just wanted to say is that we follow a release cycle of Debian. So we usually make a new major releases with Debian when it makes a new major distra. And we recently made a new one, one dot 25 release. And the main thing we are working on is bringing all the new versions of the tools that developers use like add in new pitch p versions, buy them some dependencies and add in new features that they request. Right, you can continue. As we were talking about this this morning, you know, the Google doc was asking about features. And we do have a couple of things to say about that. But you know, we think that our, and I think the community agrees, our goals for our key features are to be reliability and good support. And so we really want to make it so that your experience doesn't change that you can keep using Debian the way you have. And that you just, you know, the more sophisticated, there's always sophisticated things being added with add-ons and otherwise. But we really want to have that consistent experience keep up with all the, all the stuff around is changing all the time, as you know. I mean, all just like with dependencies on PHP, the dependencies, the things that break on DDA of every day or the break, you know, in our upstream problems is something that we have to keep up with all the time. Stas had to fix something this morning because something broke and craft CMS with their latest release. And so that showed up another problem. So Stas is always paying attention to those. So reliability and good support are our key features. We do have some cool new features that we've added recently. The DDAF share was completely redone so that now you can use Cloudflare D as an addition to Engroct as a shared device. And a lot of people don't even know what DDAF share is. It's a way to share with any of your collaborators anywhere on the internet. There's a fair number of DDAF users that have never used it even though it's been in there for, you know, as long as I can remember. But now it's even easier. So that's a very cool thing. I think the only time I've ever used it was for mobile testing. It works great for mobile testing. That's a great one. I wanted to visit it on my phone. But a lot of you use that nearly enough. People try to set up their local network so they can do mobile testing. And you can do it. And it's documented. Wow. DDAF share is so much easier because you don't have to do anything to your mobile or think about so many things that work so much easier. But also, Stas did this enormous work to add podman support, Intededev, which is not a trivial thing. His podman and doctor are not the same thing. But he actually worked for like a year doing the pre-rex for every piece of doing that. He saw it as the whole process. And he did all the pieces of getting us into using APIs instead of using Docker directly, for example. And then the final denoume was actually having podman support in 1.25. Sorry. I'm not familiar with what podman is. It's a doctoral alternative. You know, I think about it. Stas? It's just like Docker, but without root because usual Docker, Viman runs under root reducer. So it has some complications in restricted environments. So if some people, some companies have some policies for this, they can use podman with DDAF right now. It also has a different history. It's another way to run containers, but it is not from the Docker family. It comes out of Red Hat. So it's out of that hole. So you find people that use Fedora or whatever that are very opinionated about the fact that you shouldn't be using Docker because it's commercial and stuff like that, which is not correct. The core of Docker is open source. But you'll find people very opinionated and a few people, especially on Linux that are very happy to have that new podman, especially rootless podman support. Yeah. Very cool. Just a reminder to our listeners, we're live right now. We're streaming this live out to a couple of places. So if you're in those places and you want a comment, feel free to do that. We'll try to bring your comments, questions in and talk about them. Talk about them with the DDAV team. Yeah. I wanted to say hi to Rojab and Teran. Thank you for watching. So I've got a question for you guys. Again, I don't know how we would do Drupal without DDAV these days. Give us an idea about how the Drupal or how the developer experience in general has changed in the last year with DDAV. There's been so many. It's like you said, it's so big. Hardly anyone knows about share or not enough people know about share. There's so many parts to it. How has that evolved over the last year for developers? We like to say that it stays the same unless you need to use extra things. So Mike and Ella wrote a book about using DDAV in 2018 or a long, long time ago. I'll bet you that you could do everything that he said still. It might not be the best way to do it these days, but I'll bet you you could use the exact commands in that book and do everything you needed to do. Yeah, I'll agree with you on that because I've read that book and I reviewed it and I actually did videos based on the book. Or yeah, 100%. If the command doesn't work, there's a very polite message telling you why it doesn't work and what you can do to get it to work. That is one of the greatest things I find about DDAV is the fact that even when I type something wrong, it goes, "Well, I think you meant this." And I go, "Yes, I did." And then if it's like, "Oh, this is deprecated, here are the steps you need to fix this problem." So it's very useful in that way. I will say the one thing that I wish was easier and tell me what I'm doing wrong because I can never remember what I need to update database versions. My process always, for some reason, sometimes the documentation for that process doesn't show up when I Google it. So here's my process when I need to upgrade database versions. I go into the config yaml and change it to the new version, run DDAV start and says, "Hey, you changed the database version. You can't do that. Change it back and then run this command." And then I have to copy that command. Change it back, start it for the command to migrate because I know it's like something like migrate database or something. Really, I just want to command it to be like, "DDAV update, MariaDB, 10-11." Do you have like a ever note or a notes app that you drop helpful things into because that feels like a real good solution for that one? I do. Oh man, that's harsh. That's harsh. The thing, I'll make a note and try to get it into the release to the notes here. Basically all you needed was the original command that you later ran after you took out. It is complicated because there are just restrictions on what the actual database binary can handle. And so that's why we make you basically delete and then reload your database from text version after a change. I claim that it's because of the underlying databases requirement. There are, you can upgrade MariaDB usually one version at a time, but a lot of times you and your situation, Nick, are probably wanting to go from 10, you know, from from 10, 11 to 11, 8 or something like that, which is not explicitly supported. - Yeah, and in many times, even if there's a flag or something, 'cause many times I have a local copy of the database already, and so I can just re-import it. If something goes wrong, it's almost like, I'd almost want like, hey, we noticed you changed this, is it okay to just blow away the database? And then I can say yes, and then it will update and I'll re-import the one I have, or I can say no, I need to back it up first and kind of roll the back and fix it. - Yeah, but wouldn't it have to first downgrade, get a copy of the database, and then go through that process? - Not that I'm trying to solution, but it comes naturally to me as a solution architect. - No, no. Only if I don't have a local copy, right? - Right, but like-- - The import, I mean, there are some versions where there wasn't perfect backwards compatibility back. - That happened to me and I've updated my database like maybe all of, hmm, two times since I started using the dev so long ago, right? Like, if that happened to me, I wouldn't have a copy of my database. Like I'd have to do what I'd have to-- - Well, that's where I'd say I have to go back. - That's what I'm saying, it can be a prompt. So if you update it, it can be like, hey, we can continue this update, but we're gonna delete the database, or we can back it out and you can back up your database first. - Yeah, you know, that'd be a welcome issue, Nick. - Why don't you propose your solution? Because I have done, I've seen people hit that bump before and maybe I've even been to get it. But I always have a local text dump as well. And so I just did have to delete and change it and go on with my way. But a little bit of prompting there would be really useful. So an issue would be very welcome. - This is also key insight as to how Randy's been able to effectively manage this project for so long 'cause he is a master at delegating and also very welcoming to say, like, hey, go put an issue in for that. We'll talk about it. And then like we might say no, or we might say yes and who knows, but put an issue in. Let's start there. So I wanna ask about coder.ddev.com and how it's bringing Ddev into the cloud. Randy, can you tell us a little bit about what coder.ddev.com is? - So we had for a long time, there was a lovely service called GitPod and a lot of, a lot of Drupal contributing stuff was built around that. We had some really nice features that were done. There was a thing called DrupalPod that would open a Drupal issue. And GitPod just decided that they wanted to be an AI company and they changed their name and threw everything away and things happened. And the solutions after that were, there are, there is a competing solution and I'm a little sad to be competing with it because it was some good Drupal forge, the folks that do Drupal forge did build they put effort into moving that DrupalPod capability into Drupal forge, which is very welcome and good, but it was not using Ddev and it did not, so it did not introduce people to development the way they would actually use it in a local setup. And so we wanted to get something back like that and we use coder.com, which is an open source, or the core is open source. It's one of those premium jobbers. We use coder.com to implement a parallel setup that actually runs on currently on one big Hetzner machine in Helsinki and uses coder.com so that you can run Ddev and work on especially Drupal core issues very, very easily. It even, it has a thing that'll spin up the exact issue and then you're sitting in a Ddev environment and you can do anything there that you would do locally. So it's essentially like having a local Linux Ddev setup that is completely capable and that has prompting to set up so that you can work on Drupal core issues and it will have Drupal constrib support in the future. It's an experiment. We don't know how to keep spammers out of it. We don't know how to keep crypto miners out of it. We don't know how to offer it as a service. We don't know how to get it paid for. It only costs us at the, at its current situation, it costs us $50 a month. So at its current usage level, we don't, the money is not the issue, but the control, we don't have any control. (laughing) But we welcome it. Maybe we shouldn't advertise this 'cause I did a whole blog about it so, you know. - That's a great tool. We want to promote it, but let's get some crypto mining protection in first. - So at its base, right, it provides Ddev in the cloud. And I think you hit on something there and when I talked to you at DrupalCon, you had highlighted like, yeah, we got it out because we wanted to, you know, we wanted to be able to use it at DrupalCon for Contrib. And as Taryn said, you know, thank you for all the support during the first time contributor workshop, Randy. Like we know that, you know, Ddev was, you know, a very helpful tool in that effort as well. And, you know, I think the coder.ddev.com and like having that cloud version of Ddev is like, I won't say it's an evolution 'cause it just feels like another, another, you know, way to interact with Ddev, right? Like, I don't think we're suggesting that everybody just go to the cloud. Like there is some benefit to running Ddev locally, but this feels like a good, a good, you know, sub-product or a good alternative version for some folks. I've used it for, you know, I could do Ddev development there and be perfectly satisfied as long as I have good internet, of course, I was on the train coming back from Chicago, from DrupalCon in Chicago, and I did a significant amount of work just using that and there's a whole, you can, you can access the command line a whole bunch of different ways you can use BS code in it, two different ways. I've been pretty satisfied with having it launch a local BS code that then uses the coder plugin, I guess is what they're called for extension on BS code and let's me just do anything I want there. It's a fully capable Linux implementation of Docker and Ddev and of course, I can use it for GoDevelopment too, so. Wait, hold on a second. Did you just say that there's a plugin for BS code that allows you to work on your local BS code with the cloud version of Ddev? - That's right. - That's right. - And it actually clicks and fine. - It's wrong. - Okay, so it's not wrong. - There's actually, I'm gonna go deeper. - There's a little bit. - Yeah. - I'm gonna get coder working inside a Ddev and then connect that coder to BS code to connect to a streamer. - It's, you don't have to do anything. If you use BS code, you open up the, you open up the coder.ddev.com and there's a little button that you push in it, launches it locally on your BS code and it does the coder extension for you. It's quite shocking. - Yeah, I've seen the, I've used remote connections in the past but more for editing like a staging environment or something and testing stuff but I mean, this seems useful. One of the nice things about this is it makes the, I've seen people talk about using things like this for like peer programming so that you can train more junior developers. Like you're working on the same, especially when you're remote. You're working on the same instance. If they get in a tight spot because they're running random commands, you can kind of back them out and show them how to get it set up and fix things. So yeah, it seems useful. - So this has serious implement. - Go ahead, go ahead, right? - Sorry, go ahead, no, go ahead. - The peer programming capability of coder is actually there and so I just made a note that I need to make an issue about that so that we explicitly implement that. Sorry, go ahead, right? - No, I was just gonna say, I just spun it up 'cause I actually not trying. this before. And this is huge. I teach the five day immersion class for Aquia and two days of module development and a day of theming, you know, two days of sight building and with a couple of clicks of a button I'm there in an environment that I don't need to have anybody install anything because it's all beginners. It's pretty cool. Yeah. Well done. I mean, it's going the next level because I mean, I always said, I've always said like that's what D-davits for me because they used to be like like every time ready for making our lives easier. If you were trying to teach somebody how to do Drupal in the past, you'd be like, okay, first you have to install something to allow you to manage the version of PHP. Then you have to install my SQL or MariaDB. Then you need to install NPM. Then you need to install blah blah. Then you need to edit your host file. Then you need to install composer. Then you need to run and then it's like it's like eight hours to get an environment and then two days later, like, well, I ran this command and it didn't work. It's like, well, that's because you're PHP 7.2.3 and I'm on PHP 7.2.5. Now we need to learn how to upgrade PHP and then, oh, but we dropped this extension. So D-davir remember was like, oh, all you need to do is install Docker and D-dav. Then eventually you get to the point of, what's Docker? But now, now you don't even need that. Just go to this website and then you have everything. I actually don't like, I don't know. I moved away from Docker when they changed their kind of payment model. I'm using Kolyma, which I think works great, but maybe I'm the only one or very limited group. Let me clarify something you're saying there. You did not move away from Docker. You moved away from Docker desktop to Kolyma, which is actually using the open source version of Docker underneath it. So we all thank the Docker organization for doing such an amazing gift to everybody, maintaining that whole infrastructure. They do a great job with that. In fact, I don't actually ever recommend Docker Desktop because it tries to have so many features because of because of its monetary requirements. But the fact is that organization is maintaining this enormously important open source ecosystem, which is what Kolyma is using and Leema and we're enter desktop and several other things. So, yeah, or you can just go to Linux and have native Docker support and it will be faster, which is still using their stuff, which is great. It is. It's great. We're not going down that road, Nick, but you can go down that way with coder.ddf.com and it's all Linux and it meets Nick requirements. That's amazing. Okay, Rod, I think you get the next question. Oh, I'm so sorry. I'm totally engrossed in this. He's blown away by gdevin the cloud. I don't know where we are. Oh, okay. Well, we kind of already talked about it. Well, problems does gdevin the cloud aim to solve for teams in onboarding. I mean, that's kind of obvious, but Randy, give us the answer on that one. Yeah, so it seems to be pretty amazing. The real reason that we tried to get it going before Drupalcon was just that complexity that people have with onboarding. You bring people in, say, here, you could be a first time Drupal contributor and they have, they don't know what Docker is. They don't know what they don't know all these, you know, all the things that Nick was saying, you have all that trouble. And so you end up spending the whole day just, there's already too much to understand without having any of these things to understand. And so just getting them a starting place is great. So on the Drupal onboarding thing, that's the ticket for team stuff, we'd like to focus more on that and figure out how to make this a sustainable solution that people could use. And in some of the ways that GitPod was used. So we'll see how that works in the future. We don't want to get too distracted, but it really is fun. I, this is a amazing training tool. I think it's interesting that you say that, Randy, and that you just made that comment, Rod, because I remember, and this is, I don't know, I want to say like two or three years ago at this point, maybe longer. I was in a training at New England Drupal camp, and we were getting people going on local environments. And I don't know. I seem to think we were, we were, was this Rod's training? I don't, I don't, I don't think so. I don't think so. And I, we, I seem to remember that we were using a, and I don't necessarily want to say it was D Dev. It might have been, it might have been a competitor, but they were basically trying to get it installed on a Windows machine. And like, we got it installed fine, but then the containerization side of things was not like not having it because of permissions and all this other stuff. And like, exactly what you said, Randy, they were, they spent most, if not all day, just trying to figure out how to get a local environment set up. And like, being able to just point to D Dev in the cloud and be like, just go here and, and type in some info, and it's going to do it for you. Like, you know, it's a game changer. And it's, it's, it's, it's removing that roadblock for so many people. I should mention that while Windows was always a difficult place to work, D Dev now has really quite exceptional support for Windows in multiple ways. So we have the preferred way is using WSL 2. And you can do that now without even having administrative access on your machine, which is amazing. And, but we also support traditional Windows, we call it native Windows. And it works fairly well, but the Windows file system is not great as we know for, for web projects, because Windows is built for one monstrous Microsoft Word file. And it does a great job with that. But it doesn't do great with 80,000 files, the composer added. So, but it, but the data does work quite shockingly well with, with all of the, you know, WSL 2 into a lovely environment. And traditional Windows is tolerable these days with VueDogen. So just, just to side note, that is actually something that we spent quite a bit of time on in the last year was excellent Windows support. So the only problem is, you know, like with contributor thing is that people come in with these lockdown machines where they're not even allowed to install software. And then you're, then you're really in trouble. You know, and that's where, that's where coded.ddev.com can really, really shine. So I want to shift gears a little bit here and dive more into kind of building ddev, the roadmap of ddev. We're going to go, we're going to get into kind of the a little bit more of the nuts and bolts. But first, I kind of, I want to ask you, Stas, you live, you live in Ukraine. Obviously, right now, you know, it's a, it's a war torn country. And I'm wondering how you kind of find motivation, find time, keep, keep like making such great contributions to the ddev project. Like what does that look like for you? Yeah, it's quite difficult times. Nowadays, and I really find ddev as one of the senses it's keeping going because I receive so much positive feedback from our users. And helping people also gives positive feedback on my mental state. If you're talking about difficulties, the most difficult thing in recent months was no electricity, like several hours per day in winter. And it was the most difficult winter in the last four years. But ddev community helped me with this. And I have two echo flows that I use. So I practically didn't have a downtime. Even ddev development and also electricity is like our main source of anything like everything depends on this like heating or hot water as you see right now I'm in a hoodie because just a week ago it was gone tough we can and hot water so it was already this year just like the year before and the year before that but well we keep going and hope for the best what what are you what are you using for for internet? how the curiosity is it? it's a fiber optical network and I switched to it in 2024 and it was really like the best decision because even without electricity are your internet and I use UPS for so I don't have any downtime so it works quite well so somebody wanted to you mentioned the community was able to help with some of these devices if the community wanted to provide more was the best way for them to do that is it through kind of like the hug donations is it is there another way to yeah we have several ways to support detail just you can go on ddev.com and at the top there is a banner you can click it and there are several ways how you can support the development so it can be either GitHub or PayPal or invoice or a ch or you name it so shifting gears then back to ddev directly what are some of your top priorities on the road back right now stuff that you're kind of keeping an eye on what are you looking to add to ddev for the next the next couple of versions yeah my top priority is to improve our management for dot mv files it's like you put all your configuration in your dot mv maybe if you talk about Drupal you use seconds speech people yeah file but in most frameworks you use dot mv file and we have two ways to manage it like we have on this on application level environment variables and on the ddev level like when you go inside the your container web container you can set both the environment variables and it's a most important thing right now is to help users to decide what how we can manage it in the best way because it's not really always obvious because we have some files management for dot in v files and to be managed some of them but not all of them and we don't always say that we change them so it's quite we have several issues about it in the ddev issue view and I would like to sort this out okay actually that reminded me of something a question I had earlier that I I forgot to ask was now you Randy obviously came from the Drupal world and and started with ddev you mentioned you started with Laravel right how much Drupal do you know because ddev has branched out from Drupal but I feel like Drupal still is the primary developer base for ddev do you do you sometimes spin up Drupal and scratch your head or do you really only focus on ddev and support individual communities I actually helped with several issues in some of the Drupal project it was not core but I helped with Drupal CMS okay and probably something else I can't remember right now but it's not that hard to contribute with us has many things seem to be awfully easy for him he will he will somebody will come into an add-on or Drupal core issue with some crazy difficult weird thing and of course as you know people that create issues don't necessarily describe them as well as they might and Stas will go and reproduce it with an exact repro scenario like in 20 minutes or something that explain what the issues are the workarounds or what needs to be done or if the user has a problem or if ddev has a problem or the add-on has a problem and he'll like have that all sorted out in like 25 minutes or something wow which is amazing so when he says it's easy you have to take it with a grand it's relative I will say that the the piece that I contributed to ddev which is like the auto auto installing add-ons when you try to run them it was definitely a pleasure working with Stas on figuring that out you know I found the collaboration to be similar to how Drupal does it where there's discussion and exploration we ended up back in the original solution but it's always good to explore the bounds of the problem right very very different than most of my GitHub based contributions right so yeah it's great to have another project that's collaborative so I should challenge your assumption about the Drupal centric nature of ddev of course ddev has been the official usage pattern for typo three for probably eight years and for craft CMS for probably five years and it goes there's a there's a few other where it's the kind of official documented solution and then many many like Larry Bell and WordPress where it is a very common usage pattern even though the it may be may not be in their docs but a lot of people use it because you know like with WordPress or with Larry Bell there are WordPress and Larry Bell centric solutions which are actually quite good WordPress has a there's one called it's called local I think these days it's really really very excellent has a very nice UI and everything but it's only for WordPress and it's intended to monetize their hosting solution and so if you want to use multiple hosting solutions or you are a developer or an agency that works on multiple CMS is like most do you're in a lot better shape with ddev than you are with one of those yeah and I mean just spinning up ddev is so easy compared to other things but really is now guys are there any upcoming features that might significantly change how developers use ddev I don't I don't we we don't try to and we talked about this a little bit we don't try to make people change a lot of people still don't know that data of share exists you know so we we try to make it we try to make their patterns stay the same but provide them new capabilities and so probably the thing that impacted people's capabilities most in the last year and continues to do so is the add-on pattern which has really been great uh Stas did add-ons.ddev.com which is a whole website that lets you search and understand what add-ons are available and try to sort out which ones are like anything there's more than 200 now there's too many you know yet but it's pretty easy to sort them and figure out what's going on it's not entirely easy yet to figure out which ones are quality and which ones are maintained and we will probably have to address that in a more significant way in the coming year and how did that sorry I was gonna say Stas how did how was it working on the add-ons that did that is that just kind of pulling in information automatically through the Github API or something or yes exactly I use GitHub ABA and IBA and just make a list of add-ons with filters, sorting, all usual kind of stuff, search. Just to make it easier to navigate, because you obviously can use your terminal and just to mention we recently added auto completion inside your terminal, so you can run the dev add-on get and rest up on your keyboard and it will just pop up, you will use also the list, you can install, you can search in your terminal, but it's much easier on do it on web. I think you're re-answered to those two questions, we're probably the best they could have been. You're obviously, you know your customers, you want to please your customers, you want to do what's best for them, yeah, a fantastic answer. So I will edit Rod's phrasing a little bit. I think I got to say that they're users because they're not really paying for DDEV, right? DDEV is a free tool, air quotes free tool that people can use for their development. Obviously, we talked a little bit earlier about being able to sustain DDEV and the kind of funding goals DDEV has. There is a link in the show notes to a blog post where you can learn more about that. Borendi I'm curious and I have my own impression of this, but I want to hear it from you. How would you describe the current health of the DDEV project and its community? We sure love what an amazing community we have. I have notes for a blog post about how much we love this wonderful community, but really the essence of why DDEV is good is the community's contribution and the community stepping up and asking for things. In so many ways, we don't drive a roadmap. We have a roadmap, but we don't drive a roadmap as much as we love to hear from users about their experience. It really is great. We love to hear from people in all of the channels and Slack, Undroopel, and in our discord in the issue queue. I think we're very well in our annual summary of the plans for the year. We always note risks. We want to make sure that DDEV goes on into the future to sustain people's good use of it where they're at. Of course, both Stas and I have risks. I'm quite old and Stas is in the middle of a war to our country. Those are not trivial risks. We really want DDEV to become a sustainable entity so that we have those things taken care of in the future. Both Stas and I work full time, full time on this stuff. That's why you get the kind of responsiveness that you get for all these things. That, as a long term thing, needs to be maintained. There's a financial component to that. We certainly encourage every organization and every individual that's using DDEV to step up and recognize that need so that we can reach those goals. I've been really pleased. One of the things that we did last year was, and there's a whole story behind this. The DROC Times asked us for a better information about what our funding situation was. We ended up building a whole capability to provide that as a feed. They made that into a beautiful banner. We got to use that as a beautiful banner. Then we implemented that into DDEV's start. Once a day, you get to find out what the funding situation is and the goal. That communication with our actual users at a pretty modest level, I think, has been really, really good. We probably had thought in the past that what would happen with the funding is that we needed two or three sugar daddy agencies to step up and fund us. It never really much happened. In fact, they come and they go. The fact that the entire community now is invested and informed about the actual funding goal and situation, I'm really happy with that. A lot of us, I hear from people that they love to see it in CHOP in that daily notification. We continue to encourage everybody that benefits from DDEV to be invested in it financially and in all the other ways. We're really happy with our communities and the whole. We're very optimistic about our situation. Nick, you're muted there on unchecked people. We have a couple questions from Get Pantheon. I'd like to start with you on this one. This is pretty poignant in the Drupal community right now. There's been a lot of publicity on the pressure that generative AI pull requests are putting on maintainers, especially on GitHub. Do you have any specific asks or the broader ecosystem where people submitting these and how to help balance out the pressures that are coming from generative mass pull requests? Is that something that DDEV hasn't had to deal with yet? We actually wrote about it in our newsletter like last week or the week before. We are probably going to ask people to start with an issue rather than just creating a PR so that there can be discussion before effort is applied. But one of the things that I've noticed after writing that in the newsletter is that I'm at least half the problem because I can use AI to solve a problem that I previously would have had to that I might not have approached. Then I create all these problems in my PRs because they're big and they have to be tested and we all have to look at them. It's not just contributors like from all over the web. It's all of us are suddenly able to do things that involve more code than they used to involve that require more review and somehow we have to slow that down a bit, figure out. We need to get more reviewers invested in reviewing in the DDEV PR queue so we're trying to work on that. We encourage that of everybody. I'm not very happy with AI reviews. I think the AI reviews are great but AI reviews in the issue queue with all that wallet text are discouraging and hard to read and often not as useful as they could be even though sometimes they point out real issues but you can't. It's got all this stuff and you can't really sort it out. Yes we are definitely struggling with that and yes it impacts all of us and no it is not all bad. Things are getting done that couldn't be done otherwise which is amazing but the impact on maintainers is very real and we need to spread that load to more maintainers. How about you Stas, do you want to add anything? Yes, it's a problem when we're going to deal with this more and more. In the next years coming on but I hope we are going to find a solution for this since we can't hide from AI and well it's hard to consume all of this AI produced stuff but if we have some way to make it streamlined. into some, like not huge contributions, but maybe small ones, it can become easier. And I hope we can do something about it. - Yeah. - Let me do. - So yeah, so there's a follow up there from Get Pantheon. And the just the question is, you know, a lot of developers are using AI coding agents as part of their daily workflow. How do you guys see DDEV's role kind of evolving and then especially where agents kind of need context as to hosting platforms and things like that. Any plans to, I don't know, integrate DDEV more heavily into certain AI agents. Stasi, you got any features on the roadmap that answer that question? And we actually planned for 2026 to work on some DDEV MCP. But right now we are not working on it, but we may come back and explore it more. You know, with AI, you don't know what is going to happen the next day. Like today you have one agent on the top of everyone, else like you know, people talk about Claude. Like it was the top one just like a month ago and right now it can show some slow results. Like people are not so happy with it. And I don't know, we will see where it goes. - There are like so many DDEV Cloud add-ons that have noticed that. - I've noticed that. So that may be a, that may be the add-on shakeout, maybe our path. Anyway, go ahead. - Yeah, I was gonna say, so I've been, I've been pretty vocal about my skepticism about the value of AI in a collaborative project. Like I think from a core perspective, it really only just adds pressure. And it doesn't, it doesn't solve, like it can solve certain edge cases, but with the love of review required, all it does is add to the burden, right? But we do still need to test AI. And one of the problems that I have is, and I'll be brief because I know we're running up against it, but one of the problems I have is I have a wide variety of clients and they all have different rules about AI and they all have different rules about security. So I'll say one thing that's really nice about DDEV is in the add-ons is when I put cloud in an add-on in DDEV, it only has access to that particular co-base that that client approved for. And I don't have to worry about, I don't have to worry about it leaking into another project and then having a hard discussion with the client. So yeah, so I think we have to, I think we have to move to wrap up though. But I just wanna let you guys know that even skeptics for AI DDEV is helpful. (laughing) - Guys, how can developers like Drupal Developers or anybody contribute or get involved with DDEV? That's pretty much the, that kind of, this is our roundup question. How do we get involved? - We love to have people contribute and ask questions anywhere for Drupal folks, the DDEV channel is always there. We love to hear from you there. We have a discord that we actually prefer for you to land in because it benefits more people than just Drupal, but we're happy to see you everywhere. And of course the many issues you use in the DDEV ecosystem are all there waiting and we would love to hear from you there. And of course as we said, this is a community project that deserves a future in general. And so getting your organization or yourself personally involved financially is a very welcome thing to do. - Well, Randian, Stoss, thank you for joining us and giving us an update on DDEV. - Right. - Thank you. - Do you have questions or feedback? You can reach out to talking Drupal on the socials with the handle talking Drupal or by email or [email protected]. You can connect with a host and other listeners on the Drupal Slack and the Talking Drupal channel. - Do you want to sit in these seats and be a guest on Talking Drupal or our new show, TD Cafe, click the guest request button in the sidebar at talkingdrupal.com. - You can promote your Drupal community event on Talking Drupal, learn more at talkingdrupal.com/tdpromote. - Get the Talking Drupal newsletter to learn more about our guest hosts, show news, upcoming shows, and much more. Sign up for the newsletter at talkingdrupal.com/newsletter. And thank you patrons for supporting Talking Drupal. Your support is greatly appreciated. You can learn more about becoming a patron at talkingdrupal.com and choosing become a patron. - Okay, Randy, if folks wanted to get a hold of you, talk about Dedev or bikepacking. Where could they go about doing that? - Hi, Marpe, RFAY and almost all the places, including Drupal Slack. And of course, ddev.com, you can click the contact button there. - Awesome, stars, what about you? - Yeah, I am on the same channel. This Randy says that Slack and Discord at S-D-A-S-A-V-E-V. It's ddev and you can find my, meet us out. Great, Rod. I'm Rod Martin, pretty much every social, including Drupal Slack. And you can reach out to me at drupalhelps.com as well. - Awesome, Nick. - You can find me pretty much everywhere at Nixband, N-I-C-X, V-A-N. - And I'm John Pekosie. You can find me streaming live on Talking Drupal at 11.45 AM Eastern on YouTube and LinkedIn. You can also find me personally at Pekosie.com. You can find me on the socials or Drupal.org at John Pekosie. And you can find out more about [email protected]. - And if you've enjoyed listening, we've enjoyed talking. You guys next week. - Thanks a lot, Arun. Thanks. - Thank you.

Podcast Summary

Key Points:

  1. The episode features Randy Fay and Stas Hook discussing DDEV, a local development tool for Drupal and other projects.
  2. DDEV provides isolated development environments for each contributor, ensuring reliable and configurable setups across platforms.
  3. Recent release 1.25 focuses on reliability, support, and new features like redone DDEV share (with Cloudflare option) and Podman support.
  4. Stas Hook, a DDEV maintainer from Ukraine, has been involved for about three years, contributing significantly to network solutions and Podman integration.
  5. The module of the week is DDEV Drupal Contrib, an add-on optimized for Drupal Contrib projects, aligning with GitLab CI and providing commands like PHPUnit, ESLint, and core version switching.
  6. The add-on simplifies Contrib development by cloning the module and adding Drupal to it, avoiding complexities of other methods.
  7. The Drupal AI Summit in New York City on May 14, 2026, is promoted, focusing on AI governance, data ownership, and production integration.

Summary:

This episode of Talking Drupal (episode 549) focuses on the DDEV tool, with guests Randy Fay and Stas Hook discussing its current state and future. DDEV is a local development environment that allows developers to work in isolated spaces on their computers, ensuring reliability and consistency across platforms. 25 emphasizes reliability and support, with new features including a revamped DDEV share that now supports Cloudflare for sharing projects with collaborators, and Podman support, a Docker alternative without root access, developed by Stas over a year.

Stas, a DDEV maintainer from Ukraine, has been involved for three years, focusing on solving complex network problems and improving stability. The module of the week is DDEV Drupal Contrib, an add-on by Moshe Whitesman and Deza Bezo that optimizes local development for Drupal Contrib projects. It aligns with GitLab CI, providing commands for code quality tools like PHPUnit and ESLint, and allows cloning a module and adding Drupal to it, simplifying the development process.

The add-on also features a core version command for switching Drupal versions. The episode also promotes the Drupal AI Summit in New York City on May 14, 2026, which will cover AI governance, data ownership, and production integration.

FAQs

DDEV is a local development tool that provides developers with their own reliable, configurable workspace to work on website projects, ensuring consistent setup across different platforms and Docker providers.

It's a DDEV add-on that creates a local environment optimized for Drupal Contrib projects, aligned with GitLab CI, providing commands for code quality tools like PHP CS and PHPStan, and allowing faster local testing.

You clone a Contrib module (e.g., your fork), add the add-on, and it installs Drupal into that directory, making it easy to work on issue forks without needing a separate Drupal setup.

DDEV share lets you share your local development environment with collaborators over the internet, using services like Cloudflare or ngrok, which is great for mobile testing or remote demos.

Podman is a Docker alternative that runs without root privileges, and DDEV now supports it, allowing use in restricted environments where Docker may not be allowed.

The 1.25 release focuses on reliability and support, including updated PHP versions, dependencies, and new features like podman support and an improved DDEV share.

Chat with AI

Loading...

Pro features

Go deeper with this episode

Unlock creator-grade tools that turn any transcript into show notes and subtitle files.