ddev / ddev

Docker-based local PHP+Node.js web development environments
https://ddev.com
Apache License 2.0
2.7k stars 595 forks source link

DDEV-Local v1.14 Test Plan #2174

Closed rfay closed 4 years ago

rfay commented 4 years ago

ddev v1.14 in in release preparation. v1.14.0-rc2 is the release candidate for testing and has installation instructions. Please report results in this issue or open new issues, depending on your judgement of their severity.

  1. drupal/recommended-project template (Drupal8 and Drupal9):
  2. *docker-compose..yaml with wildcard characters**: Verify that the described failure case is resolved. (Create dir named ~/tmp/[Local]/j2 and try ddev config)
  3. Check import-db help, verify fixed per PR.
  4. Apache Drupal update.php: Make sure update.php with Apache works as in https://github.com/drud/ddev/issues/2083
  5. Test NFS installer script on Windows with a username that has spaces in it, per https://github.com/drud/ddev/pull/2093. To do this, you have to remove ~/.ddev/nfs_exports.txt first.
  6. Test ddev with bad internet, #1969 - Easiest way is by setting up terrible internet with Parallels or another virtualization setup. Should see "internet not detected" with terrible internet or no internet.
  7. Test ddev launch -p for PHPMyAdmin and **ddev launch -m** for mailhog. Use the long form of the command. See ddev help launch. (Consider improving launching the https version of each of these if available)
  8. Test https versions of PHPMyAdmin and MailHog (see ddev describe)
  9. Review ddev describe output for correctness and usefulness, especially with 3rd party services.
  10. Verify new .ddev-docker-compose-base.yaml and .ddev-docker-compose-full.yaml files, creation, etc.
    • Make sure any docker-compose.yaml gets properly disposed of.
    • Practice an upgrade from working v1.13.1 and see that the new files are created and docker-compose.yaml is removed.
  11. Test ddev xdebug command. No args (enables), enable and disable and status commands. Alternate versions "on" and "off".
  12. Verify removal of APIVersion from .ddev/config.yaml. Verify that upgrade works ok, with or without ddev config being run. No complaints about version should be issued.
  13. Custom commands reported as "customcommand" to segment. Use segment debug tool, verify that all custom commands are reported as "customcommand".
  14. Remove 3rd-party named volumes when ddev delete. Use a 3rd party service like solr that creates a volume.
    • Verify that ddev delete deletes it.
    • See if the docs have info about this.
  15. Remove -built image when doing ddev delete: After ddev delete the web and db images named with -built should be removed from docker images
  16. nfs_mount_enabled global support: ddev global config --nfs-mount-enabled should enable NFS on all projects
    • Verify that this is in docs, both in global and in the NFS setup docs.
  17. nfs_mount_enabled and omit_containers in ~/.ddev/global_config.yaml should not leak into project .ddev/config.yaml. (PR and testing instructions #2165)
    • Enable those globally.
    • ddev config on a project.
    • Nothing about the configs in the project .ddev/config.yaml should change.
  18. no_project-mount: true: Test as described in #2162

Additional items added in v1.14.0-rc2

Testing above revealed some rough spots, so in v1.14.0-rc2, test these items that were touched up:

  1. ddev delete should show deletion of volumes #2188:
    • Add solr or other service that uses a persistent volume (postgres, for example) to a project
    • ddev start and ddev delete -Oy and verify that the output during deletion is appropriate and shows the act of deleting the volume.
  2. ddev-created .ddev/.gitignore should be correct #2182
  3. Create /etc/hosts entries if IsInternetActive() is false #2186 -Set a network conditioner on Parallels Windows 10 instance with a 1000ms delay on incoming. When that delay is introduced, IsInternetActive() should return false, and as a result ddev start should create hostnames in /etc/hosts instead of relying on DNS.
  4. ddev composer create finishes with app.Start() making simpler quickstarts #2184
  5. NFS Improvements #2178
    • Use ddev debug nfsmount and see the success message at end and confirmation whether global or project nfs_mount_enabled is on.
    • Review updated NFS setup docs and see if they work for you.
  6. ddev xdebug improvements: Verify that ddev help xdebug shows "enable" and "disable"
rfay commented 4 years ago

From about #7 on I was using Windows 10 Home with Docker Desktop for Windows. Overall it seems everything is functional, but there are some touchup items to be done on docs and just a bit of code.

  1. drupal/recommended-project template:

    • πŸ‘πŸΌDrupal 8 worked fine
    • πŸ‘πŸΌDrupal 9 worked fine. There's apparently no way to do drupal/recommended-project:^9 yet; you can give it drupal/recommended-project:^9.0-beta2, but that's not very useful in the instructions.
  2. *docker-compose..yaml with wildcard characters**: Verify that the described failure case is resolved. (Create dir named ~/tmp/[Local]/j2 and try ddev config)

    • πŸ‘πŸΌπŸ‘ŽπŸΌIt fails as expected with "could not create new config: Project directory contains a glob pattern, please use a directory that does not contain `{}[]*?". But I don't actually think that this is a requirement any more. However, it does no harm.
  3. Check import-db help (target-db)

    • πŸ‘πŸΌhelp shows "-d, --target-db string If provided, target-db is alternate database to import into (default "db")" instead of the garbled thing it had before.
  4. Apache Drupal update.php: Make sure update.php with Apache works as in #2083

    • πŸ‘πŸΌWorked fine with this version, no failure on https://foobar.ddev.site/update.php with "No input file specified".
    • πŸ‘πŸΌcgi.fixpathinfo=1 in phpinfo as it should be.
  5. Test NFS installer script on Windows with a username that has spaces in it, per #2093.

    • πŸ‘πŸΌI installed in Windows with the username "Randy Fay" (with the space, /Users/Randy Fay - it worked fine.
    • Preparation for this one required nssm stop nfsd && nssm remove nfsd (and click the dialog box that comes up). Also rm ~/.ddev/nfs_exports.txt
  6. Test ddev with bad internet, #1969

    • πŸ‘πŸΌTested in Parallels Windows 10 Pro machine. It definitely displayed the detection issue: "Internet connection not detected".
    • πŸ‘πŸΌI did not see the segment failures we've seen in this case output to stderr, because IsInternetActive is preventing it.
    • However, πŸ‘ŽπŸΌI was expecting that broken internet state to result in ddev adding hostnames. But the code for that in AddHostsEntriesIfNeeded() does its own net resolution without respect to the IsInternetActive. I think it should maybe bail early if !IsInternetActive.
  7. Test ddev launch -p for PHPMyAdmin and ddev launch -m for mailhog

    • πŸ‘πŸΌ This worked correctly for both -p and -m. β€”phpmyadmin and β€”mailhog also worked, and ddev help launch also worked. However, I did trick myself by first trying to use a project (d8composer) which had been created in WSL2, so the path was different, and it was unable to do anything useful. The problem of working on both sides of WSL2 will be a problem everywhere with it when it comes out.
  8. Test https versions of PHPMyAdmin and MailHog (see ddev describe)

    • πŸ‘πŸΌThe https URLs in ddev descrie worked perfectly with PHPMyAdmin and MailHog
  9. Review ddev describe output for correctness and usefulness, especially with 3rd party services.

    • πŸ‘πŸΌ ddev describe gave me correct links and useful links for https and http access to redis-commander from ddev-contrib,
    • However, πŸ‘ŽπŸΌ, it seems to me that services without web UIs should also be shown there. I think this should be fixed. So, for example, the redis service should be listed, even though it doesn't have a web UI.
  10. Verify new .ddev-docker-compose-base.yaml and .ddev-docker-compose-full.yaml files, creation, etc.

    • πŸ‘πŸΌ This seemed to be right. I downgraded to v1.13.1 and did a ddev start, which created the .ddev/docker-compose.yaml. The project worked right. Then I upgraded again to v1.14.0-rc1 and did another ddev start and the docker-compose.yaml was deleted and the correct new files were created and looked right.
    • Casual review of the .ddev-docker-compose-base.yaml and .ddev-docker-compose-full.yaml looked fine to me.
  11. Test ddev xdebug command. No args (enables), enable and disable and status commands. Alternate versions "on" and "off".

    • πŸ‘πŸΌ Worked perfectly with new PHPStorm on Win10 Home. I forgot to turn it on as usual. ddev xdebug status reported correct info.
    • πŸ‘ŽπŸΌ ddev xdebug enable and disable are not listed in ddev help xdebug
  12. Verify removal of APIVersion from .ddev/config.yaml. Verify that upgrade works ok, with or without ddev config being run. No complaints about version should be issued

    • πŸ‘πŸΌ Tested this in #10, downgraded and then upgraded.
  13. Custom commands reported as "customcommand" to segment. Use segment debug tool, verify that all custom commands are reported as "customcommand".

    • πŸ‘πŸΌ I copied .ddev/commands/web/drush.example to drush and did a ddev drush and it came through live as "customcommand"
  14. Remove 3rd-party named volumes when ddev delete. Use a 3rd party service like solr that creates a volume.

    • πŸ‘πŸΌ I added the postgres service (that has a volume) and then ddev delete -Oy and the volume was deleted.
    • πŸ‘ŽπŸΌ The proper naming of the volume is not explained in the docs.
    • πŸ‘ŽπŸΌ It seems to me that there should be some output as they're deleted; we show when deleting the regular db volume.
  15. Remove -built image when doing ddev delete

    • πŸ‘πŸΌ When testing the above I saw:

      Removing image: drud/ddev-dbserver-mariadb-10.2:v1.13.0-junker99-built Removing image: drud/ddev-webserver:20200411_webimage_maint-junker99-built

  16. nfs_mount_enabled global support: ddev global config --nfs-mount-enabled should enable NFS on all projects

    • πŸ‘πŸΌ This worked wonderfully. I always forget to turn it on, and then remember when the performance is terrible. Wit this, I never even had to think about it.
    • πŸ‘ŽπŸΌ Unfortunately, this needs to be the default technique explained in the docs. And it's not yet. That should be updated before release.
  17. nfs_mount_enabled and omit_containers in ~/.ddev/global_config.yaml should not leak into project .ddev/config.yaml. (PR and testing instructions #2165)

    • πŸ‘πŸΌ I tried several variants of different combinations of omit_containers, and a ddev config never resulted in leaking the global values into the project config.
    • The global value of nfs_mount_enabled never leaked.
    • πŸ‘ŽπŸΌ The docs don't explain how omit_containers[] is additive, and they don't explain that nfs_mount_enabled has the global always overwriting if true.
  18. πŸ‘πŸΌ no_project_mount: true worked fine. I even did the mutagen setup from issue using it on Windows. But... πŸ‘ŽπŸΌ I don't think this is documented anywhere at all.

rfay commented 4 years ago

Proposed Followups:

crydotsnake commented 4 years ago

D8 Quickstart

Everything runs fine, but when i run the ddev composer remove drupal/core-project-message command i get: [RuntimeException] Could not read ./composer.json file_get_contents(./composer.json): failed to open stream: No such file or directory

rfay commented 4 years ago

@crydotsnake is that on Windows? Using NFS? Can you verify that the composer.json does exist before you do that? If it doesn't exist, something's really bad. Does it exist in the container? ddev ssh and ls -l /var/www/html/composer.json

crydotsnake commented 4 years ago

No, MacOS. I only use MacOS.

rfay commented 4 years ago

Please verify that the composer.json exists. You cannot have done a successful ddev composer create and have no composer.json I don't think.

crydotsnake commented 4 years ago

Now i have the composer.json file, then i did something wrong. Bildschirmfoto 2020-04-15 um 18 07 59

crydotsnake commented 4 years ago

Do i need to run those commands, or can i ignore them?.

ddev composer remove drupal/core-project-message
ddev composer require drush/drush
ddev start
ddev launch
rfay commented 4 years ago

Well, that's the recipe. If you want to test the whole recipe, you'll want to run them. The recipe does a composer create-project on Drupal8, then removes the unnecessary core-project-message, then adds drush (which most people need with Drupal) then start and look at the install. I usually go through the install process.

crydotsnake commented 4 years ago

Okay, then i will do it!. BTW: the ddev launch command is not showing in the ddev --help command list.

rfay commented 4 years ago
crydotsnake commented 4 years ago

ddev --version shows ddev version v1.14.0-rc1 Yes Yes it is there.

rfay commented 4 years ago

Please ls -lR $PWD/.ddev/commands/host in the directory where "launch" doesn't show. I imagine that none of the ddev-added custom commands show, so for example the "mysql" command isn't there either, right?

rfay commented 4 years ago

It would be easier to have these conversations in the Drupal or TYPO3 slack channels, is that something you could do? It's just got a lot more interactivity. Info at https://ddev.readthedocs.io/en/stable/#support-and-user-contributed-documentation

crydotsnake commented 4 years ago

Yes, sure!.

crydotsnake commented 4 years ago

I will switch to the Gitter chat.

andy-blum commented 4 years ago

Loving 1.14 so far - I have a couple thoughts/questions:

  1. Is there a reason ddev xdebug only enables? Why not have it be a toggle?
  2. Should xdebug status be listed in ddev describe?
  3. The ddev describe output is all very nicely formatted except for the DB credentials section. Could this be formatted in a nicer, more tabular fashion?
    
    MySQL/MariaDB Credentials
    -------------------------

Username (root): root Password (root): root Username: db Password: db

host:port (internal): db:3306 host:port (external): 127.0.0.1:XXXXX

rfay commented 4 years ago

@andy-blum

rfay commented 4 years ago

rc2 changes seem to test out OK.

  1. ddev delete should show deletion of volumes #2188

    • πŸ‘I see the right thing on ddev delete

    Deleting database. Volume junker99-mariadb for project junker99 was deleted Deleting third-party persistent volume ddev-junker99_solr for service solr... Deleting third-party persistent volume ddev-junker99_postgres for service postgres... Deleting docker image drud/ddev-dbserver-mariadb-10.2:v1.13.0-junker99-built Deleting docker image drud/ddev-webserver:20200411_webimage_maint-junker99-built Project junker99 was deleted. Your code and configuration are unchanged.

  2. ddev-created .ddev/.gitignore should be correct #2182 πŸ‘ the only problem is that other gitignores don't ignore themselves. We'll get that before long.

  3. Create /etc/hosts entries if IsInternetActive() is false #2186

  4. ddev composer create finishes with app.Start() making simpler quickstarts #2184 πŸ‘ this works really nicely. Should have done it ages ago. I noted it working correctly when doing #2

  5. NFS Improvements #2178

    • πŸ‘ image
rfay commented 4 years ago

Released, closing.