macOS and Linux installers produce different docroot structures (web/ vs web/web/)
## Problem The macOS and Linux installers create Drupal CMS with **different on-disk structures**, and downstream code has to branch on the OS to compensate. This asymmetry is fragile and makes the two platforms behave differently for no functional reason. ### macOS (`install-macos.sh`) ```bash ddev config --project-type=drupal11 --docroot=web ddev composer create-project drupal/cms ``` Result: the Drupal docroot is **`web/`** at the project root. ### Linux (`install-linux.sh`) ```bash ddev config --project-type=drupal11 --docroot=_docroot_placeholder ddev start ddev exec composer create-project drupal/cms web --no-interaction ... rm -rf web/.ddev # remove the nested .ddev shipped by drupal/cms ddev stop ddev config --docroot=web/web # reconfigure ddev start ``` Result: the Drupal docroot is **`web/web/`**, reached via a create-into-`web/` → delete nested `.ddev` → stop → reconfigure → start dance, including a throwaway `_docroot_placeholder` docroot. ## Impact - **`github-push.sh` must branch on OS** to locate the docroot, which only exists because the two installers disagree: ```bash if [[ "$(uname -s)" == "Darwin" ]]; then DRUPAL_ROOT="web" else DRUPAL_ROOT="web/web" fi ``` - Any future tooling, docs, or `.gitignore` rules that reference the docroot have to special-case the platform. - The Linux flow's extra `ddev stop`/reconfigure/`ddev start` cycle is slower and has more failure points (e.g. the `rm -rf web/.ddev` and the placeholder docroot). ## Proposed direction Pick **one** target structure for both platforms and make the installers converge on it. The macOS flow (`--docroot=web`, `ddev composer create-project drupal/cms` at the project root) is simpler and avoids the nested-`.ddev` cleanup, so aligning Linux to that shape is the likely fix. Once both produce `web/`, the OS branch in `github-push.sh` can be removed. ## Steps to reproduce 1. Run the installer on macOS → inspect the resulting project: docroot is `web/`. 2. Run the installer on Linux → inspect the resulting project: docroot is `web/web/`. --- *Reported after a code read of branch `1.0.x`. Issue drafted with AI (Claude) assistance.*
issue