While upgrading a MW 1.26 install to 1.30, and using Composer to pull in the Chameleon skin (as per its instructions at https://github.com/cmln/chameleon/blob/master/docs/installation-linux.md), update.php hit me back with the following, implying that it or wherever it gets its paths from expects that Bootstrap should have landed in the extensions folder, when it actually landed at /var/www/vhosts/wiki.linguisticteam.org/public/vendor/mediawiki/bootstrap/resources/bootstrap.
I should probably also mention that Chameleon landed in /var/www/vhosts/wiki.linguisticteam.org/public/vendor/mediawiki/chameleon-skin, rather than the skins directory.
# php update.php [8dbae65340df5073d75eac98] [no req] RuntimeException from line 162 of /var/www/vhosts/wiki.linguisticteam.org/public/vendor/mediawiki/bootstrap/src/Hooks/SetupAfterCache.php: Expected an accessible /var/www/vhosts/wiki.linguisticteam.org/public/extensions/Bootstrap/resources/bootstrap path Backtrace: #0 /var/www/vhosts/wiki.linguisticteam.org/public/vendor/mediawiki/bootstrap/src/Hooks/SetupAfterCache.php(68): Bootstrap\Hooks\SetupAfterCache->isReadablePath(string) #1 /var/www/vhosts/wiki.linguisticteam.org/public/vendor/mediawiki/bootstrap/Bootstrap.php(88): Bootstrap\Hooks\SetupAfterCache->process() #2 [internal function]: {closure}() #3 /var/www/vhosts/wiki.linguisticteam.org/public/includes/Hooks.php(177): call_user_func_array(Closure, array) #4 /var/www/vhosts/wiki.linguisticteam.org/public/includes/Hooks.php(205): Hooks::callHook(string, Closure, array, NULL) #5 /var/www/vhosts/wiki.linguisticteam.org/public/includes/Setup.php(710): Hooks::run(string) #6 /var/www/vhosts/wiki.linguisticteam.org/public/maintenance/doMaintenance.php(79): require_once(string) #7 /var/www/vhosts/wiki.linguisticteam.org/public/maintenance/update.php(249): require_once(string) #8 {main}
I'm new to Composer, and at a loss for what to do to finish my upgrade attempt here.