github ddev/ddev v1.8.0-rc1
v1.8.0-rc1 Testing prerelease

latest releases: v1.23.1, v1.23.0, v1.23.0-rc2...
pre-release5 years ago

Draft Release Notes for v1.8.0

Installation/Upgrade

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

  • macOS Homebrew and Linux Linuxbrew: brew upgrade ddev
  • Linux or macOS via script:
    curl https://raw.githubusercontent.com/drud/ddev/master/scripts/install_ddev.sh | bash
  • Windows: Download the ddev_windows_installer.v1.7.1.exe above or with Chocolatey choco install ddev or choco upgrade ddev (or choco install ddev --version=1.7.1 while it's in the approval process.)
    And anywhere, you can just download the tarball or zipball, untar or unzip it, and place the executable in your path where it belongs.
  • Please see the "Incompatibilities and Things to Upgrade" section below. You'll want to update config.yaml hooks that use bash -c, and if using custom nginx configuration will want to update your nginx config (but it's easier now!)

Key changes in v1.8.0:

  • Browsers and host OSs now trust ddev sites over https. You do have to take the one-time action to install the CA keys into your operating system and browsers: mkcert -install. If you use one of the package installation methods or the WIndows installer, you should already have mkcert. Otherwise, see the mkcert page for installation options. (Even curl and operating system tools generally trust the mkcert certs, and curl within the container also trusts them.)
  • Dynamic container updates: If you need extra Debian packages in your web or db container (or need to make more sophisticated adjustments) you no longer have to wait for them, or install them every time you start a project. You can add webimage_extra_packages to your config.yaml or build a free-form Dockerfile (Dockerfile.example provided in your .ddev folder)
  • The "stop" and "remove" commands have been changed a bit. ddev stop now does what ddev remove used to do. It removes the containers and saves resources on your host. ddev remove is still available as an alias of ddev stop. And ddev pause takes the place of the former ddev stop - it just does a "docker stop" on the project containers and leaves them in zombie state. This is the workflow we've promoted for some time, as we've been suggesting that people use "remove" in general, but now it's just named "stop".
  • nginx configuration in the web container has been reorganized and simplified. This mostly won't matter to you unless you use custom nginx configuration, in which case you'll want to upgrade your configuration (see below). docs
  • ddev exec and exec hooks now interpret commands using bash. This means you can have a hook like "sudo apt-get update && sudo apt-get install -y some-package" without putting "bash -c" in front of it. And you can ddev exec "sudo apt-get update && sudo apt-get upgrade -y some-package" as well, no bash -c required.
  • ddev exec can now work with interactive situations. So for example, you can ddev exec mysql and interact with the mysql program directly. Or ddev exec bash, which is the same as ddev ssh.

