See also T359043: Enable temp account creation in DevelopmentSettings.php.
Context
Temporary accounts is a new editing paradigm in which anonymous editing results in a temporary account being created automatically for the user. This feature will roll out to testwiki in Q3 FY23-24 and then to pilot wikis.
DevelopmentSettings: Enable auto creation of temp users is an example patch for tracking test status of the test pipeline when temp accounts flag is enabled. As we can see, there are failures in PHPUnit, Selenium, and API-testing tests when temp accounts feature flag is enabled.
Proposal
In this task, we'll:
- fix test failures seen in PHPUnit, Selenium, QUnit, and API-testing tests when $wgAutoCreateTempUser['enabled'] = true;. We'll need to do that by adjusting assumptions made in tests about anonymous editing
TBD: Dedicated jobs approach or enable by default in CI?
One approach is to create dedicated jobs for running PHPUnit, Selenium, and API testing tests with temp accounts enabled, e.g. wmf-quibble-core-vendor-mysql-php74-tempaccounts-docker. That would guard against regressions that cause failures in the temp accounts paradigm.
For now, the new jobs should run only with "check experimental". Once they are passing, they should be added to the default gate. This means increased resource usage in CI, but this is unavoidable while we have a transitional period with two anonymous editing paradigms in production (one with temp accounts, one with IP editing).
Alternatively, we could just switch CI to run with temp accounts feature enabled. That means that we are testing a setup that is unlike most of production, until we complete the temporary accounts migration. But it simplifies CI setup and reduces runtime.
Option: Enable by default in DevelopmentSettings.php
This is what is proposed in this patch. That would enable the feature in CI, since we load DevelopmentSettings.php in CI.
Option: Add an option to installer.php and use in Quibble config
This is proposed in this patch. We could update Quibble JJB config to pass --with-temporary-accounts and enable temp accounts in CI that way.
Option: Add custom code in Quibble
We could update Quibble to accept a --with-temporary-accounts flag, and Quibble would be responsible for injecting the relevant LocalSettings.php code snippet to enable temporary accounts on new installs. We'd then update various JJB configurations.
Acceptance criteria
- PHPUnit, Selenium, and API-testing jobs that run as part of the WMF gate and submit to ensure that patches to core & extensions work when $wgAutoCreateTempUser['enabled'] = true;