You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm performing a root cause analysis of why the 3.16.0 release was broken so I can hopefully prevent it happening again. I'll update this issue as I go.
Problem
Version 3.16.0 was released on April 22nd. Users who updated to this version immediately reported a fatal error that caused their sites to go down.
The problem is with the deployment to wordpress.org
Root cause
The plugin at version 3.16.0 as shipped to wordpress.org triggered a fatal error
Why?
The vendor/composer/autoload_real.php was attempting to load a vendor/symfony/deprecation-contracts/function.php PHP file that does not (and should not) exist
Why?
The vendor/composer/autoload_real.php file contains unexpected calls to require for a bunch of files that do not exist in the build
When composer dump-autoload --no-dev is run, the $filesToLoad code isn't present. It's only present when the autoloader is created with dev dependencies.
Why?
At the point where the Composer autoload files were last generated within the deploy-tag.yml or reusable-deploy-tag.yml workflow, Composer thought those files were needed
Why?
composer install is called within the reusable-deploy-tag.yml workflow, which appears to be the cause of the regenerated autoloader.
Why?
The above is the cause of the regenerated autoloader but I've been unable to determine why this didn't affect version 3.15 which was released after the introduction of this call to composer install. The logs for GitHub Actions workflow runs are only retained for 90 days.
Need to increase my confidence in the reliability of the build that happens in the GitHub Actions workflows
Need to run the automated acceptance tests against a version of the plugin which is built in exactly the same manner as when the plugin is built for the deployment to wordpress.org
Need to be able to dry-run the build and deployment workflows and inspect the output
The text was updated successfully, but these errors were encountered:
I've identified the root cause as being the call to composer install which was added in johnbillion/plugin-infrastructure@13b30ba but I wasn't able to determine why 3.15 wasn't affected. This change was made prior to Query Monitor 3.15 being released. Alas the GitHub Actions run logs are only retained for 90 days so I've exhausted everything that I can investigate.
I'm performing a root cause analysis of why the 3.16.0 release was broken so I can hopefully prevent it happening again. I'll update this issue as I go.
Problem
Version 3.16.0 was released on April 22nd. Users who updated to this version immediately reported a fatal error that caused their sites to go down.
Stack trace from a WP-CLI request:
References
Notes
plugin-infrastructure
between the two releasesRoot cause
The plugin at version 3.16.0 as shipped to wordpress.org triggered a fatal error
Why?
The
vendor/composer/autoload_real.php
was attempting to load avendor/symfony/deprecation-contracts/function.php
PHP file that does not (and should not) existWhy?
The
vendor/composer/autoload_real.php
file contains unexpected calls torequire
for a bunch of files that do not exist in the buildWhen
composer dump-autoload --no-dev
is run, the$filesToLoad
code isn't present. It's only present when the autoloader is created with dev dependencies.Why?
At the point where the Composer autoload files were last generated within the
deploy-tag.yml
orreusable-deploy-tag.yml
workflow, Composer thought those files were neededWhy?
composer install
is called within thereusable-deploy-tag.yml
workflow, which appears to be the cause of the regenerated autoloader.Why?
The above is the cause of the regenerated autoloader but I've been unable to determine why this didn't affect version 3.15 which was released after the introduction of this call to
composer install
. The logs for GitHub Actions workflow runs are only retained for 90 days.Additional issues
setClassMapAuthoritative
line (which should happen here) was also not present in the shipped release. See fatal error on update from 1.14 to 1.15 wp-crontrol#91 for the history.Counter measures
The text was updated successfully, but these errors were encountered: