v1.21.4: WSL2 improvements, PHP 8.2 with all extensions, Drupal 10, Traefik Router
Highlights
Major features of this significant release:
- Improved WSL2 support, see install docs and PhpStorm docs.
- Correct Xdebug behavior when docker-ce is installed inside WSL2
- Use the hosts file on the Windows side by default.
- Provide complete install scripts for both docker-ce and Docker Desktop.
- For best results on existing projects, please install the traditional Windows DDEV,
choco install -y ddev
.
- PHP 8.2.0 is now supported with all the normal extensions. Note that php8.1-xhprof and php8.2-xhprof have a [bug](longxinH/xhprof#76) that may affect using
ddev xhprof
with those versions. You can fix this withwebimage_extra_packages: [php8.2-xhprof]
orwebimage_extra_packages: [php8.1-xhprof]
. - Drupal 10 is fully supported, including support for specific MariaDB/MySQL/PostgreSQL requirements.
- Traefik optional new ddev-router. This will become the default router in the future. See docs
- .ddev/.env files for setting environment variables inside the web container, see docs.
ddev pull
now supports the--environment
option so you can provide environment variables to the pull recipe on the command line.- Command flags for wrapper commands now can use the flags on the wrapped command. For example,
ddev composer --help
will now return the composer help instead of ddev’s help forddev composer
.ddev php --help
will show php’s help, etc. Thanks to @hanoii for sorting this out! - Friendlier
ddev get
output. ddev self-upgrade
command helps you remember how to upgrade your DDEV version.ddev pull platform
can now pull multiple databases from your Platform.sh project.- Attention ddev add-on maintainers: Each action in an add-on can now have a
#ddev-description:<description>
annotation that helps explain what’s happening as the add-on runs. - Ongoing major documentation improvements by @mattstein, thanks!
Installation
See the installation instructions for details, but it's easy:
- macOS:
brew install drud/ddev/ddev
or justbrew upgrade ddev
). (You may need abrew update
for homebrew to find the new release.). - Traditional Windows: Use
choco upgrade -y ddev
, or download the ddev_windows_installer below. - Linux or WSL2: Use
apt install ddev
orapt upgrade ddev
see apt/yum installation or use the install_ddev.sh script:curl -fsSL https://raw.githubusercontent.com/drud/ddev/master/scripts/install_ddev.sh | bash
- And anywhere, you can just download the tarball or zipball, untar or unzip it, and place the executable in your
$PATH
where it belongs. - Consider
ddev delete images
orddev delete images --all
after upgrading to free up disk space used by previous docker image versions. This does no harm.
Minor Changes
- postgres:9, postgres:10, and postgres:11 were broken due to upstream changes, but are fixed here
ddev launch
and postgres database now work on Gitpod.- DDEV is ready for Drupal 9.5 and 10 with setting the “MySQL transaction isolation level” and adding the pg_trgm extension on postgres.
- NFS works again on macOS Ventura after a Ventura/Docker regression
- Shopware 6 and Laravel .env files are now managed by DDEV where necessary. This can be turned off, as always, with
disable_settings_management: true
. - New
ddev querious
command supports the Querious database browser on macOS if it’s installed, thanks to @brianjhanson. - Docker 20.10+ is now required no matter what your Docker provider; most people on Colima, Docker Desktop or Linux already have this.
- New
ddev config --xdebug-ide-location
allows configuring many IDE setups, see docs. ddev launch
works on gitpod, thanks to @bajuku-daniel- PostgreSQL databases work on gitpod, thanks to @bajuku-daniel
Caveats
- If using Windows WSL2, please install the current version of DDEV on the WIndows side,
choco upgrade -y ddev
; ddev.exe is used as a helper to add or remove hosts from the Windows hosts file when needed. - If using Windows WSL2 and you often add or remove hostnames, you will be annoyed by gsudo escalation all the time, consider turning on the gsudo cache with
gsudo.exe cache on
andgsudo.exe config CacheMode auto
; that way it won't escalate for every single addition or removal from the hosts file.
What's Changed
- Bump .gitpod.yml to new image by @rfay in #4311
- [docs] Remove inappropriate link from chocolatey deploy by @rfay in #4316
- nsis_setup.sh was broken, fix it [skip ci] by @rfay in #4315
- Fix custom nginx configuration links by @bencroker in #4308
- Make host.docker.internal work with all WSL2 permutations and gitpod, fixes #4242, fixes #3772, fixes #3813 by @rfay in #4252
- [docs] fix manual chocolatey push instructions by @rfay in #4321
- Minor tweak followups for xdebug PR [skip ci] by @rfay in #4325
- Improve test_ddev.sh curl to show what it's doing [skip ci] by @rfay in #4333
- [docs] Image cleanup by @mattstein in #4336
- Fix ddev import-db with postgres on gitpod by changing PGHOST=127.0.0.1 by @bajuku-daniel in #4328
- Fix TYPO3 project detection to work with non existent symlinks, fixes #4326 by @gilbertsoft in #4330
- Update process of adding the gpg key by @mtelgkamp in #4324
- Don't try to stop default mutagen daemon on
ddev poweroff
by @rfay in #4291 - upload_dir support in Craft CMS, fixes #4302 by @rfay in #4317
- Gitignore
.DS_Store
and similar files by @mattstein in #4337 - Make ddev settings management less chatty for Drupal by @rfay in #4334
- [docs] Improve Craft CMS Quickstart - how to add environment variables by @flynnt in #4314
- Optimize composer create to also work without --no-install by @gilbertsoft in #4273
- [docs] Reformat config reference by @mattstein in #4332
- [docs] Craft CMS quickstart should not have --no-install, fixes #4338 by @rfay in #4340
- [docs] Improve buildkite-agent configuration by @rfay in #4344
- [docs] Add docs warning about macOS Ventura and NFS by @rfay in #4343
- Make
ddev launch
work right on gitpod by @bajuku-daniel in #4342 - Setting the MySQL transaction isolation level (Fixes #4281) by @tyler36 in #4339
- See if docker-compose v2.12.2 works with ddev by @rfay in #4350
- Add postgres:15 support by @rfay in #4348
- Add pg_trgm extension on postgres for Drupal9+, fixes #4341, fixes #3584, fixes #3653 by @rfay in #4347
- [docs] Remove the mutagen.yml in troubleshooting by @rfay in #4352
- Round 2 for Drupal transaction isolation, fixes #4281 by @rfay in #4351
- [docs] QuickStart Laravel Git Clone by @ibrah3m in #4320
- Improve developer docs discussing secrets and accounts for #3962 [skip ci] by @rfay in #4175
- Web environment variables - allow spaces, fixes #4220 by @AronNovak in #4221
- Fix UID collision with host-side uid 999 and make docker-compose username override work again, fixes #4243, fixes #4313 by @rfay in #4346
- Minor github workflow cleanup by @rfay in #4358
- Don't run /etc/bash_profile ~/.bash_profile or .bashrc in ddev-webserver healthcheck by @rfay in #4356
- Set NFS wsize/rsize options for Ventura (Fixes #4122) by @karlshea in #4359
- [docs] correct url in the docker install command by @webseppel in #4361
- Improve WSL2 Installation experience with a PowerShell script [skip ci] by @rfay in #4150
- [docs] Don't use inappropriate ~ for path in PhpStorm location for docker-compose by @pyrello in #4368
- Improve detection of
craftcms
project type even when not in project root, fixes #4329 by @flynnt in #4331 - [tests] Add xq and yq to brew install in master-build [skip ci] by @rfay in #4369
- [tests only] xq and yq are no longer needed by @rfay in #4370
- [docs] Add
web_extra_daemons
andweb_extra_exposed_ports
to settings page by @mattstein in #4373 - [docs] Add command reference by @mattstein in #4354
- [docs] Add docker-inside script for wsl2 [skip ci] by @rfay in #4366
- [docs] Clean up filenames + update links by @mattstein in #4378
- [docs] Fix mysqlworkbench custom command instructions by @bananabendera in #4381
- [tests only] TestDdevStart should not rely on DDEV_DEBUG by @rfay in #4384
- Warn about usage of Docker Desktop for Linux by @rfay in #4380
- [docs] Contributing to open source URL no longer at github by @rfay in #4387
- [docs] Stylistic cleanup by @mattstein in #4386
- [docs] Add consolidated Architecture page by @mattstein in #4379
- Don't warn about Docker Desktop for Linux on WSL2 by @rfay in #4388
- Bump rojopolis/spellcheck-github-actions from 0.27.0 to 0.28.0 by @dependabot in #4392
- ddev share --subdomain should use ngrok --subdomain, fixes #4390 by @rfay in #4393
- Fix postgres 9-11 build broken, fixes #4391 by @rfay in #4394
- WSL2: Manage hosts on the Windows side, fixes #3818 by @rfay in #4377
- Implement traefik as optional/future ddev-router, fixes #3458, fixes #2653 by @rfay in #4248
- AUR: bring dependencies back to PKGBUILD recipe by @stasadev in #4396
- [docs] Fix 404 on wsl2 docker desktop download by @rfay in #4400
- [docs] WSL2 instructions should specify PowerShell 5 by @rfay in #4401
- Restore proper hosts file removal, fixes #4404 by @rfay in #4408
- Allow setting environment in ddev pull on command line, fixes #4180, fixes ddev/ddev-platformsh#63 by @rfay in #4399
- [docs] Fixing indentation in multiple exposed ports example YAML. by @quicksketch in #4412
- Disable flags from custom commands when the annotation is not present, fixes #4225 by @hanoii in #4283
- Make
ddev get
output friendlier by @rfay in #4414 - No localhost in
ddev describe
, minor formatting cleanup by @rfay in #4420 - Bump docker-compose to v2.13.0 by @rfay in #4422
- Add support for .ddev/.env file, fixes #4309 by @rfay in #4418
ddev self-upgrade
command, fixes #2680 by @rfay in #4419- Bump docker-compose to 2.14.0 by @rfay in #4424
- [docs] Improvements on addition of .ddev/.env file (for #4418) by @mattstein in #4425
- Add .env file parsing, fix laravel to use it, fix Shopware 6 overwriting, fixes #3636, fixes #3590 by @rfay in #4197
- [docs] Minor - new linter version insists on _ for emphasis by @rfay in #4433
- Improve output from ddev get, fixes #4423 by @rfay in #4431
- Web image maintenance: Bump mkcert, yq versions, use real mkcert repo by @rfay in #4434
- [docs] Craft CMS: Remove manual download instructions by @AugustMiller in #4428
- Fix help message when deleting a project by @juampynr in #4438
- Get config.yaml in ddev debug test by @rfay in #4435
- Add
ddev querious
command by @brianjhanson in #4429 - Fix over-eager project env replacement, for #4197 by @rfay in #4437
- Bump all images for v1.21.4 by @rfay in #4440
- Disable platformsh and terminus CLI update checks, fixes ddev/ddev-platformsh#40 by @rfay in #4442
- [docs] Improve Drupal 10 quickstart by @rfay in #4448
- Update php 8.2 extensions (xdebug, memcached, redis now there) by @rfay in #4445
- Bump actions/setup-python from 4.3.0 to 4.3.1 by @dependabot in #4451
- Platform integration: Download all databases, Allow a primary relationship for the main 'db', fixes #4415, fixes ddev/ddev-platformsh#59 by @rfay in #4426
- Improve output of ddev get in failure cases and add --verbose flag by @rfay in #4441
- [docs] Laravel quickstart had duplicated
ddev composer create
by @rfay in #4455 - [Tests only] Refresh homebrew/lima caches since colima/lima upgraded by @rfay in #4458
- Fix typo on primary relationship command by @bserem in #4457
- [docs] Multiple release prep docs changes, fixes #4411 by @rfay in #4456
New Contributors
- @bajuku-daniel made their first contribution in #4328
- @mtelgkamp made their first contribution in #4324
- @flynnt made their first contribution in #4314
- @karlshea made their first contribution in #4359
- @webseppel made their first contribution in #4361
- @pyrello made their first contribution in #4368
- @bananabendera made their first contribution in #4381
- @quicksketch made their first contribution in #4412
- @AugustMiller made their first contribution in #4428
- @brianjhanson made their first contribution in #4429
Full Changelog: v1.21.3...v1.21.4