For
#2978575: Mysql 8 Support on Drupal 7

Task: upgrade drush to the head of 8.x

Rationale: For mysql 8 to work correctly in the drupalci_testbot we need to upgrade drush 8.x for the Drupal 7 runner.

MustangGBs' patch for Drush was merged into the 8.x branch of drush in this pull request:
https://github.com/drush-ops/drush/pull/4313

it should be now possible to upgrade to the latest dev version of drush 8.x that has this fix.

https://github.com/drush-ops/drush/tree/8.x

Comments

joseph.olstad created an issue. See original summary.

ayesh’s picture

If there is a new Drush patch (semver speaking) release with the fixes, would CI pick that version, assuming semver is used?

joseph.olstad’s picture

I would think they'd have the version locked for the testrunner and would have to use composer update to adjust the composer.lock on the drush version probably.

but not sure.

tr’s picture

Priority: Major » Critical

Drush 8.3.3 contains the fixes needed so that Drush will run with MySql 8.

I changed the status to critical because it is - MySql 8 totally disables a Drupal 7 site, and we don't have a fix yet. It's hard to get a fix approved and committed when we can't test the fix with the testbot. And in the next few months we're going to see a huge spike in people upgrading their os/distribution and having to deal with MySql 8, so this needs to be fixed as soon as possible.

Mixologic’s picture

Project: DrupalCI: Test Runner » DrupalCI: Environments
Component: Testrunner Codebase » PHP Containers

Okay, so we currently have https://git.drupalcode.org/project/drupalci_environments/-/blob/producti...

The only place drush is used in the containers is to set everything up before testing for d7.

The only real option here is to upgrade drush completely, for all containers, for all d7 testing.

Would that have any adverse effects?

Mixologic’s picture

Okay, I ran a test locally, and am able to get the patch in https://www.drupal.org/project/drupal/issues/2978575 to apply and test against mysql 8.

I will slot this into my sprint to upgrade soon, but it takes a while to rebuild and test all the containers that will be affected. In the meantime, a patch can upgrade drush as demonstrated in this comment:

https://www.drupal.org/project/drupal/issues/2978575#comment-13704932

joseph.olstad’s picture

ok, so you're going to patch drush rather than upgrade to Drush 8.3.3 ?

Drush 8.3.3 contains the fixes needed so that Drush will run with MySql 8.

joseph.olstad’s picture

Just FYI Drush 8.3.3 contains the fixes needed so that Drush will run with MySql 8 and php 7.4.

However the latest release is 8.3.5

https://github.com/drush-ops/drush/releases/tag/8.3.5

tr’s picture

@joseph.olstad: What Mixologic did was to add a drupalci.yml to the patch in #2978575-118: Mysql 8 Support on Drupal 7.

That drupalci.yml instructs the testbot to download drush 8.3.5 (the latest) and use it to build the test environment for that specific patch, and only for that patch. This allows us to immediately run the tests we need without having to immediately update DrupalCI.

Think of this as test-driving the new version of drush in the DrupalCI environment. IF the new version of drush doesn't cause problems THEN DrupalCI can upgrade drush for all D7 tests, but this is something that needs to be seen first so that this drush upgrade is not disruptive.

I think this is a good strategy - we can now test D7/MySql 8 and make progress on #2978575: Mysql 8 Support on Drupal 7 - all we have to do it keep including that drupalci.yml in our patches. Likewise, @mixologic can upgrade the testbot on his schedule after he's sure it will not cause problems - after all, he's the one who will have to fix any problems caused by this change.

joseph.olstad’s picture

ok ya makes sense, thanks for the explanation.

Mixologic’s picture

Status: Active » Fixed

I rebuilt the containers yesterday, and they all now have drush 8.3.5.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.