Closed loopy3025 closed 1 year ago
i'm not certain this is a BLT bug. if you look at how BLT executes Drush...
https://github.com/acquia/blt/blob/main/src/Robo/Common/Executor.php#L80
$drush_array[] = $this->getConfigValue('composer.bin') . DIRECTORY_SEPARATOR . "drush";
BLT calls a drush task by going into the composer bin and calling vendor/bin/drush. It doesn't ever "just drush."
@mikemadison13 my bad. I guess this is going to have to be an Acquia ticket.
I'm facing an issue with Drush 12 when I run blt setup
where setup strategy=sync
. This only happens if my database is clean/empty meaning that Drupal has not been installed yet.
It looks like blt could remove the drush clear-cache drush
as per the maintainer's suggestion: https://drupal.slack.com/archives/C62H9CWQM/p1692636439244739
As you are running on docksal, might be worth checking this too: https://github.com/docksal/service-cli/issues/304
I believe this is now fixed if you switch to https://github.com/docksal/service-cli/releases/tag/v3.6.0
Upon upgrading to BLT 13.7.1, composer tries upgrading drush to 12.x. Several incompatibilities seem to have cropped up. On the Drush project, it has been suggested that we run Drush commands with
vendor/bin/drush
instead ofdrush
(REF: https://github.com/drush-ops/drush/issues/5694). This seems to work locally for one-off commands on the command line. This won't work in blt, of course, because those scripts are installed to vendor. As of now, none of our blt projects can successfully build in pipelines if they are upgraded to Drush 12.To Reproduce
Expected behavior
Drush commands run without error or deprecation warnings.
Actual behavior
Local
Locally, we are using Docksal. During any drush command, we get the following deprecation warnings:
It makes me think Drush 12 would prefer it if we installed PHP 8.2. Not sure.
I really wonder why it's looking in usr/local/bin/drush8. Drush 12 is bootstrapping:
However, after these warnings, the commands do actually run. I noticed some issues that have a similar error point to the drush launcher being an issue.
fin drush --version
reports we are using Drush Launcher 0.10.1. As I stated earlier, the folks at the drush/drush project suggest usingvendor/bin/drush
instead ofdrush
when running commands. This does allow the commands to execute correctly on the command line. This, however, is not so helpful in regards to BLT commands during Pipelines CI...Acquia
We can't get any branches with Drush 12 past pipelines. We get the following error: drupal:sync:db
As far as I can tell, no documentation has said we need to change anything with these files when upgrading from 11.x-12.x and I'm not sure how I can execute blt commands that have a drush component without using drush launcher.
Workaround
Downgrade to Drush 11.x
System Configuration
BLT doctor output
BLT Doctor collapsed
+----------------------+----------------------------------------------+ | Property | Value | +----------------------+----------------------------------------------+ | %paths.%root | /var/www/docroot | | %paths.%site | sites/default | | %paths.%modules | sites/all/modules | | %paths.%themes | sites/all/themes | | %paths.%config-sync | /var/www/config/default | | %paths.%files | sites/default/files | | %paths.%temp | /tmp | | %paths.%private | /var/www/files-private | | admin-theme | claro | | alias-searchpaths.0 | /var/www/drush/sites | | base-profile | This profile does not extend a base profile. | | blt-version | 13.7.1.0 | | bootstrap | Successful | | composer-version | Composer version 2.3.10 2022-07-13 15:48:23 | | config-sync | /var/www/config/default | | db-driver | mysql | | db-hostname | db | | db-name | default | | db-password | user | | db-port | 3306 | | db-status | Connected | | db-username | user | | drupal-settings-file | sites/default/settings.php | | drupal-version | 10.1.1 | | drush-alias-files.0 | /var/www/drush/sites/oursite.site.yml | | drush-conf.0 | /var/www/vendor/drush/drush/drush.yml | | drush-conf.1 | /var/www/drush/drush.yml | | drush-script | /var/www/vendor/bin/drush | | drush-temp | /tmp | | drush-version | 12.1.1.0 | | files | sites/default/files | | install-profile | minimal | | modules | sites/all/modules | | php-bin | /usr/local/bin/php | | php-conf.1 | /usr/local/etc/php/php.ini | | php-os | Linux | | php-version | 8.1.8 | | private | /var/www/files-private | | root | /var/www/docroot | | site | sites/default | | temp | /tmp | | theme | gearup | | themes | sites/all/themes | | uri | http://oursite.docksal.site | +----------------------+----------------------------------------------+ +--------------------------------------+-----------------------------------------------------------+ | Check | Problem | +--------------------------------------+-----------------------------------------------------------+ | NodeCheck:checkNodeVersionFileExists | Neither .nvmrc nor .node-version file found in repo root. | +--------------------------------------+-----------------------------------------------------------+