DDEV Release v1.24.0 with PHP 8.4.1 and all extensions
Today we’re proud to announce DDEV v1.24.0, with PHP 8.4.1 and the full complement of extensions, including Xdebug.
Congratulations to all of you and all contributors who made this happen. It’s the DDEV community that makes DDEV successful, with your suggestions, contributions, enhancements, bug reports and financial support.
Changes in defaults: This is a major version of DDEV, with *some changes in defaults:
- PHP 8.3 becomes the default for new projects (but you can change any project to any PHP version, of course).
- Current stable Node.js 22 becomes the default for projects that don’t specify another version.
New Features and other things we’re proud of
ddevcdcommand can be used to switch between projects. Seeddev debug cd. For example, if I have a project namedt3v12I can do addevcd t3v12to switch to that directory. Stas added this feature out of the blue and I love it. It does require a tiny bit of one-time configuration.drupal11is introduced as a project type, demoting thedrupalproject type to be a simple alias to the “latest stable Drupal version” (drupal11for now).- The
ddev-webserverimage is at least 25% smaller. Only a few locales are included by default, and only currently-supported versions of PHP are built-in by default (but all the other versions still work). It was 480MB compressed, is now 361MB compressed. More details below. ddev auth sshcan now be used with individual key files and can follow symlinks. For example, if you only want to have a single file namedid_rsato be available to your projects, you canddev auth ssh -f ~/.ssh/id_rsa.
Smaller Changes
- Added dynamic timeout handling for scripts on start based on setting of
default_container_timeout. This is mostly only for folks with exceptionally slow internet. - Added explicit support for the
symfonyproject type, see docs, thanks @IndraGunawan. ddev describechanges how exposed ports are displayed for better clarity (thanks @hanoii)- Only a limited set of locales is now installed in
ddev-webserverby default. If you need more, usewebimage_extra_packages: [locales-all] - Complex
ddev composercommand usage with JSON or args with spaces is fixed. (A bug was introduced in v1.23.5.)
Questions
- Do I have to change how I use the
drupalproject type? - If your project is actually a Drupal 11 project, there's no reason to make any changes. If your project is Drupal 8-10, you may want to change it to project type
drupal10, for example although there's no meaningful difference in this release. - What if I want more locales than the ones provided by default?
- The default locales installed in the web container for v1.24.0 are
en_CA.UTF-8, en_US.UTF-8, en_GB.UTF-8, de_DE.UTF-8, de_AT.UTF-8, fr_CA.UTF-8, fr_FR.UTF-8, ja_JP.UTF-8, ru_RU.UTF-8. If you need other locales, all locales will be installed if you addlocales-allto yourwebimage_extra_packagesin.ddev/config.yamlFor example,webimage_extra_packages: ["locales-all"]. (If you use other locales that you think should be added by default, we're happy to hear about them.) - What should I do after upgrading DDEV?
- DDEV will already ask you to do a
ddev poweroff, but consider doing addev config --updateon your projects. This will auto-detect your project type and required PHP version. It may switch thedrupaltype todrupal10ordrupal11.
Reversions and Removals
- The
drupalproject type is no longer a generic project type, but instead is an alias to the latest stable Drupal (drupal11right now). A number of folks gave feedback that it caused the startup time to be longer and the process more complex. (ddev config --updateis no longer a part of the Drupal quickstart) - In v1.23.5 we started preferring
vendor/bin/composerto the specifiedcomposer_versionbut users thought that was a mistake, so this was reverted. - The nginx-proxy router has been removed.
- The
ddev service enableandddev service disablecommands were deprecated, as they have long been superseded by the use ofddev add-on getandddev add-on remove. We apologize if this is an inconvenience, but we didn’t see any significant usage of these commands. If you need something like that still, it’s super easy to make a custom command that would do the same thing, and consider delivering the custom command using an add-on. - Removed support for Python and Django4 project types. After more than a year, these did not gain traction or a community, so sadly we had to leave them behind.
From the entire team, thanks for using, promoting, contributing, and supporting DDEV!
If you have more questions, please reach out to us in any of the many support channels.
Follow our blog, Bluesky, LinkedIn, Mastodon, and join us on Discord. And we’d love to have you sign up for the monthly newsletter.
Posted In