Giter Club home page Giter Club logo

vscode-ddev-manager's Introduction

DDEV Manager

This extension simplifies the management of all your DDEV projects offering a centralized and user-friendly interface to control every aspect of your projects.

DDEV Preview

View all your DDEV projects from the sidebar

The sidebar provides an overview of all your projects, offering a user-friendly interface for customizing each project with ease. If your active workspace includes or is part of a DDEV project, you can use the command palette.

DDEV Sidebar

Control your workspace project from the command palette

In addition to the sidebar, you can use the command palette to manage the current DDEV project open in VSCode. All commands executed through the command palette are specifically targeted at the project found in the workspace. There are cases when you only open a subfolder of a DDEV project with VSCode, the extension is smart enough to automatically detect that the opened folder is part of a DDEV project and get all the correct project data.

Command Palette

Change PHP/NodeJS and Server Type

You can easily customize the PHP and NodeJS version used in your project. You'll see a list of all the available versions to choose from. The extension will take care of the rest.

DDEV Processes

Manage your projects services

You can add and delete services directly from VSCode, you will see a list of the available services to install or a list of the installed services, depending on your chosen action, so you can easily choose the services to add or remove.

DDEV Services

Installed services will display different actions based on their service type, If a service exposes a URL, you can easily launch it with a single click.

DDEV Services Actions

SSH Access to your projects

You can launch an SSH terminal for any of your running projects. Within the sidebar, each project has a button to create a new terminal in the current VSCode window, so no matter if you are working on project A you can SSH access project B in the same window with a single click. If your active workspace includes or is part of a DDEV project you can use the command palette to Start SSH session or you'll also have the option to create a new DDEV terminal from the terminals panel.

DDEV SSH

DDEV SSH

Many more features

  • Sidebar to manage all your DDEV projects
  • Create fully functional projects with a single click
  • Use the command palette to run commands on the workspace you are working on
  • Start/Stop/Restart/Rename/Delete projects
  • Stop all projects except the selected one
  • Change Services versions (PHP, NodeJS, Server, etc.)
  • Install/Uninstall Services
  • Launch Installed Services (Adminer, Mailhog, phpMyAdmin, etc.)
  • Create/Restore/Clear Snapshots
  • Import/Export databases
  • Tasks Provider. Define tasks that will run inside the container of your current project or any other DDEV project
  • Option to automatically create a database snapshot when you stop a project
  • Open the database with any application you want (PHP MyAdmin, TablePlus, Sequel Ace, etc.)
  • Easily edit php.ini, nginx.conf, apache.conf and other files
  • Enable/Disable XDebug
  • Automatically configure the debugger to work with Xdebug and DDEV so you don't have to configure anything.
  • Launch configuration snippets for launch.json
  • Enable/Disable Share. Share your project outside of your local network
  • Automatically configure the PHP version in the editor. Used for providing version appropriate suggestions and diagnostics. It required a extension like PHP Intelephense or PHP by DEVSENSE
  • Integrated DDEV terminal
  • Use the command palette to list and open your projects in the active editor or a new window
  • Quickly launch projects in your browser
  • Quickly open the Config.yaml file
  • Poweroff DDEV
  • Reveal DDEV projects in your OS file explorer
  • Change sidebar view to list all projects or only the project for the active workspace
  • Sync state with DDEV and other VS Code windows
  • Start Docker provider if it's not running
  • Check for DDEV updates and instructions to know how to update
  • Clean all DDEV docker images to free up disk space
  • When editing files inside the .dev folder the extension will detect changes and show you different actions depending on the edited file
  • And much more...

Extension Settings

The extension comes with multiple options, to see all the available options go to VSCode Settings -> Extensions -> DDEV Manager

Roadmap

You can see the roadmap and progress here

Requirements

This extension was created and maintained by Biati Digital, if you find it useful please consider adding a review and share it with the world.

Starting from v1.3.3, the extension is now part of the official DDEV org.

vscode-ddev-manager's People

Contributors

biati-digital avatar tyler36 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

vscode-ddev-manager's Issues

ddev: command not found

Describe the bug
For some reason I can't manage any ddev project from the extension as it says ddev is not installed. But it's installed and it's working from terminal (just copied the version info with the --version option).
In the logs I found /bin/sh: ddev: command not found error and I think the problem is that it should use zsh for the shell - as the terminal - but I couldn't find any configuration for it.
Afaik I haven't changed nor configured anything related to this, it just stopped working.

Any suggestions? Thanks in advance.

System:

  • OS: macOS Sonoma 14.5
  • DDEV version: v1.23.3 (with homebrew)
  • Docker provider: Docker Desktop
  • VSCode version: 1.91.1
  • DDEV Manager version: v2.5.1

tasks.json not created when automaticallyConfigureDebugger = true

I'm not sure if this is a bug or just a problem on my system?

When DDEV Manager creates the launch.json with "preLaunchTask": "DDEV: Enable Xdebug" and "postDebugTask": "DDEV: Disable Xdebug" it does not create the tasks.json and I'm getting the following error when launching "Listen for Xdebug":

Bildschirmfoto 2024-02-29 um 10 12 44

To Reproduce
Steps to reproduce the behavior (at least on my system):

  1. Open project with no launch.json in .vscode or delete it
  2. DDEV Manager creates launch.json with preLaunchTask and postDebugTask but no tasks.json in .vscode
  3. Click on "Listen for Xdebug"

Expected behavior
The tasks for preLaunchTask and postDebugTask should be created in tasks.json.

Cheers

System:

  • OS: macOS 14.3.1
  • DDEV version: v1.22.7
  • Docker provider: Orbstack
  • VSCode version: 1.86.2
  • DDEV Manager version: v2.2.0

[BUG] Wrong loader displayed when using "Stop others"

Describe the bug
When using the action "Stop Others" the wrong loader is displayed on the projects that are being stopped. The command works correctly.

To Reproduce
Have multiple projects running and in one project select "Stop Others"

Expected behavior
The loader should be the global loader used when stopping a project

System (please complete the following information):

  • OS: macOS Ventura
  • DDEV version: run in terminal ddev --version
  • Docker provider: Orbstack
  • VSCode version: v1.22.1
  • DDEV Manager version: 1.1.0

[BUG] Wrong database name when opening Sequel Ace with "Open Database Administration"

Describe the bug
When opening Sequel Ace with the 'DDEV: Open Database Administration' command the project name is used as the database name but the default DDEV database name is db which yields an Unknown database error.

ddev sequelace does the following:
open mysql://root:[email protected]:32782/db -a '/Applications/Sequel Ace.app/Contents/MacOS/Sequel Ace'

To Reproduce
Steps to reproduce the behavior:

  1. "ddevManager.defaultDatabaseManager": "Sequel Ace"
  2. Click on 'Open Database Administration'
  3. See error

Expected behavior
Sequel Ace should be opened with database db by default or this should be configurable.

Screenshots

With 'DDEV: Open Database Administration'
Bildschirmfoto 2023-11-29 um 11 26 07

With ddev sequelace
Bildschirmfoto 2023-11-29 um 11 26 34

