We need to move all maintenance scripts to use PHP 7.2 instead of HHVM.
This can be done by simply prepending `PHP=php7.2` to all the invocations of mwscript etc in the maintenance scripts.
What needs to be done in detail:
[] Separate production maintenance scripts from wikitech ones**
[x] Pick a few scripts to migrate first, notify the owners, migrate
[x] Migrate the wikidata dispatcher
[] Migrate all other scripts by setting php7.2 as the preferred debian alternative
[] Revert all the modifications to the scripts above as we don't need to force
[x] Some cronjobs are shared with wikitech, which has not been switched to PHP7. To avoid blocking this task we can keep production and wikitech maint jobs separate T222900
Related to: T219135:
----
| **PROGRESS** | **no (of 26)** | **%**
|| **13**| **46.2%**
| checked and converted | puppet class name | what does it do | comment | logging ?
|☑| cache_warmup |run APC/Memcached warmup after resetting caches| not a cron, just a package and file | n/a
|☑| initsitestats |Re-initialise or update the site statistics table| uses 'foreachwiki', uses foreachwikiindblist, bash, hardcodes RUNNER=php | /dev/null
|☑| purge_expired_userrights |Remove expired userrights from user_groups table and move them to former_user_groups| uses foreachwiki | /dev/null
|☑| translationnotifications |send email notification to translators| uses mwscript, allows overriding of PHP, ends emailwith DigestEmailer.php to a lot of users https://gerrit.wikimedia.org/r/c/operations/puppet/+/528606 | /var/log
|☑| uploads |configures wget for server-side uploads of large files| not a cron, just a config file for wget | n/a
|☑| cirrussearch |build completion indices for search, sanitizes cirrus jobs| uses expanddblist, (PHP) but pipes it into mwscript https://gerrit.wikimedia.org/r/c/operations/puppet/+/529417 | /var/log/mediawiki
|☑| pageassessments |remove unused projects from the page_assessments_projects table| uses foreachwikiindblist | /dev/null
|☑| purge_old_cx_drafts |purge content translation drafts older than 455 days| uses foreachwikiindblist | /var/log/mediawiki/
|☐| update_flaggedrev_stats |updates the flagged revs statistics table| uses mwscriptwikiset (bash), starts mwscript | /dev/null
|☑| wikidata |starts a dispatcher instance every 3 minutes, wikibase-repo pruning and others| Check https://grafana.wikimedia.org/d/000000156/wikidata-dispatch?refresh=1m&orgId=1 and https://grafana.wikimedia.org/d/000000239/wikidata-dispatch-script?refresh=1m&orgId=1 | /var/log/wikidata
|☑| cleanup_upload_stash |Remove old or broken uploads from temporary uploaded file storage, clean up associated database records| uses foreachwiki , problems on commons (T230179)| /var/log/mediawiki/
|☑| pagetriage |updates expired page metadata|uses mwscript, https://gerrit.wikimedia.org/r/c/operations/puppet/+/528609 . ask Ariel | /var/log/mediawiki
|☑| purge_securepoll |Purge private data (IP, XFF, UA) from SecurePoll Votes|uses foreachwiki| /dev/null
|☐| updatequerypages |calling updateSpecialPages.php on all clusters, one job for just en, one for all others|uses updatequerypages::cronjob, uses mwscriptwikiset | /var/log/mediawiki
|☑| db_lag_stats |dump MediaWiki DB lag times into statsd T149210|uses mwscript| /dev/null
|☑| jobqueue_stats |reports the amount of lag for MediaWiki-pooled DBs to StatsD | https://gerrit.wikimedia.org/r/c/operations/puppet/+/528287 | /dev/null
|☑| parsercachepurging |Remove old objects from the parser cache|uses mwscript,only works if parsercache is a mysql db , very slow!! see T230240 | /dev/null
|☑| readinglists |purging unneeded DB rows for extension ReadingLists| https://gerrit.wikimedia.org/r/c/operations/puppet/+/528282 | /var/log/mediawiki
|☑| echo_mail_batch |processes email digest / send notifications to users |uses foreachwikiindblist| /dev/null
|☑| purge_abusefilter |Purge old IP Address data from AbuseFilter logs|uses foreachwiki| /dev/null
|☐| refreshlinks |refresh link tables|uses refreshlinks::cronjob, uses mwscriptwikiset| /var/log/mediawiki
|☐| update_special_pages|updates cached special pages "Run this script periodically if you have miser mode enabled." |uses flock, uses foreachwiki updateSpecialPages.php| /var/log/mediawiki
|☑| generatecaptcha |Generate fancy captchas using a python script and copy them into storage|uses mwscript GenerateFancyCaptchas from ConfirmEdit extension , BROKEN -> T230245| /var/log/mediawiki
|☑| purge_checkuser |Purge expired rows in CheckUser and RecentChanges|uses foreachwiki purgeOldData.php - did https://gerrit.wikimedia.org/r/#/c/operations/puppet/+/528730/ but foreachwiki forces RUNNER=php apparently | /dev/null
|☐| updatetranslationstats.pp |"Update stats" "Meta:Babylon/Translation_stats" as User FuzzyBot |runs /usr/local/bin/characterEditStatsTranslate, uses mwscript| /dev/null