I am a Drupal site builder experimenting with WSL2 and I am finding the routine creating a Drupal project with composer does not complete.
My PC has 16GB RAM and composer is allowed unlimited memory. To the best of my understanding I have Docker configured correctly for WSL2.
The create-project process starts normally but then stalls when installing drupal/core (9.0.2). This appears to be so whether downloading from source or from cache. After a considerable time the process will fail. The contents of the project folder are largely incomplete.
I first attempted this with a Drupal 9 recipe for DDEV, a container based local dev environment which includes composer.
Not wishing to point the finger at DDEV, I then installed composer via Homebrew in the Home directory of WSL2 and tried again, independently of DDEV or Docker. After running composer create-project drupal/recommended-project my_site_name_dir
I find that composer fails in exactly the same way.
Composer output follows;
paul@DESKTOP-TQA1I7L:/mnt/c/Users/Paul/Sites/D9$ composer create-project drupal/recommended-project my_site_name_dir
Creating a "drupal/recommended-project" project at "./my_site_name_dir"
Installing drupal/recommended-project (9.0.2)
- Installing drupal/recommended-project (9.0.2): Loading from cache
Created project in /mnt/c/Users/Paul/Sites/D9/my_site_name_dir
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Package operations: 59 installs, 0 updates, 0 removals
- Installing composer/installers (v1.9.0): Loading from cache
- Installing drupal/core-composer-scaffold (9.0.2): Loading from cache
- Installing drupal/core-project-message (9.0.2): Loading from cache
- Installing typo3/phar-stream-wrapper (v3.1.4): Loading from cache
- Installing symfony/polyfill-mbstring (v1.17.0): Loading from cache
- Installing symfony/polyfill-ctype (v1.17.0): Loading from cache
- Installing twig/twig (v2.12.5): Loading from cache
- Installing symfony/yaml (v4.4.9): Loading from cache
- Installing symfony/polyfill-php80 (v1.17.0): Loading from cache
- Installing symfony/var-dumper (v5.1.0): Loading from cache
- Installing symfony/translation-contracts (v2.1.2): Loading from cache
- Installing symfony/validator (v4.4.9): Loading from cache
- Installing symfony/translation (v4.4.9): Loading from cache
- Installing psr/container (1.0.0): Loading from cache
- Installing symfony/service-contracts (v2.1.2): Loading from cache
- Installing symfony/serializer (v4.4.9): Loading from cache
- Installing symfony/routing (v4.4.9): Loading from cache
- Installing symfony/polyfill-php72 (v1.17.0): Loading from cache
- Installing symfony/polyfill-intl-idn (v1.17.0): Loading from cache
- Installing symfony/mime (v5.1.0): Loading from cache
- Installing symfony/http-foundation (v4.4.9): Loading from cache
- Installing psr/http-message (1.0.1): Loading from cache
- Installing symfony/psr-http-message-bridge (v2.0.0): Loading from cache
- Installing symfony/process (v4.4.9): Loading from cache
- Installing symfony/polyfill-php73 (v1.17.0): Loading from cache
- Installing symfony/polyfill-iconv (v1.17.0): Loading from cache
- Installing symfony/event-dispatcher-contracts (v1.1.7): Loading from cache
- Installing symfony/event-dispatcher (v4.4.9): Loading from cache
- Installing psr/log (1.1.3): Loading from cache
- Installing symfony/debug (v4.4.9): Loading from cache
- Installing symfony/error-handler (v4.4.9): Loading from cache
- Installing symfony/http-kernel (v4.4.9): Loading from cache
- Installing symfony/dependency-injection (v4.4.9): Loading from cache
- Installing symfony/console (v4.4.9): Loading from cache
- Installing symfony-cmf/routing (2.3.2): Loading from cache
- Installing stack/builder (v1.0.6): Loading from cache
- Installing ralouphie/getallheaders (3.0.3): Loading from cache
- Installing psr/http-factory (1.0.1): Loading from cache
- Installing pear/pear_exception (v1.0.1): Loading from cache
- Installing pear/console_getopt (v1.4.3): Loading from cache
- Installing pear/pear-core-minimal (v1.10.10): Loading from cache
- Installing pear/archive_tar (1.4.9): Loading from cache
- Installing masterminds/html5 (2.7.0): Loading from cache
- Installing laminas/laminas-zendframework-bridge (1.0.4): Loading from cache
- Installing laminas/laminas-stdlib (3.2.1): Loading from cache
- Installing laminas/laminas-escaper (2.6.1): Loading from cache
- Installing laminas/laminas-feed (2.12.2): Loading from cache
- Installing laminas/laminas-diactoros (2.3.0): Loading from cache
- Installing guzzlehttp/psr7 (1.6.1): Loading from cache
- Installing guzzlehttp/promises (v1.3.1): Loading from cache
- Installing guzzlehttp/guzzle (6.5.4): Loading from cache
- Installing doctrine/lexer (1.2.1): Loading from cache
- Installing egulias/email-validator (2.1.17): Loading from cache
- Installing doctrine/annotations (1.10.3): Loading from cache
- Installing doctrine/reflection (1.2.1): Loading from cache
- Installing composer/semver (1.5.1): Loading from cache
- Installing asm89/stack-cors (1.3.0): Loading from cache
- Installing drupal/core (9.0.2): Loading from cache
Failed to download drupal/core from dist: Could not delete /mnt/c/Users/Paul/Sites/D9/my_site_name_dir/vendor/composer/782129de/drupal-core-ea6e0ce/lib/Drupal/Core:
Now trying to download from source
- Installing drupal/core (9.0.2): Cloning ea6e0cef32 from cache
[Symfony\Component\Process\Exception\ProcessTimedOutException]
The process "git checkout '9.0.2' --" exceeded the timeout of 300 seconds.
create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--add-repository] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--no-secure-http] [--keep-vcs] [--remove-vcs] [--no-install] [--ignore-platform-reqs] [--] [] [] []
paul@DESKTOP-TQA1I7L:/mnt/c/Users/Paul/Sites/D9$
paul@DESKTOP-TQA1I7L:/mnt/c/Users/Paul/Sites/D9$ composer create-project drupal/recommended-project my_site_name_dir
Creating a "drupal/recommended-project" project at "./my_site_name_dir"
[InvalidArgumentException]
Project directory "/mnt/c/Users/Paul/Sites/D9/my_site_name_dir" is not empty.
create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--add-repository] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--no-secure-http] [--keep-vcs] [--remove-vcs] [--no-install] [--ignore-platform-reqs] [--] [] [] []
After reading some updated documentation I now understand the problem was that I was attempting to perform this operation under the Windows file system at .mnt/c/Users/Paul
instead of the Linux location of /home/paul
As well as completing without errors, performance is vastly improved.