Hi! It took me a while to get to the ground of this problem and i almost questioned my sanity but finally i found the cause!
There are 2 incompatible packages listed in composer.json that cause composer to lock up and hog a cpu core at 100% load (which is probably related to https://github.com/composer/composer/issues/7240). the packages in question are php-cs-fixer and phpdocumentor. I'm not sure whether the used PHP version (7.2.15, 7.3.4 and 7.3.11 in my case) is relevant or not.
Clone the repository, run composer install or composer update on the master branch. Composer will lock up. Removing either of the 2 said packages will "fix" the problem. I was able to reproduce this on 3 different machines (Windows and Linux), including a freshly installed vbox.
The error output for removing either of the 2 libraries and trying to install them separately: https://gist.github.com/codemasher/eb576ba5a114733019e52b23e36dcdb8
Require these packages only when needed and remove them from composer.json like so: https://github.com/codemasher/PHPMailer/commit/1304adefdd81e6e32463738e6fa6380992097011
I've run into this as well, and it is indeed quite painful! This is partly why I've given up trying to run php-cs-fixer locally - the CS build on travis runs on an older version of PHP which doesn't have these issues. I think it's largely caused by phpdocumentor not being PHP 7.3-compatible; I noticed that many of the issues seem to involve symfony console, which also seems to have some PHP version constraints.
phpdocumentor is typically only used when generating docs (which is now done via a github action), whereas php-cs-fixer is used continuously by IDEs (or at least its config is), so would it not make more sense to keep php-cs-fixer installed by default (in require-dev) and fix the incompatibility during the docs build by installing phpdocumentor that way i.e. the other way around from what you've done?
The commit i made was just a solution suggestion :)
Do what best suits the packages needs! i noticed that you run phpdocs via github now, so yea, it would probably best to require the phpdocumentor only there. I doubt that many people are building docs anyway. Maybe you could do the same with cs-fixer?
I've done what's probably the most straightforward thing - I removed phpdocumentor from require-dev. It's configured automatically for the github action, and it's not needed otherwise. This should resolve the composer conflict.
Thank you for the quick fix! A heads-up: there's a leftover in travis.yml.
Thanks!