-
Notifications
You must be signed in to change notification settings - Fork 396
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Drush Launcher busted with Drush 12 #4690
Comments
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
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. |
It looks like blt could remove the |
…h doesn't have cache anymore.
As you are running on docksal, might be worth checking this too: docksal/service-cli#304 |
…n't have cache anymore. (#4698) Co-authored-by: Dane Powell <[email protected]>
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: drush-ops/drush#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. | +--------------------------------------+-----------------------------------------------------------+Thanks, in advance, for your help.
The text was updated successfully, but these errors were encountered: