Skip to content

v1.22.0: `ddev get` improvements, Mutagen/Traefik default

Compare
Choose a tag to compare
@rfay rfay released this 24 Jul 14:33
· 563 commits to master since this release
8163829

Installation

See the installation instructions for details, but it's easy:

  • macOS: brew install ddev/ddev/ddev or just brew upgrade ddev ).
  • Traditional Windows: Use choco upgrade -y ddev, or download the ddev_windows_installer below.
  • Linux or WSL2 (macOS works too): Use apt install ddev or apt upgrade ddev see apt/yum installation or use the install_ddev.sh: curl -fsSL <https://raw.githubusercontent.com/ddev/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 or ddev delete images --all 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 versions
    • ddev 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.
  • 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 called mutagen_enabled and nfs_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 with ddev config global --router-nginx-proxy
  • Experimental Python/Django support: See docs.

Behavior Changes:

  • Changes to defaults on new projects:
    • nodejs_version defaults to 18
    • php_version defaults to 8.1
  • config.*.yaml no longer gitignored: .ddev/.gitignore no longer gitignores all config.*.yaml, now it just ignores config.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 use ddev 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 to disable_http2 in the global configuration, use the traditional router, ddev config global --router=nginx-proxy
  • Traefik router uses port 9999: If you have a custom service using port 9999, you'll have to either change the port used by the service or use the legacy nginix-proxy router, ddev config global --router=nginx-proxy
  • Mutagen is enabled by default on macOS and traditional Windows. Use ddev config global --performance-mode=none or ddev 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 with ddev 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 with ticker_interval: -1 in the messages section of ~/.ddev/global_config.yaml.
  • Global configuration for router_http_port and router_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 to ddev config global --router=nginx-proxy
    • Default Traefik router uses port 9999: If you have a custom service using port 9999, you'll have to either change the port used by the service or use the legacy nginix-proxy router, ddev config global --router=nginx-proxy