Smaller changes

  • There is now an exposed https port on localhost (not going through the router). It is reported on ddev start and via ddev describe. (As with the http port, the https localhost port can be locked down in the config.yaml, but most people won't need to do this. See the .ddev/config.yaml for instructions.)
  • Since https is preferred everywhere now, the reported URLs are now https-first, http second.
  • The composer cache has moved from a volume named "ddev-composer-cache" to a new volume named "ddev-global-cache". If you want to, you can docker volume rm ddev-composer-cache.
  • blackfire.io and php-pgsql packages was added to web container. If you were previously adding them with a post-start hook, you don't have to do that any more..
  • Windows users will be warned when they have more than 10 sites/hostnames represented in the hosts file, since WIndows stops resolving over 10 hostnames.
  • The webcache feature is officially deprecated and is no longer getting automated test coverage, but no date has been set to remove it. Maybe it will just live on until there's something to compete with it for automated testing speed. (docs)
  • New flag ddev --version gets just the ddev version without all the details in ddev version
  • Multiple hostname resolution in web container: There was a long-term bug (#1235) where you couldn't use curl against the hostname if additional_hostnames or additional_fqdns were enabled, that's fixed.
  • drush once again works on the host (macOS and Linux). It was broken on v1.7.1 because the ddev_drush_settings.php got dropped into the wrong place when generated.
  • nginx in the web container no longer intercepts and reports 40x errors, they'll be handled by the PHP application.
  • ddev config no longer searches for and uses a .ddev/config.yaml in a parent directory (although it does warn if it finds one). This led to people accidentally using unintentially created config files in non-project parent directories, including the home directory. Running ddev config in home directory is now disallowed.
  • ddev composer create --no-interaction passes the --no-interaction file to composer, but no longer will continue without asking for confirmation before destroying the project directory; confirmation is required.

Incompatibilities and things to fix during upgrade

  • The base nginx configuration has changed. If you are overriding configuration with an nginx-site.conf file, you'll want to re-do it (it's much easier now). In addition, small pieces of nginx configuration can now be added in the .ddev/nginx directory. See the docs for more information.
  • config.yaml "exec" hooks are now executed with bash context by default. If you have exec hooks that have "bash -c" in them, please remove that, as they can't be interpreted correctly by the new execution mechanism.
  • If you or your team used to use ddev stop instead of ddev remove, the new behavior of "stop" may seem different, but it hopefully won't affect most people. However, if you have an add-on docker-compose.*.yaml service that has volatile storage, you may want to change it to save its database on a volume, as ddev stop now completely brings down the containers, and if they had volatile content, it will be gone.

Thanks!

Many community members helped out with this release.

  • @damienmckenna , @wizonesolutions , and @mglaman among others worked to significantly improve the Apache Solr docs and example docker-compose.solr.yaml, and added a docker volume so the solr database would be nonvolatile after ddev stop.
  • @AronNovak created the PR to have the ddev-webserver nginx configuration not intercept 40x errors.
  • @yanniboi and @isholgueras were kind enough to catch and PR docs errors.
  • @dacostafilipe introduced a PR adding pgsql libraries
  • Thanks to all of you for the issues you created, bugs you pointed out, features you requested, support you gave in Slack and elsewhere, and for your support of ddev!

And the amazing mkcert from @FiloSottile made the seemingly impossible task of trusted local development certificates possible. Thanks! Is open source great or what?

Commits since v1.7.1

07ac366 Add quickstart for PHP project [skip ci][ci skip] (#1573)
f3c9b0d ddev exec command should allow tty interactions (#1571)
2bf13b9 Use StartAndWaitForSync to accomodate docker toolbox slowness (#1572)
70917c6 Use docker-compose build for dynamic containers, allow easier container config (#1560)
81c4b2e ddev-webserver Nginx - do not intercept 400 errors (#1555)
7e9b172 Fix mark down format for hook examples. (#1565)
980cb5c Use sudo to copy mysql config files, fixes #1541 (#1563)
41e9954 apache-cgi should respect php overrides, fixes #1556 (#1557)
baef9b2 Test improvements for Win 10 Docker Toolbox (#1561)
dc340c9 Use restart: no on additional service examples (#1559)
49f3b50 Add blackfire.io to web container, fixes #653 (#1545)
e484c99 Improved Solr install docs, update to 6.6 (#1549)
761938f Use docker volume in sample apachesolr config (#1538)
7b2fbab SetSiteSettingsPaths() has to be set after we've read the config, fixes #1553 (#1554)
97c660a Trust SSL/TLS Certificates, fixes #1247, fixes #1501, fixes #849 (#1540)
be8505e Fix CaptureLogs to just capture stdout (#1550)
5940cdb Add separate lines for each external_links, fixes #1235 (#1546)
a2d191e Change PHP typo when it should be MySQL (#1532) [skip ci][ci skip]
beab35d Improve docs with DEBIAN_FRONTEND=noninteractive in apt-get examples [skip ci][ci skip] (#1543)
899386b More robust handling of ddev stop -RO, remove from global list, fixes #1523 (#1531)
44f2c24 Rename stop-containers to pause, so ddev pause, follow up to #1526 (#1537)
9388534 Reorganize stop and remove commands (use stop), fixes #484 (#1526)
e64019e Improve "ddev version" and add --version flag, fixes #960 (#1527)
34c84c7 Deprecate webcache_enabled, fixes #1495 (#1530)
573fb00 Generate homebrew bottles for Linux and macOS for #1516 (#1524)
a938096 Use CircleCI's new Ubuntu 16.04 machine image (#1513)
60e0d25 Minor release docs improvements (#1525)
0a70f46 Add wordpress composer recipe, simplify others, [skip ci][ci skip] (#1519)
21dbe0e Minor improvements to mariadb binlog management (#1515)
ce86166 Add missing php-pgsql packages to ddev-webserver container (#1514)
8b06e0f Add fileinfo to required php extensions in docs [skip ci] [ci skip] (#1512)

Don't miss a new ddev release

NewReleases is sending notifications on new releases.