From: jenkins-bot Date: Wed, 8 Mar 2017 20:46:46 +0000 (+0000) Subject: Merge "Break up $wgDummyLanguageCodes" X-Git-Tag: 1.31.0-rc.0~3839 X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=commitdiff_plain;h=bdfa96eb726c9997a010f5a194eec71925bfddc2;hp=-c Merge "Break up $wgDummyLanguageCodes" --- bdfa96eb726c9997a010f5a194eec71925bfddc2 diff --combined autoload.php index f96d898663,e035828f91..0f79323826 --- a/autoload.php +++ b/autoload.php @@@ -11,7 -11,6 +11,7 @@@ $wgAutoloadLocalClasses = 'ActiveUsersPager' => __DIR__ . '/includes/specials/pagers/ActiveUsersPager.php', 'ActivityUpdateJob' => __DIR__ . '/includes/jobqueue/jobs/ActivityUpdateJob.php', 'AddRFCAndPMIDInterwiki' => __DIR__ . '/maintenance/addRFCandPMIDInterwiki.php', + 'AddSite' => __DIR__ . '/maintenance/addSite.php', 'AjaxDispatcher' => __DIR__ . '/includes/AjaxDispatcher.php', 'AjaxResponse' => __DIR__ . '/includes/AjaxResponse.php', 'AllMessagesTablePager' => __DIR__ . '/includes/specials/pagers/AllMessagesTablePager.php', @@@ -248,6 -247,7 +248,6 @@@ 'CheckStorage' => __DIR__ . '/maintenance/storage/checkStorage.php', 'CheckSyntax' => __DIR__ . '/maintenance/checkSyntax.php', 'CheckUsernames' => __DIR__ . '/maintenance/checkUsernames.php', - 'ChronologyProtector' => __DIR__ . '/includes/libs/rdbms/ChronologyProtector.php', 'ClassCollector' => __DIR__ . '/includes/utils/AutoloadGenerator.php', 'CleanupAncientTables' => __DIR__ . '/maintenance/cleanupAncientTables.php', 'CleanupBlocks' => __DIR__ . '/maintenance/cleanupBlocks.php', @@@ -258,7 -258,6 +258,7 @@@ 'ClearInterwikiCache' => __DIR__ . '/maintenance/clearInterwikiCache.php', 'CliInstaller' => __DIR__ . '/includes/installer/CliInstaller.php', 'CloneDatabase' => __DIR__ . '/includes/db/CloneDatabase.php', + 'CodeCleanerGlobalsPass' => __DIR__ . '/maintenance/CodeCleanerGlobalsPass.inc', 'CodeContentHandler' => __DIR__ . '/includes/content/CodeContentHandler.php', 'Collation' => __DIR__ . '/includes/collation/Collation.php', 'CollationCkb' => __DIR__ . '/includes/collation/CollationCkb.php', @@@ -289,6 -288,7 +289,6 @@@ 'ConvertLinks' => __DIR__ . '/maintenance/convertLinks.php', 'ConvertUserOptions' => __DIR__ . '/maintenance/convertUserOptions.php', 'ConverterRule' => __DIR__ . '/languages/ConverterRule.php', - 'ConvertibleTimestamp' => __DIR__ . '/includes/libs/time/ConvertibleTimestamp.php', 'Cookie' => __DIR__ . '/includes/libs/Cookie.php', 'CookieJar' => __DIR__ . '/includes/libs/CookieJar.php', 'CopyFileBackend' => __DIR__ . '/maintenance/copyFileBackend.php', @@@ -314,6 -314,7 +314,6 @@@ 'DBExpectedError' => __DIR__ . '/includes/libs/rdbms/exception/DBExpectedError.php', 'DBFileJournal' => __DIR__ . '/includes/filebackend/filejournal/DBFileJournal.php', 'DBLockManager' => __DIR__ . '/includes/libs/lockmanager/DBLockManager.php', - 'DBMasterPos' => __DIR__ . '/includes/libs/rdbms/database/position/DBMasterPos.php', 'DBQueryError' => __DIR__ . '/includes/libs/rdbms/exception/DBQueryError.php', 'DBReadOnlyError' => __DIR__ . '/includes/libs/rdbms/exception/DBReadOnlyError.php', 'DBReplicationWaitError' => __DIR__ . '/includes/libs/rdbms/exception/DBReplicationWaitError.php', @@@ -324,10 -325,11 +324,10 @@@ 'DataUpdate' => __DIR__ . '/includes/deferred/DataUpdate.php', 'Database' => __DIR__ . '/includes/libs/rdbms/database/Database.php', 'DatabaseBase' => __DIR__ . '/includes/libs/rdbms/database/Database.php', - 'DatabaseDomain' => __DIR__ . '/includes/libs/rdbms/database/DatabaseDomain.php', 'DatabaseInstaller' => __DIR__ . '/includes/installer/DatabaseInstaller.php', 'DatabaseLag' => __DIR__ . '/maintenance/lag.php', 'DatabaseLogEntry' => __DIR__ . '/includes/logging/LogEntry.php', - 'DatabaseMssql' => __DIR__ . '/includes/db/DatabaseMssql.php', + 'DatabaseMssql' => __DIR__ . '/includes/libs/rdbms/database/DatabaseMssql.php', 'DatabaseMysql' => __DIR__ . '/includes/libs/rdbms/database/DatabaseMysql.php', 'DatabaseMysqlBase' => __DIR__ . '/includes/libs/rdbms/database/DatabaseMysqlBase.php', 'DatabaseMysqli' => __DIR__ . '/includes/libs/rdbms/database/DatabaseMysqli.php', @@@ -486,10 -488,10 +486,10 @@@ 'FindHooks' => __DIR__ . '/maintenance/findHooks.php', 'FindMissingFiles' => __DIR__ . '/maintenance/findMissingFiles.php', 'FindOrphanedFiles' => __DIR__ . '/maintenance/findOrphanedFiles.php', - 'FixBug20757' => __DIR__ . '/maintenance/storage/fixBug20757.php', 'FixDefaultJsonContentPages' => __DIR__ . '/maintenance/fixDefaultJsonContentPages.php', 'FixDoubleRedirects' => __DIR__ . '/maintenance/fixDoubleRedirects.php', 'FixExtLinksProtocolRelative' => __DIR__ . '/maintenance/fixExtLinksProtocolRelative.php', + 'FixT22757' => __DIR__ . '/maintenance/storage/fixT22757.php', 'FixTimestamps' => __DIR__ . '/maintenance/fixTimestamps.php', 'FixUserRegistration' => __DIR__ . '/maintenance/fixUserRegistration.php', 'ForeignAPIFile' => __DIR__ . '/includes/filerepo/file/ForeignAPIFile.php', @@@ -505,7 -507,6 +505,7 @@@ 'FormSpecialPage' => __DIR__ . '/includes/specialpage/FormSpecialPage.php', 'FormatJson' => __DIR__ . '/includes/json/FormatJson.php', 'FormatMetadata' => __DIR__ . '/includes/media/FormatMetadata.php', + 'FormattedRCFeed' => __DIR__ . '/includes/rcfeed/FormattedRCFeed.php', 'FormlessAction' => __DIR__ . '/includes/actions/FormlessAction.php', 'GIFHandler' => __DIR__ . '/includes/media/GIF.php', 'GIFMetadataExtractor' => __DIR__ . '/includes/media/GIFMetadataExtractor.php', @@@ -567,7 -568,6 +567,7 @@@ 'HTMLTextFieldWithButton' => __DIR__ . '/includes/htmlform/fields/HTMLTextFieldWithButton.php', 'HTMLTitleTextField' => __DIR__ . '/includes/htmlform/fields/HTMLTitleTextField.php', 'HTMLUserTextField' => __DIR__ . '/includes/htmlform/fields/HTMLUserTextField.php', + 'HTMLUsersMultiselectField' => __DIR__ . '/includes/htmlform/fields/HTMLUsersMultiselectField.php', 'HTTPFileStreamer' => __DIR__ . '/includes/libs/filebackend/HTTPFileStreamer.php', 'HWLDFWordAccumulator' => __DIR__ . '/includes/diff/DairikiDiff.php', 'HashBagOStuff' => __DIR__ . '/includes/libs/objectcache/HashBagOStuff.php', @@@ -596,6 -596,9 +596,6 @@@ 'IEUrlExtension' => __DIR__ . '/includes/libs/IEUrlExtension.php', 'IExpiringStore' => __DIR__ . '/includes/libs/objectcache/IExpiringStore.php', 'IJobSpecification' => __DIR__ . '/includes/jobqueue/JobSpecification.php', - 'ILBFactory' => __DIR__ . '/includes/libs/rdbms/lbfactory/ILBFactory.php', - 'ILoadBalancer' => __DIR__ . '/includes/libs/rdbms/loadbalancer/ILoadBalancer.php', - 'ILoadMonitor' => __DIR__ . '/includes/libs/rdbms/loadmonitor/ILoadMonitor.php', 'ILocalizedException' => __DIR__ . '/includes/exception/LocalizedException.php', 'IMaintainableDatabase' => __DIR__ . '/includes/libs/rdbms/database/IMaintainableDatabase.php', 'IP' => __DIR__ . '/includes/libs/IP.php', @@@ -628,7 -631,6 +628,7 @@@ 'InfoAction' => __DIR__ . '/includes/actions/InfoAction.php', 'InitEditCount' => __DIR__ . '/maintenance/initEditCount.php', 'InitSiteStats' => __DIR__ . '/maintenance/initSiteStats.php', + 'InitUserPreference' => __DIR__ . '/maintenance/initUserPreference.php', 'InstallDocFormatter' => __DIR__ . '/includes/installer/InstallDocFormatter.php', 'Installer' => __DIR__ . '/includes/installer/Installer.php', 'InstallerOverrides' => __DIR__ . '/includes/installer/InstallerOverrides.php', @@@ -670,6 -672,10 +670,6 @@@ 'JsonContentHandler' => __DIR__ . '/includes/content/JsonContentHandler.php', 'KkConverter' => __DIR__ . '/languages/classes/LanguageKk.php', 'KuConverter' => __DIR__ . '/languages/classes/LanguageKu.php', - 'LBFactory' => __DIR__ . '/includes/libs/rdbms/lbfactory/LBFactory.php', - 'LBFactoryMulti' => __DIR__ . '/includes/libs/rdbms/lbfactory/LBFactoryMulti.php', - 'LBFactorySimple' => __DIR__ . '/includes/libs/rdbms/lbfactory/LBFactorySimple.php', - 'LBFactorySingle' => __DIR__ . '/includes/libs/rdbms/lbfactory/LBFactorySingle.php', 'LCStore' => __DIR__ . '/includes/cache/localisation/LCStore.php', 'LCStoreCDB' => __DIR__ . '/includes/cache/localisation/LCStoreCDB.php', 'LCStoreDB' => __DIR__ . '/includes/cache/localisation/LCStoreDB.php', @@@ -682,6 -688,7 +682,7 @@@ 'LanguageBe_tarask' => __DIR__ . '/languages/classes/LanguageBe_tarask.php', 'LanguageBg' => __DIR__ . '/languages/classes/LanguageBg.php', 'LanguageBs' => __DIR__ . '/languages/classes/LanguageBs.php', + 'LanguageCode' => __DIR__ . '/languages/LanguageCode.php', 'LanguageConverter' => __DIR__ . '/languages/LanguageConverter.php', 'LanguageCu' => __DIR__ . '/languages/classes/LanguageCu.php', 'LanguageDsb' => __DIR__ . '/languages/classes/LanguageDsb.php', @@@ -726,6 -733,7 +727,6 @@@ 'LegacyLogFormatter' => __DIR__ . '/includes/logging/LogFormatter.php', 'License' => __DIR__ . '/includes/Licenses.php', 'Licenses' => __DIR__ . '/includes/Licenses.php', - 'LikeMatch' => __DIR__ . '/includes/libs/rdbms/encasing/LikeMatch.php', 'LinkBatch' => __DIR__ . '/includes/cache/LinkBatch.php', 'LinkCache' => __DIR__ . '/includes/cache/LinkCache.php', 'LinkFilter' => __DIR__ . '/includes/LinkFilter.php', @@@ -740,6 -748,9 +741,6 @@@ 'ListredirectsPage' => __DIR__ . '/includes/specials/SpecialListredirects.php', 'LoadBalancer' => __DIR__ . '/includes/libs/rdbms/loadbalancer/LoadBalancer.php', 'LoadBalancerSingle' => __DIR__ . '/includes/libs/rdbms/loadbalancer/LoadBalancerSingle.php', - 'LoadMonitor' => __DIR__ . '/includes/libs/rdbms/loadmonitor/LoadMonitor.php', - 'LoadMonitorMySQL' => __DIR__ . '/includes/libs/rdbms/loadmonitor/LoadMonitorMySQL.php', - 'LoadMonitorNull' => __DIR__ . '/includes/libs/rdbms/loadmonitor/LoadMonitorNull.php', 'LocalFile' => __DIR__ . '/includes/filerepo/file/LocalFile.php', 'LocalFileDeleteBatch' => __DIR__ . '/includes/filerepo/file/LocalFile.php', 'LocalFileLockError' => __DIR__ . '/includes/filerepo/file/LocalFile.php', @@@ -800,7 -811,6 +801,7 @@@ 'MaintenanceFormatInstallDoc' => __DIR__ . '/maintenance/formatInstallDoc.php', 'MakeTestEdits' => __DIR__ . '/maintenance/makeTestEdits.php', 'MalformedTitleException' => __DIR__ . '/includes/title/MalformedTitleException.php', + 'ManageJobs' => __DIR__ . '/maintenance/manageJobs.php', 'ManualLogEntry' => __DIR__ . '/includes/logging/LogEntry.php', 'MapCacheLRU' => __DIR__ . '/includes/libs/MapCacheLRU.php', 'MappedIterator' => __DIR__ . '/includes/libs/MappedIterator.php', @@@ -814,7 -824,6 +815,7 @@@ 'MediaTransformOutput' => __DIR__ . '/includes/media/MediaTransformOutput.php', 'MediaWiki' => __DIR__ . '/includes/MediaWiki.php', 'MediaWikiI18N' => __DIR__ . '/includes/skins/MediaWikiI18N.php', + 'MediaWikiShell' => __DIR__ . '/maintenance/shell.php', 'MediaWikiSite' => __DIR__ . '/includes/site/MediaWikiSite.php', 'MediaWikiTitleCodec' => __DIR__ . '/includes/title/MediaWikiTitleCodec.php', 'MediaWikiVersionFetcher' => __DIR__ . '/includes/MediaWikiVersionFetcher.php', @@@ -855,7 -864,6 +856,7 @@@ 'MediaWiki\\Auth\\UsernameAuthenticationRequest' => __DIR__ . '/includes/auth/UsernameAuthenticationRequest.php', 'MediaWiki\\Diff\\ComplexityException' => __DIR__ . '/includes/diff/ComplexityException.php', 'MediaWiki\\Diff\\WordAccumulator' => __DIR__ . '/includes/diff/WordAccumulator.php', + 'MediaWiki\\HeaderCallback' => __DIR__ . '/includes/HeaderCallback.php', 'MediaWiki\\Interwiki\\ClassicInterwikiLookup' => __DIR__ . '/includes/interwiki/ClassicInterwikiLookup.php', 'MediaWiki\\Interwiki\\InterwikiLookup' => __DIR__ . '/includes/interwiki/InterwikiLookup.php', 'MediaWiki\\Interwiki\\InterwikiLookupAdapter' => __DIR__ . '/includes/interwiki/InterwikiLookupAdapter.php', @@@ -918,10 -926,6 +919,10 @@@ 'MediaWiki\\Tidy\\RaggettInternalHHVM' => __DIR__ . '/includes/tidy/RaggettInternalHHVM.php', 'MediaWiki\\Tidy\\RaggettInternalPHP' => __DIR__ . '/includes/tidy/RaggettInternalPHP.php', 'MediaWiki\\Tidy\\RaggettWrapper' => __DIR__ . '/includes/tidy/RaggettWrapper.php', + 'MediaWiki\\Tidy\\RemexCompatFormatter' => __DIR__ . '/includes/tidy/RemexCompatFormatter.php', + 'MediaWiki\\Tidy\\RemexCompatMunger' => __DIR__ . '/includes/tidy/RemexCompatMunger.php', + 'MediaWiki\\Tidy\\RemexDriver' => __DIR__ . '/includes/tidy/RemexDriver.php', + 'MediaWiki\\Tidy\\RemexMungerData' => __DIR__ . '/includes/tidy/RemexMungerData.php', 'MediaWiki\\Tidy\\TidyDriverBase' => __DIR__ . '/includes/tidy/TidyDriverBase.php', 'MediaWiki\\Widget\\ComplexNamespaceInputWidget' => __DIR__ . '/includes/widget/ComplexNamespaceInputWidget.php', 'MediaWiki\\Widget\\ComplexTitleInputWidget' => __DIR__ . '/includes/widget/ComplexTitleInputWidget.php', @@@ -929,19 -933,8 +930,19 @@@ 'MediaWiki\\Widget\\DateTimeInputWidget' => __DIR__ . '/includes/widget/DateTimeInputWidget.php', 'MediaWiki\\Widget\\NamespaceInputWidget' => __DIR__ . '/includes/widget/NamespaceInputWidget.php', 'MediaWiki\\Widget\\SearchInputWidget' => __DIR__ . '/includes/widget/SearchInputWidget.php', + 'MediaWiki\\Widget\\Search\\BasicSearchResultSetWidget' => __DIR__ . '/includes/widget/search/BasicSearchResultSetWidget.php', + 'MediaWiki\\Widget\\Search\\DidYouMeanWidget' => __DIR__ . '/includes/widget/search/DidYouMeanWidget.php', + 'MediaWiki\\Widget\\Search\\FullSearchResultWidget' => __DIR__ . '/includes/widget/search/FullSearchResultWidget.php', + 'MediaWiki\\Widget\\Search\\InterwikiSearchResultSetWidget' => __DIR__ . '/includes/widget/search/InterwikiSearchResultSetWidget.php', + 'MediaWiki\\Widget\\Search\\InterwikiSearchResultWidget' => __DIR__ . '/includes/widget/search/InterwikiSearchResultWidget.php', + 'MediaWiki\\Widget\\Search\\SearchFormWidget' => __DIR__ . '/includes/widget/search/SearchFormWidget.php', + 'MediaWiki\\Widget\\Search\\SearchResultSetWidget' => __DIR__ . '/includes/widget/search/SearchResultSetWidget.php', + 'MediaWiki\\Widget\\Search\\SearchResultWidget' => __DIR__ . '/includes/widget/search/SearchResultWidget.php', + 'MediaWiki\\Widget\\Search\\SimpleSearchResultSetWidget' => __DIR__ . '/includes/widget/search/SimpleSearchResultSetWidget.php', + 'MediaWiki\\Widget\\Search\\SimpleSearchResultWidget' => __DIR__ . '/includes/widget/search/SimpleSearchResultWidget.php', 'MediaWiki\\Widget\\TitleInputWidget' => __DIR__ . '/includes/widget/TitleInputWidget.php', 'MediaWiki\\Widget\\UserInputWidget' => __DIR__ . '/includes/widget/UserInputWidget.php', + 'MediaWiki\\Widget\\UsersMultiselectWidget' => __DIR__ . '/includes/widget/UsersMultiselectWidget.php', 'MemCachedClientforWiki' => __DIR__ . '/includes/compat/MemcachedClientCompat.php', 'MemcLockManager' => __DIR__ . '/includes/libs/lockmanager/MemcLockManager.php', 'MemcachedBagOStuff' => __DIR__ . '/includes/libs/objectcache/MemcachedBagOStuff.php', @@@ -977,7 -970,10 +978,7 @@@ 'MoveLogFormatter' => __DIR__ . '/includes/logging/MoveLogFormatter.php', 'MovePage' => __DIR__ . '/includes/MovePage.php', 'MovePageForm' => __DIR__ . '/includes/specials/SpecialMovepage.php', - 'MssqlBlob' => __DIR__ . '/includes/libs/rdbms/encasing/MssqlBlob.php', - 'MssqlField' => __DIR__ . '/includes/libs/rdbms/field/MssqlField.php', 'MssqlInstaller' => __DIR__ . '/includes/installer/MssqlInstaller.php', - 'MssqlResultWrapper' => __DIR__ . '/includes/libs/rdbms/database/resultwrapper/MssqlResultWrapper.php', 'MssqlUpdater' => __DIR__ . '/includes/installer/MssqlUpdater.php', 'MultiConfig' => __DIR__ . '/includes/config/MultiConfig.php', 'MultiHttpClient' => __DIR__ . '/includes/libs/MultiHttpClient.php', @@@ -985,6 -981,8 +986,6 @@@ 'MutableConfig' => __DIR__ . '/includes/config/MutableConfig.php', 'MutableContext' => __DIR__ . '/includes/context/MutableContext.php', 'MwSql' => __DIR__ . '/maintenance/sql.php', - 'MySQLField' => __DIR__ . '/includes/libs/rdbms/field/MySQLField.php', - 'MySQLMasterPos' => __DIR__ . '/includes/libs/rdbms/database/position/MySQLMasterPos.php', 'MySqlLockManager' => __DIR__ . '/includes/filebackend/lockmanager/MySqlLockManager.php', 'MysqlInstaller' => __DIR__ . '/includes/installer/MysqlInstaller.php', 'MysqlUpdater' => __DIR__ . '/includes/installer/MysqlUpdater.php', @@@ -1009,8 -1007,8 +1010,8 @@@ 'NullStatsdDataFactory' => __DIR__ . '/includes/libs/stats/NullStatsdDataFactory.php', 'NumericUppercaseCollation' => __DIR__ . '/includes/collation/NumericUppercaseCollation.php', 'OOUIHTMLForm' => __DIR__ . '/includes/htmlform/OOUIHTMLForm.php', - 'ORAField' => __DIR__ . '/includes/libs/rdbms/field/ORAField.php', - 'ORAResult' => __DIR__ . '/includes/db/DatabaseOracle.php', + 'ORAField' => __DIR__ . '/includes/db/ORAField.php', + 'ORAResult' => __DIR__ . '/includes/db/ORAResult.php', 'ObjectCache' => __DIR__ . '/includes/objectcache/ObjectCache.php', 'ObjectFactory' => __DIR__ . '/includes/libs/ObjectFactory.php', 'OldChangesList' => __DIR__ . '/includes/changes/OldChangesList.php', @@@ -1049,7 -1047,7 +1050,7 @@@ 'PackedImageGallery' => __DIR__ . '/includes/gallery/PackedImageGallery.php', 'PackedOverlayImageGallery' => __DIR__ . '/includes/gallery/PackedOverlayImageGallery.php', 'Page' => __DIR__ . '/includes/page/Page.php', - 'PageArchive' => __DIR__ . '/includes/specials/SpecialUndelete.php', + 'PageArchive' => __DIR__ . '/includes/page/PageArchive.php', 'PageExists' => __DIR__ . '/maintenance/pageExists.php', 'PageLangLogFormatter' => __DIR__ . '/includes/logging/PageLangLogFormatter.php', 'PageProps' => __DIR__ . '/includes/PageProps.php', @@@ -1097,6 -1095,8 +1098,6 @@@ 'PopulateRevisionLength' => __DIR__ . '/maintenance/populateRevisionLength.php', 'PopulateRevisionSha1' => __DIR__ . '/maintenance/populateRevisionSha1.php', 'PostgreSqlLockManager' => __DIR__ . '/includes/libs/lockmanager/PostgreSqlLockManager.php', - 'PostgresBlob' => __DIR__ . '/includes/libs/rdbms/encasing/PostgresBlob.php', - 'PostgresField' => __DIR__ . '/includes/libs/rdbms/field/PostgresField.php', 'PostgresInstaller' => __DIR__ . '/includes/installer/PostgresInstaller.php', 'PostgresUpdater' => __DIR__ . '/includes/installer/PostgresUpdater.php', 'Preferences' => __DIR__ . '/includes/Preferences.php', @@@ -1121,7 -1121,7 +1122,7 @@@ 'Protect' => __DIR__ . '/maintenance/protect.php', 'ProtectAction' => __DIR__ . '/includes/actions/ProtectAction.php', 'ProtectLogFormatter' => __DIR__ . '/includes/logging/ProtectLogFormatter.php', - 'ProtectedPagesPager' => __DIR__ . '/includes/specials/SpecialProtectedpages.php', + 'ProtectedPagesPager' => __DIR__ . '/includes/specials/pagers/ProtectedPagesPager.php', 'ProtectedTitlesPager' => __DIR__ . '/includes/specials/pagers/ProtectedTitlesPager.php', 'ProtectionForm' => __DIR__ . '/includes/ProtectionForm.php', 'ProxyLookup' => __DIR__ . '/includes/ProxyLookup.php', @@@ -1132,7 -1132,6 +1133,7 @@@ 'PurgeChangedPages' => __DIR__ . '/maintenance/purgeChangedPages.php', 'PurgeJobUtils' => __DIR__ . '/includes/jobqueue/utils/PurgeJobUtils.php', 'PurgeList' => __DIR__ . '/maintenance/purgeList.php', + 'PurgeModuleDeps' => __DIR__ . '/maintenance/purgeModuleDeps.php', 'PurgeOldText' => __DIR__ . '/maintenance/purgeOldText.php', 'PurgeParserCache' => __DIR__ . '/maintenance/purgeParserCache.php', 'QueryPage' => __DIR__ . '/includes/specialpage/QueryPage.php', @@@ -1141,7 -1140,6 +1142,7 @@@ 'RCCacheEntry' => __DIR__ . '/includes/changes/RCCacheEntry.php', 'RCCacheEntryFactory' => __DIR__ . '/includes/changes/RCCacheEntryFactory.php', 'RCDatabaseLogEntry' => __DIR__ . '/includes/logging/LogEntry.php', + 'RCFeed' => __DIR__ . '/includes/rcfeed/RCFeed.php', 'RCFeedEngine' => __DIR__ . '/includes/rcfeed/RCFeedEngine.php', 'RCFeedFormatter' => __DIR__ . '/includes/rcfeed/RCFeedFormatter.php', 'RESTBagOStuff' => __DIR__ . '/includes/libs/objectcache/RESTBagOStuff.php', @@@ -1247,6 -1245,7 +1248,6 @@@ 'RowUpdateGenerator' => __DIR__ . '/includes/utils/RowUpdateGenerator.php', 'RunJobs' => __DIR__ . '/maintenance/runJobs.php', 'RunningStat' => __DIR__ . '/includes/compat/RunningStatCompat.php', - 'SQLiteField' => __DIR__ . '/includes/libs/rdbms/field/SQLiteField.php', 'SVGMetadataExtractor' => __DIR__ . '/includes/media/SVGMetadataExtractor.php', 'SVGReader' => __DIR__ . '/includes/media/SVGMetadataExtractor.php', 'SamplingStatsdClient' => __DIR__ . '/includes/libs/stats/SamplingStatsdClient.php', @@@ -1442,6 -1441,7 +1443,6 @@@ 'ThumbnailRenderJob' => __DIR__ . '/includes/jobqueue/jobs/ThumbnailRenderJob.php', 'TidyUpBug37714' => __DIR__ . '/maintenance/tidyUpBug37714.php', 'TiffHandler' => __DIR__ . '/includes/media/Tiff.php', - 'TimestampException' => __DIR__ . '/includes/libs/time/TimestampException.php', 'Timing' => __DIR__ . '/includes/libs/Timing.php', 'Title' => __DIR__ . '/includes/Title.php', 'TitleArray' => __DIR__ . '/includes/TitleArray.php', @@@ -1452,8 -1452,8 +1453,8 @@@ 'TitlePrefixSearch' => __DIR__ . '/includes/PrefixSearch.php', 'TitleValue' => __DIR__ . '/includes/title/TitleValue.php', 'TrackBlobs' => __DIR__ . '/maintenance/storage/trackBlobs.php', + 'TrackingCategories' => __DIR__ . '/includes/TrackingCategories.php', 'TraditionalImageGallery' => __DIR__ . '/includes/gallery/TraditionalImageGallery.php', - 'TransactionProfiler' => __DIR__ . '/includes/libs/rdbms/TransactionProfiler.php', 'TransformParameterError' => __DIR__ . '/includes/media/MediaTransformOutput.php', 'TransformTooBigImageAreaError' => __DIR__ . '/includes/media/MediaTransformOutput.php', 'TransformationalImageHandler' => __DIR__ . '/includes/media/TransformationalImageHandler.php', @@@ -1516,7 -1516,6 +1517,7 @@@ 'UserBlockedError' => __DIR__ . '/includes/exception/UserBlockedError.php', 'UserCache' => __DIR__ . '/includes/cache/UserCache.php', 'UserDupes' => __DIR__ . '/maintenance/userDupes.inc', + 'UserGroupMembership' => __DIR__ . '/includes/user/UserGroupMembership.php', 'UserMailer' => __DIR__ . '/includes/mail/UserMailer.php', 'UserNamePrefixSearch' => __DIR__ . '/includes/user/UserNamePrefixSearch.php', 'UserNotLoggedIn' => __DIR__ . '/includes/exception/UserNotLoggedIn.php', @@@ -1534,9 -1533,7 +1535,9 @@@ 'ViewCLI' => __DIR__ . '/maintenance/view.php', 'VirtualRESTService' => __DIR__ . '/includes/libs/virtualrest/VirtualRESTService.php', 'VirtualRESTServiceClient' => __DIR__ . '/includes/libs/virtualrest/VirtualRESTServiceClient.php', + 'WANCacheReapUpdate' => __DIR__ . '/includes/deferred/WANCacheReapUpdate.php', 'WANObjectCache' => __DIR__ . '/includes/libs/objectcache/WANObjectCache.php', + 'WANObjectCacheReaper' => __DIR__ . '/includes/libs/objectcache/WANObjectCacheReaper.php', 'WantedCategoriesPage' => __DIR__ . '/includes/specials/SpecialWantedcategories.php', 'WantedFilesPage' => __DIR__ . '/includes/specials/SpecialWantedfiles.php', 'WantedPagesPage' => __DIR__ . '/includes/specials/SpecialWantedpages.php', @@@ -1581,39 -1578,8 +1582,39 @@@ 'WikiRevision' => __DIR__ . '/includes/import/WikiRevision.php', 'WikiStatsOutput' => __DIR__ . '/maintenance/language/StatOutputs.php', 'WikiTextStructure' => __DIR__ . '/includes/content/WikiTextStructure.php', + 'Wikimedia\\Rdbms\\Blob' => __DIR__ . '/includes/libs/rdbms/encasing/Blob.php', + 'Wikimedia\\Rdbms\\ChronologyProtector' => __DIR__ . '/includes/libs/rdbms/ChronologyProtector.php', 'Wikimedia\\Rdbms\\ConnectionManager' => __DIR__ . '/includes/libs/rdbms/connectionmanager/ConnectionManager.php', + 'Wikimedia\\Rdbms\\DBMasterPos' => __DIR__ . '/includes/libs/rdbms/database/position/DBMasterPos.php', + 'Wikimedia\\Rdbms\\DatabaseDomain' => __DIR__ . '/includes/libs/rdbms/database/DatabaseDomain.php', + 'Wikimedia\\Rdbms\\FakeResultWrapper' => __DIR__ . '/includes/libs/rdbms/database/resultwrapper/FakeResultWrapper.php', + 'Wikimedia\\Rdbms\\Field' => __DIR__ . '/includes/libs/rdbms/field/Field.php', + 'Wikimedia\\Rdbms\\IBlob' => __DIR__ . '/includes/libs/rdbms/encasing/IBlob.php', + 'Wikimedia\\Rdbms\\ILBFactory' => __DIR__ . '/includes/libs/rdbms/lbfactory/ILBFactory.php', + 'Wikimedia\\Rdbms\\ILoadBalancer' => __DIR__ . '/includes/libs/rdbms/loadbalancer/ILoadBalancer.php', + 'Wikimedia\\Rdbms\\ILoadMonitor' => __DIR__ . '/includes/libs/rdbms/loadmonitor/ILoadMonitor.php', + 'Wikimedia\\Rdbms\\IResultWrapper' => __DIR__ . '/includes/libs/rdbms/database/resultwrapper/IResultWrapper.php', + 'Wikimedia\\Rdbms\\LBFactory' => __DIR__ . '/includes/libs/rdbms/lbfactory/LBFactory.php', + 'Wikimedia\\Rdbms\\LBFactoryMulti' => __DIR__ . '/includes/libs/rdbms/lbfactory/LBFactoryMulti.php', + 'Wikimedia\\Rdbms\\LBFactorySimple' => __DIR__ . '/includes/libs/rdbms/lbfactory/LBFactorySimple.php', + 'Wikimedia\\Rdbms\\LBFactorySingle' => __DIR__ . '/includes/libs/rdbms/lbfactory/LBFactorySingle.php', + 'Wikimedia\\Rdbms\\LikeMatch' => __DIR__ . '/includes/libs/rdbms/encasing/LikeMatch.php', + 'Wikimedia\\Rdbms\\LoadBalancer' => __DIR__ . '/includes/libs/rdbms/loadbalancer/LoadBalancer.php', + 'Wikimedia\\Rdbms\\LoadBalancerSingle' => __DIR__ . '/includes/libs/rdbms/loadbalancer/LoadBalancerSingle.php', + 'Wikimedia\\Rdbms\\LoadMonitor' => __DIR__ . '/includes/libs/rdbms/loadmonitor/LoadMonitor.php', + 'Wikimedia\\Rdbms\\LoadMonitorMySQL' => __DIR__ . '/includes/libs/rdbms/loadmonitor/LoadMonitorMySQL.php', + 'Wikimedia\\Rdbms\\LoadMonitorNull' => __DIR__ . '/includes/libs/rdbms/loadmonitor/LoadMonitorNull.php', + 'Wikimedia\\Rdbms\\MssqlBlob' => __DIR__ . '/includes/libs/rdbms/encasing/MssqlBlob.php', + 'Wikimedia\\Rdbms\\MssqlField' => __DIR__ . '/includes/libs/rdbms/field/MssqlField.php', + 'Wikimedia\\Rdbms\\MssqlResultWrapper' => __DIR__ . '/includes/libs/rdbms/database/resultwrapper/MssqlResultWrapper.php', + 'Wikimedia\\Rdbms\\MySQLField' => __DIR__ . '/includes/libs/rdbms/field/MySQLField.php', + 'Wikimedia\\Rdbms\\MySQLMasterPos' => __DIR__ . '/includes/libs/rdbms/database/position/MySQLMasterPos.php', + 'Wikimedia\\Rdbms\\PostgresBlob' => __DIR__ . '/includes/libs/rdbms/encasing/PostgresBlob.php', + 'Wikimedia\\Rdbms\\PostgresField' => __DIR__ . '/includes/libs/rdbms/field/PostgresField.php', + 'Wikimedia\\Rdbms\\ResultWrapper' => __DIR__ . '/includes/libs/rdbms/database/resultwrapper/ResultWrapper.php', + 'Wikimedia\\Rdbms\\SQLiteField' => __DIR__ . '/includes/libs/rdbms/field/SQLiteField.php', 'Wikimedia\\Rdbms\\SessionConsistentConnectionManager' => __DIR__ . '/includes/libs/rdbms/connectionmanager/SessionConsistentConnectionManager.php', + 'Wikimedia\\Rdbms\\TransactionProfiler' => __DIR__ . '/includes/libs/rdbms/TransactionProfiler.php', 'WikitextContent' => __DIR__ . '/includes/content/WikitextContent.php', 'WikitextContentHandler' => __DIR__ . '/includes/content/WikitextContentHandler.php', 'WinCacheBagOStuff' => __DIR__ . '/includes/libs/objectcache/WinCacheBagOStuff.php', diff --combined includes/DefaultSettings.php index a3d68c6bfe,eedf34c69e..add4bfa12d --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@@ -443,6 -443,7 +443,6 @@@ $wgImgAuthUrlPathMap = [] * Properties required for all repos: * - class The class name for the repository. May come from the core or an extension. * The core repository classes are FileRepo, LocalRepo, ForeignDBRepo. - * FSRepo is also supported for backwards compatibility. * * - name A unique name for the repository (but $wgLocalFileRepo should be 'local'). * The name should consist of alpha-numeric characters. @@@ -1337,7 -1338,7 +1337,7 @@@ $wgXMLMimeTypes = * to reduce disk usage, limits can only be selected from a list. * The user preference is saved as an array offset in the database, by default * the offset is set with $wgDefaultUserOptions['imagesize']. Make sure you - * change it if you alter the array (see bug 8858). + * change it if you alter the array (see T10858). * This is the list of settings the user can choose from: */ $wgImageLimits = [ @@@ -1442,19 -1443,14 +1442,19 @@@ $wgUseTinyRGBForJPGThumbnails = false * Default parameters for the "" tag */ $wgGalleryOptions = [ - 'imagesPerRow' => 0, // Default number of images per-row in the gallery. 0 -> Adapt to screensize - 'imageWidth' => 120, // Width of the cells containing images in galleries (in "px") - 'imageHeight' => 120, // Height of the cells containing images in galleries (in "px") - 'captionLength' => true, // Deprecated @since 1.28 - // Length to truncate filename to in caption when using "showfilename". - // A value of 'true' will truncate the filename to one line using CSS - // and will be the behaviour after deprecation. - 'showBytes' => true, // Show the filesize in bytes in categories + // Default number of images per-row in the gallery. 0 -> Adapt to screensize + 'imagesPerRow' => 0, + // Width of the cells containing images in galleries (in "px") + 'imageWidth' => 120, + // Height of the cells containing images in galleries (in "px") + 'imageHeight' => 120, + // Length to truncate filename to in caption when using "showfilename". + // A value of 'true' will truncate the filename to one line using CSS + // and will be the behaviour after deprecation. + // @deprecated since 1.28 + 'captionLength' => true, + // Show the filesize in bytes in categories + 'showBytes' => true, 'mode' => 'traditional', ]; @@@ -2347,19 -2343,6 +2347,19 @@@ $wgWANObjectCaches = */ ]; +/** + * Verify and enforce WAN cache purges using reliable DB sources as streams. + * + * These secondary cache purges are de-duplicated via simple cache mutexes. + * This improves consistency when cache purges are lost, which becomes more likely + * as more cache servers are added or if there are multiple datacenters. Only keys + * related to important mutable content will be checked. + * + * @var bool + * @since 1.29 + */ +$wgEnableWANCacheReaper = false; + /** * Main object stash type. This should be a fast storage system for storing * lightweight data like hit counters and user activity. Sites with multiple @@@ -2825,8 -2808,9 +2825,9 @@@ $wgUsePrivateIPs = false * MediaWiki out of the box. Not all languages listed there have translations, * see languages/messages/ for the list of languages with some localisation. * - * Warning: Don't use language codes listed in $wgDummyLanguageCodes like "no" - * for Norwegian (use "nb" instead), or things will break unexpectedly. + * Warning: Don't use any of MediaWiki's deprecated language codes listed in + * LanguageCode::getDeprecatedCodeMapping or $wgDummyLanguageCodes, like "no" + * for Norwegian (use "nb" instead). If you do, things will break unexpectedly. * * This defines the default interface language for all users, but users can * change it in their preferences. @@@ -2885,25 -2869,22 +2886,22 @@@ $wgExtraInterlanguageLinkPrefixes = [] $wgExtraLanguageNames = []; /** - * List of language codes that don't correspond to an actual language. - * These codes are mostly left-offs from renames, or other legacy things. - * This array makes them not appear as a selectable language on the installer, - * and excludes them when running the transstat.php script. - */ - $wgDummyLanguageCodes = [ - 'als' => 'gsw', - 'bat-smg' => 'sgs', - 'be-x-old' => 'be-tarask', - 'bh' => 'bho', - 'fiu-vro' => 'vro', - 'no' => 'nb', - 'qqq' => 'qqq', # Used for message documentation. - 'qqx' => 'qqx', # Used for viewing message keys. - 'roa-rup' => 'rup', - 'simple' => 'en', - 'zh-classical' => 'lzh', - 'zh-min-nan' => 'nan', - 'zh-yue' => 'yue', + * List of mappings from one language code to another. + * This array makes the codes not appear as a selectable language on the + * installer, and excludes them when running the transstat.php script. + * + * In Setup.php, the variable $wgDummyLanguageCodes is created by combining + * these codes with a list of "deprecated" codes, which are mostly leftovers + * from renames or other legacy things, and the internal codes 'qqq' and 'qqx'. + * If a mapping in $wgExtraLanguageCodes collide with a built-in mapping, the + * value in $wgExtraLanguageCodes will be used. + * + * @since 1.29 + */ + $wgExtraLanguageCodes = [ + 'bh' => 'bho', // Bihari language family + 'no' => 'nb', // Norwegian language family + 'simple' => 'en', // Simple English ]; /** @@@ -3362,7 -3343,7 +3360,7 @@@ $wgDisableOutputCompression = false * * Currently this appears to work fine in all browsers, but it's disabled by * default because it normalizes id's a bit too aggressively, breaking preexisting - * content (particularly Cite). See bug 27733, bug 27694, bug 27474. + * content (particularly Cite). See T29733, T29694, T29474. */ $wgExperimentalHtmlIds = false; @@@ -4086,7 -4067,7 +4084,7 @@@ $wgMaxRedirects = 1 * Attempting to create a redirect to any of the pages in this array * will make the redirect fail. * Userlogout is hard-coded, so it does not need to be listed here. - * (bug 10569) Disallow Mypage and Mytalk as well. + * (T12569) Disallow Mypage and Mytalk as well. * * As of now, this only checks special pages. Redirects to pages in * other namespaces cannot be invalidated by this variable. @@@ -4570,8 -4551,8 +4568,8 @@@ $wgAuthManagerAutoConfig = ], // Linking during login is experimental, enable at your own risk - T134952 // MediaWiki\Auth\ConfirmLinkSecondaryAuthenticationProvider::class => [ - // 'class' => MediaWiki\Auth\ConfirmLinkSecondaryAuthenticationProvider::class, - // 'sort' => 100, + // 'class' => MediaWiki\Auth\ConfirmLinkSecondaryAuthenticationProvider::class, + // 'sort' => 100, // ], MediaWiki\Auth\EmailNotificationSecondaryAuthenticationProvider::class => [ 'class' => MediaWiki\Auth\EmailNotificationSecondaryAuthenticationProvider::class, @@@ -4791,7 -4772,6 +4789,7 @@@ $wgReservedUsernames = 'Maintenance script', // Maintenance scripts which perform editing, image import script 'Template namespace initialisation script', // Used in 1.2->1.3 upgrade 'ScriptImporter', // Default user name used by maintenance/importSiteScripts.php + 'Unknown user', // Used in WikiImporter when importing revisions with no author 'msg:double-redirect-fixer', // Automatic double redirect fix 'msg:usermessage-editor', // Default user for leaving user messages 'msg:proxyblocker', // For $wgProxyList and Special:Blockme (removed in 1.22) @@@ -4807,7 -4787,7 +4805,7 @@@ */ $wgDefaultUserOptions = [ 'ccmeonemails' => 0, - 'cols' => 80, + 'cols' => 80, // @deprecated since 1.29 No longer used in core 'date' => 'default', 'diffonly' => 0, 'disablemail' => 0, @@@ -4837,7 -4817,7 +4835,7 @@@ 'rcdays' => 7, 'rcenhancedfilters' => 0, 'rclimit' => 50, - 'rows' => 25, + 'rows' => 25, // @deprecated since 1.29 No longer used in core 'showhiddencats' => 0, 'shownumberswatching' => 1, 'showtoolbar' => 1, @@@ -4870,7 -4850,9 +4868,7 @@@ /** * An array of preferences to not show for the user */ -$wgHiddenPrefs = [ - 'rcenhancedfilters', -]; +$wgHiddenPrefs = []; /** * Characters to prevent during new account creations. @@@ -5342,60 -5324,26 +5340,60 @@@ $wgAutoConfirmAge = 0 $wgAutoConfirmCount = 0; /** - * Automatically add a usergroup to any user who matches certain conditions. - * - * @todo Redocument $wgAutopromote - * - * The format is - * [ '&' or '|' or '^' or '!', cond1, cond2, ... ] - * where cond1, cond2, ... are themselves conditions; *OR* - * APCOND_EMAILCONFIRMED, *OR* - * [ APCOND_EMAILCONFIRMED ], *OR* - * [ APCOND_EDITCOUNT, number of edits ], *OR* - * [ APCOND_AGE, seconds since registration ], *OR* - * [ APCOND_INGROUPS, group1, group2, ... ], *OR* - * [ APCOND_ISIP, ip ], *OR* - * [ APCOND_IPINRANGE, range ], *OR* - * [ APCOND_AGE_FROM_EDIT, seconds since first edit ], *OR* - * [ APCOND_BLOCKED ], *OR* - * [ APCOND_ISBOT ], *OR* - * similar constructs defined by extensions. - * - * If $wgEmailAuthentication is off, APCOND_EMAILCONFIRMED will be true for any + * Array containing the conditions of automatic promotion of a user to specific groups. + * + * The basic syntax for `$wgAutopromote` is: + * + * $wgAutopromote = array( + * 'groupname' => cond, + * 'group2' => cond2, + * ); + * + * A `cond` may be: + * - a single condition without arguments: + * Note that Autopromote wraps a single non-array value into an array + * e.g. `APCOND_EMAILCONFIRMED` OR + * array( `APCOND_EMAILCONFIRMED` ) + * - a single condition with arguments: + * e.g. `array( APCOND_EDITCOUNT, 100 )` + * - a set of conditions: + * e.g. `array( 'operand', cond1, cond2, ... )` + * + * When constructing a set of conditions, the following conditions are available: + * - `&` (**AND**): + * promote if user matches **ALL** conditions + * - `|` (**OR**): + * promote if user matches **ANY** condition + * - `^` (**XOR**): + * promote if user matches **ONLY ONE OF THE CONDITIONS** + * - `!` (**NOT**): + * promote if user matces **NO** condition + * - array( APCOND_EMAILCONFIRMED ): + * true if user has a confirmed e-mail + * - array( APCOND_EDITCOUNT, number of edits ): + * true if user has the at least the number of edits as the passed parameter + * - array( APCOND_AGE, seconds since registration ): + * true if the length of time since the user created his/her account + * is at least the same length of time as the passed parameter + * - array( APCOND_AGE_FROM_EDIT, seconds since first edit ): + * true if the length of time since the user made his/her first edit + * is at least the same length of time as the passed parameter + * - array( APCOND_INGROUPS, group1, group2, ... ): + * true if the user is a member of each of the passed groups + * - array( APCOND_ISIP, ip ): + * true if the user has the passed IP address + * - array( APCOND_IPINRANGE, range ): + * true if the user has an IP address in the range of the passed parameter + * - array( APCOND_BLOCKED ): + * true if the user is blocked + * - array( APCOND_ISBOT ): + * true if the user is a bot + * - similar constructs can be defined by extensions + * + * The sets of conditions are evaluated recursively, so you can use nested sets of conditions + * linked by operands. + * + * Note that if $wgEmailAuthentication is disabled, APCOND_EMAILCONFIRMED will be true for any * user who has provided an e-mail address. */ $wgAutopromote = [ @@@ -5565,15 -5513,6 +5563,15 @@@ $wgDnsBlacklistUrls = [ 'http.dnsbl.sor */ $wgProxyWhitelist = []; +/** + * IP ranges that should be considered soft-blocked (anon-only, account + * creation allowed). The intent is to use this to prevent anonymous edits from + * shared resources such as Wikimedia Labs. + * @since 1.29 + * @var string[] + */ +$wgSoftBlockRanges = []; + /** * Whether to look at the X-Forwarded-For header's list of (potentially spoofed) * IPs and apply IP blocks to them. This allows for IP blocks to work with correctly-configured @@@ -5685,7 -5624,7 +5683,7 @@@ $wgRateLimits = ]; /** - * Array of IPs which should be excluded from rate limits. + * Array of IPs / CIDR ranges which should be excluded from rate limits. * This may be useful for whitelisting NAT gateways for conferences, etc. */ $wgRateLimitsExcludedIPs = []; @@@ -5887,15 -5826,6 +5885,15 @@@ $wgBotPasswordsCluster = false */ $wgBotPasswordsDatabase = false; +/** + * Whether to disable user group expiry. This is a transitional feature flag + * in accordance with WMF schema change policy, and will be removed later + * (hopefully before MW 1.29 release). + * + * @since 1.29 + */ +$wgDisableUserGroupExpiry = false; + /** @} */ # end of user rights settings /************************************************************************//** @@@ -5993,10 -5923,7 +5991,10 @@@ $wgSessionName = false /** * Whether to set a cookie when a user is autoblocked. Doing so means that a blocked user, even - * after logging out and moving to a new IP address, will still be blocked. + * after logging out and moving to a new IP address, will still be blocked. This cookie will contain + * an authentication code if $wgSecretKey is set, or otherwise will just be the block ID (in + * which case there is a possibility of an attacker discovering the names of revdeleted users, so + * it is best to use this in conjunction with $wgSecretKey being set). */ $wgCookieSetOnAutoblock = false; @@@ -6663,64 -6590,51 +6661,64 @@@ $wgRCLinkLimits = [ 50, 100, 250, 500 ] $wgRCLinkDays = [ 1, 3, 7, 14, 30 ]; /** - * Destinations to which notifications about recent changes - * should be sent. + * Configuration for feeds to which notifications about recent changes will be sent. + * + * The following feed classes are available by default: + * - 'UDPRCFeedEngine' - sends recent changes over UDP to the specified server. + * - 'RedisPubSubFeedEngine' - send recent changes to Redis. * - * As of MediaWiki 1.22, there are 2 supported 'engine' parameter option in core: - * * 'UDPRCFeedEngine', which is used to send recent changes over UDP to the - * specified server. - * * 'RedisPubSubFeedEngine', which is used to send recent changes to Redis. + * Only 'class' or 'uri' is required. If 'uri' is set instead of 'class', then + * RecentChange::getEngine() is used to determine the class. All options are + * passed to the constructor. * - * The common options are: - * * 'uri' -- the address to which the notices are to be sent. - * * 'formatter' -- the class name (implementing RCFeedFormatter) which will - * produce the text to send. This can also be an object of the class. - * * 'omit_bots' -- whether the bot edits should be in the feed - * * 'omit_anon' -- whether anonymous edits should be in the feed - * * 'omit_user' -- whether edits by registered users should be in the feed - * * 'omit_minor' -- whether minor edits should be in the feed - * * 'omit_patrolled' -- whether patrolled edits should be in the feed + * Common options: + * - 'class' -- The class to use for this feed (must implement RCFeed). + * - 'omit_bots' -- Exclude bot edits from the feed. (default: false) + * - 'omit_anon' -- Exclude anonymous edits from the feed. (default: false) + * - 'omit_user' -- Exclude edits by registered users from the feed. (default: false) + * - 'omit_minor' -- Exclude minor edits from the feed. (default: false) + * - 'omit_patrolled' -- Exclude patrolled edits from the feed. (default: false) * - * The IRC-specific options are: - * * 'add_interwiki_prefix' -- whether the titles should be prefixed with - * the first entry in the $wgLocalInterwikis array (or the value of - * $wgLocalInterwiki, if set) + * FormattedRCFeed-specific options: + * - 'uri' -- [required] The address to which the messages are sent. + * The uri scheme of this string will be looked up in $wgRCEngines + * to determine which RCFeedEngine class to use. + * - 'formatter' -- [required] The class (implementing RCFeedFormatter) which will + * produce the text to send. This can also be an object of the class. + * Formatters available by default: JSONRCFeedFormatter, XMLRCFeedFormatter, + * IRCColourfulRCFeedFormatter. * - * The JSON-specific options are: - * * 'channel' -- if set, the 'channel' parameter is also set in JSON values. + * IRCColourfulRCFeedFormatter-specific options: + * - 'add_interwiki_prefix' -- whether the titles should be prefixed with + * the first entry in the $wgLocalInterwikis array (or the value of + * $wgLocalInterwiki, if set) + * + * JSONRCFeedFormatter-specific options: + * - 'channel' -- if set, the 'channel' parameter is also set in JSON values. * * @example $wgRCFeeds['example'] = [ + * 'uri' => 'udp://localhost:1336', * 'formatter' => 'JSONRCFeedFormatter', - * 'uri' => "udp://localhost:1336", * 'add_interwiki_prefix' => false, * 'omit_bots' => true, * ]; - * @example $wgRCFeeds['exampleirc'] = [ + * @example $wgRCFeeds['example'] = [ + * 'uri' => 'udp://localhost:1338', * 'formatter' => 'IRCColourfulRCFeedFormatter', - * 'uri' => "udp://localhost:1338", * 'add_interwiki_prefix' => false, * 'omit_bots' => true, * ]; + * @example $wgRCFeeds['example'] = [ + * 'class' => 'ExampleRCFeed', + * ]; * @since 1.22 */ $wgRCFeeds = []; /** - * Used by RecentChange::getEngine to find the correct engine to use for a given URI scheme. - * Keys are scheme names, values are names of engine classes. + * Used by RecentChange::getEngine to find the correct engine for a given URI scheme. + * Keys are scheme names, values are names of FormattedRCFeed sub classes. + * @since 1.22 */ $wgRCEngines = [ 'redis' => 'RedisPubSubFeedEngine', @@@ -8273,19 -8187,7 +8271,19 @@@ $wgRedirectOnLogin = null * The remaining elements are passed through to the class as constructor * parameters. * - * @par Example: + * @par Example using local redis instance: + * @code + * $wgPoolCounterConf = [ 'ArticleView' => [ + * 'class' => 'PoolCounterRedis', + * 'timeout' => 15, // wait timeout in seconds + * 'workers' => 1, // maximum number of active threads in each pool + * 'maxqueue' => 5, // maximum number of total threads in each pool + * 'servers' => [ '127.0.0.1' ], + * 'redisConfig' => [] + * ] ]; + * @endcode + * + * @par Example using C daemon from https://www.mediawiki.org/wiki/Extension:PoolCounter: * @code * $wgPoolCounterConf = [ 'ArticleView' => [ * 'class' => 'PoolCounter_Client', @@@ -8293,7 -8195,7 +8291,7 @@@ * 'workers' => 5, // maximum number of active threads in each pool * 'maxqueue' => 50, // maximum number of total threads in each pool * ... any extension-specific options... - * ]; + * ] ]; * @endcode */ $wgPoolCounterConf = null; @@@ -8375,7 -8277,7 +8373,7 @@@ $wgPagePropsHaveSortkey = true /** * Port where you have HTTPS running * Supports HTTPS on non-standard ports - * @see bug 65184 + * @see T67184 * @since 1.24 */ $wgHttpsPort = 443; @@@ -8563,7 -8465,6 +8561,7 @@@ $wgCSPFalsePositiveUrls = 'https://atpixel.alephd.com' => true, 'https://rtb.metrigo.com' => true, 'https://d5p.de17a.com' => true, + 'https://ad.lkqd.net/vpaid/vpaid.js' => true, ]; /** @@@ -8583,25 -8484,6 +8581,25 @@@ $wgLearnerMemberSince = 4; # day $wgExperiencedUserEdits = 500; $wgExperiencedUserMemberSince = 30; # days +/** + * Mapping of interwiki index prefixes to descriptors that + * can be used to change the display of interwiki search results. + * + * Descriptors are appended to CSS classes of interwiki results + * which using InterwikiSearchResultWidget. + * + * Predefined descriptors include the following words: + * definition, textbook, news, quotation, book, travel, course + * + * @par Example: + * @code + * $wgInterwikiPrefixDisplayTypes = [ + * 'iwprefix' => 'definition' + *]; + * @endcode + */ +$wgInterwikiPrefixDisplayTypes = []; + /** * For really cool vim folding this needs to be at the end: * vim: foldmarker=@{,@} foldmethod=marker diff --combined includes/Setup.php index b61de73376,2babce74ea..e686cd81d6 --- a/includes/Setup.php +++ b/includes/Setup.php @@@ -1,6 -1,6 +1,6 @@@ true, 'fetchDescription' => true, 'descriptionCacheExpiry' => 43200, - 'apiThumbCacheExpiry' => 86400, + 'apiThumbCacheExpiry' => 0, ]; } /* @@@ -329,7 -329,7 +329,7 @@@ if ( $wgEnableEmail ) $wgUseEnotif = $wgEnotifUserTalk || $wgEnotifWatchlist; } else { // Disable all other email settings automatically if $wgEnableEmail - // is set to false. - bug 63678 + // is set to false. - T65678 $wgAllowHTMLEmail = false; $wgEmailAuthentication = false; // do not require auth if you're not sending email anyway $wgEnableUserEmail = false; @@@ -403,6 -403,14 +403,14 @@@ if ( is_array( $wgExtraNamespaces ) ) $wgCanonicalNamespaceNames = $wgCanonicalNamespaceNames + $wgExtraNamespaces; } + // Merge in the legacy language codes, unless overridden in the config + if ( !isset( $wgDummyLanguageCodes ) ) { + $wgDummyLanguageCodes = [ + 'qqq' => 'qqq', // Used for message documentation + 'qqx' => 'qqx', // Used for viewing message keys + ] + $wgExtraLanguageCodes + LanguageCode::getDeprecatedCodeMapping(); + } + // These are now the same, always // To determine the user language, use $wgLang->getCode() $wgContLanguageCode = $wgLanguageCode; @@@ -499,6 -507,10 +507,6 @@@ if ( $wgDebugToolbar && !$wgCommandLine MWDebug::init(); } -if ( !class_exists( 'AutoLoader' ) ) { - require_once "$IP/includes/AutoLoader.php"; -} - // Reset the global service locator, so any services that have already been created will be // re-created while taking into account any custom settings and extensions. MediaWikiServices::resetGlobalInstance( new GlobalVarConfig(), 'quick' ); @@@ -521,6 -533,35 +529,6 @@@ if ( $wgSharedDB && $wgSharedTables ) // is complete. define( 'MW_SERVICE_BOOTSTRAP_COMPLETE', 1 ); -// Install a header callback to prevent caching of responses with cookies (T127993) -if ( !$wgCommandLineMode ) { - header_register_callback( function () { - $headers = []; - foreach ( headers_list() as $header ) { - list( $name, $value ) = explode( ':', $header, 2 ); - $headers[strtolower( trim( $name ) )][] = trim( $value ); - } - - if ( isset( $headers['set-cookie'] ) ) { - $cacheControl = isset( $headers['cache-control'] ) - ? implode( ', ', $headers['cache-control'] ) - : ''; - - if ( !preg_match( '/(?:^|,)\s*(?:private|no-cache|no-store)\s*(?:$|,)/i', $cacheControl ) ) { - header( 'Expires: Thu, 01 Jan 1970 00:00:00 GMT' ); - header( 'Cache-Control: private, max-age=0, s-maxage=0' ); - MediaWiki\Logger\LoggerFactory::getInstance( 'cache-cookies' )->warning( - 'Cookies set on {url} with Cache-Control "{cache-control}"', [ - 'url' => WebRequest::getGlobalRequestURL(), - 'cookies' => $headers['set-cookie'], - 'cache-control' => $cacheControl ?: '', - ] - ); - } - } - } ); -} - MWExceptionHandler::installHandler(); require_once "$IP/includes/compat/normal/UtfNormalUtil.php"; @@@ -847,6 -888,7 +855,6 @@@ if ( !$wgCommandLineMode ) Pingback::schedulePingback(); } -wfDebug( "Fully initialised\n" ); $wgFullyInitialised = true; Profiler::instance()->scopedProfileOut( $ps_extensions );