Page MenuHomePhabricator

grabFiles.php broken in MediaWiki 1.38 due to MediaWiki API changes
Closed, ResolvedPublicBUG REPORT

Description

Steps to replicate the issue (include links if applicable):

Install grabbers as per documentation https://www.mediawiki.org/wiki/Manual:Grabbers

sudo -u www-data php /var/www/wiki/w/mediawiki-tools-grabbers/grabFiles.php --url https://www.example.com/w/api.php

What happens?:

[35c7f4bed02ebde4690dfe95] [no req] Error: Call to undefined method RepoGroup::singleton()
Backtrace:
from /var/www/wiki/w/mediawiki-tools-grabbers/includes/FileGrabber.php(64)
#0 /var/www/wiki/w/mediawiki-tools-grabbers/grabFiles.php(34): FileGrabber->execute()
#1 /var/www/wiki/w/maintenance/doMaintenance.php(114): GrabFiles->execute()
#2 /var/www/wiki/w/mediawiki-tools-grabbers/grabFiles.php(143): require_once(string)
#3 {main}

What should have happened instead?:

No error.

Software version (skip for WMF-hosted wikis like Wikipedia):

1.38.2

Other information (browser name/version, screenshots, etc.):

Line https://github.com/wikimedia/mediawiki-tools-grabbers/blob/master/includes/FileGrabber.php#L64 might be broken.

$this->localRepo = RepoGroup::singleton()->getLocalRepo();

I found RepoGroup::singleton() in the developer documentation for MediaWiki version 1.37:
https://doc.wikimedia.org/mediawiki-core/REL1_37/php/classRepoGroup.html

But when changing to version in above link to REL1_38 (MediaWiki version 1.38) the developer documentation no longer mentions singleton:
https://doc.wikimedia.org/mediawiki-core/REL1_38/php/classRepoGroup.html

Therefore I guess MediaWiki API changes have broken grabFiles.php.

Event Timeline

Change 816349 had a related patch set uploaded (by Martineznovo; author: Martineznovo):

[mediawiki/tools/grabbers@master] Compatibility changes for MediaWiki 1.35-1.38

https://gerrit.wikimedia.org/r/816349

Change 816349 merged by Jack Phoenix:

[mediawiki/tools/grabbers@master] Compatibility changes for MediaWiki 1.35-1.38

https://gerrit.wikimedia.org/r/816349