System:

  • OS: macOS 14.1.1
  • DDEV version: v1.22.5
  • Docker provider: Orbstack
  • VSCode version: 1.84.2
  • DDEV Manager version: v1.4.0

Xdebug tilts on VSCode

Preliminary checklist

Output of ddev debug test

Expand `ddev debug test` diagnostic information
======== Existing project config ========
ddev installation alternate locations:
/opt/homebrew/bin/ddev
/opt/homebrew/bin/ddev

These config files were loaded for project xarxanet2022: [/Users/joanet/Repositoris/tothomweb/xarxanet2022/.ddev/config.yaml]
name: xarxanet2022
type: drupal9
docroot: web
php_version: 8.2
webserver_type: apache-fpm
webimage: ddev/ddev-webserver:v1.23.1
router_http_port: 80
router_https_port: 443
additional_hostnames: [xarxanet2022.local]
additional_fqdns: [xarxanet2022.local]
database: {mariadb 10.3}
project_tld: ddev.site
use_dns_when_possible: true
composer_version: 2
nodejs_version: 16
default_container_timeout: 120


======== existing project customizations ========
.ddev/docker-compose.comm.yaml
.ddev/php/xdebug_client_port.ini
.ddev/php/php-example.ini.example
.ddev/db-build/Dockerfile.example
.ddev/web-build/Dockerfile.example


======== installed DDEV add-ons ========
No registered add-ons were found. Add-ons installed before DDEV v1.22.0 will not be listed.
Update them with `ddev get` so they'll be shown.


======== mutagen situation ========
looking for #ddev-generated in mutagen.yml in project /Users/joanet/Repositoris/tothomweb/xarxanet2022
#ddev-generated
unmodified #ddev-generated found in .ddev/mutagen/mutagen.yml


======== Creating dummy project named tryddevproject-415 in ../tryddevproject-415 ========
Creating a new DDEV project config in the current directory (/Users/joanet/Repositoris/tothomweb/tryddevproject-415)
Once completed, your configuration will be written to /Users/joanet/Repositoris/tothomweb/tryddevproject-415/.ddev/config.yaml

Configuring a 'php' project with docroot 'web' at /Users/joanet/Repositoris/tothomweb/tryddevproject-415/web
Configuration complete. You may now run 'ddev start'.


======== OS Information ========
Darwin Macbook-M2-Pro.home 23.4.0 Darwin Kernel Version 23.4.0: Fri Mar 15 00:12:49 PDT 2024; root:xnu-10063.101.17~1/RELEASE_ARM64_T6020 arm64
ProductName:            macOS
ProductVersion:         14.4.1
BuildVersion:           23E224


======== User information ========
uid=501(joanet) gid=20(staff) groups=20(staff),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),33(_appstore),100(_lpoperator),204(_developer),250(_analyticsusers),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh),400(com.apple.access_remote_ae),701(com.apple.sharepoint.group.1)


======== DDEV version ========
 ITEM             VALUE                                    
 DDEV version     v1.23.1                                  
 architecture     arm64                                    
 cgo_enabled      0                                        
 db               ddev/ddev-dbserver-mariadb-10.11:v1.23.1 
 ddev-ssh-agent   ddev/ddev-ssh-agent:v1.23.1              
 docker           25.0.5                                   
 docker-api       1.44                                     
 docker-compose   v2.27.0                                  
 docker-platform  orbstack                                 
 mutagen          0.17.2                                   
 os               darwin                                   
 router           ddev/ddev-traefik-router:v1.23.1         
 web              ddev/ddev-webserver:v1.23.1              



======== proxy settings ========

 HTTP_PROXY=''
 HTTPS_PROXY=''
 http_proxy=''
 NO_PROXY=''
 


======== DDEV global info ========
developer-mode=false
disable-http2=false
fail-on-hook-fail=false
instrumentation-opt-in=true
instrumentation-queue-size=0
instrumentation-reporting-interval=0s
instrumentation-user=
internet-detection-timeout-ms=3000
last-started-version=v1.23.1
letsencrypt-email=
mailpit-http-port=8025
mailpit-https-port=8026
mkcert-caroot=/Users/joanet/Library/Application Support/mkcert
no-bind-mounts=false
omit-containers=[]
performance-mode=mutagen
project-tld=ddev.site
required-docker-compose-version=v2.27.0
router=traefik
router-bind-all-interfaces=false
router-http-port=80
router-https-port=443
simple-formatting=false
table-style=default
traefik-monitor-port=10999
use-docker-compose-from-path=false
use-hardened-images=false
use-letsencrypt=false
wsl2-no-windows-hosts-mgt=false
xdebug-ide-location=


======== DOCKER provider info ========
docker client location: lrwxr-xr-x  1 root  wheel  53 Apr 22 04:25 /usr/local/bin/docker -> /Applications/OrbStack.app/Contents/MacOS/xbin/docker

docker client alternate locations:
/usr/local/bin/docker
/Users/joanet/.orbstack/bin/docker
/Users/joanet/.orbstack/bin/docker

Docker provider: orbstack
docker version: 
Client:
 Version:           25.0.5
 API version:       1.44
 Go version:        go1.21.8
 Git commit:        5dc9bcc
 Built:             Tue Mar 19 15:02:31 2024
 OS/Arch:           darwin/arm64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          25.0.5
  API version:      1.44 (minimum version 1.24)
  Go version:       go1.21.8
  Git commit:       e63daec
  Built:            Tue Mar 19 15:05:27 2024
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          v1.7.13
  GitCommit:        7c3aca7a610df76212171d200ca3811ff6096eb8
 runc:
  Version:          1.1.12
  GitCommit:        51d5e94601ceffbbd85688df1c928ecccbfa4685
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

