Current status: CI fixed, follow-up changes also merged
In this MediaWiki core change, I changed the return type of ConnectionManager::getReadConnection() from IDatabase to IReadableDatabase. Apparently this broke Phan on Wikibase (example build):
client/includes/Hooks/ChangesListSpecialPageHookHandler.php:61 PhanTypeMismatchArgumentSuperType Argument 1 ($dbr) is $dbFactory->newLocalDb()->connections()->getReadConnection() of type \Wikimedia\Rdbms\Database\DbQuoter|\Wikimedia\Rdbms\Database\IDatabaseFlags|\Wikimedia\Rdbms\IReadableDatabase|\Wikimedia\Rdbms\Platform\ISQLPlatform|string but \Wikibase\Client\Hooks\ChangesListSpecialPageHookHandler::__construct() takes \Wikimedia\Rdbms\IDatabase defined at client/includes/Hooks/ChangesListSpecialPageHookHandler.php:45 (expected type to be the same or a subtype, but saw a supertype instead) client/includes/Usage/Sql/EntityUsageTable.php:408 PhanTypeMismatchArgumentSuperType Argument 2 ($readConnection) is $readConnection of type \Wikimedia\Rdbms\Database\DbQuoter|\Wikimedia\Rdbms\Database\IDatabaseFlags|\Wikimedia\Rdbms\IReadableDatabase|\Wikimedia\Rdbms\Platform\ISQLPlatform|string but \Wikibase\Client\Usage\Sql\EntityUsageTable::getUsedEntityIdStringsMySql() takes \Wikimedia\Rdbms\IDatabase defined at client/includes/Usage/Sql/EntityUsageTable.php:465 (expected type to be the same or a subtype, but saw a supertype instead) client/includes/Usage/Sql/SqlUsageTracker.php:231 PhanTypeMismatchArgumentSuperType Argument 1 ($db) is $db of type \Wikimedia\Rdbms\Database\DbQuoter|\Wikimedia\Rdbms\Database\IDatabaseFlags|\Wikimedia\Rdbms\IReadableDatabase|\Wikimedia\Rdbms\Platform\ISQLPlatform|string but \Wikibase\Client\Usage\Sql\SqlUsageTracker::newUsageTable() takes \Wikimedia\Rdbms\IDatabase defined at client/includes/Usage/Sql/SqlUsageTracker.php:79 (expected type to be the same or a subtype, but saw a supertype instead) client/includes/Usage/Sql/SqlUsageTracker.php:252 PhanTypeMismatchArgumentSuperType Argument 1 ($db) is $db of type \Wikimedia\Rdbms\Database\DbQuoter|\Wikimedia\Rdbms\Database\IDatabaseFlags|\Wikimedia\Rdbms\IReadableDatabase|\Wikimedia\Rdbms\Platform\ISQLPlatform|string but \Wikibase\Client\Usage\Sql\SqlUsageTracker::newUsageTable() takes \Wikimedia\Rdbms\IDatabase defined at client/includes/Usage/Sql/SqlUsageTracker.php:79 (expected type to be the same or a subtype, but saw a supertype instead) client/includes/Usage/Sql/SqlUsageTracker.php:272 PhanTypeMismatchArgumentSuperType Argument 1 ($db) is $db of type \Wikimedia\Rdbms\Database\DbQuoter|\Wikimedia\Rdbms\Database\IDatabaseFlags|\Wikimedia\Rdbms\IReadableDatabase|\Wikimedia\Rdbms\Platform\ISQLPlatform|string but \Wikibase\Client\Usage\Sql\SqlUsageTracker::newUsageTable() takes \Wikimedia\Rdbms\IDatabase defined at client/includes/Usage/Sql/SqlUsageTracker.php:79 (expected type to be the same or a subtype, but saw a supertype instead) lib/includes/Store/Sql/EntityChangeLookup.php:57 PhanTypeMismatchArgumentSuperType Argument 1 ($db) is $dbr of type \Wikimedia\Rdbms\Database\DbQuoter|\Wikimedia\Rdbms\Database\IDatabaseFlags|\Wikimedia\Rdbms\IReadableDatabase|\Wikimedia\Rdbms\Platform\ISQLPlatform|string but \Wikibase\Lib\Store\Sql\EntityChangeLookup::newEntityChangeSelectQueryBuilder() takes \Wikimedia\Rdbms\IDatabase defined at lib/includes/Store/Sql/EntityChangeLookup.php:93 (expected type to be the same or a subtype, but saw a supertype instead) lib/includes/Store/Sql/EntityChangeLookup.php:85 PhanTypeMismatchArgumentSuperType Argument 1 ($db) is $dbr of type \Wikimedia\Rdbms\Database\DbQuoter|\Wikimedia\Rdbms\Database\IDatabaseFlags|\Wikimedia\Rdbms\IReadableDatabase|\Wikimedia\Rdbms\Platform\ISQLPlatform|string but \Wikibase\Lib\Store\Sql\EntityChangeLookup::newEntityChangeSelectQueryBuilder() takes \Wikimedia\Rdbms\IDatabase defined at lib/includes/Store/Sql/EntityChangeLookup.php:93 (expected type to be the same or a subtype, but saw a supertype instead) lib/includes/Store/Sql/PropertyInfoTable.php:259 PhanTypeMismatchReturnSuperType Returning $this->db->connections()->getReadConnection() of type \Wikimedia\Rdbms\IReadableDatabase but getReadConnection() is declared to return \Wikimedia\Rdbms\IDatabase (saw a supertype instead of a subtype) lib/includes/Store/Sql/Terms/DatabaseMatchingTermsLookup.php:73 PhanTypeMismatchArgumentSuperType Argument 1 ($dbr) is $dbr of type \Wikimedia\Rdbms\Database\DbQuoter|\Wikimedia\Rdbms\Database\IDatabaseFlags|\Wikimedia\Rdbms\IReadableDatabase|\Wikimedia\Rdbms\Platform\ISQLPlatform|string but \Wikibase\Lib\Store\Sql\Terms\DatabaseMatchingTermsLookup::criteriaToQueryResults() takes \Wikimedia\Rdbms\IDatabase defined at lib/includes/Store/Sql/Terms/DatabaseMatchingTermsLookup.php:93 (expected type to be the same or a subtype, but saw a supertype instead) lib/includes/Store/Sql/Terms/DatabaseUsageCheckingTermStoreCleaner.php:48 PhanTypeMismatchArgumentSuperType Argument 2 ($dbr) is $dbr of type \Wikimedia\Rdbms\Database\DbQuoter|\Wikimedia\Rdbms\Database\IDatabaseFlags|\Wikimedia\Rdbms\IReadableDatabase|\Wikimedia\Rdbms\Platform\ISQLPlatform|string but \Wikibase\Lib\Store\Sql\Terms\DatabaseInnerTermStoreCleaner::cleanTermInLangIds() takes \Wikimedia\Rdbms\IDatabase defined at lib/includes/Store/Sql/Terms/DatabaseInnerTermStoreCleaner.php:51 (expected type to be the same or a subtype, but saw a supertype instead) lib/includes/Store/Sql/Terms/Util/ReplicaMasterAwareRecordIdsAcquirer.php:236 PhanTypeMismatchArgumentSuperType Argument 1 ($db) is $dbr of type \Wikimedia\Rdbms\Database\DbQuoter|\Wikimedia\Rdbms\Database\IDatabaseFlags|\Wikimedia\Rdbms\IReadableDatabase|\Wikimedia\Rdbms\Platform\ISQLPlatform|string but \Wikibase\Lib\Store\Sql\Terms\Util\ReplicaMasterAwareRecordIdsAcquirer::findExistingRecords() takes \Wikimedia\Rdbms\IDatabase defined at lib/includes/Store/Sql/Terms/Util/ReplicaMasterAwareRecordIdsAcquirer.php:268 (expected type to be the same or a subtype, but saw a supertype instead) lib/includes/Store/Sql/Terms/Util/ReplicaMasterAwareRecordIdsAcquirer.php:246 PhanTypeMismatchArgumentSuperType Argument 1 ($db) is $dbr of type \Wikimedia\Rdbms\Database\DbQuoter|\Wikimedia\Rdbms\Database\IDatabaseFlags|\Wikimedia\Rdbms\IReadableDatabase|\Wikimedia\Rdbms\Platform\ISQLPlatform|string but \Wikibase\Lib\Store\Sql\Terms\Util\ReplicaMasterAwareRecordIdsAcquirer::findExistingRecords() takes \Wikimedia\Rdbms\IDatabase defined at lib/includes/Store/Sql/Terms/Util/ReplicaMasterAwareRecordIdsAcquirer.php:268 (expected type to be the same or a subtype, but saw a supertype instead) lib/includes/Store/Sql/WikiPageEntityMetaDataLookup.php:91 PhanTypeMismatchArgumentSuperType Argument 2 ($db) is $dbReplicaRead of type \Wikimedia\Rdbms\Database\DbQuoter|\Wikimedia\Rdbms\Database\IDatabaseFlags|\Wikimedia\Rdbms\IReadableDatabase|\Wikimedia\Rdbms\Platform\ISQLPlatform|string but \Wikibase\Lib\Store\Sql\WikiPageEntityMetaDataLookup::selectRevisionInformationMultiple() takes \Wikimedia\Rdbms\IDatabase defined at lib/includes/Store/Sql/WikiPageEntityMetaDataLookup.php:268 (expected type to be the same or a subtype, but saw a supertype instead) lib/includes/Store/Sql/WikiPageEntityMetaDataLookup.php:136 PhanTypeMismatchArgumentSuperType Argument 3 ($db) is $dbReplicaRead of type \Wikimedia\Rdbms\Database\DbQuoter|\Wikimedia\Rdbms\Database\IDatabaseFlags|\Wikimedia\Rdbms\IReadableDatabase|\Wikimedia\Rdbms\Platform\ISQLPlatform|string but \Wikibase\Lib\Store\Sql\WikiPageEntityMetaDataLookup::selectRevisionInformationById() takes \Wikimedia\Rdbms\IDatabase defined at lib/includes/Store/Sql/WikiPageEntityMetaDataLookup.php:246 (expected type to be the same or a subtype, but saw a supertype instead) lib/includes/Store/Sql/WikiPageEntityMetaDataLookup.php:175 PhanTypeMismatchArgumentSuperType Argument 2 ($db) is $dbReplicaRead of type \Wikimedia\Rdbms\Database\DbQuoter|\Wikimedia\Rdbms\Database\IDatabaseFlags|\Wikimedia\Rdbms\IReadableDatabase|\Wikimedia\Rdbms\Platform\ISQLPlatform|string but \Wikibase\Lib\Store\Sql\WikiPageEntityMetaDataLookup::selectLatestRevisionIdsMultiple() takes \Wikimedia\Rdbms\IDatabase defined at lib/includes/Store/Sql/WikiPageEntityMetaDataLookup.php:290 (expected type to be the same or a subtype, but saw a supertype instead) repo/includes/Store/Sql/DispatchStats.php:30 PhanTypeMismatchArgumentSuperType Argument 1 ($db) is $db of type \Wikimedia\Rdbms\Database\DbQuoter|\Wikimedia\Rdbms\Database\IDatabaseFlags|\Wikimedia\Rdbms\IReadableDatabase|\Wikimedia\Rdbms\Platform\ISQLPlatform|string but \Wikibase\Repo\Store\Sql\DispatchStats::loadLimitedNumberOfChanges() takes \Wikimedia\Rdbms\IDatabase defined at repo/includes/Store/Sql/DispatchStats.php:49 (expected type to be the same or a subtype, but saw a supertype instead) repo/includes/Store/Sql/DispatchStats.php:34 PhanTypeMismatchArgumentSuperType Argument 1 ($db) is $db of type \Wikimedia\Rdbms\Database\DbQuoter|\Wikimedia\Rdbms\Database\IDatabaseFlags|\Wikimedia\Rdbms\IReadableDatabase|\Wikimedia\Rdbms\Platform\ISQLPlatform|string but \Wikibase\Repo\Store\Sql\DispatchStats::loadChangeTimes() takes \Wikimedia\Rdbms\IDatabase defined at repo/includes/Store/Sql/DispatchStats.php:74 (expected type to be the same or a subtype, but saw a supertype instead) repo/includes/Store/Sql/DispatchStats.php:36 PhanTypeMismatchArgumentSuperType Argument 1 ($db) is $db of type \Wikimedia\Rdbms\Database\DbQuoter|\Wikimedia\Rdbms\Database\IDatabaseFlags|\Wikimedia\Rdbms\IReadableDatabase|\Wikimedia\Rdbms\Platform\ISQLPlatform|string but \Wikibase\Repo\Store\Sql\DispatchStats::getWbChangesRowEstimate() takes \Wikimedia\Rdbms\IDatabase defined at repo/includes/Store/Sql/DispatchStats.php:58 (expected type to be the same or a subtype, but saw a supertype instead) repo/includes/Store/Sql/DispatchStats.php:44 PhanTypeMismatchArgumentSuperType Argument 1 ($db) is $db of type \Wikimedia\Rdbms\Database\DbQuoter|\Wikimedia\Rdbms\Database\IDatabaseFlags|\Wikimedia\Rdbms\IReadableDatabase|\Wikimedia\Rdbms\Platform\ISQLPlatform|string but \Wikibase\Repo\Store\Sql\DispatchStats::loadNumberOfEntities() takes \Wikimedia\Rdbms\IDatabase defined at repo/includes/Store/Sql/DispatchStats.php:66 (expected type to be the same or a subtype, but saw a supertype instead) repo/includes/Store/Sql/Terms/DatabaseTermsCollisionDetector.php:295 PhanTypeMismatchReturnSuperType Returning $this->db->connections()->getReadConnection() of type \Wikimedia\Rdbms\IReadableDatabase but getDbr() is declared to return \Wikimedia\Rdbms\IDatabase (saw a supertype instead of a subtype) repo/maintenance/pruneItemsPerSite.php:77 PhanTypeMismatchArgumentSuperType Argument 1 ($dbr) is $dbr of type \Wikimedia\Rdbms\Database\DbQuoter|\Wikimedia\Rdbms\Database\IDatabaseFlags|\Wikimedia\Rdbms\IReadableDatabase|\Wikimedia\Rdbms\Platform\ISQLPlatform|string but \Wikibase\Repo\Maintenance\PruneItemsPerSite::selectInRange() takes \Wikimedia\Rdbms\IDatabase defined at repo/maintenance/pruneItemsPerSite.php:91 (expected type to be the same or a subtype, but saw a supertype instead)