What's Changed (WOW!)

  • [tests only] TestPantheonPull: Remove stray quote, give more info by @rfay in #4741
  • [docs] Requirements: reduce tab width, eliminate redundancy by @mattstein in #4740
  • [docs] Fix formatting and phrasing by @mattstein in #4739
  • [docs] Shorten install script URL by @mattstein in #4738
  • Bump .gitpod.yml to 20230310 [skip ci] by @rfay in #4737
  • [docs] Document exposing additional non-HTTP ports on web by @deviantintegral in #4736
  • [docs] Add ExecRaw annotation documentation. by @ultimike in #4735
  • [docs] Improve formatting, fix typos, remove duplicates by @stasadev in #4726
  • ddev debug test should not try to work in subdir of project [skip ci] by @rfay in #4743
  • [docs] Fix up ExecRaw spellcheck trouble by @rfay in #4744
  • [docs] Use standard notation for ExecRaw by @rfay in #4746
  • [docs] Fix empty tip in additional services/add-ons by @mattstein in #4751
  • [docs] Fix typo "without touching to your code" -> "without touching your code" by @maxfenton in #4756
  • Bump drush8 to 8.4.12, fixes #4189 by @rfay in #4754
  • [docs] Typo in port numbers in example by @maxfenton in #4761
  • [docs] Adjusted the FAQ 'communication between projects faq' by @jeroenpeters1986 in #4757
  • Revert indentation specifier from editorconfig settings by @rfay in #4745
  • Improve install_ddev.sh by making it create /usr/local/bin, replaces #4747 [skip ci] by @rfay in #4752
  • Fix Traefik trying to load Traefik plugin files as dynamic configurations, fixes #4758 by @titouanmathis in #4759
  • Append DDEV_EXECUTABLE to the Host commands environment by @hanoii in #4724
  • Enclose exported environment variable values with quotes, fixes #3499 by @DigitalFrontiersMedia in #4594
  • Add CODEOWNERS file by @mattstein in #4764
  • [docs] Rescue intentional line breaks by @mattstein in #4763
  • Pacify lint for newly revived revive linter by @rfay in #4770
  • [docs] SequelPro is dead as its its website. Deprecate it even more by @rfay in #4772
  • [docs] Add @mattstein review of Sequel Pro change by @rfay in #4773
  • [tests only] Bump actions/setup-go from 3 to 4 by @dependabot in #4771
  • [docs] Quickstart for ExpressionEngine by @rfay in #4777
  • [docs] Fix Magento 2 quickstart for Magento 2.4.6, fixes #4762 by @cmuench in #4767
  • Bump go-dockerclient for security issue, replaces #4787 by @rfay in #4788
  • [docs] Improve colima disk allocation methods to show new increase capability by @rfay in #4798
  • [docs] Fix code block (missing closing mark) by @tyler36 in #4801
  • [docs] Refactor install and upgrade instructions by @mattstein in #4789
  • [docs] Fix markdown in profiling doc page by @oleksii-lisovyi in #4806
  • Drupal: Enable verbose error logging by @RobLoach in #4689
  • Overwrite copies of embedded files if they're empty on target filesystem by @rfay in #4775
  • [docs] Update credsStore to Colima to avoid DDEV start errors by @chri5tia in #4790
  • Add basic-auth flag to ngrok by @stasadev in #4719
  • WSL2 installation: Escaped asterisks while echoing ddev and docker sources as it list directory contents without it [skip ci] by @alexbogias in #4731
  • [docs] Clarify warning about Docker Desktop for Linux by @rfay in #4807
  • Don't override database prefix in settings.ddev.php by @rfay in #4781
  • Set laravel PHP default to 8.1, fixes #4651 by @rfay in #4653
  • Implement Django4 and python project types and nginx-gunicorn webserver_type, for #3709 by @rfay in #4768
  • [tests only] Fix broken TestDdevExec on CircleCI arm64 by @rfay in #4810
  • project type filter for ddev list command (ddev list --type=) by @cmuench in #4613
  • Separate prerelease and stable fury channel, use ddev not drud, fixes #4707, fixes #4628 [skip ci] by @rfay in #4808
  • [release] Fix broken tarball filename [skip ci] by @rfay in #4815
  • Update go-dockerclient to get docker security dependency, fixes #4814 by @rfay in #4816
  • Remove community things like FUNDING.yml so they go in the org for #4748 [skip ci] by @rfay in #4817
  • Fix broken ddev debug migrate-database, fixes #4800 by @rfay in #4818
  • [docs] Add some missing commands to commands.md by @rfay in #4824
  • Fixed minor bug in symlink creation code. by @ultimike in #4823
  • [docs] Minor docs for apt/yum package management by @rfay in #4825
  • ddev get --list --all should return all repos, fixes #4795 by @rfay in #4819
  • Move docker repositories from "drud" to "ddev", fixes #4262 by @rfay in #4820
  • add link to "Testing a PR" to PR build by @tyler36 in #4831
  • ddev get should ignore specified yaml files that don't exist, fixes #4774 by @rfay in #4826
  • ddev debug download-images should work without a project, fixes #4479 by @rfay in #4828
  • [docs] Add Axiom Repobeats contributor overview by @mattstein in #4836
  • Automate Laravel MailHog capture configuration by @tyler36 in #4822
  • [tests only] Improve buildkite test.sh [skip ci] by @rfay in #4840
  • Fix bad verbiage in windows installer [skip ci] by @rfay in #4839
  • Experimental skip of TestGetLocalHTTPResponse on Windows by @rfay in #4841
  • [tests only] Upgrade docker login plugin for buildkite by @rfay in #4845
  • Pre-sync mutagen volume when necessary, fixes #4797 by @rfay in #4830
  • Avoid using old Debian stretch (9) apt repos because it breaks all builds by @rfay in #4846
  • Bump actions/setup-python from 4.5.0 to 4.6.0 by @dependabot in #4847
  • [docs] Add precomposed sponsor logos to readme [skip ci] by @mattstein in #4850
  • Recreate mutagen sync session when mutagen.yml changes, fixes #4753 by @rfay in #4837
  • Add debugging output to GetHostDockerInternalIP() for #4803 by @rfay in #4813
  • PHP_IDE_CONFIG was set to empty instead of unset, breaking PhpStorm by @rfay in #4851
  • [docs] Provide instructions for 3rd party services to trust mkcert by @rfay in #4853
  • Implement xdebug.discover_client_host, fix bug with WSL2 docker-inside getting correct host.docker.internal, fixes #4803 by @rfay in #4852
  • settings.php - Invert logic to reduce disk reads if non-ddev environment by @Novitsh in #4843
  • Fix wrong TYPO3 settings path if composer_root is used, fixes #4545 by @gilbertsoft in #4835
  • Shut down supervisord on start in case it's running by @rfay in #4856
  • Switch to NodeJS LTS (18) by default and support NodeJS 20, fixes #4674 by @davereid in #4833
  • Use PHP 8.1 by default, fixes #4652 by @davereid in #4834
  • [docs] Try to fix readthedocs builds by @rfay in #4861
  • [docs] Fix instructions about restoring snapshots, fixes #4778 by @rintisch in #4779
  • [docs] Fix 302 on blackfire.io links by @rfay in #4869
  • [docs] Minor improvements to customization-extensibility by @rfay in #4868
  • Wrap diagnostic output into collapsed
    block by @MurzNN in #4865
  • [docs] Try to fix canonical blackfire links by @rfay in #4874
  • [docs][tests] Stop checking blackfire.io since it's inconsistent by @rfay in #4876
  • config.yaml comments: Explanation about mandatory https_port field, fixes #4864 by @MurzNN in #4870
  • Fix log location (supervisord) in several places by @rfay in #4873
  • add mkcert to arch dependencies, fixes #4884 by @Data5tream in #4887
  • [aur] Add mkcert dependency to ddev-edge-bin by @stasadev in #4890
  • See if Pantheon integration can be partially without ssh, fixes #4882 by @rfay in #4883
  • check for empty HTTP_EXPOSE and HTTPS_EXPOSE env variables (traefik only) by @hanoii in #4888
  • Make sure perms on webextradaemons supervisor conf are correct, fixes #4872 by @rfay in #4878
  • [docs] Exclude twitter.com/search from link check by @rfay in #4892
  • [TASK] Add correct example for ---web-environment-add by @josefglatz in #4897
  • Add “just simply” link to the writing style guide by @mattstein in #4903
  • Update gitpod base to get docker buildx [skip ci] by @rfay in #4906
  • [docs] Add textlint by @mattstein in #4905
  • feat: add support for MariaDB 10.11 LTS by @cngJo in #4902
  • Stop testing TestDdevXdebugenabled on Docker Desktop until it works [skip ci] by @rfay in #4910
  • Fix copy pasta in ddev mutagen monitor [skip ci] by @rfay in #4909
  • Update craftcms project type defaults by @AugustMiller in #4907
  • Fix gitpod failure to start, fixes #4889 by @rfay in #4895
  • [tests only] Use new platform.sh target site for testing by @rfay in #4911
  • Remove unused package spf13/viper and dependencies from vendor, etc. by @gilbertsoft in #4908
  • Introduce versioned addons and add-on removal, fixes #3555, fixes #3919 by @rfay in #4891
  • [tests only] dockerutils_test TestMain should only delete existing test container by @rfay in #4916
  • [docs] Move mkcert to the top for Linux [skip ci] by @gitressa in #4914
  • [docs] fix text to match example [skip ci] by @tyler36 in #4913
  • Update github.com/google/go-github to v52 by @gilbertsoft in #4915
  • Bump github.com/cloudflare/circl from 1.1.0 to 1.3.3 by @dependabot in #4920
  • Remove obsolete docker compose COMPOSE_* env vars by @rfay in #4921
  • Simplify and optimize util.TimeTrack by @gilbertsoft in #4924
  • Delete FUNDING.yml by @gilbertsoft in #4929
  • Only run wsl2-docker-desktop on master by @rfay in #4930
  • Add add-on-versioning to ddev debug capabilities by @rfay in #4928
  • Stop gitignoring most config.*.yaml, fixes #4893 by @rfay in #4923
  • Bump docker-compose to v2.18.1 by @rfay in #4917
  • [docs] Give tip about ddev --version in ddev version section by @rfay in #4931
  • [mostly tests only] TestDdevExec was failing on WSL2-docker-inside by @rfay in #4935
  • [docs] Mention that craftcms is best with Craft CMS 4+ by @rfay in #4925
  • [docs] Mention not to use --vm-type with Colima on pre-Ventura by @rfay in #4937
  • mysql:5.7 snapshot restore can take longer, fixes #4933 by @rfay in #4934
  • Expand files before processing so we can check #ddev-generated, fixes #4253 by @rfay in #4932
  • Bump mutagen to 0.17.1 by @rfay in #4939
  • Separate "build" from "up" stages in DDEV Start() by @rfay in #4919
  • [tests only] Make sure to kill mutagen daemon by @rfay in #4943
  • [tests only] Use macOS 13 for colima, update colima by @rfay in #4951
  • [docs] Debug environment variable suggestions by @mattstein in #4949
  • [docs] Improve ddev pull flags description with --environment by @rfay in #4945
  • Bump traefik to 2.10 by @rfay in #4946
  • Allow add-ons to declare dependencies, fixes #4717 by @rfay in #4941
  • Fix problems with mutagen.yml being generated too late by @rfay in #4944
  • Introduce state management package to keep state of messages feature and global state by @gilbertsoft in #4948
  • [docs] Fix incorrect path for daemon file by @rfay in #4967
  • Bump actions/setup-python from 4.6.0 to 4.6.1 by @dependabot in #4956
  • [tests only] Fix TestPHPOverrides for Windows Mutagen, fixes #4875 by @rfay in #4968
  • [docs] Dockerfile Tutorial on installing into ~/.cache by @rfay in #4969
  • Proper fish completion file extension by @hanoii in #4973
  • [docs] Show details about GitHub PAT for package management by @rfay in #4971
  • [tests only] Only run circleci on master branch updates, not PRs by @rfay in #4984
  • [tests only] Make TestHostDBPort more stable by @gilbertsoft in #4987
  • Add global router_http(s)_port config, fixes #3240 by @miromichalicka in #4640
  • [docs] Fix link to TYPO3 docs by @gilbertsoft in #4988
  • Fix GetRouterHTTP*Port() to use defaults if empty by @rfay in #4995
  • Update error message in ddevapp.go by @rpkoller in #4994
  • [docs] Change link to TYPO3 docs to point to main by @gilbertsoft in #4992
  • [docs] Some consistency changes to env variables in custom-commands.md by @rpkoller in #4998
  • [docs] Fix moved link in spf13/cobra by @rfay in #5004
  • Deliver instrumentation data directly to amplitude, fixes #4335 by @gilbertsoft in #4866
  • [docs] Update custom-commands.md adding DDEV_UID & DDEV_GID by @rpkoller in #4997
  • add DDEV_DATABASE_FAMILY variable, fixes #4954 by @tyler36 in #4991
  • [tests only] Fix TestDdevFullSiteSetup flask test by @rfay in #5008
  • Implement DdevGlobalConfig initialization in one place by @rfay in #5007
  • Feature showing messages to the users, fixes #3799 by @gilbertsoft in #4885
  • Make sure InternetDetectiontimeout is a reasonable value by @rfay in #5017
  • Set traefik as default router, fixes #4679 by @rfay in #4983
  • Optimize output of debug instrumentation flush, fixes #5023 by @gilbertsoft in #5025
  • Move init of remote-config to start, fixes #5022 by @gilbertsoft in #5024
  • Remove PhpMyAdmin/dba from DDEV core, fixes #3534 by @rfay in #4990
  • Switch to Amplitude main branch by @gilbertsoft in #5027
  • [tests only] Improve TestRouterPortsCheck random failure, limit use of TestNodeJSVersions by @rfay in #5020
  • Use --file for import-db and rework import-db and export-db, fixes #4593 by @gilbertsoft in #5013
  • Fix ddev delete images panic, fixes #4974 by @rfay in #4975
  • Increase test timeout for Windows tests [skip ci] by @rfay in #5036
  • Remove 'ddev pause' and its tests by @rfay in #5035
  • Add healthcheck to router so we wait for it to be started by @rfay in #5034
  • test: stop testing TestDdevFullSiteSetup on Windows/Colima [skip ci] by @rfay in #5041
  • refactor: hide --required-docker-compose-version and --use-docker-compose-from-path from global config, fixes #4607 by @rfay in #5039
  • test: refresh colima/lima/homebrew github caches, docker build cache by @rfay in #5043
  • refactor: enable Mutagen by default on Mac and Windows, fixes #4637 by @gilbertsoft in #4904
  • test: fix broken Mutagen test, fixes #5053 by @gilbertsoft in #5054
  • refactor: add new Amplitude Property DDEV-Environment by @rfay in #5028
  • ci: enforce commit message convention, fixes #5037 [skip ci] by @gilbertsoft in #5038
  • refactor: switch ampli branch to main [skip ci] by @gilbertsoft in #5056
  • fix: make sure router gets built on start, for #5040 by @rfay in #5052
  • test: fix broken Mutagen test by @gilbertsoft in #5059
  • build: bump to new images for v1.22.0-beta1 by @rfay in #5057
  • fix: make mkdocs-serve should work with no mkdocs installed [skip ci] by @rfay in #5063
  • docs: improve descriptions for performance_mode by @rpkoller in #5055
  • test: fix broken Mutagen test use-nfsmount by @gilbertsoft in #5062
  • feat: allow multiple upload dirs, fixes #4190, fixes #4796, fixes #5047 by @gilbertsoft in #5005
  • build: gh codespaces - bump docker-in-docker to v2 by @mandrasch in #5061
  • docs: gh codespaces install docs - update docker-in-docker to v2 by @mandrasch in #5060
  • build: publish new devcontainer by @gilbertsoft in #5067
  • docs: update devcontainer publishing by @gilbertsoft in #5068
  • test: optimize caching of downloaded assets by @gilbertsoft in #5019
  • refactor: detect more dependency changes by @gilbertsoft in #5072
  • docs: improve additional-hostnames.md by @jowhannez in #5045
  • fix: avoid type: php to detected project type but instead show a warning, fixes #4403, fixes #1919 by @gilbertsoft in #5011
  • docs: fix spellcheck failure by @rfay in #5074
  • build: bump mutagen to 0.17.2 by @rfay in #5049
  • fix: avoid instrumentation of project if none is loaded, fixes #5065 by @gilbertsoft in #5066
  • ci: decrease cache update interval to have more up to date caches [skip ci] by @gilbertsoft in #5079
  • ci: implement clean up and update of Homebrew cache [skip ci] by @gilbertsoft in #5080
  • ci: fix link to docs in PR Check [skip ci] by @gilbertsoft in #5086
  • fix: revert accidental change of upload-dir type, fixes #5076 by @gilbertsoft in #5087
  • ci: reduce Homebrew cleanup by @gilbertsoft in #5088
  • fix: quote host parameter for HeidiSQL and prevent argument double quoting by @andreashager in #5084
  • fix: disable docker CLI hints, fixes #5077 by @rfay in #5085
  • ci: increase cache update interval to one week by @gilbertsoft in #5091
  • refactor: avoid calling stop hooks if app is already stopped by @gilbertsoft in #4877
  • fix: terminate mutagen sessions on DDEV upgrade, fixes #5040 by @rfay in #5096
  • fix: create upload dirs before generating Mutagen config, fixes #5093 by @gilbertsoft in #5094
  • docs: point to new location of DDEV GitHub Action by @jonaseberle in #5105
  • ci: prevent job from failing if cleanup fails by @gilbertsoft in #5097
  • fix: ddev-webserver process kill function was incorrect by @rfay in #5107
  • build: revert to upstream Amplitude, fixes #5101 by @marklabrecque in #5103
  • fix: solve mutagen failure, restart should check for new version, check composer.json in container, fixes #5089 by @rfay in #5106
  • ci: ensure go modules have a clean state by @gilbertsoft in #5115
  • ci: minor cleanup for TestPantheonDoMonthlyPush [skip ci] by @rfay in #5116
  • refactor: anonymize user-defined custom commands by @gilbertsoft in #5110
  • ci: remove TestPantheonDoMonthlyPush [skip ci] by @rfay in #5124
  • refactor: update settings.php for the Drupal 10 project type, fixes #5121 by @rpkoller in #5122
  • docs: improve “Additional Project Hostnames” intro and add YAML syntax highlighting by @mattstein in #5120
  • docs: rename feature section in readme.md by @tyler36 in #5118
  • fix: empty global table style should revert to "default" by @rfay in #5117
  • build: bump docker-compose to 2.20.0 by @rfay in #5006
  • refactor: reintroduce removed flags and remove dba from omit_containers, fixes #5095 by @gilbertsoft in #5109
  • docs: use import-db --file instead of import-db --src and import-files --source by @rfay in #5130
  • fix: fix panic when upload_dirs=false, improve upload_dirs tests, fixes #5126, fixes #5127 by @rfay in #5128
  • refactor: revert upload_dirs=false, fixes #5131 by @rfay in #5134
  • docs: change code refs of Mac M1 to Apple Silicon by @marklabrecque in #5129
  • build: clean up Windows installer, fixes #1945 by @gilbertsoft in #5098
  • fix: composer create project must restart to fix broken bind mounts, fixes #5031 by @rfay in #5132
  • refactor: start reporting all commands to amplitude by @rfay in #5136
  • build: bump mysql to 8.0.33 and 5.7.42, fixes #5114 by @rfay in #5140
  • fix: detect Craft CMS version and warn user on type mismatch and introduce new env vars, fixes #4650 by @gilbertsoft in #5108
  • fix: ddev config should not stumble on invalid app type, fixes #5146 by @rfay in #5148
  • build: update all of vendor directory by @rfay in #5144
  • refactor: make many mutagen debug outputs only verbose, fixes #5143 by @rfay in #5147
  • refactor: make GetDockerPlatform() give more useful information, fixes #5142 by @rfay in #5145
  • fix: repair broken received HTTP*EXPOSE that breaks ports statement by @rfay in #5150
  • ci: minor improvement to TestDdevNoProjectMount [skip ci] by @rfay in #5149
  • feat: add new disable-upload-dirs-warning configuration by @rfay in #5139
  • fix: always clean up ddev-global-cache, fixes #5135 by @stasadev in #5137
  • 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
  • refactor: start with random ticker message, fixes #5180 by @gilbertsoft in #5181
  • refactor: output debug messages during router startup by @rfay in #5184
  • fix: traefik dashboard should not bind all interfaces by default by @stasadev in #5185

New Contributors

Full Changelog: v1.21.6...v1.22.0