Remaining actions:
For additional background information, please see our Product Release instructions here.
See the installation instructions for details, but it's easy:
ddev remove --all --stop-ssh-agentbrew upgrade ddevcurl https://raw.githubusercontent.com/drud/ddev/master/scripts/install_ddev.sh | bashchoco install ddev or choco upgrade ddev (or choco install ddev --version=1.7.1 while it's in the approval process.)mkcert -install; Watch what it says to you. You may have a little extra work to do on Linuxbash -c, and if using custom nginx configuration will want to update your nginx config (but it's easier now!)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.)webimage_extra_packages to your config.yaml or build a free-form Dockerfile (Dockerfile.example provided in your .ddev folder)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". 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. 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.)docker volume rm ddev-composer-cache.ddev --version gets just the ddev version without all the details in ddev versionddev 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.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.drush --yes. Formerly, --yes was implied by exec hooks and ddev exec, but it isn't any more.Many community members helped out with this release.
ddev stop.And the amazing mkcert from @FiloSottile made the seemingly impossible task of trusted local development certificates possible. Thanks! Is open source great or what?
e85d60c2 Fix typo in description, change completion to 'has been stopped' (#1590)
4038b549 Improve mkcert docs for linux [skip ci][ci skip] (#1591)
f928dcb9 Improve wordpress quickstart with ddev config [skip ci][ci skip] (#1592)
689ea9ee Re-use the v1.8.0 tag even though small change was made in web container (#1589)
421efebb Remove --yes drush behavior when in ddev exec behavior, fixes #1584 (#1586)
16f109eb Revert parent config search, prevent directory destruction, hopefully fixes #1574 (#1576)
9b6fcadd Bump container versions to v1.8.0 (#1581)
96e78d8a Interpret ddev exec and hooks with bash, fixes #1023 (#1570)
a41256c2 Warn windows users when hosts file has too many entries on a line, fixes #948 (#1575)
24e1d8d2 Further improved Solr install docs. (#1568)
07ac3661 Add quickstart for PHP project [skip ci][ci skip] (#1573)
f3c9b0db ddev exec command should allow tty interactions (#1571)
2bf13b94 Use StartAndWaitForSync to accomodate docker toolbox slowness (#1572)
70917c6d Use docker-compose build for dynamic containers, allow easier container config (#1560)
81c4b2e0 ddev-webserver Nginx - do not intercept 400 errors (#1555)
7e9b172a Fix mark down format for hook examples. (#1565)
980cb5c9 Use sudo to copy mysql config files, fixes #1541 (#1563)
41e99543 apache-cgi should respect php overrides, fixes #1556 (#1557)
baef9b25 Test improvements for Win 10 Docker Toolbox (#1561)
dc340c9a Use restart: no on additional service examples (#1559)
49f3b508 Add blackfire.io to web container, fixes #653 (#1545)
e484c99e Improved Solr install docs, update to 6.6 (#1549)
761938f2 Use docker volume in sample apachesolr config (#1538)
7b2fbab6 SetSiteSettingsPaths() has to be set after we've read the config, fixes #1553 (#1554)
97c660af Trust SSL/TLS Certificates, fixes #1247, fixes #1501, fixes #849 (#1540)
be8505e3 Fix CaptureLogs to just capture stdout (#1550)
5940cdb3 Add separate lines for each external_links, fixes #1235 (#1546)
a2d191e8 Change PHP typo when it should be MySQL (#1532) [skip ci][ci skip]
beab35d9 Improve docs with DEBIAN_FRONTEND=noninteractive in apt-get examples [skip ci][ci skip] (#1543)
899386bc More robust handling of ddev stop -RO, remove from global list, fixes #1523 (#1531)
44f2c247 Rename stop-containers to pause, so ddev pause, follow up to #1526 (#1537)
93885347 Reorganize stop and remove commands (use stop), fixes #484 (#1526)
e64019e6 Improve "ddev version" and add --version flag, fixes #960 (#1527)
34c84c73 Deprecate webcache_enabled, fixes #1495 (#1530)
573fb002 Generate homebrew bottles for Linux and macOS for #1516 (#1524)
a9380962 Use CircleCI's new Ubuntu 16.04 machine image (#1513)
60e0d25d Minor release docs improvements (#1525)
0a70f468 Add wordpress composer recipe, simplify others, [skip ci][ci skip] (#1519)
21dbe0e1 Minor improvements to mariadb binlog management (#1515)
ce861669 Add missing php-pgsql packages to ddev-webserver container (#1514)
8b06e0fe Add fileinfo to required php extensions in docs [skip ci] [ci skip] (#1512)
Current testing is against v1.8.0-rc1.
Testing installation instructions:
brew untap drud/ddev && brew tap rfay/ddev && brew upgrade ddev (Remember after testing completion to brew untap rfay/ddev && brew tap drud/ddev)Problem Reporting
Test Plan
ddev remove works as it always has, that ddev stop now behaves like ddev remove always did (with its flags). And that ddev pause can work with ddev start. Especially look for things that might trip people up as this is introduced to them.mkcert -installddev describe) should work fine on macOS and Linux.ddev start (ddev ssh in there and use dpkg or other technique)ddev exec in a few ways. Examples: ddev exec mysql, ddev exec vim /etc/my.cnf, ddev drush sqlcddev exec with commands that require bash interpretation. For example, ddev exec echo \$HOSTNAME and ddev exec "set | grep DDEV" andddev exec 'echo $HOSTNAME'andddev exec "ls >/tmp/junk.txt"`exec: set | grep DDEV and others like above.ddev config in a subdirectory of a project should warn that a parent .ddev/config.yaml was found, but not automatically use it.ddev composer create --no-interaction should still require confirmation before blowing away the project directory.ddev start on Windows if the hosts file line has gone over 10 entries. remove-data would be favorable because stop --remove-data is not expected IMHO to non-docker-compose people.ddev help stop has a little formatting error:Stop and remove the containers of a project. You can run 'ddev stp['
from a project directory to stop/remove that project, or you can stop/remove projects in ...stop IS de facto a destructive operation as changed files outside of volumes WILL be gone. mkcert docker-compose build output on build error!)Randy's testing:
ddev help stop has a formatting errorddev stop says "has been stopped and removed" and "has been stopped" would probably be better.mkcert -install warns about things (nss), but people may not see them. Also, on Ubuntu, /usr/sbin must be in the PATH to pick up /usr/sbin/update-ca-certificates.ddev config to config initially.> Installer::postPackageInstall
Script Installer::postPackageInstall handling the post-package-install event terminated with an exception
[ErrorException]
symlink(): No such file or directory<?php phpinfo(); and everything was fine.ddev exec in a few ways. Examples: ddev exec mysql, ddev exec vim /etc/my.cnf, ddev drush sqlcddev exec with commands that require bash interpretation. ddev config in a subdirectory of a project should warn that a parent .ddev/config.yaml was found, but not automatically use it. (This works; in my environment (cmder with bash:bash) on Windows it doesn't show the warning as brightly as I wish it would, it's white)ddev composer create --no-interaction should still require confirmation before blowing away the project directory. (This works as expected, confirmation is required)ddev start on Windows if the hosts file line has gone over 10 entries. I got:ddev hostname --remove-inactive or edit the hosts file manually@rfay Blackfire shouldn't cause any performance problems idling in the background.
Blackfire profiles are generated only for requests triggered by a Blackfire user, or by Blackfire when profiling is automated. That is made possible thanks to our runtime instrumentation. As no other requests will be instrumented, Blackfire will add no overhead for your end users, which makes it safe to use in production.
I have the Blackfire extension installed in production on plenty of projects. The _only_ think I could think of is it someone installed Tideways or XHProf? But even then all of these runtimes only trigger when invoked. I've had XHProf and Blackfire on a site at the same time without errors.
Test notes:
Did not test
WordPress Composer recipe: ๐
I was able to use the recipe documentation to start a fresh WordPress project using Composer, but I did hit the ddev config speed bump.
PHP Quickstart: ๐
An important addition to the documentation. I followed the steps to create a very simple project.
Reorganize start/pause/stop: โ ๏ธ
I'm able to control the container lifecycle using start, pause, and stop instead of start, stop, and remove. I love the symmetry of start vs. stop, and pause is a natural addition to the command set. There is a typo in the Long: help text for ddev stop: You can run 'ddev stp['...
Additional hostnames/FQDNs resolution: :+1:
All additional hostnames and FQDNs defined in .ddev/config.yaml are recognized in-container, both for http and https.
Did not test
Trusting local certs: ๐
After configuring, the https local sites are trusted by the browser.
Additional packages: ๐
I'm able to define additional packages to be installed in a container. After starting or restarting containers, the packages are installed, as confirmed by ddev ssh.
Custom containers: ๐
Similarly, I'm able to define a custom container image for web and db containers. The expected packages are installed and other RUN steps are executed.
Interactive ddev exec: ๐
I'm able to interactively run commands in-container through ddev exec, e.g. ddev exec vim myfile.txt. This is very cool!
Bash interpretation in ddev exec: ๐
My go-to test command for this is ddev exec curl https://drud.com | tee drud.com.tmp. This works just as it would in a normal Bash context, and the contents of the resulting file is confirmed by ddev exec cat drud.com.tmp.
Bash interpretation in hooks: ๐
This was tested using the same command in 11. and was successful.
Rework config-in-subdirectory: ๐
When a .ddev/config.yaml exists in a parent directory, ddev config warns the user of the existing config, but continuing creates a new config in the current working directory.
ddev composer ... --no-interaction still requires confirmation: ๐
Despite the --no-interaction flag, the 'delete everything' step requires interactive confirmation.
Did not test
There are a ton of really major updates here — this is probably one of the biggest and best ddev updates yet!
hi, i tested the rc on windows 10.
i ran mkcert --install, but chrome doesn't recognize the CA, also the CA is listed in the trust store.
Hi @hebbet - I've tested this a number of times on WIndows 10 with Chrome. Could you recheck that you:
ddev remove --all before starting (so that there is no router running and the router gets recreated)Thanks for testing, and thanks for reporting. Hoping to understand this better.
This is all done, and I even went through Stack Overflow ddev articles looking for things that needed to be updated (bash -c, etc).
Elli and I are working on announcements and other communication.
close project board, milestone, update releases wiki page