Installation/Upgrade
See the installation instructions for details, but it's easy:
- macOS:
brew install ddev/ddev-edge/ddev
or justbrew upgrade ddev/ddev-edge/ddev
). (You may need abrew update
for homebrew to find the new release.). - Traditional Windows: Use
choco upgrade -y --pre ddev
to get this one, or download the ddev_windows_installer below. - Linux or WSL2 (macOS works too) use the install_ddev.sh script: Download the script, make it executable, and run it with the version:
./install_ddev.sh <version>
or orcurl -LO https://raw.githubusercontent.com/ddev/ddev/master/scripts/install_ddev.sh && bash install_ddev.sh <version>
- If you already had ddev installed otherwise, uninstall or unlink first. If you prefer to use a package, download the deb file from this release and install it. - 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
after upgrading to free up disk space used by previous docker image versions. This does no harm.
Highlights:
ddev get
add-ons have many new improvements with tracking versions of add-ons, allowing removal, etc.- Warning: To see versions you have to update your add-on with
ddev get
after installing DDEV v1.22+ ddev get --installed
shows installed add-ons with their versionsddev get —version <someversion <some-add-on>
will get a specific version of an add-on.ddev get —installed
shows installed add-ons and their versions.ddev get —remove <add-on>
- If you
ddev get
and add-on that has dependencies, you’ll be warned about the situation. - Note to Add-on maintainers: Check that the value of
name
is what you want it to be. In previous versions of DDEV this wasn’t actually used, and there are some odd values out there in some add-ons. - Note to Add-on maintainers: You now have the option of adding removal actions. If your add-on doesn’t just add listed files but also takes actions during installation, you can reverse those actions on removal.
- Warning: To see versions you have to update your add-on with
- Mutagen is now enabled by default on macOS and traditional Windows. It’s normally configured globally with
performance_mode: mutagen
, but can be overridden at the project level.performance_mode: nfs
still works but is considered deprecated. (These used to be calledmutagen_enabled
andnfs_mount_enabled
) - Traefik router is the default: The default router is now the traefik router, configured with
ddev config global --router=traefik
. The old router (now deprecated) can be enabled withddev config global --router-nginx-proxy
- Experimental Python/Django support: See docs.
Behavior Changes:
- Changes to defaults on new projects:
nodejs_version
defaults to 18php_version
defaults to 8.1
config.*.yaml
no longer gitignored:.ddev/.gitignore
no longer gitignores allconfig.*.yaml
, now it just ignoresconfig.local.yaml
. Portions of people’s add-ons were inadvertently being gitignored and could be lost by teams.- PhpMyAdmin has been removed from DDEV core, so
ddev launch -p
no longer works, etc. If you’d like to use PHPMyAdmin,ddev get ddev/ddev-phpmyadmin
and useddev phpmyadmin
. - Traefik is now the default router. If you want the traditional router,
ddev config global --router=nginx-proxy
- Traefik incompatible with
disable_http2
: If you need todisable_http2
in the global configuration, use the traditional router,ddev config global --router=nginx-proxy
- Mutagen is enabled by default on macOS and traditional Windows. Use
ddev config global --performance-mode=none
orddev config global --performance-mode=nfs
to change, and this can also be overridden on the project level.
Minor Notes:
ddev pantheon pull
no longer requires an SSH key to be configured.ddev pause
has been removed- Multiple upload dirs: A project can now have multiple upload dirs are now supported, so a Drupal project, for example, could have
upload_dirs: ["sites/default/files", "../private"]
.ddev import-files
has the new--target
flag to specify which should be targeted on upload. - Craft CMS .env file creation improved; Craft 3 detected and folks are warned to use project type
php
. - post-stop hooks are no longer called if project is already stopped.
ddev list
can now be filtered withddev list --type=<projecttype>
, thanks @cmuench- Tip of the Day: On
ddev start
there’s a tip of the day once a day. These come from [ddev/remote-config](https://github.com/ddev/remote-config/blob/main/remote-config.jsonc) and your suggestions and PRs are welcome. This can be turned off withticker_interval: -1
in themessages
section of~/.ddev/global_config.yaml
. - Global configuration for
router_http_port
androuter_https_port
. Note that project-level configuration still overrides the global configuration, and projects which were created prior to v1.22.0 will likely have project defaults, so you’ll need to remove the project defaults to use the global values. - MySQL updated to 8.0.33 and 5.7.42
Caveats:
- Casual Webhosting: If you’re using the Casual Webhosting feature with Lets Encrypt, be aware that although
router: traefik
is the new default, the Traefik router does not yet have preconfigured Lets Encrypt capability. You’ll need toddev config global --router=nginx-proxy
What's Changed
- build: bump actions/setup-python from 4.6.1 to 4.7.0 by @dependabot in #5153
- docs: add messages configuration to config.md by @rfay in #5156
- docs: add v1.22 to version-history [skip ci] by @rfay in #5155
- ci: stop caching colima and homebrew on colima by @rfay in #5157
- fix: settings for django need to import os, fixes #5123 by @rfay in #5152
- fix: default_container_timeout should actually work, fixes #5133 by @rfay in #5154
- fix: revert "refactor: start reporting all commands to amplitude" by @rfay in #5163
- docs: fix broken link on docker by @rfay in #5166
- docs: update outdated reference to Drupal 9 in phpunit section by @rfay in #5165
- fix: bad link was output when asking permission on instrumentation by @rfay in #5170
- fix: don't report json-formatted commands to Amplitude by @rfay in #5169
- fix: don't run MutagenSyncFlush on non-running project during config, fixes #5168 by @rfay in #5175
- fix: show docker platform in ddev describe by @rfay in #5176
- fix: correctly return notification and ticker interval, fixes #5177 by @gilbertsoft in #5178
- build: bump docker image tags for v1.22.0 by @rfay in #5179
Full Changelog: v1.22.0-beta4...v1.22.0-rc1