DOCKER_DEFAULT_PLATFORM=notset
Version: 1.5.1 (1050100)
Commit: 4cfac15e1080617c70eb163966e1cb2009dac1c2 (v1.5.1)
Docker platform: orbstack
Using Docker context: default (unix:///Users/joanet/.orbstack/run/docker.sock)
docker-compose: v2.27.0
Using DOCKER_HOST=unix:///Users/joanet/.orbstack/run/docker.sock
Docker version: 25.0.5
Able to run simple container that mounts a volume.
Able to use internet inside container.
Docker disk space:Filesystem                Size      Used Available Use% Mounted on
overlay                 127.2G     39.6G     87.6G  31% /


======== Existing docker containers ========
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES


======== mkcert information ========
/opt/homebrew/bin/mkcert
/opt/homebrew/bin/mkcert
/Users/joanet/Library/Application Support/mkcert
total 16
-r--------  1 joanet  staff  2484 Jan 29 13:53 rootCA-key.pem
-rw-r--r--  1 joanet  staff  1805 Jan 29 13:53 rootCA.pem


======== ping attempt on ddev.site ========
PING dkdkd.ddev.site (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.054 ms

--- dkdkd.ddev.site ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.054/0.054/0.054/nan ms


======== ddev debug refresh ========
Rebuilding project images...
Rebuilding web image with `/Users/joanet/.ddev/bin/docker-compose -f /Users/joanet/Repositoris/tothomweb/tryddevproject-415/.ddev/.ddev-docker-compose-full.yaml build web --no-cache`
#0 building with "default" instance using docker driver

ddev/ddev#1 [web internal] load build definition from Dockerfile
ddev/ddev#1 transferring dockerfile: 1.24kB done
ddev/ddev#1 DONE 0.0s

ddev/ddev#2 [web internal] load metadata for docker.io/ddev/ddev-webserver:v1.23.1
ddev/ddev#2 DONE 0.0s

ddev/ddev#3 [web internal] load .dockerignore
ddev/ddev#3 transferring context: 2B done
ddev/ddev#3 DONE 0.0s

ddev/ddev#4 [web 1/7] FROM docker.io/ddev/ddev-webserver:v1.23.1
ddev/ddev#4 CACHED

ddev/ddev#5 [web 2/7] RUN (groupadd --gid 20 "joanet" || groupadd "joanet" || true) && (useradd  -l -m -s "/bin/bash" --gid "joanet" --comment '' --uid 501 "joanet" || useradd  -l -m -s "/bin/bash" --gid "joanet" --comment '' "joanet" || useradd  -l -m -s "/bin/bash" --gid "20" --comment '' "joanet" || useradd -l -m -s "/bin/bash" --comment '' joanet )
ddev/ddev#5 0.081 groupadd: GID '20' already exists
ddev/ddev#5 0.091 useradd warning: joanet's uid 501 outside of the UID_MIN 1000 and UID_MAX 60000 range.
ddev/ddev#5 DONE 0.1s

ddev/ddev#6 [web 3/7] RUN export XDEBUG_MODE=off; composer self-update --stable || composer self-update --stable || true; composer self-update --2 || composer self-update --2 || true
ddev/ddev#6 0.269 Storing "stable" as default update channel for the next self-update run.
ddev/ddev#6 0.700 You are already using the latest available Composer version 2.7.6 (stable channel).
ddev/ddev#6 1.040 You are already using the latest available Composer version 2.7.6 (2.x channel).
ddev/ddev#6 DONE 1.1s

ddev/ddev#7 [web 4/7] RUN mkdir -p /home/joanet && chown joanet /home/joanet && chmod 600 /home/joanet/.pgpass
ddev/ddev#7 DONE 0.1s

ddev/ddev#8 [web 5/7] RUN apt update
ddev/ddev#8 0.136 
ddev/ddev#8 0.136 WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
ddev/ddev#8 0.136 
ddev/ddev#8 0.290 Get:1 http://deb.debian.org/debian bookworm InRelease [151 kB]
ddev/ddev#8 0.387 Get:2 http://deb.debian.org/debian bookworm-updates InRelease [55.4 kB]
ddev/ddev#8 0.456 Get:3 http://deb.debian.org/debian-security bookworm-security InRelease [48.0 kB]
ddev/ddev#8 0.476 Get:4 http://deb.debian.org/debian bookworm/main arm64 Packages [8685 kB]
ddev/ddev#8 0.490 Get:5 https://deb.nodesource.com/node_20.x nodistro InRelease [12.1 kB]
ddev/ddev#8 0.577 Get:6 https://packages.sury.org/php bookworm InRelease [7542 B]
ddev/ddev#8 0.762 Get:7 https://packages.sury.org/php bookworm/main arm64 Packages [221 kB]
ddev/ddev#8 0.780 Get:8 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages [7307 B]
ddev/ddev#8 0.969 Get:9 http://nginx.org/packages/debian bookworm InRelease [2860 B]
ddev/ddev#8 0.978 Get:10 http://deb.debian.org/debian bookworm-updates/main arm64 Packages [13.7 kB]
ddev/ddev#8 0.995 Get:11 http://deb.debian.org/debian-security bookworm-security/main arm64 Packages [153 kB]
ddev/ddev#8 1.071 Get:12 http://nginx.org/packages/debian bookworm/nginx arm64 Packages [7973 B]
ddev/ddev#8 1.381 Get:13 http://packages.blackfire.io/debian any InRelease [28.0 kB]
ddev/ddev#8 2.607 Get:14 https://dl.cloudsmith.io/public/platformsh/cli/deb/debian bookworm InRelease [3675 B]
ddev/ddev#8 2.713 Get:15 http://packages.blackfire.io/debian any/main arm64 Packages [25.1 kB]
ddev/ddev#8 2.811 Get:16 https://dl.cloudsmith.io/public/platformsh/upsun-cli/deb/debian bookworm InRelease [3675 B]
ddev/ddev#8 2.938 Get:17 https://dl.cloudsmith.io/public/symfony/stable/deb/debian bookworm InRelease [4422 B]
ddev/ddev#8 3.118 Get:18 https://dl.cloudsmith.io/public/platformsh/cli/deb/debian bookworm/main arm64 Packages [3184 B]
ddev/ddev#8 3.224 Get:19 https://dl.cloudsmith.io/public/platformsh/upsun-cli/deb/debian bookworm/main arm64 Packages [2192 B]
ddev/ddev#8 3.326 Get:20 https://dl.cloudsmith.io/public/symfony/stable/deb/debian bookworm/main arm64 Packages [6851 B]
ddev/ddev#8 3.340 Fetched 9443 kB in 3s (2970 kB/s)
ddev/ddev#8 3.340 Reading package lists...
ddev/ddev#8 3.793 Building dependency tree...
ddev/ddev#8 3.902 Reading state information...
ddev/ddev#8 3.915 24 packages can be upgraded. Run 'apt list --upgradable' to see them.
ddev/ddev#8 DONE 4.0s

ddev/ddev#9 [web 6/7] RUN curl -I https://www.google.com
ddev/ddev#9 0.212   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
ddev/ddev#9 0.212                                  Dload  Upload   Total   Spent    Left  Speed
HTTP/2 200   0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
ddev/ddev#9 0.493 content-type: text/html; charset=ISO-8859-1
ddev/ddev#9 0.493 content-security-policy-report-only: object-src 'none';base-uri 'self';script-src 'nonce-vym1xZMDgunidJcACkvdWQ' 'strict-dynamic' 'report-sample' 'unsafe-eval' 'unsafe-inline' https: http:;report-uri https://csp.withgoogle.com/csp/gws/other-hp
ddev/ddev#9 0.493 p3p: CP="This is not a P3P policy! See g.co/p3phelp for more info."
ddev/ddev#9 0.493 date: Fri, 17 May 2024 12:47:26 GMT
ddev/ddev#9 0.493 server: gws
ddev/ddev#9 0.493 x-xss-protection: 0
ddev/ddev#9 0.493 x-frame-options: SAMEORIGIN
ddev/ddev#9 0.493 expires: Fri, 17 May 2024 12:47:26 GMT
ddev/ddev#9 0.493 cache-control: private
ddev/ddev#9 0.493 set-cookie: AEC=AQTF6HzK4lg89EE2n4Y_uCNyH0BJjvQjLZN1N3c4ISiscC9JO2aPnP-yxg; expires=Wed, 13-Nov-2024 12:47:26 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=lax
ddev/ddev#9 0.493 set-cookie: __Secure-ENID=19.SE=eVZRjLpX9bHMUmC4VuVT-2rZ_8wE29hO_SzgPWREKXjCr1ZuPcjDr3rT0jQ_6rFimOJw92Jkz2qEDYamOfKfp_ycAAI1IS4T0HKee9KbMq5hxiBzXCl9lc2tcXLPP0ZFh3pJWOOeyH_wiKby3YAg_xB-2GSmx5AKD3XCt3I3U6UQchOBgvOX; expires=Tue, 17-Jun-2025 05:05:44 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=lax
ddev/ddev#9 0.493 alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
ddev/ddev#9 0.493 
ddev/ddev#9 0.493   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
ddev/ddev#9 DONE 0.5s

ddev/ddev#10 [web 7/7] RUN chmod 777 /run/php
ddev/ddev#10 DONE 0.1s

ddev/ddev#11 [web] exporting to image
ddev/ddev#11 exporting layers 0.1s done
ddev/ddev#11 writing image sha256:bbd1f2c9c6918b946aaff11df2258d42297656c65fe74aff73d761e712c71ce9 done
ddev/ddev#11 naming to docker.io/ddev/ddev-webserver:v1.23.1-tryddevproject-415-built done
ddev/ddev#11 DONE 0.1s
Refreshed Docker cache for project tryddevproject-415 in 6s
Network ddev_default created
 Container ddev-ssh-agent  Created
 Container ddev-ssh-agent  Started
ssh-agent container is running: If you want to add authentication to the ssh-agent container, run 'ddev auth ssh' to enable your keys.
v1.23.1: Pulling from ddev/ddev-dbserver-mariadb-10.11
d5a2ad729c09: Pulling fs layer
ee14f17489b0: Pulling fs layer
9ca38b3a10a4: Pulling fs layer
20e93e21fb5f: Pulling fs layer
72ec25925860: Pulling fs layer
f832557bd027: Pulling fs layer
3da631cdbc5c: Pulling fs layer
171750a95041: Pulling fs layer
4f4fb700ef54: Pulling fs layer
a821eb0d5c53: Pulling fs layer
d0f0761b37f8: Pulling fs layer
4d3455c17bc2: Pulling fs layer
fc0f944e587e: Pulling fs layer
20e93e21fb5f: Waiting
72ec25925860: Waiting
f832557bd027: Waiting
3da631cdbc5c: Waiting
171750a95041: Waiting
4f4fb700ef54: Waiting
a821eb0d5c53: Waiting
d0f0761b37f8: Waiting
4d3455c17bc2: Waiting
106f935e70a6: Pulling fs layer
961d4c98e5cd: Pulling fs layer
52b4ccd70b06: Pulling fs layer
7a00b1971195: Pulling fs layer
fc0f944e587e: Waiting
bade098f2205: Pulling fs layer
638e9089642c: Pulling fs layer
6e34e0275cc6: Pulling fs layer
383e8b2dc787: Pulling fs layer
7c69d6c9e201: Pulling fs layer
961d4c98e5cd: Waiting
52b4ccd70b06: Waiting
4253ad4d1bb7: Pulling fs layer
7a00b1971195: Waiting
bade098f2205: Waiting
106f935e70a6: Waiting
638e9089642c: Waiting
6e34e0275cc6: Waiting
383e8b2dc787: Waiting
7c69d6c9e201: Waiting
4253ad4d1bb7: Waiting
75acf1be0722: Pulling fs layer
75acf1be0722: Waiting
ee14f17489b0: Verifying Checksum
ee14f17489b0: Download complete
9ca38b3a10a4: Verifying Checksum
9ca38b3a10a4: Download complete
d5a2ad729c09: Verifying Checksum
d5a2ad729c09: Download complete
72ec25925860: Verifying Checksum
72ec25925860: Download complete
20e93e21fb5f: Verifying Checksum
20e93e21fb5f: Download complete
3da631cdbc5c: Verifying Checksum
3da631cdbc5c: Download complete
d5a2ad729c09: Pull complete
ee14f17489b0: Pull complete
171750a95041: Verifying Checksum
171750a95041: Download complete
4f4fb700ef54: Verifying Checksum
4f4fb700ef54: Download complete
9ca38b3a10a4: Pull complete
20e93e21fb5f: Pull complete
72ec25925860: Pull complete
a821eb0d5c53: Download complete
4d3455c17bc2: Verifying Checksum
4d3455c17bc2: Download complete
f832557bd027: Verifying Checksum
f832557bd027: Download complete
fc0f944e587e: Verifying Checksum
fc0f944e587e: Download complete
d0f0761b37f8: Verifying Checksum
d0f0761b37f8: Download complete
961d4c98e5cd: Verifying Checksum
961d4c98e5cd: Download complete
106f935e70a6: Verifying Checksum
106f935e70a6: Download complete
52b4ccd70b06: Verifying Checksum
52b4ccd70b06: Download complete
bade098f2205: Verifying Checksum
bade098f2205: Download complete
638e9089642c: Verifying Checksum
638e9089642c: Download complete
7a00b1971195: Verifying Checksum
7a00b1971195: Download complete
6e34e0275cc6: Verifying Checksum
6e34e0275cc6: Download complete
7c69d6c9e201: Verifying Checksum
7c69d6c9e201: Download complete
383e8b2dc787: Verifying Checksum
383e8b2dc787: Download complete
4253ad4d1bb7: Verifying Checksum
4253ad4d1bb7: Download complete
75acf1be0722: Verifying Checksum
75acf1be0722: Download complete
f832557bd027: Pull complete
3da631cdbc5c: Pull complete
171750a95041: Pull complete
4f4fb700ef54: Pull complete
a821eb0d5c53: Pull complete
d0f0761b37f8: Pull complete
4d3455c17bc2: Pull complete
fc0f944e587e: Pull complete
106f935e70a6: Pull complete
961d4c98e5cd: Pull complete
52b4ccd70b06: Pull complete
7a00b1971195: Pull complete
bade098f2205: Pull complete
638e9089642c: Pull complete
6e34e0275cc6: Pull complete
383e8b2dc787: Pull complete
7c69d6c9e201: Pull complete
4253ad4d1bb7: Pull complete
75acf1be0722: Pull complete
Digest: sha256:cd01a6e8e211e5d09d9a9d2fa57a6de5d4d27a4a08bc7c2752a0dc6376884f3a
Status: Downloaded newer image for ddev/ddev-dbserver-mariadb-10.11:v1.23.1
docker.io/ddev/ddev-dbserver-mariadb-10.11:v1.23.1
Building project images...
..Project images built in 2s.
 Network ddev-tryddevproject-415_default  Created
 Container ddev-tryddevproject-415-web  Created
 Container ddev-tryddevproject-415-db  Created
 Container ddev-tryddevproject-415-db  Started
 Container ddev-tryddevproject-415-web  Started
Starting Mutagen sync process...
Mutagen sync flush completed in 1s.
For details on sync status 'ddev mutagen st tryddevproject-415 -l'
Waiting for web/db containers to become ready: [web db]
Starting ddev-router if necessary...
 Container ddev-router  Created
 Container ddev-router  Started
Waiting for additional project containers to become ready...
All project containers are now ready.


======== Project startup ========
Starting tryddevproject-415...
2024-05-17T14:47:54.478 Pulled image for ddev/ddev-webserver:v1.23.1
2024-05-17T14:47:54.479 Pulled image for busybox:stable
2024-05-17T14:47:54.48 Pulled image for ddev/ddev-ssh-agent:v1.23.1
2024-05-17T14:47:54.481 Pulled image for ddev/ddev-traefik-router:v1.23.1
2024-05-17T14:47:54.734 GetDockerContext: contextInfo='default unix:///Users/joanet/.orbstack/run/docker.sock'
2024-05-17T14:47:54.734 Using Docker context default (unix:///Users/joanet/.orbstack/run/docker.sock)
2024-05-17T14:47:54.953 chowning /mnt/ddev-global-cache and /var/lib/mysql to 501
2024-05-17T14:47:55.251 done chowning /mnt/ddev-global-cache and /var/lib/mysql to 501
2024-05-17T14:47:55.256 host.docker.internal='' because no other case was discovered
2024-05-17T14:47:55.3 Pulled image for ddev/ddev-dbserver-mariadb-10.11:v1.23.1
2024-05-17T14:47:55.301 Pulled image for ddev/ddev-webserver:v1.23.1
2024-05-17T14:47:55.302 Pulled image for ddev/ddev-traefik-router:v1.23.1
2024-05-17T14:47:55.303 Pulled image for ddev/ddev-ssh-agent:v1.23.1
Building project images...
2024-05-17T14:47:55.305 Executing docker-compose -f /Users/joanet/Repositoris/tothomweb/tryddevproject-415/.ddev/.ddev-docker-compose-full.yaml build --progress=plain
.Project images built in 1s.
2024-05-17T14:47:56.308 Executing docker-compose -f /Users/joanet/Repositoris/tothomweb/tryddevproject-415/.ddev/.ddev-docker-compose-full.yaml up -d
 Container ddev-tryddevproject-415-web  Recreate
 Container ddev-tryddevproject-415-db  Recreate
 Container ddev-tryddevproject-415-db  Recreated
 Container ddev-tryddevproject-415-web  Recreated
 Container ddev-tryddevproject-415-db  Started
 Container ddev-tryddevproject-415-web  Started
2024-05-17T14:48:07.151 VIRTUAL_HOST=tryddevproject-415.ddev.site for web
2024-05-17T14:48:07.151 HTTP_EXPOSE=80:80,8025:8025 for web
2024-05-17T14:48:07.151 HTTPS_EXPOSE=443:80,8026:8025 for web
2024-05-17T14:48:07.535 Copied /Users/joanet/Repositoris/tothomweb/tryddevproject-415/.ddev/traefik:CopyIntoVolume_toufahkzopno into /mnt/v/traefik in 25.431ms
2024-05-17T14:48:07.575 Exec chown -R 501 /mnt/v/traefik stdout=, stderr=, err=<nil>
2024-05-17T14:48:07.63 Copied Traefik certs in /Users/joanet/Repositoris/tothomweb/tryddevproject-415/.ddev/traefik/certs to ddev-global-cache/traefik
Starting Mutagen sync process...
2024-05-17T14:48:07.702 Using Mutagen config file /Users/joanet/Repositoris/tothomweb/tryddevproject-415/.ddev/mutagen/mutagen.yml
2024-05-17T14:48:08.715 Mutagen status after sync: ok
Mutagen sync flush completed in 1s.
For details on sync status 'ddev mutagen st tryddevproject-415 -l'
2024-05-17T14:48:08.715 Running /start.sh in ddev-webserver
Waiting for web/db containers to become ready: [web db]
2024-05-17T14:48:12.173 Copied /Users/joanet/.ddev/commands:CopyIntoVolume_bwivtfxaknpc into /mnt/v/global-commands in 38.113583ms
2024-05-17T14:48:12.196 Exec chown -R 501 /mnt/v/global-commands stdout=, stderr=, err=<nil>
2024-05-17T14:48:12.315 Testing to see if /mnt/ddev_config is properly mounted
Starting ddev-router if necessary...
2024-05-17T14:48:12.687 Copied /Users/joanet/.ddev/traefik:CopyIntoVolume_vgdxvrijgbrw into /mnt/v/traefik in 26.802958ms
2024-05-17T14:48:12.72 Exec chown -R 501 /mnt/v/traefik stdout=, stderr=, err=<nil>
2024-05-17T14:48:12.817 Copied global Traefik config in /Users/joanet/.ddev/traefik/certs to ddev-global-cache/traefik
 Container ddev-router  Running
2024-05-17T14:48:12.869 Waiting for ddev-router to become ready. docker inspect --format "{{json .State.Health }}" ddev-router
2024-05-17T14:48:13.374 ddev-router is ready
Waiting for additional project containers to become ready...
All project containers are now ready.
Successfully started tryddevproject-415
Project can be reached at https://tryddevproject-415.ddev.site https://127.0.0.1:32808


======== Curl of site from inside container ========
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0HTTP/1.1 200 OK
Server: nginx
Date: Fri, 17 May 2024 12:48:14 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0


======== curl -I of http://127.0.0.1:32809 (web container http docker bind port) from outside ========
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 17 May 2024 12:48:15 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding



======== curl -I of http://tryddevproject-415.ddev.site (router http URL) from outside ========
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Date: Fri, 17 May 2024 12:48:15 GMT
Server: nginx
Vary: Accept-Encoding



======== Full curl of http://tryddevproject-415.ddev.site (router http URL) from outside ========
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   286    0   286    0     0  78485      0 --:--:-- --:--:-- --:--:-- 95333
Success accessing database... db via TCP/IP<br />
ddev is working.<br />
The output file for Discord or issue queue is in
<b>/var/folders/88/hdkg_n9d30v36lq3v28vx90w0000gn/T/ddev-debug-test.txt</b><br />
file:///var/folders/88/hdkg_n9d30v36lq3v28vx90w0000gn/T/ddev-debug-test.txt<br />


======== Full curl of https://tryddevproject-415.ddev.site (router https URL) from outside ========
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   286    0   286    0     0   8043      0 --:--:-- --:--:-- --:--:--  8171
Success accessing database... db via TCP/IP<br />
ddev is working.<br />
The output file for Discord or issue queue is in
<b>/var/folders/88/hdkg_n9d30v36lq3v28vx90w0000gn/T/ddev-debug-test.txt</b><br />
file:///var/folders/88/hdkg_n9d30v36lq3v28vx90w0000gn/T/ddev-debug-test.txt<br />


======== Curl google.com to check internet access and VPN ========
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/2 200 
content-type: text/html; charset=ISO-8859-1
content-security-policy-report-only: object-src 'none';base-uri 'self';script-src 'nonce-bGhHhkDIdWnnMiSvrwxP5g' 'strict-dynamic' 'report-sample' 'unsafe-eval' 'unsafe-inline' https: http:;report-uri https://csp.withgoogle.com/csp/gws/other-hp
p3p: CP="This is not a P3P policy! See g.co/p3phelp for more info."
date: Fri, 17 May 2024 12:48:15 GMT
server: gws
x-xss-protection: 0
x-frame-options: SAMEORIGIN
expires: Fri, 17 May 2024 12:48:15 GMT
cache-control: private
set-cookie: AEC=AQTF6HwyCSVhEoEteblU1h66Ld3dhced2kwE_VztVGxuB1F_KiMRVqk8w3U; expires=Wed, 13-Nov-2024 12:48:15 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=lax
set-cookie: __Secure-ENID=19.SE=IUcFr8dZdvK-DvVVTK2QPO5esbMsnc_BKWC36a1xeExqBzZGr_p29Q6Dc22MjuuQzRxe3-13Ec4WmoQjbSpwPvDSLTW16L3pbItHbdks5eVg27jaZLZcVnagWtgV7eNiluRf6YSx7NEU0C-7Kk1loGwubvWRMnyGhJvuTR0wI-w3H9-k-4wC; expires=Tue, 17-Jun-2025 05:06:33 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=lax
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000



======== host.docker.internal status ========
PING host.docker.internal (198.19.248.254) 56(84) bytes of data.
64 bytes from host.orb.internal (198.19.248.254): icmp_seq=1 ttl=62 time=0.363 ms

--- host.docker.internal ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.363/0.363/0.363/0.000 ms


======== Project ownership on host ========
drwxr-xr-x  4 joanet  staff  128 May 17 14:47 ../tryddevproject-415


======== Project ownership in container ========
drwxr-xr-x 1 joanet dialout 16 May 17 12:48 //var/www/html


======== In-container filesystem ========
Filesystem     Type  1K-blocks     Used Available Use% Mounted on
/dev/vdb1      btrfs 133430428 42316660  91113768  32% /var/www


======== Thanks for running the diagnostic! ========
Running ddev launch in 3 seconds
Running ddev launch
Waiting for ddev launch to complete before deleting project


Cleanup: deleting test project tryddevproject-415
 Container ddev-tryddevproject-415-db  Stopped


 Container ddev-tryddevproject-415-web  Stopped
 Container ddev-tryddevproject-415-web  Stopped
 Container ddev-tryddevproject-415-db  Stopped
 Container ddev-tryddevproject-415-db  Removed
 Container ddev-tryddevproject-415-web  Removed
 Network ddev-tryddevproject-415_default  Removed
Volume tryddevproject-415-mariadb for project tryddevproject-415 was deleted
Volume tryddevproject-415-postgres for project tryddevproject-415 was deleted
Volume tryddevproject-415_project_mutagen for project tryddevproject-415 was deleted
Project tryddevproject-415 was deleted. Your code and configuration are unchanged.

Please remove the files from this test with 'rm -r ../tryddevproject-415'

Expected Behavior

No tilt-screen expected.

Actual Behavior

When trying to debug in VSCode with xdebug on a Drupal 10 site, the screen starts to tilt, as you can see in the attached video.
https://github.com/ddev/ddev/assets/18633892/237516c5-4718-498d-ba0c-c00384fd7e75
It happens since I updated to DDEV v1.23.0.

Maybe it's a bug related to DDEV, VSCode, I don't know. I've updated several times each software and the tilt-screen is still happening.

I'm on MacOS Sonoma 14.4.1

VSCode:
Version: 1.89.1 (Universal)
Commit: dc96b837cf6bb4af9cd736aa3af08cf8279f7685
Date: 2024-05-07T05:14:24.611Z (1 wk ago)
Electron: 28.2.8
ElectronBuildId: 27744544
Chromium: 120.0.6099.291
Node.js: 18.18.2
V8: 12.0.267.19-electron.0
OS: Darwin arm64 23.4.0

Steps To Reproduce

No response

Anything else?

No response

[BUG]There is no data provider registered that can provide view data. (was previously working)

Please make sure that the bug only applies to this extension, if you have a problem with ddev itself you should open an issue in the ddev repo and not here.

Describe the bug
Had this extension working and then one day it stopped working and all I see is the message There is no data provider registered that can provide view data. this despite docker and ddev already running on my computer. DDev commands are all working in the terminal just this extension is not.

Have uninstalled and re-installed but issue continues

DDev manager v1.4.0

System (please complete the following information):

  • OS: win 10
  • DDEV version: 1.22.3
  • Docker provider: Docker
  • VSCode version: 1.83.1
  • DDEV Manager version: 1.4.0

Additional context
Add any other context about the problem here.

[Feature-request] improve the project creation process

Is your feature request related to a problem? Please describe.
The steps for setting up a ddev project in vscode-ddev-manager have a few potential stepping stones:
Step 1: The description for "enter project name" is "sort of" confusing. After you tried it one time it is ok but still, to start instructions with "normally the name of your directory" raises a few question marks in my head. i asked myself what are the other cases that are not normal? and it is also not clear that in step three you set or create and set the project directory.
Step 2: In my case i have set Drupal 10 as the project type.
Step 3: i then created and set my project directory.

=> the problem in the end
Screenshot 2023-09-23 at 14 10 08

the docroot is still set to the default root value instead of web necessary for drupal 10. there was no option to set the docroot in the available step

Describe the solution you'd like

  • One initial idea for the Enter project name description might be: Set the name for your project in DDEV. In one of the next steps you will select a folder for the project. That way you state that the user is entering the name a project is referenced in DDEV and also notify the user that in one of the next steps you will select the folder the project is stored within the file system. That way the description would be a bit more clear and informative and some potential uncertainties are removed.
  • Add the step for setting the docroot like in ddev config right after setting the project name.

[BUG] The DB service is marked `undefined` when the database is Postgres

Describe the bug
The DB service is marked undefined when the configured database for the project is Postgres. However it does show the version.

To Reproduce
Steps to reproduce the behavior:

  1. Show the details of a DDEV project with Postgres as the DB

Expected behavior
The correct service is shown.

Screenshots
image

System (please complete the following information):

  • OS: macOS Sonoma
  • DDEV version: v1.23.2
  • Docker provider: Orbstack
  • VSCode version: 1.90.1
  • DDEV Manager version: v2.5.1

[BUG] Different services displayed depending if the project is running or stopped

Describe the bug
Doing ddev describe -j on a running project outputs the services (included by default or installed by the user), but when the project is not running ddev describe -j returns the services empty "services": {},"

What's a reliable way to get all the services even if the project is not running?

To Reproduce
Install a custom service, it will only be displayed in the sidebar when the project is running.

Expected behavior
It would be great to be able to display the installed services even if the project is not running, I do not need url's or ports (because it's not running), just the service name/short_name

Screenshots

When running
CleanShot 2023-09-12 at 21 55 08

When stopped
CleanShot 2023-09-12 at 21 55 46

System (please complete the following information):

  • OS: macOS Ventura
  • DDEV version: v1.22.1
  • Docker provider: Orbstack
  • VSCode version: v1.82.0
  • DDEV Manager version: 1.1.1

[BUG] Display correct message in sidebar view when there's only one project and it's deleted.

Describe the bug
In the sidebar if it's there only one project and it's deleted the view needs to be refreshed and display the initial welcome message that it's displayed when DDEV and Docker are running correctly but there are no projects. "DDEV is ready and running. Start by adding your first project."

This issue does not affect the functionality of the extension

To Reproduce
Have only one project In the sidebar and delete it.

Expected behavior
The welcome view should be displayed if there are no more projects.

System (please complete the following information):

  • OS: macOS Ventura
  • DDEV version: run in terminal ddev --version
  • Docker provider: Orbstack
  • VSCode version: v1.22.1
  • DDEV Manager version: 1.1.0

[BUG] potential issue with mutagen on project start

Please make sure that the bug only applies to this extension, if you have a problem with ddev itself you should open an issue in the ddev repo and not here.

Describe the bug
I've never clicked the small info button that brings up the output tab when starting a project in ddev manager in vscode. I did so today and noticed a lot of repeated output in the context of mutagen:

https://gist.github.com/rpkoller/e650953866db01bb9e02d4ec9911e028

the project names that are currently running are blocklayoutfilter and drupaleleven. the output seems to imply something is going wrong with mutagen but i've checked:

$> ddev mutagen status
Mutagen: ok: watching 
$> ddev mutagen monitor
Name: blocklayoutfilter
Identifier: sync_BQSpPOXAFD7Ky1bzoNt3VCm0HHOufRTVefgONBKWOHF
Alpha:
	URL: /Users/rkoller/Sites/blocklayoutfilter
Beta:
	URL: docker://ddev-blocklayoutfilter-web/var/www/html
		DOCKER_HOST=unix:///Users/rkoller/.colima/default/docker.sock
$> ddev mutagen status -l

Mutagen: ok: 
--------------------------------------------------------------------------------
Name: blocklayoutfilter
Identifier: sync_BQSpPOXAFD7Ky1bzoNt3VCm0HHOufRTVefgONBKWOHF
Labels:
	com.ddev.config-hash: c212281329fb24762a96e1b7a37a19ed84868866
	com.ddev.volume-signature: Users-rkoller-colima-default-1696323856
Configuration:
	Synchronization mode: Two Way Resolved
	Hashing algorithm: Default (SHA-1)
	Maximum allowed entry count: Default (2⁶⁴−1)
	Maximum staging file size: Default (18 EB)
	Symbolic link mode: POSIX Raw
	Ignore VCS mode: Default (Propagate)
	Ignores:
		/.git
		/.tarballs
		/.ddev/db_snapshots
		/.ddev/.importdb*
		.DS_Store
		.idea
		/web/sites/default/files
	Permissions mode: Default (Portable)
Alpha:
	URL: /Users/rkoller/Sites/blocklayoutfilter
	Configuration:
		Watch mode: Default (Portable)
		Watch polling interval: Default (10 seconds)
		Probe mode: Default (Probe)
		Scan mode: Default (Accelerated)
		Stage mode: Neighboring
		File mode: Default (0600)
		Directory mode: Default (0700)
		Default file/directory owner: Default
		Default file/directory group: Default
	Connected: Yes
	Synchronizable contents:
		6925 directories
		26306 files (130 MB)
		4 symbolic links
Beta:
	URL: docker://ddev-blocklayoutfilter-web/var/www/html
		DOCKER_HOST=unix:///Users/rkoller/.colima/default/docker.sock
	Configuration:
		Watch mode: Default (Portable)
		Watch polling interval: Default (10 seconds)
		Probe mode: Default (Probe)
		Scan mode: Default (Accelerated)
		Stage mode: Neighboring
		File mode: Default (0600)
		Directory mode: Default (0700)
		Default file/directory owner: Default
		Default file/directory group: Default
		Compression: Default (DEFLATE)
	Connected: Yes
	Synchronizable contents:
		6925 directories
		26306 files (130 MB)
		4 symbolic links
Status: Watching for changes
--------------------------------------------------------------------------------

and all looks ok therefore it is odd to get such an output.

To Reproduce
Steps to reproduce the behavior:

  1. Start one of your projecs
  2. click the info button for the starting up project in the sidebar
  3. check the output tab

System (please complete the following information):

  • OS: MacOS 13.6
  • DDEV version:vHEAD-d0af978
  • Docker provider: colima version 0.5.6
  • VSCode version: 1.83.0 (Universal)
  • DDEV Manager version: 1.3.4

Additional context
Add any other context about the problem here.

[BUG] Rename "Type" to "Project Type"

Describe the bug
Not really a bug, more of a nitpick.

DDEV uses the term "Project Type" to refer to framework being served. Eg. Drupal10, Laravel, Typo3.

For consistency with DDEV online documention and CLI messages, I suggest it be change in the tree view.

To Reproduce

  • View a project in the extension

Expected behavior
Label as "Project Type"

Screenshots
(screenshot copied from README)

ddev-preview

System (please complete the following information):

  • OS: Win10 & WSL2
  • DDEV version: 1.22.1
  • Docker provider: Docker Desktop
  • VSCode version: 1.81.1

Additional context
Add any other context about the problem here.

[BUG] Mutagen status is shown as disabled even though it is actually enabled

Please make sure that the bug only applies to this extension, if you have a problem with ddev itself you should open an issue in the ddev repo and not here.

Describe the bug
The expanded running project in the VSCode sidebar shows Mutagen as disabled while it is actually shown as enabled when you check the project with for example ddev describe or ddev mutagen monitor.
for the context the config.yaml files for both projects i've provided a screenshot for have nothing related to mutagen in their config.yaml files. mutagen is only set in ~/.ddev/global_config.yaml with performance_mode: mutagen.

p.s thank you for working on and releasing the extension! looks really interesting and useful.

To Reproduce
Steps to reproduce the behavior:

  1. Start an existing project
  2. Expand the project in the VSCode sidebar
  3. Go to the terminal and run ddev describe or ddev mutagen sync

Expected behavior
I would have expected that the project in the VScode sidebar would show Mutagen as enabled

Screenshots
Noticed with one DDEV project set to PHP where I wanted to test something with the Drupal install process

php

But happens also on DDEV projects explicitly declared as a Drupal project. Initially thought maybe something is off with the PHP project.

drupal

System (please complete the following information):

  • OS: MacOS 12.6.8
  • DDEV version: vHEAD-66471cf
  • Colima version: 0.5.5 (runtime: docker, arch: aarch64, client: v24.0.5, server: v20.10.11)
  • VSCode version: 1.81.1 (Universal)

Additional context
Add any other context about the problem here.

[Feature-request] Open project in VScode

Is your feature request related to a problem? Please describe.
I can manage any DDEV project from my current workspace which is great.
However, sometimes, I want to quickly jump over and alter a file or update a dependency.

Describe the solution you'd like
It would be convienient if there were 2 additional options:

  • Open project in current window
  • Open project in new widow

This would allow DDEV Manage to also act like a project manager.
I could quickly spawn a new VScode instance and view logs files etc.
Or if, I want to switch context, open the selected project in my current window, replacing it entirely.

image

Describe alternatives you've considered
I use to use https://marketplace.visualstudio.com/items?itemName=alefragnani.project-manager to perform the describe behaviour.
It's good for bouncing between projects but does not have "DDEV management".

I understand that this may be outside the scope of this extension.

What about exposing some commands from the web container to the host only in the editor?

The idea

I was thinking about "exposing" the web container’s php, nvm, mysql, mysqldump, etc. to the host so VS Code and other extensions can use them without having to Install a extension like Dev Containers. I know that Dev Containers and Remote SSH are great, I use Remote SSH a lot but the idea behind DDEV Manager is to help users that are starting or to help some devs that do not use docker and simply want the editor to work the same way as if they had all the tools installed in the host.

Having said that, I’m not sure if it’s a good or bad idea or if I’m over thinking and users should just use Dev Containers

How to do it

This is what I did (really quick test).

1.- In my ddev project i created a folder inside .ddev called exposed-commands
2.- Inside this folder I created some basic bash scripts that will call ddev php, ddev mysql, ddev nvm, etc.
3.- In VS Code I configured terminal.integrated.env.osx (only the workspace settings) to add the folder .ddev/exposed-commands to PATH

That’s it. Now if you open a terminal inside VS Code and run php -v it will use the web container’s PHP. The same for any other command for example mysqldump db > db.sql

The exposed command are only available within VS Code and each workspace (ddev project) can have different configuration.

https://share.cleanshot.com/nG6jFPb1

This exposed commands can be even used in tasks https://share.cleanshot.com/r4cYSF7M

Why adding this to the extension?

Because the functionality is meant to make VS Code and DDEV work seamlessly. The extension will be able to configure everything automatically, we can have some settings to disable this functionality or be able to expose only certain commands from the web container.

There’s probably thousand’s of different extensions that allow the user to configure the path to "composer, php, pest, etc." it's impossible for this extension to configure all of them automatically but we could provide a simple option where the user can define what settings must be updated with the correct path.

For example, the extension https://marketplace.visualstudio.com/items?itemName=ikappas.composer offers the following option composer.executablePath to configure composer's path. We could have settings like this:

"ddevManager.exposeCommands.composer": ["composer.executablePath"],

The last part of the key is the name of the command inside the .ddev/exposed-commands folder and the value is a list of all the settings that will be updated with the correct path. The extension will get the path of the specified command and will update the defined settings but only in that workspace, so each project can have their own config. It should also handle the path correctly depending on the OS (for windows using a traditional installation)

How is this functionality different from the commands that are already included with DDEV?

The included commands ddev php, ddev nvm, etc. are great but it's difficult to make them work with existing VS Code extensions. Take as example the extension Code Runner it's impossible to point it to the web container's PHP using ddev php and even if you manage to point it it will still not work as the extension passes the local path in the host, this path does not exist in the web container so it will fail.

The exposed commands are just a wrapper for existing commands, for example: ddev php or even ddev exec /usr/bin/mysqldump but this new commands will update the passed arguments to convert any host path to a path inside the web container

So in this screenshot https://share.cleanshot.com/WqFbvCDh you can see that the extension Code Runner passes the path to the file in the host /Users/manuel/Library/CloudStorage/Dropbox/Development/Sites/testing/wp-content/testing.php

but the exposed command script will convert it to a path in the web container and the code will be processed correctly
/var/www/html/wp-content/testing.php

Final thoughts

I'm not trying to create a new functionality for DDEV, just trying to find a way to have an easier integration with VS Code for new users. At the end the user should be able to use DDEV without having to worry about how to configure it properly with the editor.

I don't even know if I'm over complicating this (would be surprising as doing this test took me a few minutes but probably because of this I could be missing something important). Maybe the "exposed" commands should be added inside the .vscode folder instead of .ddev as they are only used by this extension and VS Code, it will require more testing but at this point it's just an idea.

Would love your opinion.

Consider moving to DDEV org

You're doing such a great job of maintaining this, I can see it has a great future.

I think it would be easier for you in the long term, and for people to find it and understand where to put issues, if it moved to the ddev org on Github. This is really easy, and redirects work fine, and you'd remain the maintainer with the same full privileges you currently have.

Anyway, think about it!

Thanks,
-Randy

Highlight currently opened project in initial DDEV Manager view

Is your feature request related to a problem? Please describe.
Not a problem, but could be a small improvement. Consider the following workflow:

  1. I open VSCode to my DDEV project named "stormtrooper".
  2. I click on the DDEV Manager icon in the side bar and am presented with a list of all DDEV projects on the machine.
  3. The list of DDEV projects does not indicate that VSCode is currently open to the "stormtrooper" project.

Describe the solution you'd like
The currently opened project should be highlighted, or at the top of the list.

Describe alternatives you've considered
None.

Additional context
None.

[BUG] Issue with "ddev snapshot restore" - hyphens in snapshot name seem to be an issue

I created a snapshot with the name after-class-12 using DDEV Manager, but when I went to restore it (again, using DDEV Manager), it failed.

It might be related to the name I gave the snapshot, because when I went to restore it from the UI, the hyphens were removed from the name:

Screenshot 2023-09-22 at 2 53 05 PM

The error I received when trying to restore is: Error restoring snapshot, check the extension output log for more information. The logs show:

[error] Failed to restore snapshot afterclass12_20230922145223 for project pmdsum2023: no snapshot found for name afterclass12_20230922145223: snapshot afterclass12_20230922145223 not found in /Users/michael/sites/pmdsum2023/.ddev/db_snapshots

I was able to successfully restore the snapshot from the command line using: ddev snapshot restore after-class-12_20230922145223

System (please complete the following information):

  • OS: Mac OS X Ventura 13.5.2
  • DDEV version: 1.22.1
  • Docker provider: Colima
  • VSCode version: 182.2
  • DDEV Manager version: 1.3.1

Wrong version detected

Hi,
on every launch of VSC I get a popup about updating ddev from 1.22.6 to latest 1.23 but I'm already on latest ddev.
I have Win11 + WSL2.
Where does the extension take version from?

FR: Display "Mail" under services

Is your feature request related to a problem? Please describe.
Thank you for the great extension, I've only been playing with for about 30 minutes but it's super!
I think it would be convienient to have a way to open the "Mail" service.

Describe the solution you'd like
I would like to see "Mail" under services, with an icon to open in the browser.
Clicking the icon, should open the current mail service in a browser, similar to ddev launch -m functionality.
Not sure if this is already there somewhere but I couldn't find it.

Additional context
DDEV <=1.22.1 use Mailhog as the mail service.
There is an open PR request to replace MailHog with Mailpit; a different service with the same functionality and launch shortcut.
Perhaps call the service "Mail", instead of "MailHog" (current) or "Mailpit" (1.23 ?) would keep the name consistent regardless of version.

I am current running ddev version v1.22.1-58-g3a427fd30 (PR preview version mentioned above).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.