summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitreview2
-rw-r--r--.jshintignore8
-rw-r--r--.jshintrc34
-rw-r--r--COPYING38
-rw-r--r--CREDITS18
-rw-r--r--HISTORY335
-rw-r--r--README143
l---------[-rw-r--r--]README.mediawiki123
-rw-r--r--RELEASE-NOTES-1.21443
-rw-r--r--RELEASE-NOTES-1.22610
-rw-r--r--UPGRADE15
-rw-r--r--api.php12
-rw-r--r--composer-example.json11
-rw-r--r--composer.json30
-rw-r--r--docs/hooks.txt190
-rw-r--r--docs/maintenance.txt4
-rw-r--r--docs/php-memcached/Documentation2
-rw-r--r--docs/scripts.txt10
-rw-r--r--docs/skin.txt68
-rw-r--r--docs/title.txt8
-rw-r--r--docs/uidesign/child-selector-emu.html3
-rw-r--r--docs/uidesign/design.html7
-rw-r--r--docs/uidesign/mediawiki.action.history.diff.html7
-rw-r--r--docs/uidesign/monospace.html5
-rw-r--r--docs/uidesign/table-layout.html3
-rw-r--r--docs/upload.txt2
-rw-r--r--extensions/Cite/.jshintignore1
-rw-r--r--extensions/Cite/.jshintrc34
-rw-r--r--extensions/Cite/Cite.i18n.php1281
-rw-r--r--extensions/Cite/Cite.php44
-rw-r--r--extensions/Cite/Cite_body.php27
-rw-r--r--extensions/Cite/SpecialCite.alias.php13
-rw-r--r--extensions/Cite/SpecialCite.i18n.php584
-rw-r--r--extensions/Cite/SpecialCite.php6
-rw-r--r--extensions/Cite/citeCatTreeParserTests.txt27
-rw-r--r--extensions/Cite/citeParserTests.txt36
-rw-r--r--extensions/Cite/modules/ext.cite.css16
-rw-r--r--extensions/Cite/modules/ext.cite.js38
-rw-r--r--extensions/Cite/modules/ext.cite.popups.js13
-rw-r--r--extensions/Cite/modules/ext.cite/ext.cite.js12
-rw-r--r--extensions/Cite/modules/ext.rtlcite.css (renamed from extensions/Cite/modules/ext.rtlcite/ext.rtlcite.css)0
-rw-r--r--extensions/Cite/modules/ext.specialcite.css (renamed from extensions/Cite/modules/ext.specialcite/ext.specialcite.css)0
-rw-r--r--extensions/ConfirmEdit/ApiFancyCaptchaReload.php2
-rw-r--r--extensions/ConfirmEdit/Asirra.class.php2
-rw-r--r--extensions/ConfirmEdit/Asirra.i18n.php315
-rw-r--r--extensions/ConfirmEdit/Captcha.php88
-rw-r--r--extensions/ConfirmEdit/ConfirmEdit.alias.php8
-rw-r--r--extensions/ConfirmEdit/ConfirmEdit.i18n.php440
-rw-r--r--extensions/ConfirmEdit/FancyCaptcha.i18n.php932
-rw-r--r--extensions/ConfirmEdit/FancyCaptcha.php11
-rw-r--r--extensions/ConfirmEdit/MathCaptcha.class.php2
-rw-r--r--extensions/ConfirmEdit/QuestyCaptcha.i18n.php634
-rw-r--r--extensions/ConfirmEdit/ReCaptcha.i18n.php422
-rw-r--r--extensions/ConfirmEdit/blacklist40
-rw-r--r--extensions/ConfirmEdit/captcha.py14
-rw-r--r--extensions/ConfirmEdit/resources/ext.confirmEdit.asirra.js7
-rw-r--r--extensions/FluxBBAuthPlugin.php7
-rw-r--r--extensions/Gadgets/ApiQueryGadgets.php4
-rw-r--r--extensions/Gadgets/GadgetHooks.php257
-rw-r--r--extensions/Gadgets/Gadgets.alias.php13
-rw-r--r--extensions/Gadgets/Gadgets.i18n.php348
-rw-r--r--extensions/Gadgets/Gadgets.php4
-rw-r--r--extensions/Gadgets/Gadgets_body.php264
-rw-r--r--extensions/Gadgets/README2
-rw-r--r--extensions/ImageMap/ImageMap.i18n.php65
-rw-r--r--extensions/ImageMap/ImageMap.php16
-rw-r--r--extensions/ImageMap/ImageMap_body.php6
-rw-r--r--extensions/InputBox/InputBox.i18n.php88
-rw-r--r--extensions/Interwiki/Interwiki.alias.php11
-rw-r--r--extensions/Interwiki/Interwiki.i18n.php355
-rw-r--r--extensions/Interwiki/Interwiki.php13
-rw-r--r--extensions/Interwiki/Interwiki_body.php90
-rw-r--r--extensions/LocalisationUpdate/LocalisationUpdate.class.php16
-rw-r--r--extensions/LocalisationUpdate/LocalisationUpdate.i18n.php13
-rw-r--r--extensions/LocalisationUpdate/LocalisationUpdate.php6
-rw-r--r--extensions/Nuke/Nuke.alias.php8
-rw-r--r--extensions/Nuke/Nuke.i18n.php308
-rw-r--r--extensions/ParserFunctions/ParserFunctions.i18n.magic.php190
-rw-r--r--extensions/ParserFunctions/ParserFunctions.i18n.php131
-rw-r--r--extensions/ParserFunctions/ParserFunctions_body.php6
-rw-r--r--extensions/PdfHandler/PdfHandler.i18n.php53
-rw-r--r--extensions/PdfHandler/PdfHandler_body.php2
-rw-r--r--extensions/Poem/Poem.i18n.php14
-rw-r--r--extensions/README2
-rw-r--r--extensions/Renameuser/README2
-rw-r--r--extensions/Renameuser/Renameuser.alias.php17
-rw-r--r--extensions/Renameuser/Renameuser.i18n.php275
-rw-r--r--extensions/Renameuser/RenameuserSQL.php2
-rw-r--r--extensions/SimpleAntiSpam/SimpleAntiSpam.i18n.php37
-rw-r--r--extensions/SpamBlacklist/README31
-rw-r--r--extensions/SpamBlacklist/SpamBlacklist.i18n.php670
-rw-r--r--extensions/SpamBlacklist/SpamBlacklist.php33
-rw-r--r--extensions/SpamBlacklist/SpamBlacklistHooks.php125
-rw-r--r--extensions/SpamBlacklist/SpamBlacklist_body.php90
-rw-r--r--extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.class.php48
-rw-r--r--extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.i18n.php35
-rw-r--r--extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php5
-rw-r--r--extensions/SyntaxHighlight_GeSHi/geshi/geshi.php2
-rw-r--r--extensions/SyntaxHighlight_GeSHi/geshi/geshi/haskell.php10
-rw-r--r--extensions/TitleBlacklist/TitleBlacklist.i18n.php137
-rw-r--r--extensions/TitleBlacklist/TitleBlacklist.list.php20
-rw-r--r--extensions/TitleBlacklist/TitleBlacklist.php4
-rw-r--r--extensions/TitleBlacklist/tests/ApiQueryTitleBlacklistTest.php22
-rw-r--r--extensions/TitleBlacklist/tests/testSource1
-rw-r--r--extensions/Vector/.gitreview5
-rw-r--r--extensions/Vector/README17
-rw-r--r--extensions/Vector/Vector.hooks.php174
-rw-r--r--extensions/Vector/Vector.i18n.php2467
-rw-r--r--extensions/Vector/Vector.php129
-rw-r--r--extensions/Vector/modules/ext.vector.collapsibleNav.css92
-rw-r--r--extensions/Vector/modules/ext.vector.collapsibleNav.js253
-rw-r--r--extensions/Vector/modules/ext.vector.collapsibleTabs.js29
-rw-r--r--extensions/Vector/modules/ext.vector.expandableSearch.css11
-rw-r--r--extensions/Vector/modules/ext.vector.expandableSearch.js72
-rw-r--r--extensions/Vector/modules/ext.vector.footerCleanup.js31
-rw-r--r--extensions/Vector/modules/ext.vector.sectionEditLinks.css19
-rw-r--r--extensions/Vector/modules/ext.vector.sectionEditLinks.js66
-rw-r--r--extensions/Vector/modules/images/edit-faded.pngbin425 -> 0 bytes
-rw-r--r--extensions/Vector/modules/images/edit.pngbin428 -> 0 bytes
-rw-r--r--extensions/Vector/modules/images/portal-break.pngbin203 -> 0 bytes
-rw-r--r--extensions/Vector/modules/jquery.footerCollapsibleList.js44
-rw-r--r--extensions/Vector/switchExperimentPrefs.php63
-rw-r--r--extensions/WikiEditor/.jshintignore2
-rw-r--r--extensions/WikiEditor/.jshintrc32
-rw-r--r--extensions/WikiEditor/WikiEditor.hooks.php8
-rw-r--r--extensions/WikiEditor/WikiEditor.i18n.php2031
-rw-r--r--extensions/WikiEditor/WikiEditor.php1
-rw-r--r--extensions/WikiEditor/modules/ext.wikiEditor.css9
-rw-r--r--extensions/WikiEditor/modules/ext.wikiEditor.dialogs.js7
-rw-r--r--extensions/WikiEditor/modules/ext.wikiEditor.highlight.js3
-rw-r--r--extensions/WikiEditor/modules/ext.wikiEditor.js3
-rw-r--r--extensions/WikiEditor/modules/ext.wikiEditor.preview.js3
-rw-r--r--extensions/WikiEditor/modules/ext.wikiEditor.previewDialog.js3
-rw-r--r--extensions/WikiEditor/modules/ext.wikiEditor.publish.js3
-rw-r--r--extensions/WikiEditor/modules/ext.wikiEditor.templateEditor.js19
-rw-r--r--extensions/WikiEditor/modules/ext.wikiEditor.templates.js19
-rw-r--r--extensions/WikiEditor/modules/ext.wikiEditor.tests.toolbar.js16
-rw-r--r--extensions/WikiEditor/modules/ext.wikiEditor.toc.js3
-rw-r--r--extensions/WikiEditor/modules/ext.wikiEditor.toolbar.hideSig.js4
-rw-r--r--extensions/WikiEditor/modules/ext.wikiEditor.toolbar.js3
-rw-r--r--extensions/WikiEditor/modules/images/dialogs/insert-disambiguation.pngbin0 -> 831 bytes
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.css3
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.dialogs.config.css8
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.dialogs.config.js124
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.dialogs.js34
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.highlight.js41
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.iframe.js202
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.js44
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.preview.js15
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.previewDialog.js15
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.publish.js13
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.templateEditor.js137
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.templates.js51
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.toc.js136
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.toolbar.config.js10
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.toolbar.js98
-rw-r--r--img_auth.php8
-rw-r--r--includes/Action.php57
-rw-r--r--includes/AjaxDispatcher.php10
-rw-r--r--includes/AjaxResponse.php2
-rw-r--r--includes/ArrayUtils.php2
-rw-r--r--includes/Article.php147
-rw-r--r--includes/AuthPlugin.php13
-rw-r--r--includes/AutoLoader.php147
-rw-r--r--includes/Autopromote.php5
-rw-r--r--includes/Block.php308
-rw-r--r--includes/CallableUpdate.php30
-rw-r--r--includes/Category.php3
-rw-r--r--includes/CategoryPage.php8
-rw-r--r--includes/CategoryViewer.php60
-rw-r--r--includes/Cdb.php4
-rw-r--r--includes/Cdb_PHP.php16
-rw-r--r--includes/ChangeTags.php75
-rw-r--r--includes/ChangesFeed.php37
-rw-r--r--includes/ChangesList.php1304
-rw-r--r--includes/Collation.php22
-rw-r--r--includes/ConfEditor.php55
-rw-r--r--includes/Cookie.php7
-rw-r--r--includes/DataUpdate.php4
-rw-r--r--includes/DefaultSettings.php1309
-rw-r--r--includes/DeferredUpdates.php12
-rw-r--r--includes/Defines.php11
-rw-r--r--includes/EditPage.php290
-rw-r--r--includes/Exception.php275
-rw-r--r--includes/Export.php33
-rw-r--r--includes/ExternalEdit.php132
-rw-r--r--includes/ExternalUser.php309
-rw-r--r--includes/Fallback.php28
-rw-r--r--includes/Feed.php26
-rw-r--r--includes/FeedUtils.php27
-rw-r--r--includes/FileDeleteForm.php36
-rw-r--r--includes/ForkController.php4
-rw-r--r--includes/FormOptions.php163
-rw-r--r--includes/GitInfo.php39
-rw-r--r--includes/GlobalFunctions.php675
-rw-r--r--includes/HTMLForm.php541
-rw-r--r--includes/HashRing.php142
-rw-r--r--includes/HistoryBlob.php35
-rw-r--r--includes/Hooks.php282
-rw-r--r--includes/Html.php179
-rw-r--r--includes/HtmlFormatter.php356
-rw-r--r--includes/HttpFunctions.php118
-rw-r--r--includes/IP.php32
-rw-r--r--includes/ImagePage.php49
-rw-r--r--includes/ImageQueryPage.php25
-rw-r--r--includes/Import.php135
-rw-r--r--includes/Init.php150
-rw-r--r--includes/Licenses.php2
-rw-r--r--includes/LinkFilter.php4
-rw-r--r--includes/Linker.php103
-rw-r--r--includes/LinksUpdate.php154
-rw-r--r--includes/MWCryptRand.php (renamed from includes/CryptRand.php)2
-rw-r--r--includes/MWFunction.php34
-rw-r--r--includes/MagicWord.php23
-rw-r--r--includes/MappedIterator.php88
-rw-r--r--includes/Message.php212
-rw-r--r--includes/Metadata.php28
-rw-r--r--includes/MimeMagic.php88
-rw-r--r--includes/Namespace.php6
-rw-r--r--includes/OutputHandler.php80
-rw-r--r--includes/OutputPage.php476
-rw-r--r--includes/PHPVersionError.php12
-rw-r--r--includes/PageQueryPage.php5
-rw-r--r--includes/Pager.php140
-rw-r--r--includes/PathRouter.php10
-rw-r--r--includes/PoolCounter.php221
-rw-r--r--includes/Preferences.php541
-rw-r--r--includes/PrefixSearch.php40
-rw-r--r--includes/ProtectionForm.php110
-rw-r--r--includes/ProxyTools.php40
-rw-r--r--includes/QueryPage.php92
-rw-r--r--includes/Revision.php265
-rw-r--r--includes/RevisionList.php5
-rw-r--r--includes/Sanitizer.php361
-rw-r--r--includes/ScopedCallback.php41
-rw-r--r--includes/SeleniumWebSettings.php221
-rw-r--r--includes/Setup.php153
-rw-r--r--includes/SiteConfiguration.php58
-rw-r--r--includes/SiteStats.php126
-rw-r--r--includes/Skin.php202
-rw-r--r--includes/SkinLegacy.php882
-rw-r--r--includes/SkinTemplate.php346
-rw-r--r--includes/SpecialPage.php160
-rw-r--r--includes/SpecialPageFactory.php15
-rw-r--r--includes/SqlDataUpdate.php2
-rw-r--r--includes/StatCounter.php150
-rw-r--r--includes/Status.php91
-rw-r--r--includes/StreamFile.php1
-rw-r--r--includes/StringUtils.php135
-rw-r--r--includes/StubObject.php25
-rw-r--r--includes/Timestamp.php267
-rw-r--r--includes/Title.php528
-rw-r--r--includes/UIDGenerator.php35
-rw-r--r--includes/User.php1151
-rw-r--r--includes/UserArray.php2
-rw-r--r--includes/UserMailer.php53
-rw-r--r--includes/UserRightsProxy.php10
-rw-r--r--includes/WatchedItem.php65
-rw-r--r--includes/WebRequest.php187
-rw-r--r--includes/WebResponse.php121
-rw-r--r--includes/WebStart.php52
-rw-r--r--includes/Wiki.php145
-rw-r--r--includes/WikiError.php2
-rw-r--r--includes/WikiFilePage.php4
-rw-r--r--includes/WikiMap.php20
-rw-r--r--includes/WikiPage.php632
-rw-r--r--includes/Xml.php221
-rw-r--r--includes/XmlTypeCheck.php86
-rw-r--r--includes/ZhClient.php6
-rw-r--r--includes/ZipDirectoryReader.php2
-rw-r--r--includes/actions/CreditsAction.php15
-rw-r--r--includes/actions/EditAction.php14
-rw-r--r--includes/actions/HistoryAction.php51
-rw-r--r--includes/actions/InfoAction.php69
-rw-r--r--includes/actions/PurgeAction.php4
-rw-r--r--includes/actions/RawAction.php29
-rw-r--r--includes/actions/WatchAction.php62
-rw-r--r--includes/api/ApiBase.php119
-rw-r--r--includes/api/ApiBlock.php2
-rw-r--r--includes/api/ApiComparePages.php8
-rw-r--r--includes/api/ApiCreateAccount.php52
-rw-r--r--includes/api/ApiDelete.php3
-rw-r--r--includes/api/ApiEditPage.php59
-rw-r--r--includes/api/ApiExpandTemplates.php4
-rw-r--r--includes/api/ApiFeedContributions.php15
-rw-r--r--includes/api/ApiFeedWatchlist.php90
-rw-r--r--includes/api/ApiFormatBase.php8
-rw-r--r--includes/api/ApiFormatJson.php24
-rw-r--r--includes/api/ApiFormatWddx.php75
-rw-r--r--includes/api/ApiFormatXml.php137
-rw-r--r--includes/api/ApiImageRotate.php32
-rw-r--r--includes/api/ApiImport.php6
-rw-r--r--includes/api/ApiMain.php36
-rw-r--r--includes/api/ApiMove.php4
-rw-r--r--includes/api/ApiOpenSearch.php21
-rw-r--r--includes/api/ApiOptions.php8
-rw-r--r--includes/api/ApiPageSet.php18
-rw-r--r--includes/api/ApiParamInfo.php6
-rw-r--r--includes/api/ApiParse.php157
-rw-r--r--includes/api/ApiPatrol.php46
-rw-r--r--includes/api/ApiProtect.php3
-rw-r--r--includes/api/ApiPurge.php29
-rw-r--r--includes/api/ApiQuery.php10
-rw-r--r--includes/api/ApiQueryAllCategories.php4
-rw-r--r--includes/api/ApiQueryAllImages.php4
-rw-r--r--includes/api/ApiQueryAllLinks.php116
-rw-r--r--includes/api/ApiQueryAllMessages.php2
-rw-r--r--includes/api/ApiQueryAllPages.php7
-rw-r--r--includes/api/ApiQueryAllUsers.php4
-rw-r--r--includes/api/ApiQueryBacklinks.php15
-rw-r--r--includes/api/ApiQueryBase.php4
-rw-r--r--includes/api/ApiQueryBlocks.php61
-rw-r--r--includes/api/ApiQueryCategories.php5
-rw-r--r--includes/api/ApiQueryCategoryMembers.php6
-rw-r--r--includes/api/ApiQueryDeletedrevs.php6
-rw-r--r--includes/api/ApiQueryDuplicateFiles.php23
-rw-r--r--includes/api/ApiQueryExtLinksUsage.php6
-rw-r--r--includes/api/ApiQueryExternalLinks.php8
-rw-r--r--includes/api/ApiQueryFileRepoInfo.php115
-rw-r--r--includes/api/ApiQueryFilearchive.php8
-rw-r--r--includes/api/ApiQueryIWBacklinks.php4
-rw-r--r--includes/api/ApiQueryIWLinks.php13
-rw-r--r--includes/api/ApiQueryImageInfo.php80
-rw-r--r--includes/api/ApiQueryInfo.php20
-rw-r--r--includes/api/ApiQueryLangBacklinks.php9
-rw-r--r--includes/api/ApiQueryLangLinks.php17
-rw-r--r--includes/api/ApiQueryLogEvents.php24
-rw-r--r--includes/api/ApiQueryORM.php4
-rw-r--r--includes/api/ApiQueryPagesWithProp.php2
-rw-r--r--includes/api/ApiQueryProtectedTitles.php2
-rw-r--r--includes/api/ApiQueryQueryPage.php19
-rw-r--r--includes/api/ApiQueryRandom.php4
-rw-r--r--includes/api/ApiQueryRecentChanges.php43
-rw-r--r--includes/api/ApiQueryRevisions.php29
-rw-r--r--includes/api/ApiQuerySearch.php39
-rw-r--r--includes/api/ApiQuerySiteinfo.php62
-rw-r--r--includes/api/ApiQueryTags.php7
-rw-r--r--includes/api/ApiQueryUserContributions.php21
-rw-r--r--includes/api/ApiQueryUserInfo.php20
-rw-r--r--includes/api/ApiQueryUsers.php6
-rw-r--r--includes/api/ApiQueryWatchlist.php95
-rw-r--r--includes/api/ApiQueryWatchlistRaw.php4
-rw-r--r--includes/api/ApiRsd.php2
-rw-r--r--includes/api/ApiSetNotificationTimestamp.php7
-rw-r--r--includes/api/ApiUpload.php84
-rw-r--r--includes/api/ApiUserrights.php7
-rw-r--r--includes/api/ApiWatch.php11
-rw-r--r--includes/cache/BacklinkCache.php134
-rw-r--r--includes/cache/CacheDependency.php2
-rw-r--r--includes/cache/FileCacheBase.php6
-rw-r--r--includes/cache/GenderCache.php14
-rw-r--r--includes/cache/HTMLCacheUpdate.php11
-rw-r--r--includes/cache/HTMLFileCache.php4
-rw-r--r--includes/cache/LinkBatch.php4
-rw-r--r--includes/cache/LinkCache.php68
-rw-r--r--includes/cache/LocalisationCache.php96
-rw-r--r--includes/cache/MessageCache.php729
-rw-r--r--includes/cache/ResourceFileCache.php2
-rw-r--r--includes/cache/SquidUpdate.php197
-rw-r--r--includes/cache/UserCache.php13
-rw-r--r--includes/changes/ChangesList.php552
-rw-r--r--includes/changes/EnhancedChangesList.php662
-rw-r--r--includes/changes/OldChangesList.php130
-rw-r--r--includes/changes/RCCacheEntry.php (renamed from redirect.php5)19
-rw-r--r--includes/changes/RecentChange.php (renamed from includes/RecentChange.php)232
-rw-r--r--includes/clientpool/RedisConnectionPool.php90
-rw-r--r--includes/content/Content.php14
-rw-r--r--includes/content/ContentHandler.php19
-rw-r--r--includes/content/CssContent.php2
-rw-r--r--includes/content/JavaScriptContent.php2
-rw-r--r--includes/content/TextContent.php2
-rw-r--r--includes/content/WikitextContent.php3
-rw-r--r--includes/content/WikitextContentHandler.php19
-rw-r--r--includes/context/ContextSource.php2
-rw-r--r--includes/context/DerivativeContext.php25
-rw-r--r--includes/context/IContextSource.php2
-rw-r--r--includes/context/RequestContext.php19
-rw-r--r--includes/db/ChronologyProtector.php106
-rw-r--r--includes/db/CloneDatabase.php18
-rw-r--r--includes/db/Database.php517
-rw-r--r--includes/db/DatabaseError.php202
-rw-r--r--includes/db/DatabaseMssql.php190
-rw-r--r--includes/db/DatabaseMysql.php933
-rw-r--r--includes/db/DatabaseMysqlBase.php1154
-rw-r--r--includes/db/DatabaseMysqli.php194
-rw-r--r--includes/db/DatabaseOracle.php92
-rw-r--r--includes/db/DatabasePostgres.php98
-rw-r--r--includes/db/DatabaseSqlite.php49
-rw-r--r--includes/db/DatabaseUtility.php3
-rw-r--r--includes/db/IORMRow.php24
-rw-r--r--includes/db/LBFactory.php94
-rw-r--r--includes/db/LBFactory_Multi.php6
-rw-r--r--includes/db/LoadBalancer.php104
-rw-r--r--includes/db/LoadMonitor.php27
-rw-r--r--includes/db/ORMRow.php182
-rw-r--r--includes/db/ORMTable.php211
-rw-r--r--includes/debug/Debug.php74
-rw-r--r--includes/diff/DairikiDiff.php40
-rw-r--r--includes/diff/DifferenceEngine.php205
-rw-r--r--includes/extauth/Hardcoded.php84
-rw-r--r--includes/extauth/MediaWiki.php168
-rw-r--r--includes/extauth/vB.php146
-rw-r--r--includes/externalstore/ExternalStore.php57
-rw-r--r--includes/externalstore/ExternalStoreDB.php142
-rw-r--r--includes/externalstore/ExternalStoreMedium.php19
-rw-r--r--includes/externalstore/ExternalStoreMwstore.php23
-rw-r--r--includes/filebackend/FSFile.php29
-rw-r--r--includes/filebackend/FSFileBackend.php117
-rw-r--r--includes/filebackend/FileBackend.php143
-rw-r--r--includes/filebackend/FileBackendGroup.php28
-rw-r--r--includes/filebackend/FileBackendMultiWrite.php179
-rw-r--r--includes/filebackend/FileBackendStore.php576
-rw-r--r--includes/filebackend/FileOp.php193
-rw-r--r--includes/filebackend/FileOpBatch.php6
-rw-r--r--includes/filebackend/README2
-rw-r--r--includes/filebackend/SwiftFileBackend.php262
-rw-r--r--includes/filebackend/TempFSFile.php6
-rw-r--r--includes/filebackend/filejournal/DBFileJournal.php10
-rw-r--r--includes/filebackend/lockmanager/DBLockManager.php37
-rw-r--r--includes/filebackend/lockmanager/LockManager.php125
-rw-r--r--includes/filebackend/lockmanager/LockManagerGroup.php4
-rw-r--r--includes/filebackend/lockmanager/MemcLockManager.php41
-rw-r--r--includes/filebackend/lockmanager/QuorumLockManager.php140
-rw-r--r--includes/filebackend/lockmanager/RedisLockManager.php288
-rw-r--r--includes/filebackend/lockmanager/ScopedLock.php44
-rw-r--r--includes/filerepo/FSRepo.php14
-rw-r--r--includes/filerepo/FileRepo.php108
-rw-r--r--includes/filerepo/ForeignAPIRepo.php226
-rw-r--r--includes/filerepo/ForeignDBRepo.php5
-rw-r--r--includes/filerepo/LocalRepo.php42
-rw-r--r--includes/filerepo/RepoGroup.php12
-rw-r--r--includes/filerepo/file/ArchivedFile.php23
-rw-r--r--includes/filerepo/file/File.php37
-rw-r--r--includes/filerepo/file/ForeignAPIFile.php49
-rw-r--r--includes/filerepo/file/ForeignDBFile.php5
-rw-r--r--includes/filerepo/file/LocalFile.php234
-rw-r--r--includes/filerepo/file/OldLocalFile.php3
-rw-r--r--includes/gallery/ImageGalleryBase.php (renamed from includes/ImageGallery.php)239
-rw-r--r--includes/gallery/NolinesImageGallery.php (renamed from skins/MySkin.php)27
-rw-r--r--includes/gallery/PackedImageGallery.php105
-rw-r--r--includes/gallery/PackedOverlayImageGallery.php60
-rw-r--r--includes/gallery/TraditionalImageGallery.php328
-rw-r--r--includes/installer/CliInstaller.php9
-rw-r--r--includes/installer/DatabaseInstaller.php64
-rw-r--r--includes/installer/DatabaseUpdater.php156
-rw-r--r--includes/installer/InstallDocFormatter.php12
-rw-r--r--includes/installer/Installer.i18n.php1959
-rw-r--r--includes/installer/Installer.php298
-rw-r--r--includes/installer/LocalSettingsGenerator.php59
-rw-r--r--includes/installer/MysqlInstaller.php135
-rw-r--r--includes/installer/MysqlUpdater.php516
-rw-r--r--includes/installer/OracleInstaller.php61
-rw-r--r--includes/installer/OracleUpdater.php72
-rw-r--r--includes/installer/PhpBugTests.php2
-rw-r--r--includes/installer/PostgresInstaller.php62
-rw-r--r--includes/installer/PostgresUpdater.php575
-rw-r--r--includes/installer/SqliteInstaller.php38
-rw-r--r--includes/installer/SqliteUpdater.php121
-rw-r--r--includes/installer/WebInstaller.php208
-rw-r--r--includes/installer/WebInstallerOutput.php112
-rw-r--r--includes/installer/WebInstallerPage.php259
-rw-r--r--includes/job/Job.php56
-rw-r--r--includes/job/JobQueue.php355
-rw-r--r--includes/job/JobQueueDB.php688
-rw-r--r--includes/job/JobQueueFederated.php473
-rw-r--r--includes/job/JobQueueGroup.php90
-rw-r--r--includes/job/JobQueueRedis.php856
-rw-r--r--includes/job/aggregator/JobQueueAggregator.php (renamed from includes/job/JobQueueAggregator.php)17
-rw-r--r--includes/job/aggregator/JobQueueAggregatorMemc.php (renamed from includes/job/JobQueueAggregatorMemc.php)11
-rw-r--r--includes/job/aggregator/JobQueueAggregatorRedis.php (renamed from includes/job/JobQueueAggregatorRedis.php)28
-rw-r--r--includes/job/jobs/AssembleUploadChunksJob.php19
-rw-r--r--includes/job/jobs/DoubleRedirectJob.php29
-rw-r--r--includes/job/jobs/DuplicateJob.php2
-rw-r--r--includes/job/jobs/EnotifNotifyJob.php2
-rw-r--r--includes/job/jobs/HTMLCacheUpdateJob.php25
-rw-r--r--includes/job/jobs/NullJob.php16
-rw-r--r--includes/job/jobs/PublishStashedFileJob.php22
-rw-r--r--includes/job/jobs/RefreshLinksJob.php28
-rw-r--r--includes/job/jobs/UploadFromUrlJob.php7
-rw-r--r--includes/json/FormatJson.php217
-rw-r--r--includes/json/Services_JSON.php882
-rw-r--r--includes/libs/CSSJanus.php72
-rw-r--r--includes/libs/CSSMin.php47
-rw-r--r--includes/libs/HttpStatus.php2
-rw-r--r--includes/libs/lessc.inc.php3742
-rw-r--r--includes/limit.sh9
-rw-r--r--includes/logging/DeleteLogFormatter.php196
-rw-r--r--includes/logging/LogEntry.php55
-rw-r--r--includes/logging/LogEventsList.php82
-rw-r--r--includes/logging/LogFormatter.php412
-rw-r--r--includes/logging/LogPage.php62
-rw-r--r--includes/logging/LogPager.php77
-rw-r--r--includes/logging/MoveLogFormatter.php82
-rw-r--r--includes/logging/NewUsersLogFormatter.php65
-rw-r--r--includes/logging/PatrolLog.php7
-rw-r--r--includes/logging/PatrolLogFormatter.php63
-rw-r--r--includes/logging/RightsLogFormatter.php112
-rw-r--r--includes/media/BMP.php6
-rw-r--r--includes/media/Bitmap.php47
-rw-r--r--includes/media/BitmapMetadataHandler.php24
-rw-r--r--includes/media/DjVu.php21
-rw-r--r--includes/media/DjVuImage.php44
-rw-r--r--includes/media/Exif.php76
-rw-r--r--includes/media/ExifBitmap.php8
-rw-r--r--includes/media/FormatMetadata.php101
-rw-r--r--includes/media/GIF.php8
-rw-r--r--includes/media/GIFMetadataExtractor.php46
-rw-r--r--includes/media/IPTC.php8
-rw-r--r--includes/media/ImageHandler.php23
-rw-r--r--includes/media/Jpeg.php20
-rw-r--r--includes/media/JpegMetadataExtractor.php22
-rw-r--r--includes/media/MediaHandler.php149
-rw-r--r--includes/media/MediaTransformOutput.php53
-rw-r--r--includes/media/PNG.php13
-rw-r--r--includes/media/PNGMetadataExtractor.php30
-rw-r--r--includes/media/SVG.php92
-rw-r--r--includes/media/SVGMetadataExtractor.php64
-rw-r--r--includes/media/Tiff.php2
-rw-r--r--includes/media/XCF.php6
-rw-r--r--includes/media/XMP.php26
-rw-r--r--includes/media/XMPInfo.php6
-rw-r--r--includes/media/XMPValidate.php12
-rw-r--r--includes/mime.info4
-rw-r--r--includes/mime.types5
-rw-r--r--includes/normal/README10
-rw-r--r--includes/normal/RandomTest.php6
-rw-r--r--includes/normal/UtfNormal.php4
-rw-r--r--includes/normal/UtfNormalTest.php8
-rw-r--r--includes/normal/UtfNormalTest2.php2
-rw-r--r--includes/normal/UtfNormalUtil.php8
-rw-r--r--includes/objectcache/BagOStuff.php8
-rw-r--r--includes/objectcache/MemcachedBagOStuff.php2
-rw-r--r--includes/objectcache/MemcachedClient.php24
-rw-r--r--includes/objectcache/MemcachedPeclBagOStuff.php14
-rw-r--r--includes/objectcache/MultiWriteBagOStuff.php2
-rw-r--r--includes/objectcache/ObjectCache.php14
-rw-r--r--includes/objectcache/ObjectCacheSessionHandler.php2
-rw-r--r--includes/objectcache/RedisBagOStuff.php40
-rw-r--r--includes/objectcache/SqlBagOStuff.php22
-rw-r--r--includes/parser/CacheTime.php2
-rw-r--r--includes/parser/CoreLinkFunctions.php92
-rw-r--r--includes/parser/CoreParserFunctions.php197
-rw-r--r--includes/parser/CoreTagHooks.php2
-rw-r--r--includes/parser/DateFormatter.php24
-rw-r--r--includes/parser/LinkHolderArray.php216
-rw-r--r--includes/parser/Parser.php848
-rw-r--r--includes/parser/ParserCache.php20
-rw-r--r--includes/parser/ParserOptions.php21
-rw-r--r--includes/parser/ParserOutput.php111
-rw-r--r--includes/parser/Parser_DiffTest.php2
-rw-r--r--includes/parser/Parser_LinkHooks.php326
-rw-r--r--includes/parser/Preprocessor_DOM.php99
-rw-r--r--includes/parser/Preprocessor_Hash.php61
-rw-r--r--includes/parser/Tidy.php11
-rw-r--r--includes/profiler/Profiler.php264
-rw-r--r--includes/profiler/ProfilerSimple.php5
-rw-r--r--includes/profiler/ProfilerSimpleText.php12
-rw-r--r--includes/profiler/ProfilerSimpleTrace.php2
-rw-r--r--includes/profiler/ProfilerSimpleUDP.php12
-rw-r--r--includes/profiler/ProfilerStub.php2
-rw-r--r--includes/rcfeed/IRCColourfulRCFeedFormatter.php99
-rw-r--r--includes/rcfeed/JSONRCFeedFormatter.php90
-rw-r--r--includes/rcfeed/RCFeedEngine.php12
-rw-r--r--includes/rcfeed/RCFeedFormatter.php13
-rw-r--r--includes/rcfeed/RedisPubSubFeedEngine.php41
-rw-r--r--includes/rcfeed/UDPRCFeedEngine.php10
-rw-r--r--includes/resourceloader/ResourceLoader.php181
-rw-r--r--includes/resourceloader/ResourceLoaderContext.php2
-rw-r--r--includes/resourceloader/ResourceLoaderFileModule.php176
-rw-r--r--includes/resourceloader/ResourceLoaderLESSFunctions.php67
-rw-r--r--includes/resourceloader/ResourceLoaderLanguageDataModule.php31
-rw-r--r--includes/resourceloader/ResourceLoaderModule.php102
-rw-r--r--includes/resourceloader/ResourceLoaderSiteModule.php23
-rw-r--r--includes/resourceloader/ResourceLoaderStartUpModule.php10
-rw-r--r--includes/resourceloader/ResourceLoaderUserCSSPrefsModule.php67
-rw-r--r--includes/resourceloader/ResourceLoaderUserGroupsModule.php15
-rw-r--r--includes/resourceloader/ResourceLoaderUserModule.php21
-rw-r--r--includes/resourceloader/ResourceLoaderUserOptionsModule.php4
-rw-r--r--includes/resourceloader/ResourceLoaderUserTokensModule.php9
-rw-r--r--includes/resourceloader/ResourceLoaderWikiModule.php4
-rw-r--r--includes/revisiondelete/RevisionDelete.php86
-rw-r--r--includes/revisiondelete/RevisionDeleteAbstracts.php50
-rw-r--r--includes/revisiondelete/RevisionDeleteUser.php2
-rw-r--r--includes/revisiondelete/RevisionDeleter.php149
-rw-r--r--includes/search/SearchEngine.php169
-rw-r--r--includes/search/SearchMssql.php6
-rw-r--r--includes/search/SearchMySQL.php66
-rw-r--r--includes/search/SearchOracle.php86
-rw-r--r--includes/search/SearchPostgres.php43
-rw-r--r--includes/search/SearchSqlite.php39
-rw-r--r--includes/search/SearchUpdate.php123
-rw-r--r--includes/site/MediaWikiSite.php8
-rw-r--r--includes/site/SiteSQLStore.php52
-rw-r--r--includes/specials/SpecialActiveusers.php74
-rw-r--r--includes/specials/SpecialAllmessages.php143
-rw-r--r--includes/specials/SpecialAllpages.php174
-rw-r--r--includes/specials/SpecialAncientpages.php22
-rw-r--r--includes/specials/SpecialBlankpage.php1
-rw-r--r--includes/specials/SpecialBlock.php49
-rw-r--r--includes/specials/SpecialBlockList.php52
-rw-r--r--includes/specials/SpecialBlockme.php66
-rw-r--r--includes/specials/SpecialBooksources.php49
-rw-r--r--includes/specials/SpecialBrokenRedirects.php12
-rw-r--r--includes/specials/SpecialCachedPage.php1
-rw-r--r--includes/specials/SpecialCategories.php38
-rw-r--r--includes/specials/SpecialChangeEmail.php67
-rw-r--r--includes/specials/SpecialChangePassword.php134
-rw-r--r--includes/specials/SpecialComparePages.php11
-rw-r--r--includes/specials/SpecialConfirmemail.php101
-rw-r--r--includes/specials/SpecialContributions.php380
-rw-r--r--includes/specials/SpecialDeadendpages.php25
-rw-r--r--includes/specials/SpecialDeletedContributions.php179
-rw-r--r--includes/specials/SpecialDisambiguations.php165
-rw-r--r--includes/specials/SpecialDoubleRedirects.php31
-rw-r--r--includes/specials/SpecialEditWatchlist.php174
-rw-r--r--includes/specials/SpecialEmailuser.php82
-rw-r--r--includes/specials/SpecialExport.php143
-rw-r--r--includes/specials/SpecialFewestrevisions.php53
-rw-r--r--includes/specials/SpecialFileDuplicateSearch.php51
-rw-r--r--includes/specials/SpecialFilepath.php62
-rw-r--r--includes/specials/SpecialImport.php245
-rw-r--r--includes/specials/SpecialJavaScriptTest.php56
-rw-r--r--includes/specials/SpecialLinkSearch.php71
-rw-r--r--includes/specials/SpecialListfiles.php301
-rw-r--r--includes/specials/SpecialListgrouprights.php51
-rw-r--r--includes/specials/SpecialListredirects.php34
-rw-r--r--includes/specials/SpecialListusers.php113
-rw-r--r--includes/specials/SpecialLog.php79
-rw-r--r--includes/specials/SpecialLonelypages.php48
-rw-r--r--includes/specials/SpecialLongpages.php1
-rw-r--r--includes/specials/SpecialMIMEsearch.php97
-rw-r--r--includes/specials/SpecialMergeHistory.php118
-rw-r--r--includes/specials/SpecialMostcategories.php48
-rw-r--r--includes/specials/SpecialMostimages.php19
-rw-r--r--includes/specials/SpecialMostinterwikis.php32
-rw-r--r--includes/specials/SpecialMostlinked.php69
-rw-r--r--includes/specials/SpecialMostlinkedcategories.php32
-rw-r--r--includes/specials/SpecialMostlinkedtemplates.php39
-rw-r--r--includes/specials/SpecialMovepage.php263
-rw-r--r--includes/specials/SpecialNewimages.php40
-rw-r--r--includes/specials/SpecialNewpages.php156
-rw-r--r--includes/specials/SpecialPagesWithProp.php32
-rw-r--r--includes/specials/SpecialPasswordReset.php94
-rw-r--r--includes/specials/SpecialPopularpages.php34
-rw-r--r--includes/specials/SpecialPreferences.php26
-rw-r--r--includes/specials/SpecialPrefixindex.php147
-rw-r--r--includes/specials/SpecialProtectedpages.php169
-rw-r--r--includes/specials/SpecialProtectedtitles.php80
-rw-r--r--includes/specials/SpecialRandomInCategory.php291
-rw-r--r--includes/specials/SpecialRandompage.php31
-rw-r--r--includes/specials/SpecialRandomredirect.php1
-rw-r--r--includes/specials/SpecialRecentchanges.php410
-rw-r--r--includes/specials/SpecialRecentchangeslinked.php63
-rw-r--r--includes/specials/SpecialRedirect.php235
-rw-r--r--includes/specials/SpecialResetTokens.php145
-rw-r--r--includes/specials/SpecialRevisiondelete.php170
-rw-r--r--includes/specials/SpecialSearch.php198
-rw-r--r--includes/specials/SpecialShortpages.php18
-rw-r--r--includes/specials/SpecialSpecialpages.php17
-rw-r--r--includes/specials/SpecialStatistics.php37
-rw-r--r--includes/specials/SpecialTags.php69
-rw-r--r--includes/specials/SpecialUnblock.php22
-rw-r--r--includes/specials/SpecialUncategorizedcategories.php6
-rw-r--r--includes/specials/SpecialUncategorizedimages.php2
-rw-r--r--includes/specials/SpecialUncategorizedpages.php13
-rw-r--r--includes/specials/SpecialUndelete.php680
-rw-r--r--includes/specials/SpecialUnusedcategories.php15
-rw-r--r--includes/specials/SpecialUnusedimages.php16
-rw-r--r--includes/specials/SpecialUnusedtemplates.php16
-rw-r--r--includes/specials/SpecialUnwatchedpages.php16
-rw-r--r--includes/specials/SpecialUpload.php126
-rw-r--r--includes/specials/SpecialUploadStash.php29
-rw-r--r--includes/specials/SpecialUserlogin.php369
-rw-r--r--includes/specials/SpecialUserrights.php162
-rw-r--r--includes/specials/SpecialVersion.php203
-rw-r--r--includes/specials/SpecialWantedcategories.php18
-rw-r--r--includes/specials/SpecialWantedfiles.php16
-rw-r--r--includes/specials/SpecialWantedtemplates.php14
-rw-r--r--includes/specials/SpecialWatchlist.php192
-rw-r--r--includes/specials/SpecialWhatlinkshere.php69
-rw-r--r--includes/specials/SpecialWithoutinterwiki.php28
-rw-r--r--includes/templates/NoLocalSettings.php14
-rw-r--r--includes/templates/Usercreate.php445
-rw-r--r--includes/templates/Userlogin.php278
-rw-r--r--includes/tidy.conf2
-rw-r--r--includes/upload/UploadBase.php202
-rw-r--r--includes/upload/UploadFromChunks.php26
-rw-r--r--includes/upload/UploadFromFile.php2
-rw-r--r--includes/upload/UploadFromStash.php6
-rw-r--r--includes/upload/UploadFromUrl.php49
-rw-r--r--includes/upload/UploadStash.php29
-rw-r--r--index.php16
-rw-r--r--languages/Language.php500
-rw-r--r--languages/LanguageConverter.php84
-rw-r--r--languages/Names.php46
-rw-r--r--languages/classes/LanguageAz.php2
-rw-r--r--languages/classes/LanguageBe_tarask.php12
-rw-r--r--languages/classes/LanguageCu.php27
-rw-r--r--languages/classes/LanguageEo.php70
-rw-r--r--languages/classes/LanguageEs.php (renamed from languages/classes/LanguageTl.php)24
-rw-r--r--languages/classes/LanguageFi.php6
-rw-r--r--languages/classes/LanguageGa.php21
-rw-r--r--languages/classes/LanguageGan.php47
-rw-r--r--languages/classes/LanguageGv.php4
-rw-r--r--languages/classes/LanguageHi.php44
-rw-r--r--languages/classes/LanguageHr.php8
-rw-r--r--languages/classes/LanguageHy.php12
-rw-r--r--languages/classes/LanguageIu.php20
-rw-r--r--languages/classes/LanguageKaa.php6
-rw-r--r--languages/classes/LanguageKk.php52
-rw-r--r--languages/classes/LanguageKk_cyrl.php62
-rw-r--r--languages/classes/LanguageKsh.php20
-rw-r--r--languages/classes/LanguageKu.php64
-rw-r--r--languages/classes/LanguageLa.php90
-rw-r--r--languages/classes/LanguageMg.php44
-rw-r--r--languages/classes/LanguageMk.php49
-rw-r--r--languages/classes/LanguageMt.php48
-rw-r--r--languages/classes/LanguageNso.php44
-rw-r--r--languages/classes/LanguageOs.php38
-rw-r--r--languages/classes/LanguagePl.php25
-rw-r--r--languages/classes/LanguageSh.php58
-rw-r--r--languages/classes/LanguageShi.php36
-rw-r--r--languages/classes/LanguageSk.php49
-rw-r--r--languages/classes/LanguageSl.php27
-rw-r--r--languages/classes/LanguageSr.php40
-rw-r--r--languages/classes/LanguageSr_ec.php8
-rw-r--r--languages/classes/LanguageSr_el.php8
-rw-r--r--languages/classes/LanguageTg.php4
-rw-r--r--languages/classes/LanguageTi.php44
-rw-r--r--languages/classes/LanguageTr.php4
-rw-r--r--languages/classes/LanguageTyv.php2
-rw-r--r--languages/classes/LanguageUk.php37
-rw-r--r--languages/classes/LanguageUz.php10
-rw-r--r--languages/classes/LanguageWa.php42
-rw-r--r--languages/classes/LanguageZh.php58
-rw-r--r--languages/classes/LanguageZh_hans.php2
-rw-r--r--languages/data/plurals-mediawiki.xml7
-rw-r--r--languages/data/plurals.xml2
-rw-r--r--languages/messages/MessagesAce.php49
-rw-r--r--languages/messages/MessagesAeb.php26
-rw-r--r--languages/messages/MessagesAf.php234
-rw-r--r--languages/messages/MessagesAln.php43
-rw-r--r--languages/messages/MessagesAm.php66
-rw-r--r--languages/messages/MessagesAn.php86
-rw-r--r--languages/messages/MessagesAng.php51
-rw-r--r--languages/messages/MessagesAr.php260
-rw-r--r--languages/messages/MessagesArc.php48
-rw-r--r--languages/messages/MessagesArn.php10
-rw-r--r--languages/messages/MessagesAry.php62
-rw-r--r--languages/messages/MessagesArz.php81
-rw-r--r--languages/messages/MessagesAs.php171
-rw-r--r--languages/messages/MessagesAst.php288
-rw-r--r--languages/messages/MessagesAvk.php49
-rw-r--r--languages/messages/MessagesAy.php1
-rw-r--r--languages/messages/MessagesAz.php83
-rw-r--r--languages/messages/MessagesAzb.php173
-rw-r--r--languages/messages/MessagesBa.php260
-rw-r--r--languages/messages/MessagesBar.php36
-rw-r--r--languages/messages/MessagesBbc.php12
-rw-r--r--languages/messages/MessagesBbc_latn.php734
-rw-r--r--languages/messages/MessagesBcc.php64
-rw-r--r--languages/messages/MessagesBcl.php250
-rw-r--r--languages/messages/MessagesBe.php98
-rw-r--r--languages/messages/MessagesBe_tarask.php268
-rw-r--r--languages/messages/MessagesBg.php184
-rw-r--r--languages/messages/MessagesBho.php86
-rw-r--r--languages/messages/MessagesBi.php23
-rw-r--r--languages/messages/MessagesBjn.php64
-rw-r--r--languages/messages/MessagesBn.php255
-rw-r--r--languages/messages/MessagesBo.php5
-rw-r--r--languages/messages/MessagesBpy.php42
-rw-r--r--languages/messages/MessagesBqi.php2
-rw-r--r--languages/messages/MessagesBr.php239
-rw-r--r--languages/messages/MessagesBrh.php2
-rw-r--r--languages/messages/MessagesBs.php211
-rw-r--r--languages/messages/MessagesBug.php3
-rw-r--r--languages/messages/MessagesBxr.php72
-rw-r--r--languages/messages/MessagesCa.php257
-rw-r--r--languages/messages/MessagesCbk_zam.php2
-rw-r--r--languages/messages/MessagesCdo.php71
-rw-r--r--languages/messages/MessagesCe.php266
-rw-r--r--languages/messages/MessagesCeb.php29
-rw-r--r--languages/messages/MessagesCh.php16
-rw-r--r--languages/messages/MessagesChr.php1
-rw-r--r--languages/messages/MessagesCkb.php150
-rw-r--r--languages/messages/MessagesCo.php5
-rw-r--r--languages/messages/MessagesCps.php19
-rw-r--r--languages/messages/MessagesCrh_cyrl.php49
-rw-r--r--languages/messages/MessagesCrh_latn.php49
-rw-r--r--languages/messages/MessagesCs.php269
-rw-r--r--languages/messages/MessagesCsb.php17
-rw-r--r--languages/messages/MessagesCu.php57
-rw-r--r--languages/messages/MessagesCv.php35
-rw-r--r--languages/messages/MessagesCy.php269
-rw-r--r--languages/messages/MessagesDa.php306
-rw-r--r--languages/messages/MessagesDe.php278
-rw-r--r--languages/messages/MessagesDe_at.php12
-rw-r--r--languages/messages/MessagesDe_ch.php72
-rw-r--r--languages/messages/MessagesDe_formal.php73
-rw-r--r--languages/messages/MessagesDiq.php384
-rw-r--r--languages/messages/MessagesDsb.php91
-rw-r--r--languages/messages/MessagesDtp.php35
-rw-r--r--languages/messages/MessagesDv.php86
-rw-r--r--languages/messages/MessagesEe.php3
-rw-r--r--languages/messages/MessagesEgl.php14
-rw-r--r--languages/messages/MessagesEl.php238
-rw-r--r--languages/messages/MessagesEml.php6
-rw-r--r--languages/messages/MessagesEn.php690
-rw-r--r--languages/messages/MessagesEn_ca.php33
-rw-r--r--languages/messages/MessagesEn_gb.php56
-rw-r--r--languages/messages/MessagesEo.php184
-rw-r--r--languages/messages/MessagesEs.php278
-rw-r--r--languages/messages/MessagesEt.php270
-rw-r--r--languages/messages/MessagesEu.php147
-rw-r--r--languages/messages/MessagesExt.php55
-rw-r--r--languages/messages/MessagesFa.php262
-rw-r--r--languages/messages/MessagesFi.php261
-rw-r--r--languages/messages/MessagesFit.php1
-rw-r--r--languages/messages/MessagesFj.php2
-rw-r--r--languages/messages/MessagesFo.php199
-rw-r--r--languages/messages/MessagesFr.php274
-rw-r--r--languages/messages/MessagesFrc.php2
-rw-r--r--languages/messages/MessagesFrp.php145
-rw-r--r--languages/messages/MessagesFrr.php239
-rw-r--r--languages/messages/MessagesFur.php34
-rw-r--r--languages/messages/MessagesFy.php49
-rw-r--r--languages/messages/MessagesGa.php62
-rw-r--r--languages/messages/MessagesGag.php10
-rw-r--r--languages/messages/MessagesGan_hans.php53
-rw-r--r--languages/messages/MessagesGan_hant.php53
-rw-r--r--languages/messages/MessagesGd.php47
-rw-r--r--languages/messages/MessagesGl.php275
-rw-r--r--languages/messages/MessagesGn.php5
-rw-r--r--languages/messages/MessagesGrc.php51
-rw-r--r--languages/messages/MessagesGsw.php70
-rw-r--r--languages/messages/MessagesGu.php221
-rw-r--r--languages/messages/MessagesGv.php21
-rw-r--r--languages/messages/MessagesHa.php2
-rw-r--r--languages/messages/MessagesHak.php98
-rw-r--r--languages/messages/MessagesHaw.php9
-rw-r--r--languages/messages/MessagesHe.php275
-rw-r--r--languages/messages/MessagesHi.php222
-rw-r--r--languages/messages/MessagesHif_latn.php196
-rw-r--r--languages/messages/MessagesHil.php43
-rw-r--r--languages/messages/MessagesHr.php171
-rw-r--r--languages/messages/MessagesHsb.php176
-rw-r--r--languages/messages/MessagesHt.php25
-rw-r--r--languages/messages/MessagesHu.php170
-rw-r--r--languages/messages/MessagesHy.php103
-rw-r--r--languages/messages/MessagesIa.php283
-rw-r--r--languages/messages/MessagesId.php269
-rw-r--r--languages/messages/MessagesIe.php22
-rw-r--r--languages/messages/MessagesIg.php29
-rw-r--r--languages/messages/MessagesIk.php21
-rw-r--r--languages/messages/MessagesIke_cans.php4
-rw-r--r--languages/messages/MessagesIke_latn.php4
-rw-r--r--languages/messages/MessagesIlo.php252
-rw-r--r--languages/messages/MessagesInh.php22
-rw-r--r--languages/messages/MessagesIo.php20
-rw-r--r--languages/messages/MessagesIs.php152
-rw-r--r--languages/messages/MessagesIt.php264
-rw-r--r--languages/messages/MessagesJa.php278
-rw-r--r--languages/messages/MessagesJam.php20
-rw-r--r--languages/messages/MessagesJut.php5
-rw-r--r--languages/messages/MessagesJv.php82
-rw-r--r--languages/messages/MessagesKa.php214
-rw-r--r--languages/messages/MessagesKaa.php45
-rw-r--r--languages/messages/MessagesKab.php73
-rw-r--r--languages/messages/MessagesKbd_cyrl.php22
-rw-r--r--languages/messages/MessagesKg.php13
-rw-r--r--languages/messages/MessagesKhw.php27
-rw-r--r--languages/messages/MessagesKiu.php43
-rw-r--r--languages/messages/MessagesKk_arab.php71
-rw-r--r--languages/messages/MessagesKk_cyrl.php189
-rw-r--r--languages/messages/MessagesKk_latn.php71
-rw-r--r--languages/messages/MessagesKm.php190
-rw-r--r--languages/messages/MessagesKn.php70
-rw-r--r--languages/messages/MessagesKo.php291
-rw-r--r--languages/messages/MessagesKoi.php5
-rw-r--r--languages/messages/MessagesKrc.php196
-rw-r--r--languages/messages/MessagesKrj.php11
-rw-r--r--languages/messages/MessagesKs.php49
-rw-r--r--languages/messages/MessagesKs_arab.php8
-rw-r--r--languages/messages/MessagesKs_deva.php7
-rw-r--r--languages/messages/MessagesKsh.php217
-rw-r--r--languages/messages/MessagesKu_latn.php59
-rw-r--r--languages/messages/MessagesKw.php164
-rw-r--r--languages/messages/MessagesKy.php80
-rw-r--r--languages/messages/MessagesLa.php242
-rw-r--r--languages/messages/MessagesLad.php24
-rw-r--r--languages/messages/MessagesLb.php253
-rw-r--r--languages/messages/MessagesLbe.php2
-rw-r--r--languages/messages/MessagesLez.php52
-rw-r--r--languages/messages/MessagesLfn.php24
-rw-r--r--languages/messages/MessagesLg.php28
-rw-r--r--languages/messages/MessagesLi.php71
-rw-r--r--languages/messages/MessagesLij.php50
-rw-r--r--languages/messages/MessagesLiv.php6
-rw-r--r--languages/messages/MessagesLmo.php12
-rw-r--r--languages/messages/MessagesLn.php5
-rw-r--r--languages/messages/MessagesLo.php22
-rw-r--r--languages/messages/MessagesLoz.php17
-rw-r--r--languages/messages/MessagesLt.php172
-rw-r--r--languages/messages/MessagesLtg.php10
-rw-r--r--languages/messages/MessagesLus.php37
-rw-r--r--languages/messages/MessagesLv.php166
-rw-r--r--languages/messages/MessagesLzh.php108
-rw-r--r--languages/messages/MessagesMai.php70
-rw-r--r--languages/messages/MessagesMap_bms.php120
-rw-r--r--languages/messages/MessagesMdf.php58
-rw-r--r--languages/messages/MessagesMg.php201
-rw-r--r--languages/messages/MessagesMhr.php22
-rw-r--r--languages/messages/MessagesMin.php211
-rw-r--r--languages/messages/MessagesMk.php282
-rw-r--r--languages/messages/MessagesMl.php264
-rw-r--r--languages/messages/MessagesMn.php66
-rw-r--r--languages/messages/MessagesMr.php258
-rw-r--r--languages/messages/MessagesMrj.php2
-rw-r--r--languages/messages/MessagesMs.php269
-rw-r--r--languages/messages/MessagesMt.php133
-rw-r--r--languages/messages/MessagesMwl.php22
-rw-r--r--languages/messages/MessagesMy.php41
-rw-r--r--languages/messages/MessagesMyv.php40
-rw-r--r--languages/messages/MessagesMzn.php28
-rw-r--r--languages/messages/MessagesNa.php2
-rw-r--r--languages/messages/MessagesNah.php21
-rw-r--r--languages/messages/MessagesNan.php30
-rw-r--r--languages/messages/MessagesNap.php36
-rw-r--r--languages/messages/MessagesNb.php249
-rw-r--r--languages/messages/MessagesNds.php61
-rw-r--r--languages/messages/MessagesNds_nl.php264
-rw-r--r--languages/messages/MessagesNe.php186
-rw-r--r--languages/messages/MessagesNew.php9
-rw-r--r--languages/messages/MessagesNiu.php3
-rw-r--r--languages/messages/MessagesNl.php286
-rw-r--r--languages/messages/MessagesNl_informal.php361
-rw-r--r--languages/messages/MessagesNn.php212
-rw-r--r--languages/messages/MessagesNov.php2
-rw-r--r--languages/messages/MessagesNso.php14
-rw-r--r--languages/messages/MessagesNv.php2
-rw-r--r--languages/messages/MessagesNy.php12
-rw-r--r--languages/messages/MessagesOc.php250
-rw-r--r--languages/messages/MessagesOr.php122
-rw-r--r--languages/messages/MessagesOs.php79
-rw-r--r--languages/messages/MessagesPa.php181
-rw-r--r--languages/messages/MessagesPag.php7
-rw-r--r--languages/messages/MessagesPam.php53
-rw-r--r--languages/messages/MessagesPap.php9
-rw-r--r--languages/messages/MessagesPcd.php12
-rw-r--r--languages/messages/MessagesPdc.php15
-rw-r--r--languages/messages/MessagesPdt.php10
-rw-r--r--languages/messages/MessagesPfl.php56
-rw-r--r--languages/messages/MessagesPi.php95
-rw-r--r--languages/messages/MessagesPl.php273
-rw-r--r--languages/messages/MessagesPms.php268
-rw-r--r--languages/messages/MessagesPnb.php67
-rw-r--r--languages/messages/MessagesPnt.php20
-rw-r--r--languages/messages/MessagesPrg.php61
-rw-r--r--languages/messages/MessagesPs.php102
-rw-r--r--languages/messages/MessagesPt.php239
-rw-r--r--languages/messages/MessagesPt_br.php263
-rw-r--r--languages/messages/MessagesQqq.php660
-rw-r--r--languages/messages/MessagesQu.php243
-rw-r--r--languages/messages/MessagesQug.php7
-rw-r--r--languages/messages/MessagesRgn.php2
-rw-r--r--languages/messages/MessagesRm.php68
-rw-r--r--languages/messages/MessagesRo.php269
-rw-r--r--languages/messages/MessagesRoa_tara.php261
-rw-r--r--languages/messages/MessagesRu.php300
-rw-r--r--languages/messages/MessagesRue.php234
-rw-r--r--languages/messages/MessagesRup.php123
-rw-r--r--languages/messages/MessagesSa.php84
-rw-r--r--languages/messages/MessagesSah.php219
-rw-r--r--languages/messages/MessagesSat.php35
-rw-r--r--languages/messages/MessagesSc.php35
-rw-r--r--languages/messages/MessagesScn.php110
-rw-r--r--languages/messages/MessagesSco.php25
-rw-r--r--languages/messages/MessagesSd.php9
-rw-r--r--languages/messages/MessagesSdc.php49
-rw-r--r--languages/messages/MessagesSe.php56
-rw-r--r--languages/messages/MessagesSei.php27
-rw-r--r--languages/messages/MessagesSg.php1
-rw-r--r--languages/messages/MessagesSgs.php31
-rw-r--r--languages/messages/MessagesSh.php177
-rw-r--r--languages/messages/MessagesShi.php33
-rw-r--r--languages/messages/MessagesSi.php125
-rw-r--r--languages/messages/MessagesSk.php223
-rw-r--r--languages/messages/MessagesSl.php255
-rw-r--r--languages/messages/MessagesSli.php46
-rw-r--r--languages/messages/MessagesSm.php2
-rw-r--r--languages/messages/MessagesSma.php2
-rw-r--r--languages/messages/MessagesSn.php3
-rw-r--r--languages/messages/MessagesSo.php52
-rw-r--r--languages/messages/MessagesSq.php100
-rw-r--r--languages/messages/MessagesSr_ec.php208
-rw-r--r--languages/messages/MessagesSr_el.php152
-rw-r--r--languages/messages/MessagesSrn.php18
-rw-r--r--languages/messages/MessagesSt.php2
-rw-r--r--languages/messages/MessagesStq.php64
-rw-r--r--languages/messages/MessagesSu.php59
-rw-r--r--languages/messages/MessagesSv.php278
-rw-r--r--languages/messages/MessagesSw.php84
-rw-r--r--languages/messages/MessagesSzl.php58
-rw-r--r--languages/messages/MessagesTa.php148
-rw-r--r--languages/messages/MessagesTcy.php10
-rw-r--r--languages/messages/MessagesTe.php135
-rw-r--r--languages/messages/MessagesTet.php12
-rw-r--r--languages/messages/MessagesTg_cyrl.php57
-rw-r--r--languages/messages/MessagesTg_latn.php52
-rw-r--r--languages/messages/MessagesTh.php237
-rw-r--r--languages/messages/MessagesTk.php65
-rw-r--r--languages/messages/MessagesTl.php113
-rw-r--r--languages/messages/MessagesTly.php13
-rw-r--r--languages/messages/MessagesTn.php3
-rw-r--r--languages/messages/MessagesTo.php16
-rw-r--r--languages/messages/MessagesTpi.php17
-rw-r--r--languages/messages/MessagesTr.php225
-rw-r--r--languages/messages/MessagesTru.php12
-rw-r--r--languages/messages/MessagesTs.php20
-rw-r--r--languages/messages/MessagesTt_cyrl.php85
-rw-r--r--languages/messages/MessagesTt_latn.php52
-rw-r--r--languages/messages/MessagesTyv.php120
-rw-r--r--languages/messages/MessagesUdm.php20
-rw-r--r--languages/messages/MessagesUg_arab.php109
-rw-r--r--languages/messages/MessagesUk.php278
-rw-r--r--languages/messages/MessagesUr.php100
-rw-r--r--languages/messages/MessagesUz.php71
-rw-r--r--languages/messages/MessagesVe.php10
-rw-r--r--languages/messages/MessagesVec.php166
-rw-r--r--languages/messages/MessagesVep.php51
-rw-r--r--languages/messages/MessagesVi.php326
-rw-r--r--languages/messages/MessagesVls.php6
-rw-r--r--languages/messages/MessagesVmf.php111
-rw-r--r--languages/messages/MessagesVo.php107
-rw-r--r--languages/messages/MessagesVot.php16
-rw-r--r--languages/messages/MessagesVro.php53
-rw-r--r--languages/messages/MessagesWa.php52
-rw-r--r--languages/messages/MessagesWar.php156
-rw-r--r--languages/messages/MessagesWo.php56
-rw-r--r--languages/messages/MessagesWuu.php118
-rw-r--r--languages/messages/MessagesXal.php32
-rw-r--r--languages/messages/MessagesXh.php3
-rw-r--r--languages/messages/MessagesXmf.php9
-rw-r--r--languages/messages/MessagesYi.php248
-rw-r--r--languages/messages/MessagesYo.php127
-rw-r--r--languages/messages/MessagesYue.php95
-rw-r--r--languages/messages/MessagesZea.php33
-rw-r--r--languages/messages/MessagesZh_hans.php269
-rw-r--r--languages/messages/MessagesZh_hant.php283
-rw-r--r--languages/messages/MessagesZh_tw.php7
-rw-r--r--languages/messages/MessagesZu.php47
-rw-r--r--languages/utils/CLDRPluralRuleEvaluator.php10
-rw-r--r--load.php8
-rw-r--r--maintenance/Doxyfile15
-rw-r--r--maintenance/Maintenance.php70
-rw-r--r--maintenance/archives/patch-archive-ar_id.sql8
-rw-r--r--maintenance/archives/patch-change_tag.sql17
-rw-r--r--maintenance/archives/patch-eu_local_id.sql3
-rw-r--r--maintenance/archives/patch-external_user.sql9
-rw-r--r--maintenance/archives/patch-externallinks-el_id.sql8
-rw-r--r--maintenance/archives/patch-iwl_prefix_title_from-non-unique.sql5
-rw-r--r--maintenance/archives/patch-iwlinks-from-title-index.sql4
-rw-r--r--maintenance/archives/patch-kill-iwl_pft.sql7
-rw-r--r--maintenance/archives/patch-tag_summary.sql12
-rw-r--r--maintenance/archives/patch-valid_tag.sql4
-rw-r--r--maintenance/archives/upgradeLogging.php2
-rw-r--r--maintenance/attachLatest.php4
-rw-r--r--maintenance/backup.inc40
-rw-r--r--maintenance/backupPrefetch.inc8
-rw-r--r--maintenance/backupTextPass.inc68
-rw-r--r--maintenance/benchmarks/Benchmarker.php10
-rw-r--r--maintenance/benchmarks/README7
-rw-r--r--maintenance/benchmarks/bench_HTTP_HTTPS.php4
-rw-r--r--maintenance/benchmarks/bench_delete_truncate.php4
-rw-r--r--maintenance/benchmarks/bench_if_switch.php4
-rw-r--r--maintenance/benchmarks/bench_strtr_str_replace.php4
-rw-r--r--maintenance/benchmarks/bench_utf8_title_check.php6
-rw-r--r--maintenance/benchmarks/bench_wfBaseConvert.php4
-rw-r--r--maintenance/benchmarks/bench_wfIsWindows.php4
-rw-r--r--maintenance/benchmarks/benchmarkHooks.php4
-rw-r--r--maintenance/benchmarks/benchmarkPurge.php4
-rw-r--r--maintenance/cdb.php16
-rw-r--r--maintenance/changePassword.php4
-rw-r--r--maintenance/checkBadRedirects.php4
-rw-r--r--maintenance/checkImages.php4
-rw-r--r--maintenance/checkLess.php72
-rw-r--r--maintenance/checkSyntax.php15
-rw-r--r--maintenance/checkUsernames.php34
-rw-r--r--maintenance/cleanupAncientTables.php12
-rw-r--r--maintenance/cleanupCaps.php4
-rw-r--r--maintenance/cleanupImages.php4
-rw-r--r--maintenance/cleanupPreferences.php6
-rw-r--r--maintenance/cleanupRemovedModules.php10
-rw-r--r--maintenance/cleanupSpam.php4
-rw-r--r--maintenance/cleanupTable.inc20
-rw-r--r--maintenance/cleanupTitles.php57
-rw-r--r--maintenance/cleanupUploadStash.php18
-rw-r--r--maintenance/cleanupWatchlist.php8
-rw-r--r--maintenance/clearCacheStats.php4
-rw-r--r--maintenance/clearInterwikiCache.php4
-rw-r--r--maintenance/commandLine.inc4
-rw-r--r--maintenance/compareParsers.php11
-rw-r--r--maintenance/convertLinks.php15
-rw-r--r--maintenance/convertUserOptions.php4
-rw-r--r--maintenance/copyFileBackend.php221
-rw-r--r--maintenance/copyJobQueue.php99
-rw-r--r--maintenance/createAndPromote.php20
-rw-r--r--maintenance/deleteArchivedFiles.inc2
-rw-r--r--maintenance/deleteArchivedFiles.php6
-rw-r--r--maintenance/deleteArchivedRevisions.php6
-rw-r--r--maintenance/deleteBatch.php4
-rw-r--r--maintenance/deleteDefaultMessages.php6
-rw-r--r--maintenance/deleteEqualMessages.php15
-rw-r--r--maintenance/deleteImageMemcached.php10
-rw-r--r--maintenance/deleteOldRevisions.php4
-rw-r--r--maintenance/deleteOrphanedRevisions.php10
-rw-r--r--maintenance/deleteRevision.php4
-rw-r--r--maintenance/deleteSelfExternals.php8
-rw-r--r--maintenance/dev/includes/router.php16
-rw-r--r--maintenance/dictionary/mediawiki.dic4556
-rw-r--r--maintenance/doMaintenance.php45
-rw-r--r--maintenance/dumpBackup.php12
-rw-r--r--maintenance/dumpIterator.php28
-rw-r--r--maintenance/dumpLinks.php11
-rw-r--r--maintenance/dumpSisterSites.php11
-rw-r--r--maintenance/dumpTextPass.php4
-rw-r--r--maintenance/dumpUploads.php4
-rw-r--r--maintenance/edit.php7
-rw-r--r--maintenance/eraseArchivedFile.php119
-rw-r--r--maintenance/eval.php2
-rw-r--r--maintenance/fetchText.php10
-rw-r--r--maintenance/fileOpPerfTest.php26
-rw-r--r--maintenance/findHooks.php4
-rw-r--r--maintenance/fixDoubleRedirects.php4
-rw-r--r--maintenance/fixExtLinksProtocolRelative.php4
-rw-r--r--maintenance/fixSlaveDesync.php12
-rw-r--r--maintenance/fixTimestamps.php4
-rw-r--r--maintenance/fixUserRegistration.php4
-rw-r--r--maintenance/formatInstallDoc.php4
-rw-r--r--maintenance/fuzz-tester.php47
-rw-r--r--maintenance/generateSitemap.php40
-rw-r--r--maintenance/getConfiguration.php143
-rw-r--r--maintenance/getLagTimes.php6
-rw-r--r--maintenance/getSlaveServer.php4
-rw-r--r--maintenance/getText.php4
-rw-r--r--maintenance/hiphop/compiler.conf5
-rw-r--r--maintenance/hiphop/extra-files34
-rw-r--r--maintenance/hiphop/make311
-rw-r--r--maintenance/hiphop/run-server61
-rw-r--r--maintenance/hiphop/server.conf4
-rw-r--r--maintenance/importDump.php26
-rw-r--r--maintenance/importImages.inc4
-rw-r--r--maintenance/importImages.php81
-rw-r--r--maintenance/importSiteScripts.php4
-rw-r--r--maintenance/importTextFile.php22
-rw-r--r--maintenance/initEditCount.php4
-rw-r--r--maintenance/initSiteStats.php6
-rw-r--r--maintenance/install.php12
-rw-r--r--maintenance/jsduck/MetaTags.rb16
-rw-r--r--maintenance/jsduck/categories.json25
-rw-r--r--maintenance/jsduck/config.json15
-rw-r--r--maintenance/jsduck/eg-iframe.html86
-rw-r--r--maintenance/jsduck/external.js18
-rw-r--r--maintenance/jsparse.php12
-rw-r--r--maintenance/lag.php4
-rw-r--r--maintenance/language/StatOutputs.php12
-rw-r--r--maintenance/language/alltrans.php4
-rw-r--r--maintenance/language/checkDupeMessages.php34
-rw-r--r--maintenance/language/checkExtensions.php8
-rw-r--r--maintenance/language/checkLanguage.inc210
-rw-r--r--maintenance/language/checkLanguage.php6
-rw-r--r--maintenance/language/countMessages.php6
-rw-r--r--maintenance/language/date-formats.php4
-rw-r--r--maintenance/language/digit2html.php6
-rw-r--r--maintenance/language/dumpMessages.php4
-rw-r--r--maintenance/language/generateCollationData.php8
-rw-r--r--maintenance/language/generateNormalizerData.php6
-rw-r--r--maintenance/language/langmemusage.php9
-rw-r--r--maintenance/language/languages.inc34
-rw-r--r--maintenance/language/messageTypes.inc41
-rw-r--r--maintenance/language/messages.inc289
-rw-r--r--maintenance/language/rebuildLanguage.php12
-rw-r--r--maintenance/language/transstat.php8
-rw-r--r--maintenance/language/validate.php6
-rw-r--r--maintenance/language/writeMessagesArray.inc67
-rw-r--r--maintenance/mcc.php8
-rw-r--r--maintenance/mctest.php21
-rw-r--r--maintenance/mergeMessageFileList.php86
-rw-r--r--maintenance/migrateUserGroup.php4
-rw-r--r--maintenance/minify.php4
-rw-r--r--maintenance/moveBatch.php4
-rw-r--r--maintenance/mssql/tables.sql15
-rw-r--r--maintenance/mwdoc-filter.php2
-rw-r--r--maintenance/mwdocgen.php320
-rw-r--r--maintenance/mwjsduck-gen23
-rw-r--r--maintenance/namespaceDupes.php16
-rw-r--r--maintenance/nextJobDB.php4
-rw-r--r--maintenance/nukeNS.php8
-rw-r--r--maintenance/nukePage.php6
-rw-r--r--maintenance/oracle/alterSharedConstraints.php16
-rw-r--r--maintenance/oracle/archives/patch-archive-ar_id.sql6
-rw-r--r--maintenance/oracle/archives/patch-externallinks-el_id.sql4
-rw-r--r--maintenance/oracle/tables.sql24
-rw-r--r--maintenance/orphans.php8
-rw-r--r--maintenance/parse.php12
-rw-r--r--maintenance/patchSql.php4
-rw-r--r--maintenance/populateCategory.php4
-rw-r--r--maintenance/populateFilearchiveSha1.php8
-rw-r--r--maintenance/populateImageSha1.php4
-rw-r--r--maintenance/populateLogSearch.php25
-rw-r--r--maintenance/populateLogUsertext.php4
-rw-r--r--maintenance/populateParentId.php7
-rw-r--r--maintenance/populateRevisionLength.php24
-rw-r--r--maintenance/populateRevisionSha1.php10
-rw-r--r--maintenance/postgres/archives/patch-external_user.sql6
-rw-r--r--maintenance/postgres/archives/patch-kill-iwl_pft.sql7
-rw-r--r--maintenance/postgres/archives/patch-profiling.sql3
-rw-r--r--maintenance/postgres/archives/patch-rename-iwl_prefix.sql2
-rw-r--r--maintenance/postgres/tables.sql20
-rw-r--r--maintenance/preprocessDump.php9
-rw-r--r--maintenance/preprocessorFuzzTest.php4
-rw-r--r--maintenance/protect.php6
-rw-r--r--maintenance/proxyCheck.php70
-rw-r--r--maintenance/pruneFileCache.php4
-rw-r--r--maintenance/purgeChangedFiles.php255
-rw-r--r--maintenance/purgeChangedPages.php191
-rw-r--r--maintenance/purgeDeletedFiles.php96
-rw-r--r--maintenance/purgeList.php16
-rw-r--r--maintenance/purgeOldText.inc18
-rw-r--r--maintenance/purgeOldText.php4
-rw-r--r--maintenance/purgeParserCache.php4
-rw-r--r--maintenance/reassignEdits.php6
-rw-r--r--maintenance/rebuildFileCache.php7
-rw-r--r--maintenance/rebuildImages.php4
-rw-r--r--maintenance/rebuildLocalisationCache.php22
-rw-r--r--maintenance/rebuildall.php8
-rw-r--r--maintenance/rebuildmessages.php7
-rw-r--r--maintenance/rebuildrecentchanges.php22
-rw-r--r--maintenance/rebuildtextindex.php9
-rw-r--r--maintenance/refreshFileHeaders.php4
-rw-r--r--maintenance/refreshImageMetadata.php14
-rw-r--r--maintenance/refreshLinks.php19
-rw-r--r--maintenance/removeUnusedAccounts.php9
-rw-r--r--maintenance/renameDbPrefix.php4
-rw-r--r--maintenance/renderDump.php18
-rw-r--r--maintenance/resetUserTokens.php70
-rw-r--r--maintenance/rollbackEdits.php4
-rw-r--r--maintenance/runBatchedQuery.php7
-rw-r--r--maintenance/runJobs.php54
-rw-r--r--maintenance/showCacheStats.php4
-rw-r--r--maintenance/showJobs.php26
-rw-r--r--maintenance/showSiteStats.php7
-rw-r--r--maintenance/sql.php46
-rw-r--r--maintenance/sqlite.inc11
-rw-r--r--maintenance/sqlite.php4
-rw-r--r--maintenance/sqlite/archives/initial-indexes.sql49
-rw-r--r--maintenance/sqlite/archives/patch-archive-ar_id.sql39
-rw-r--r--maintenance/sqlite/archives/patch-externallinks-el_id.sql19
-rw-r--r--maintenance/sqlite/archives/patch-kill-iwl_pft.sql7
-rw-r--r--maintenance/sqlite/archives/patch-rename-iwl_prefix.sql2
-rw-r--r--maintenance/storage/checkStorage.php18
-rw-r--r--maintenance/storage/compressOld.php35
-rw-r--r--maintenance/storage/dumpRev.php6
-rw-r--r--maintenance/storage/fixBug20757.php4
-rw-r--r--maintenance/storage/moveToExternal.php6
-rw-r--r--maintenance/storage/orphanStats.php4
-rw-r--r--maintenance/storage/recompressTracked.php4
-rw-r--r--maintenance/storage/resolveStubs.php2
-rw-r--r--maintenance/storage/storageTypeStats.php4
-rw-r--r--maintenance/storage/testCompression.php2
-rw-r--r--maintenance/storage/trackBlobs.php2
-rw-r--r--maintenance/syncFileBackend.php13
-rw-r--r--maintenance/tables.sql35
-rw-r--r--maintenance/tidyUpBug37714.php49
-rw-r--r--maintenance/undelete.php4
-rw-r--r--maintenance/update.php29
-rw-r--r--maintenance/updateArticleCount.php4
-rw-r--r--maintenance/updateCollation.php8
-rw-r--r--maintenance/updateDoubleWidthSearch.php4
-rw-r--r--maintenance/updateRestrictions.php4
-rw-r--r--maintenance/updateSearchIndex.php11
-rw-r--r--maintenance/updateSpecialPages.php77
-rw-r--r--maintenance/userDupes.inc67
-rw-r--r--maintenance/userOptions.inc28
-rw-r--r--maintenance/userOptions.php2
-rw-r--r--maintenance/waitForSlave.php4
-rw-r--r--mw-config/index.php6
-rw-r--r--opensearch_desc.php2
-rw-r--r--profileinfo.php9
-rw-r--r--redirect.php36
-rw-r--r--redirect.phtml3
-rw-r--r--resources/Resources.php220
-rw-r--r--resources/Resources.php.orig968
-rw-r--r--resources/jquery.chosen/LICENSE24
-rw-r--r--resources/jquery.chosen/chosen-sprite.pngbin0 -> 646 bytes
-rw-r--r--resources/jquery.chosen/chosen-sprite@2x.pngbin0 -> 871 bytes
-rw-r--r--resources/jquery.chosen/chosen.css440
-rw-r--r--resources/jquery.chosen/chosen.jquery.js1103
-rw-r--r--resources/jquery.tipsy/images/tipsy.pngbin175 -> 133 bytes
-rw-r--r--resources/jquery.ui/themes/default/images/ui-bg_flat_0_aaaaaa_40x100.pngbin180 -> 87 bytes
-rw-r--r--resources/jquery.ui/themes/default/images/ui-bg_flat_75_ffffff_40x100.pngbin178 -> 87 bytes
-rw-r--r--resources/jquery.ui/themes/default/images/ui-bg_glass_55_fbf9ee_1x400.pngbin120 -> 115 bytes
-rw-r--r--resources/jquery.ui/themes/default/images/ui-bg_glass_65_ffffff_1x400.pngbin105 -> 99 bytes
-rw-r--r--resources/jquery.ui/themes/default/images/ui-bg_glass_75_dadada_1x400.pngbin111 -> 111 bytes
-rw-r--r--resources/jquery.ui/themes/default/images/ui-bg_highlight-soft_75_cccccc_1x100.pngbin101 -> 86 bytes
-rw-r--r--resources/jquery.ui/themes/default/images/ui-icons_222222_256x240.pngbin4369 -> 3702 bytes
-rw-r--r--resources/jquery.ui/themes/default/images/ui-icons_2e83ff_256x240.pngbin4369 -> 3702 bytes
-rw-r--r--resources/jquery.ui/themes/default/images/ui-icons_454545_256x240.pngbin4369 -> 3702 bytes
-rw-r--r--resources/jquery.ui/themes/default/images/ui-icons_888888_256x240.pngbin4369 -> 3702 bytes
-rw-r--r--resources/jquery.ui/themes/default/images/ui-icons_cd0a0a_256x240.pngbin4369 -> 3702 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-blue-hover-large.pngbin260 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-blue-hover.pngbin175 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-blue-large.pngbin265 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-blue.pngbin175 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-disabled-blue.pngbin84 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-disabled-green.pngbin149 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-disabled-red.pngbin84 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-disabled.pngbin84 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-down-blue.pngbin130 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-down-green.pngbin141 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-down-red.pngbin130 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-down.pngbin130 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-green-hover-large.pngbin265 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-green-hover.pngbin175 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-green-large.pngbin265 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-green.pngbin175 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-large-disabled-green.pngbin277 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-large-off-green.pngbin282 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-off-blue.pngbin175 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-off-green.pngbin149 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-off-red.pngbin175 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-off.pngbin152 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-orange-hover-large.pngbin265 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-orange-hover.pngbin175 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-orange-large.pngbin265 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-orange.pngbin175 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-over-blue.pngbin175 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-over-green.pngbin149 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-over-red.pngbin174 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-over.pngbin155 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-red-hover-large.pngbin260 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-red-hover.pngbin175 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-red-large.pngbin265 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-red.pngbin175 -> 0 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/titlebar-fade.pngbin188 -> 81 bytes
-rw-r--r--resources/jquery.ui/themes/vector/jquery.ui.button.css368
-rw-r--r--resources/jquery/images/jquery.arrowSteps.divider-ltr.pngbin135 -> 126 bytes
-rw-r--r--resources/jquery/images/jquery.arrowSteps.divider-rtl.pngbin139 -> 127 bytes
-rw-r--r--resources/jquery/images/jquery.arrowSteps.head-ltr.pngbin390 -> 303 bytes
-rw-r--r--resources/jquery/images/jquery.arrowSteps.head-rtl.pngbin365 -> 311 bytes
-rw-r--r--resources/jquery/images/jquery.arrowSteps.tail-ltr.pngbin223 -> 222 bytes
-rw-r--r--resources/jquery/images/marker.pngbin652 -> 472 bytes
-rw-r--r--resources/jquery/images/mask.pngbin2020 -> 1795 bytes
-rw-r--r--resources/jquery/jquery.badge.css9
-rw-r--r--resources/jquery/jquery.byteLength.js12
-rw-r--r--resources/jquery/jquery.byteLimit.js3
-rw-r--r--resources/jquery/jquery.checkboxShiftClick.js16
-rw-r--r--resources/jquery/jquery.client.js100
-rw-r--r--resources/jquery/jquery.makeCollapsible.js231
-rw-r--r--resources/jquery/jquery.placeholder.js9
-rw-r--r--resources/jquery/jquery.spinner.css2
-rw-r--r--resources/jquery/jquery.spinner.js47
-rw-r--r--resources/jquery/jquery.suggestions.js4
-rw-r--r--resources/jquery/jquery.tablesorter.js180
-rw-r--r--resources/jquery/jquery.textSelection.js4
-rw-r--r--resources/mediawiki.action/images/green-checkmark.pngbin0 -> 681 bytes
-rw-r--r--resources/mediawiki.action/mediawiki.action.edit.collapsibleFooter.css17
-rw-r--r--resources/mediawiki.action/mediawiki.action.edit.collapsibleFooter.js54
-rw-r--r--resources/mediawiki.action/mediawiki.action.edit.editWarning.js56
-rw-r--r--resources/mediawiki.action/mediawiki.action.edit.js167
-rw-r--r--resources/mediawiki.action/mediawiki.action.edit.preview.js53
-rw-r--r--resources/mediawiki.action/mediawiki.action.edit.styles.css (renamed from extensions/Vector/modules/ext.vector.footerCleanup.css)30
-rw-r--r--resources/mediawiki.action/mediawiki.action.history.js2
-rw-r--r--resources/mediawiki.action/mediawiki.action.view.postEdit.css77
-rw-r--r--resources/mediawiki.action/mediawiki.action.view.postEdit.js75
-rw-r--r--resources/mediawiki.action/mediawiki.action.view.rightClickEdit.js4
-rw-r--r--resources/mediawiki.api/mediawiki.api.category.js35
-rw-r--r--resources/mediawiki.api/mediawiki.api.edit.js65
-rw-r--r--resources/mediawiki.api/mediawiki.api.js88
-rw-r--r--resources/mediawiki.api/mediawiki.api.login.js54
-rw-r--r--resources/mediawiki.api/mediawiki.api.parse.js12
-rw-r--r--resources/mediawiki.api/mediawiki.api.watch.js12
-rw-r--r--resources/mediawiki.language/mediawiki.language.js23
-rw-r--r--resources/mediawiki.language/mediawiki.language.months.js54
-rw-r--r--resources/mediawiki.less/mediawiki.mixins.less46
-rw-r--r--resources/mediawiki.libs/mediawiki.libs.jpegmeta.js2
-rw-r--r--resources/mediawiki.page/mediawiki.page.gallery.js248
-rw-r--r--resources/mediawiki.page/mediawiki.page.image.pagination.js51
-rw-r--r--resources/mediawiki.page/mediawiki.page.patrol.ajax.js2
-rw-r--r--resources/mediawiki.page/mediawiki.page.ready.js38
-rw-r--r--resources/mediawiki.page/mediawiki.page.startup.js23
-rw-r--r--resources/mediawiki.page/mediawiki.page.watch.ajax.js6
-rw-r--r--resources/mediawiki.special/images/arrow-collapsed-ltr.pngbin206 -> 0 bytes
-rw-r--r--resources/mediawiki.special/images/arrow-collapsed-rtl.pngbin205 -> 0 bytes
-rw-r--r--resources/mediawiki.special/images/arrow-expanded.pngbin205 -> 0 bytes
-rw-r--r--resources/mediawiki.special/images/glyph-people-large.pngbin0 -> 1663 bytes
-rw-r--r--resources/mediawiki.special/images/icon-contributors.pngbin0 -> 1169 bytes
-rw-r--r--resources/mediawiki.special/images/icon-edits.pngbin0 -> 780 bytes
-rw-r--r--resources/mediawiki.special/images/icon-lock.pngbin0 -> 172 bytes
-rw-r--r--resources/mediawiki.special/images/icon-pages.pngbin0 -> 528 bytes
-rw-r--r--resources/mediawiki.special/mediawiki.special.block.js2
-rw-r--r--resources/mediawiki.special/mediawiki.special.changeemail.js2
-rw-r--r--resources/mediawiki.special/mediawiki.special.changeslist.css57
-rw-r--r--resources/mediawiki.special/mediawiki.special.changeslist.enhanced.css66
-rw-r--r--resources/mediawiki.special/mediawiki.special.createAccount.css89
-rw-r--r--resources/mediawiki.special/mediawiki.special.createAccount.js112
-rw-r--r--resources/mediawiki.special/mediawiki.special.movePage.js2
-rw-r--r--resources/mediawiki.special/mediawiki.special.pagesWithProp.css4
-rw-r--r--resources/mediawiki.special/mediawiki.special.preferences.js2
-rw-r--r--resources/mediawiki.special/mediawiki.special.recentchanges.js2
-rw-r--r--resources/mediawiki.special/mediawiki.special.search.js2
-rw-r--r--resources/mediawiki.special/mediawiki.special.undelete.js2
-rw-r--r--resources/mediawiki.special/mediawiki.special.upload.js4
-rw-r--r--resources/mediawiki.special/mediawiki.special.userLogin.css39
-rw-r--r--resources/mediawiki.special/mediawiki.special.userLogin.signup.js10
-rw-r--r--resources/mediawiki.special/mediawiki.special.vforms.css46
-rw-r--r--resources/mediawiki.ui/mediawiki.ui.default.css272
-rw-r--r--resources/mediawiki.ui/mediawiki.ui.vector.css414
-rw-r--r--resources/mediawiki.ui/sourcefiles/Makefile24
-rw-r--r--resources/mediawiki.ui/sourcefiles/config.rb27
-rw-r--r--resources/mediawiki.ui/sourcefiles/scss/components/_default.scss3
-rw-r--r--resources/mediawiki.ui/sourcefiles/scss/components/_utilities.scss17
-rw-r--r--resources/mediawiki.ui/sourcefiles/scss/components/_vector.scss4
-rw-r--r--resources/mediawiki.ui/sourcefiles/scss/components/default/_buttons.scss69
-rw-r--r--resources/mediawiki.ui/sourcefiles/scss/components/default/_forms.scss114
-rw-r--r--resources/mediawiki.ui/sourcefiles/scss/components/vector/_buttons.scss19
-rw-r--r--resources/mediawiki.ui/sourcefiles/scss/components/vector/_containers.scss5
-rw-r--r--resources/mediawiki.ui/sourcefiles/scss/components/vector/_forms.scss7
-rw-r--r--resources/mediawiki.ui/sourcefiles/scss/mediawiki.ui.default.scss16
-rw-r--r--resources/mediawiki.ui/sourcefiles/scss/mediawiki.ui.vector.scss15
-rw-r--r--resources/mediawiki.ui/sourcefiles/scss/mixins/_all.scss4
-rw-r--r--resources/mediawiki.ui/sourcefiles/scss/mixins/_effects.scss62
-rw-r--r--resources/mediawiki.ui/sourcefiles/scss/mixins/_forms.scss66
-rw-r--r--resources/mediawiki.ui/sourcefiles/scss/mixins/_type.scss6
-rw-r--r--resources/mediawiki.ui/sourcefiles/scss/mixins/_utilities.scss19
-rw-r--r--resources/mediawiki.ui/sourcefiles/scss/settings/_all.scss2
-rw-r--r--resources/mediawiki.ui/sourcefiles/scss/settings/_colors.scss17
-rw-r--r--resources/mediawiki.ui/sourcefiles/scss/settings/_typography.scss5
-rw-r--r--resources/mediawiki/images/arrow-collapsed-ltr.pngbin0 -> 133 bytes
-rw-r--r--resources/mediawiki/images/arrow-collapsed-rtl.pngbin0 -> 136 bytes
-rw-r--r--resources/mediawiki/images/arrow-expanded.pngbin0 -> 134 bytes
-rw-r--r--resources/mediawiki/mediawiki.Title.js574
-rw-r--r--resources/mediawiki/mediawiki.Uri.js4
-rw-r--r--resources/mediawiki/mediawiki.debug.js2
-rw-r--r--resources/mediawiki/mediawiki.htmlform.js70
-rw-r--r--resources/mediawiki/mediawiki.icon.css15
-rw-r--r--resources/mediawiki/mediawiki.inspect.js204
-rw-r--r--resources/mediawiki/mediawiki.jqueryMsg.js335
-rw-r--r--resources/mediawiki/mediawiki.js496
-rw-r--r--resources/mediawiki/mediawiki.log.js65
-rw-r--r--resources/mediawiki/mediawiki.notification.css16
-rw-r--r--resources/mediawiki/mediawiki.notification.js25
-rw-r--r--resources/mediawiki/mediawiki.notify.js13
-rw-r--r--resources/mediawiki/mediawiki.searchSuggest.js48
-rw-r--r--resources/mediawiki/mediawiki.user.js253
-rw-r--r--resources/mediawiki/mediawiki.util.js204
-rw-r--r--resources/startup.js42
-rw-r--r--serialized/serialize.php4
-rw-r--r--skins/ArchLinux.php120
-rw-r--r--skins/Chick.php47
-rw-r--r--skins/CologneBlue.php47
-rw-r--r--skins/Modern.php55
-rw-r--r--skins/MonoBook.php120
-rw-r--r--skins/Nostalgia.php147
-rw-r--r--skins/Simple.php58
-rw-r--r--skins/Standard.php294
-rw-r--r--skins/Vector.php194
-rw-r--r--skins/archlinux/IE60Fixes.css9
-rw-r--r--skins/archlinux/Opera6Fixes.css20
-rw-r--r--skins/archlinux/Opera7Fixes.css21
-rw-r--r--skins/archlinux/Opera9Fixes.css11
-rw-r--r--skins/archlinux/external-ltr.pngbin143 -> 141 bytes
-rw-r--r--skins/archlinux/external-rtl.pngbin141 -> 141 bytes
-rw-r--r--skins/archlinux/main.css26
-rw-r--r--skins/archlinux/wiki-indexed.pngbin8008 -> 8007 bytes
-rw-r--r--skins/chick/IE60Fixes.css79
-rw-r--r--skins/chick/main.css368
-rw-r--r--skins/cologneblue/print.css6
-rw-r--r--skins/cologneblue/screen.css19
-rw-r--r--skins/common/IEFixes.js82
-rw-r--r--skins/common/ajax.js121
-rw-r--r--skins/common/commonContent.css49
-rw-r--r--skins/common/commonElements.css26
-rw-r--r--skins/common/commonPrint.css7
-rw-r--r--skins/common/config.css8
-rw-r--r--skins/common/config.js14
-rw-r--r--skins/common/images/Arr_u.pngbin207 -> 207 bytes
-rw-r--r--skins/common/images/ar/button_headline.pngbin487 -> 484 bytes
-rw-r--r--skins/common/images/ar/button_nowiki.pngbin875 -> 874 bytes
-rw-r--r--skins/common/images/arrow_disabled_left_25.pngbin301 -> 301 bytes
-rw-r--r--skins/common/images/arrow_disabled_right_25.pngbin307 -> 307 bytes
-rw-r--r--skins/common/images/arrow_right_25.pngbin341 -> 337 bytes
-rw-r--r--skins/common/images/button_hr.pngbin222 -> 200 bytes
-rw-r--r--skins/common/images/button_nowiki.pngbin322 -> 322 bytes
-rw-r--r--skins/common/images/button_sig.pngbin926 -> 920 bytes
-rw-r--r--skins/common/images/button_template.pngbin188 -> 178 bytes
-rw-r--r--skins/common/images/critical-32.pngbin1763 -> 1758 bytes
-rw-r--r--skins/common/images/fa/button_nowiki.pngbin875 -> 874 bytes
-rw-r--r--skins/common/images/feed-icon.pngbin557 -> 542 bytes
-rw-r--r--skins/common/images/icons/fileicon-psd.pngbin10376 -> 7756 bytes
-rw-r--r--skins/common/images/magnify-clip-rtl.pngbin208 -> 149 bytes
-rw-r--r--skins/common/images/question-small.pngbin0 -> 316 bytes
-rw-r--r--skins/common/images/question.svg12
-rw-r--r--skins/common/images/tick-32.pngbin1137 -> 1103 bytes
-rw-r--r--skins/common/images/warning-32.pngbin1301 -> 1299 bytes
-rw-r--r--skins/common/oldshared.css42
-rw-r--r--skins/common/protect.js236
-rw-r--r--skins/common/shared.css196
-rw-r--r--skins/common/upload.js322
-rw-r--r--skins/common/wikibits.js745
-rw-r--r--skins/common/wikiprintable.css59
-rw-r--r--skins/modern/external.pngbin143 -> 141 bytes
-rw-r--r--skins/modern/main.css43
-rw-r--r--skins/modern/print.css2
-rw-r--r--skins/monobook/IE60Fixes.css9
-rw-r--r--skins/monobook/Opera6Fixes.css20
-rw-r--r--skins/monobook/Opera7Fixes.css21
-rw-r--r--skins/monobook/Opera9Fixes.css11
-rw-r--r--skins/monobook/external-ltr.pngbin143 -> 141 bytes
-rw-r--r--skins/monobook/external-rtl.pngbin141 -> 141 bytes
-rw-r--r--skins/monobook/main.css26
-rw-r--r--skins/monobook/wiki-indexed.pngbin8008 -> 8007 bytes
-rw-r--r--skins/myskin/main.css1
-rw-r--r--skins/nostalgia/screen.css56
-rw-r--r--skins/simple/discussionitem_icon.gifbin549 -> 0 bytes
-rw-r--r--skins/simple/external.pngbin143 -> 0 bytes
-rw-r--r--skins/simple/file_icon.gifbin323 -> 0 bytes
-rw-r--r--skins/simple/link_icon.gifbin342 -> 0 bytes
-rw-r--r--skins/simple/lock_icon.gifbin321 -> 0 bytes
-rw-r--r--skins/simple/mail_icon.gifbin321 -> 0 bytes
-rw-r--r--skins/simple/main.css427
-rw-r--r--skins/standard/main.css188
-rw-r--r--skins/vector/beta/screen.less75
-rw-r--r--skins/vector/beta/variables.less37
-rw-r--r--skins/vector/collapsibleNav.js121
-rw-r--r--skins/vector/collapsibleNav.less91
-rw-r--r--skins/vector/collapsibleTabs.js (renamed from extensions/Vector/modules/jquery.collapsibleTabs.js)42
-rw-r--r--skins/vector/externalLinks.less75
-rw-r--r--skins/vector/images/arrow-collapsed-ltr.png (renamed from extensions/Vector/modules/images/closed-ltr.png)bin143 -> 143 bytes
-rw-r--r--skins/vector/images/arrow-collapsed-ltr.svg37
-rw-r--r--skins/vector/images/arrow-collapsed-rtl.png (renamed from extensions/Vector/modules/images/closed-rtl.png)bin145 -> 145 bytes
-rw-r--r--skins/vector/images/arrow-collapsed-rtl.svg37
-rw-r--r--skins/vector/images/arrow-down-focus-icon.svg37
-rw-r--r--skins/vector/images/arrow-down-icon.svg37
-rw-r--r--skins/vector/images/arrow-expanded.png (renamed from extensions/Vector/modules/images/open.png)bin145 -> 145 bytes
-rw-r--r--skins/vector/images/arrow-expanded.svg37
-rw-r--r--skins/vector/images/edit-icon.pngbin277 -> 276 bytes
-rw-r--r--skins/vector/images/external-link-ltr-icon.pngbin143 -> 141 bytes
-rw-r--r--skins/vector/images/external-link-rtl-icon.pngbin141 -> 141 bytes
-rw-r--r--skins/vector/images/mail-icon.pngbin197 -> 197 bytes
-rw-r--r--skins/vector/images/news-icon.pngbin180 -> 180 bytes
-rw-r--r--skins/vector/images/page-fade.pngbin115 -> 115 bytes
-rw-r--r--skins/vector/images/portal-break-ltr.pngbin169 -> 168 bytes
-rw-r--r--skins/vector/images/preferences-break.pngbin205 -> 103 bytes
-rw-r--r--skins/vector/images/tab-break.pngbin125 -> 125 bytes
-rw-r--r--skins/vector/images/talk-icon.pngbin173 -> 173 bytes
-rw-r--r--skins/vector/images/user-icon.svg424
-rw-r--r--skins/vector/images/video-icon.pngbin162 -> 162 bytes
-rw-r--r--skins/vector/screen-hd.less (renamed from skins/vector/screen-hd.css)4
-rw-r--r--skins/vector/screen.less (renamed from skins/vector/screen.css)376
-rw-r--r--skins/vector/styles-beta.less13
-rw-r--r--skins/vector/styles.less11
-rw-r--r--skins/vector/variables.less37
-rw-r--r--skins/vector/vector.js52
-rw-r--r--tests/RunSeleniumTests.php258
-rw-r--r--tests/TestsAutoLoader.php30
-rw-r--r--tests/parser/ParserTestResult.php42
-rw-r--r--tests/parser/parserTest.inc274
-rw-r--r--tests/parser/parserTests.txt6469
-rw-r--r--tests/parser/preprocess/All_system_messages.expected21
-rw-r--r--tests/parser/preprocess/All_system_messages.txt21
-rw-r--r--tests/parserTests.php8
-rw-r--r--tests/phpunit/MediaWikiLangTestCase.php4
-rw-r--r--tests/phpunit/MediaWikiPHPUnitCommand.php22
-rw-r--r--tests/phpunit/MediaWikiPHPUnitTestListener.php114
-rw-r--r--tests/phpunit/MediaWikiTestCase.php32
-rw-r--r--tests/phpunit/bootstrap.php19
-rw-r--r--tests/phpunit/data/db/sqlite/tables-1.16.sql5
-rw-r--r--tests/phpunit/data/db/sqlite/tables-1.17.sql5
-rw-r--r--tests/phpunit/data/db/sqlite/tables-1.18.sql5
-rw-r--r--tests/phpunit/data/less/common/test.common.mixins.less5
-rw-r--r--tests/phpunit/data/less/module/dependency.less3
-rw-r--r--tests/phpunit/data/less/module/styles.css6
-rw-r--r--tests/phpunit/data/less/module/styles.less6
-rw-r--r--tests/phpunit/data/xmp/7.result.php18
-rw-r--r--tests/phpunit/includes/ArticleTablesTest.php7
-rw-r--r--tests/phpunit/includes/ArticleTest.php12
-rw-r--r--tests/phpunit/includes/BlockTest.php143
-rw-r--r--tests/phpunit/includes/CdbTest.php2
-rw-r--r--tests/phpunit/includes/CollationTest.php8
-rw-r--r--tests/phpunit/includes/DiffHistoryBlobTest.php9
-rw-r--r--tests/phpunit/includes/EditPageTest.php93
-rw-r--r--tests/phpunit/includes/ExternalStoreTest.php2
-rw-r--r--tests/phpunit/includes/ExtraParserTest.php27
-rw-r--r--tests/phpunit/includes/FallbackTest.php73
-rw-r--r--tests/phpunit/includes/FauxRequestTest.php15
-rw-r--r--tests/phpunit/includes/FauxResponseTest.php9
-rw-r--r--tests/phpunit/includes/FormOptionsInitializationTest.php1
-rw-r--r--tests/phpunit/includes/GlobalFunctions/GlobalTest.php201
-rw-r--r--tests/phpunit/includes/GlobalFunctions/GlobalWithDBTest.php6
-rw-r--r--tests/phpunit/includes/GlobalFunctions/wfAssembleUrlTest.php7
-rw-r--r--tests/phpunit/includes/GlobalFunctions/wfBCP47Test.php20
-rw-r--r--tests/phpunit/includes/GlobalFunctions/wfBaseConvertTest.php3
-rw-r--r--tests/phpunit/includes/GlobalFunctions/wfBaseNameTest.php6
-rw-r--r--tests/phpunit/includes/GlobalFunctions/wfExpandUrlTest.php20
-rw-r--r--tests/phpunit/includes/GlobalFunctions/wfGetCallerTest.php15
-rw-r--r--tests/phpunit/includes/GlobalFunctions/wfParseUrlTest.php9
-rw-r--r--tests/phpunit/includes/GlobalFunctions/wfRemoveDotSegmentsTest.php6
-rw-r--r--tests/phpunit/includes/GlobalFunctions/wfShorthandToIntegerTest.php8
-rw-r--r--tests/phpunit/includes/GlobalFunctions/wfTimestampTest.php19
-rw-r--r--tests/phpunit/includes/GlobalFunctions/wfUrlencodeTest.php11
-rw-r--r--tests/phpunit/includes/HTMLCheckMatrixTest.php102
-rw-r--r--tests/phpunit/includes/HashRingTest.php53
-rw-r--r--tests/phpunit/includes/HooksTest.php171
-rw-r--r--tests/phpunit/includes/HtmlFormatterTest.php81
-rw-r--r--tests/phpunit/includes/HtmlTest.php65
-rw-r--r--tests/phpunit/includes/HttpTest.php11
-rw-r--r--tests/phpunit/includes/IPTest.php78
-rw-r--r--tests/phpunit/includes/JsonTest.php27
-rw-r--r--tests/phpunit/includes/LanguageConverterTest.php35
-rw-r--r--tests/phpunit/includes/LicensesTest.php2
-rw-r--r--tests/phpunit/includes/LinkerTest.php4
-rw-r--r--tests/phpunit/includes/LinksUpdateTest.php23
-rw-r--r--tests/phpunit/includes/LocalFileTest.php22
-rw-r--r--tests/phpunit/includes/MWExceptionHandlerTest.php73
-rw-r--r--tests/phpunit/includes/MWFunctionTest.php47
-rw-r--r--tests/phpunit/includes/MWNamespaceTest.php21
-rw-r--r--tests/phpunit/includes/MessageTest.php78
-rw-r--r--tests/phpunit/includes/OutputPageTest.php73
-rw-r--r--tests/phpunit/includes/PathRouterTest.php36
-rw-r--r--tests/phpunit/includes/PreferencesTest.php23
-rw-r--r--tests/phpunit/includes/Providers.php44
-rw-r--r--tests/phpunit/includes/RecentChangeTest.php34
-rw-r--r--tests/phpunit/includes/RequestContextTest.php8
-rw-r--r--tests/phpunit/includes/ResourceLoaderTest.php62
-rw-r--r--tests/phpunit/includes/RevisionStorageTest.php16
-rw-r--r--tests/phpunit/includes/RevisionStorageTest_ContentHandlerUseDB.php20
-rw-r--r--tests/phpunit/includes/RevisionTest.php78
-rw-r--r--tests/phpunit/includes/SampleTest.php4
-rw-r--r--tests/phpunit/includes/SanitizerTest.php114
-rw-r--r--tests/phpunit/includes/SanitizerValidateEmailTest.php35
-rw-r--r--tests/phpunit/includes/SeleniumConfigurationTest.php222
-rw-r--r--tests/phpunit/includes/SiteConfigurationTest.php39
-rw-r--r--tests/phpunit/includes/StringUtilsTest.php166
-rw-r--r--tests/phpunit/includes/TemplateCategoriesTest.php24
-rw-r--r--tests/phpunit/includes/TestUser.php7
-rw-r--r--tests/phpunit/includes/TimeAdjustTest.php40
-rw-r--r--tests/phpunit/includes/TimestampTest.php264
-rw-r--r--tests/phpunit/includes/TitleMethodsTest.php20
-rw-r--r--tests/phpunit/includes/TitlePermissionTest.php142
-rw-r--r--tests/phpunit/includes/TitleTest.php194
-rw-r--r--tests/phpunit/includes/UIDGeneratorTest.php22
-rw-r--r--tests/phpunit/includes/UserMailerTest.php14
-rw-r--r--tests/phpunit/includes/UserTest.php20
-rw-r--r--tests/phpunit/includes/WebRequestTest.php114
-rw-r--r--tests/phpunit/includes/WikiPageTest.php68
-rw-r--r--tests/phpunit/includes/WikiPageTest_ContentHandlerUseDB.php25
-rw-r--r--tests/phpunit/includes/XmlJsTest.php25
-rw-r--r--tests/phpunit/includes/XmlSelectTest.php39
-rw-r--r--tests/phpunit/includes/XmlTest.php132
-rw-r--r--tests/phpunit/includes/XmlTypeCheckTest.php30
-rw-r--r--tests/phpunit/includes/ZipDirectoryReaderTest.php27
-rw-r--r--tests/phpunit/includes/api/ApiAccountCreationTest.php56
-rw-r--r--tests/phpunit/includes/api/ApiBlockTest.php21
-rw-r--r--tests/phpunit/includes/api/ApiEditPageTest.php107
-rw-r--r--tests/phpunit/includes/api/ApiOptionsTest.php38
-rw-r--r--tests/phpunit/includes/api/ApiParseTest.php5
-rw-r--r--tests/phpunit/includes/api/ApiPurgeTest.php3
-rw-r--r--tests/phpunit/includes/api/ApiTest.php47
-rw-r--r--tests/phpunit/includes/api/ApiTestCase.php40
-rw-r--r--tests/phpunit/includes/api/ApiTestCaseUpload.php4
-rw-r--r--tests/phpunit/includes/api/ApiUploadTest.php42
-rw-r--r--tests/phpunit/includes/api/ApiWatchTest.php55
-rw-r--r--tests/phpunit/includes/api/RandomImageGenerator.php13
-rw-r--r--tests/phpunit/includes/api/format/ApiFormatPhpTest.php4
-rw-r--r--tests/phpunit/includes/api/generateRandomImages.php6
-rw-r--r--tests/phpunit/includes/api/query/ApiQueryBasicTest.php77
-rw-r--r--tests/phpunit/includes/api/query/ApiQueryContinue2Test.php14
-rw-r--r--tests/phpunit/includes/api/query/ApiQueryContinueTest.php198
-rw-r--r--tests/phpunit/includes/api/query/ApiQueryContinueTestBase.php62
-rw-r--r--tests/phpunit/includes/api/query/ApiQueryRevisionsTest.php2
-rw-r--r--tests/phpunit/includes/api/query/ApiQueryTest.php7
-rw-r--r--tests/phpunit/includes/api/query/ApiQueryTestBase.php15
-rw-r--r--tests/phpunit/includes/cache/GenderCacheTest.php9
-rw-r--r--tests/phpunit/includes/cache/MessageCacheTest.php128
-rw-r--r--tests/phpunit/includes/cache/ProcessCacheLRUTest.php24
-rw-r--r--tests/phpunit/includes/content/ContentHandlerTest.php99
-rw-r--r--tests/phpunit/includes/content/CssContentTest.php8
-rw-r--r--tests/phpunit/includes/content/JavaScriptContentTest.php20
-rw-r--r--tests/phpunit/includes/content/TextContentTest.php43
-rw-r--r--tests/phpunit/includes/content/WikitextContentHandlerTest.php44
-rw-r--r--tests/phpunit/includes/content/WikitextContentTest.php24
-rw-r--r--tests/phpunit/includes/db/DatabaseMysqlBaseTest.php209
-rw-r--r--tests/phpunit/includes/db/DatabaseSQLTest.php633
-rw-r--r--tests/phpunit/includes/db/DatabaseSqliteTest.php46
-rw-r--r--tests/phpunit/includes/db/DatabaseTest.php62
-rw-r--r--tests/phpunit/includes/db/DatabaseTestHelper.php166
-rw-r--r--tests/phpunit/includes/db/ORMRowTest.php1
-rw-r--r--tests/phpunit/includes/db/ORMTableTest.php2
-rw-r--r--tests/phpunit/includes/db/TestORMRowTest.php52
-rw-r--r--tests/phpunit/includes/debug/MWDebugTest.php8
-rw-r--r--tests/phpunit/includes/filebackend/FileBackendTest.php251
-rw-r--r--tests/phpunit/includes/filerepo/FileRepoTest.php25
-rw-r--r--tests/phpunit/includes/filerepo/StoreBatchTest.php13
-rw-r--r--tests/phpunit/includes/installer/InstallDocFormatterTest.php7
-rw-r--r--tests/phpunit/includes/installer/OracleInstallerTest.php48
-rw-r--r--tests/phpunit/includes/jobqueue/JobQueueTest.php129
-rw-r--r--tests/phpunit/includes/json/FormatJsonTest.php161
-rw-r--r--tests/phpunit/includes/json/ServicesJsonTest.php93
-rw-r--r--tests/phpunit/includes/libs/CSSJanusTest.php72
-rw-r--r--tests/phpunit/includes/libs/CSSMinTest.php12
-rw-r--r--tests/phpunit/includes/libs/GenericArrayObjectTest.php3
-rw-r--r--tests/phpunit/includes/libs/IEUrlExtensionTest.php30
-rw-r--r--tests/phpunit/includes/libs/JavaScriptMinifierTest.php8
-rw-r--r--tests/phpunit/includes/media/BitmapMetadataHandlerTest.php29
-rw-r--r--tests/phpunit/includes/media/BitmapScalingTest.php47
-rw-r--r--tests/phpunit/includes/media/ExifBitmapTest.php53
-rw-r--r--tests/phpunit/includes/media/ExifRotationTest.php49
-rw-r--r--tests/phpunit/includes/media/ExifTest.php12
-rw-r--r--tests/phpunit/includes/media/FakeDimensionFile.php28
-rw-r--r--tests/phpunit/includes/media/FormatMetadataTest.php11
-rw-r--r--tests/phpunit/includes/media/GIFMetadataExtractorTest.php1
-rw-r--r--tests/phpunit/includes/media/GIFTest.php16
-rw-r--r--tests/phpunit/includes/media/IPTCTest.php31
-rw-r--r--tests/phpunit/includes/media/JpegMetadataExtractorTest.php5
-rw-r--r--tests/phpunit/includes/media/JpegTest.php10
-rw-r--r--tests/phpunit/includes/media/MediaHandlerTest.php7
-rw-r--r--tests/phpunit/includes/media/PNGMetadataExtractorTest.php32
-rw-r--r--tests/phpunit/includes/media/PNGTest.php16
-rw-r--r--tests/phpunit/includes/media/SVGMetadataExtractorTest.php9
-rw-r--r--tests/phpunit/includes/media/TiffTest.php20
-rw-r--r--tests/phpunit/includes/media/XMPTest.php17
-rw-r--r--tests/phpunit/includes/media/XMPValidateTest.php5
-rw-r--r--tests/phpunit/includes/normal/CleanUpTest.php32
-rw-r--r--tests/phpunit/includes/objectcache/BagOStuffTest.php13
-rw-r--r--tests/phpunit/includes/parser/MagicVariableTest.php107
-rw-r--r--tests/phpunit/includes/parser/MediaWikiParserTest.php108
-rw-r--r--tests/phpunit/includes/parser/NewParserTest.php347
-rw-r--r--tests/phpunit/includes/parser/ParserMethodsTest.php48
-rw-r--r--tests/phpunit/includes/parser/ParserOutputTest.php12
-rw-r--r--tests/phpunit/includes/parser/ParserPreloadTest.php18
-rw-r--r--tests/phpunit/includes/parser/PreprocessorTest.php38
-rw-r--r--tests/phpunit/includes/parser/TagHooksTest.php8
-rw-r--r--tests/phpunit/includes/parser/TidyTest.php44
-rw-r--r--tests/phpunit/includes/search/SearchEngineTest.php14
-rw-r--r--tests/phpunit/includes/search/SearchUpdateTest.php15
-rw-r--r--tests/phpunit/includes/site/MediaWikiSiteTest.php5
-rw-r--r--tests/phpunit/includes/site/SiteListTest.php9
-rw-r--r--tests/phpunit/includes/site/SiteSQLStoreTest.php13
-rw-r--r--tests/phpunit/includes/site/SiteTest.php33
-rw-r--r--tests/phpunit/includes/site/TestSites.php1
-rw-r--r--tests/phpunit/includes/specials/QueryAllSpecialPagesTest.php2
-rw-r--r--tests/phpunit/includes/specials/SpecialPreferencesTest.php60
-rw-r--r--tests/phpunit/includes/specials/SpecialRecentchangesTest.php2
-rw-r--r--tests/phpunit/includes/specials/SpecialSearchTest.php9
-rw-r--r--tests/phpunit/includes/upload/UploadBaseTest.php (renamed from tests/phpunit/includes/upload/UploadTest.php)15
-rw-r--r--tests/phpunit/includes/upload/UploadFromUrlTest.php18
-rw-r--r--tests/phpunit/includes/upload/UploadStashTest.php3
-rw-r--r--tests/phpunit/install-phpunit.sh2
-rw-r--r--tests/phpunit/languages/LanguageAmTest.php18
-rw-r--r--tests/phpunit/languages/LanguageArTest.php29
-rw-r--r--tests/phpunit/languages/LanguageBeTest.php18
-rw-r--r--tests/phpunit/languages/LanguageBe_taraskTest.php59
-rw-r--r--tests/phpunit/languages/LanguageBhoTest.php19
-rw-r--r--tests/phpunit/languages/LanguageBsTest.php19
-rw-r--r--tests/phpunit/languages/LanguageClassesTestCase.php58
-rw-r--r--tests/phpunit/languages/LanguageCsTest.php19
-rw-r--r--tests/phpunit/languages/LanguageCuTest.php31
-rw-r--r--tests/phpunit/languages/LanguageCyTest.php19
-rw-r--r--tests/phpunit/languages/LanguageDsbTest.php19
-rw-r--r--tests/phpunit/languages/LanguageFrTest.php19
-rw-r--r--tests/phpunit/languages/LanguageGaTest.php19
-rw-r--r--tests/phpunit/languages/LanguageGdTest.php39
-rw-r--r--tests/phpunit/languages/LanguageGvTest.php21
-rw-r--r--tests/phpunit/languages/LanguageHeTest.php119
-rw-r--r--tests/phpunit/languages/LanguageHiTest.php19
-rw-r--r--tests/phpunit/languages/LanguageHrTest.php19
-rw-r--r--tests/phpunit/languages/LanguageHsbTest.php19
-rw-r--r--tests/phpunit/languages/LanguageHuTest.php19
-rw-r--r--tests/phpunit/languages/LanguageHyTest.php20
-rw-r--r--tests/phpunit/languages/LanguageKshTest.php19
-rw-r--r--tests/phpunit/languages/LanguageLnTest.php19
-rw-r--r--tests/phpunit/languages/LanguageLtTest.php38
-rw-r--r--tests/phpunit/languages/LanguageLvTest.php19
-rw-r--r--tests/phpunit/languages/LanguageMgTest.php19
-rw-r--r--tests/phpunit/languages/LanguageMkTest.php21
-rw-r--r--tests/phpunit/languages/LanguageMlTest.php11
-rw-r--r--tests/phpunit/languages/LanguageMoTest.php18
-rw-r--r--tests/phpunit/languages/LanguageMtTest.php59
-rw-r--r--tests/phpunit/languages/LanguageNlTest.php6
-rw-r--r--tests/phpunit/languages/LanguageNsoTest.php22
-rw-r--r--tests/phpunit/languages/LanguagePlTest.php59
-rw-r--r--tests/phpunit/languages/LanguageRoTest.php18
-rw-r--r--tests/phpunit/languages/LanguageRuTest.php44
-rw-r--r--tests/phpunit/languages/LanguageSeTest.php27
-rw-r--r--tests/phpunit/languages/LanguageSgsTest.php27
-rw-r--r--tests/phpunit/languages/LanguageShTest.php30
-rw-r--r--tests/phpunit/languages/LanguageSkTest.php18
-rw-r--r--tests/phpunit/languages/LanguageSlTest.php22
-rw-r--r--tests/phpunit/languages/LanguageSmaTest.php27
-rw-r--r--tests/phpunit/languages/LanguageSrTest.php84
-rw-r--r--tests/phpunit/languages/LanguageTest.php311
-rw-r--r--tests/phpunit/languages/LanguageTiTest.php22
-rw-r--r--tests/phpunit/languages/LanguageTlTest.php22
-rw-r--r--tests/phpunit/languages/LanguageTrTest.php5
-rw-r--r--tests/phpunit/languages/LanguageUkTest.php35
-rw-r--r--tests/phpunit/languages/LanguageUzTest.php28
-rw-r--r--tests/phpunit/languages/LanguageWaTest.php22
-rw-r--r--tests/phpunit/languages/utils/CLDRPluralRuleEvaluatorTest.php2
-rw-r--r--tests/phpunit/maintenance/DumpTestCase.php26
-rw-r--r--tests/phpunit/maintenance/MaintenanceTest.php6
-rw-r--r--tests/phpunit/maintenance/backupPrefetchTest.php3
-rw-r--r--tests/phpunit/maintenance/backupTextPassTest.php7
-rw-r--r--tests/phpunit/maintenance/backup_LogTest.php4
-rw-r--r--tests/phpunit/maintenance/backup_PageTest.php6
-rw-r--r--tests/phpunit/maintenance/fetchTextTest.php2
-rw-r--r--tests/phpunit/maintenance/getSlaveServerTest.php2
-rw-r--r--tests/phpunit/mocks/filebackend/MockFSFile.php69
-rw-r--r--tests/phpunit/mocks/filebackend/MockFileBackend.php122
-rw-r--r--tests/phpunit/mocks/media/MockBitmapHandler.php92
-rw-r--r--tests/phpunit/phpunit.php24
-rw-r--r--tests/phpunit/skins/SideBarTest.php75
-rw-r--r--tests/phpunit/structure/AutoLoaderTest.php (renamed from tests/phpunit/AutoLoaderTest.php)7
-rw-r--r--tests/phpunit/structure/ResourcesTest.php (renamed from tests/phpunit/resources/ResourcesTest.php)17
-rw-r--r--tests/phpunit/structure/StructureTest.php (renamed from tests/phpunit/StructureTest.php)4
-rw-r--r--tests/phpunit/suite.xml27
-rw-r--r--tests/phpunit/suites/ExtensionsParserTestSuite.php8
-rw-r--r--tests/phpunit/suites/UploadFromUrlTestSuite.php13
-rw-r--r--tests/qunit/QUnitTestResources.php4
-rw-r--r--tests/qunit/data/generateJqueryMsgData.php4
-rw-r--r--tests/qunit/data/load.mock.php3
-rw-r--r--tests/qunit/data/testrunner.js29
-rw-r--r--tests/qunit/suites/resources/jquery/jquery.byteLength.test.js24
-rw-r--r--tests/qunit/suites/resources/jquery/jquery.byteLimit.test.js120
-rw-r--r--tests/qunit/suites/resources/jquery/jquery.client.test.js283
-rw-r--r--tests/qunit/suites/resources/jquery/jquery.localize.test.js10
-rw-r--r--tests/qunit/suites/resources/jquery/jquery.makeCollapsible.test.js287
-rw-r--r--tests/qunit/suites/resources/jquery/jquery.tablesorter.test.js166
-rw-r--r--tests/qunit/suites/resources/jquery/jquery.textSelection.test.js7
-rw-r--r--tests/qunit/suites/resources/mediawiki.special/mediawiki.special.recentchanges.test.js2
-rw-r--r--tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js268
-rw-r--r--tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js337
-rw-r--r--tests/qunit/suites/resources/mediawiki/mediawiki.test.js171
-rw-r--r--tests/qunit/suites/resources/mediawiki/mediawiki.user.test.js6
-rw-r--r--tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js91
-rw-r--r--tests/qunit/suites/resources/startup.test.js129
-rw-r--r--tests/selenium/Selenium.php191
-rw-r--r--tests/selenium/SeleniumConfig.php80
-rw-r--r--tests/selenium/SeleniumLoader.php9
-rw-r--r--tests/selenium/SeleniumServerManager.php252
-rw-r--r--tests/selenium/SeleniumTestCase.php127
-rw-r--r--tests/selenium/SeleniumTestConsoleLogger.php25
-rw-r--r--tests/selenium/SeleniumTestConstants.php24
-rw-r--r--tests/selenium/SeleniumTestHTMLLogger.php36
-rw-r--r--tests/selenium/SeleniumTestListener.php65
-rw-r--r--tests/selenium/SeleniumTestSuite.php57
-rw-r--r--tests/selenium/data/SimpleSeleniumTestDB.sql1453
-rw-r--r--tests/selenium/data/SimpleSeleniumTestImages.zipbin21993 -> 0 bytes
-rw-r--r--tests/selenium/data/Wikipedia-logo-v2-de.pngbin21479 -> 0 bytes
-rw-r--r--tests/selenium/data/mediawiki118_fresh_installation.sql1543
-rw-r--r--tests/selenium/installer/MediaWikiButtonsAvailabilityTestCase.php90
-rw-r--r--tests/selenium/installer/MediaWikiDifferentDatabaseAccountTestCase.php73
-rw-r--r--tests/selenium/installer/MediaWikiDifferntDatabasePrefixTestCase.php88
-rw-r--r--tests/selenium/installer/MediaWikiErrorsConnectToDatabasePageTestCase.php131
-rw-r--r--tests/selenium/installer/MediaWikiErrorsNamepageTestCase.php119
-rw-r--r--tests/selenium/installer/MediaWikiHelpFieldHintTestCase.php128
-rw-r--r--tests/selenium/installer/MediaWikiInstallationCommonFunction.php259
-rw-r--r--tests/selenium/installer/MediaWikiInstallationConfig.php45
-rw-r--r--tests/selenium/installer/MediaWikiInstallationMessage.php53
-rw-r--r--tests/selenium/installer/MediaWikiInstallationVariables.php73
-rw-r--r--tests/selenium/installer/MediaWikiInstallerTestSuite.php49
-rw-r--r--tests/selenium/installer/MediaWikiMySQLDataBaseTestCase.php71
-rw-r--r--tests/selenium/installer/MediaWikiMySQLiteDataBaseTestCase.php73
-rw-r--r--tests/selenium/installer/MediaWikiOnAlreadyInstalledTestCase.php65
-rw-r--r--tests/selenium/installer/MediaWikiRestartInstallationTestCase.php104
-rw-r--r--tests/selenium/installer/MediaWikiRightFrameworkLinksTestCase.php83
-rw-r--r--tests/selenium/installer/MediaWikiUpgradeExistingDatabaseTestCase.php111
-rw-r--r--tests/selenium/installer/MediaWikiUserInterfaceTestCase.php494
-rw-r--r--tests/selenium/installer/README.txt32
-rw-r--r--tests/selenium/selenium_settings.ini.sample32
-rw-r--r--tests/selenium/selenium_settings_grid.ini.sample16
-rw-r--r--tests/selenium/suites/AddContentToNewPageTestCase.php173
-rw-r--r--tests/selenium/suites/AddNewPageTestCase.php59
-rw-r--r--tests/selenium/suites/CreateAccountTestCase.php109
-rw-r--r--tests/selenium/suites/DeletePageAdminTestCase.php82
-rw-r--r--tests/selenium/suites/EmailPasswordTestCase.php74
-rw-r--r--tests/selenium/suites/MediaWikiEditorConfig.php41
-rw-r--r--tests/selenium/suites/MediaWikiEditorTestSuite.php19
-rw-r--r--tests/selenium/suites/MediaWikiExtraTestSuite.php21
-rw-r--r--tests/selenium/suites/MediawikiCoreSmokeTestCase.php70
-rw-r--r--tests/selenium/suites/MediawikiCoreSmokeTestSuite.php19
-rw-r--r--tests/selenium/suites/MovePageTestCase.php111
-rw-r--r--tests/selenium/suites/MyContributionsTestCase.php59
-rw-r--r--tests/selenium/suites/MyWatchListTestCase.php51
-rw-r--r--tests/selenium/suites/PageDeleteTestSuite.php15
-rw-r--r--tests/selenium/suites/PageSearchTestCase.php98
-rw-r--r--tests/selenium/suites/PreviewPageTestCase.php48
-rw-r--r--tests/selenium/suites/SavePageTestCase.php53
-rw-r--r--tests/selenium/suites/SimpleSeleniumConfig.php30
-rw-r--r--tests/selenium/suites/SimpleSeleniumTestCase.php39
-rw-r--r--tests/selenium/suites/SimpleSeleniumTestSuite.php26
-rw-r--r--tests/selenium/suites/UserPreferencesTestCase.php170
-rw-r--r--tests/testHelpers.inc33
-rw-r--r--thumb.php198
-rw-r--r--thumb_handler.php2
-rw-r--r--wiki.phtml2
1906 files changed, 98835 insertions, 66825 deletions
diff --git a/.gitreview b/.gitreview
index 65dbc270..0ec44b83 100644
--- a/.gitreview
+++ b/.gitreview
@@ -2,5 +2,5 @@
host=gerrit.wikimedia.org
port=29418
project=mediawiki/core.git
-defaultbranch=REL1_21
+defaultbranch=master
defaultrebase=0
diff --git a/.jshintignore b/.jshintignore
index 3869deb9..f740f137 100644
--- a/.jshintignore
+++ b/.jshintignore
@@ -1,3 +1,7 @@
+# Generated documentation
+docs/html/
+docs/js/
+
# third-party libs
extensions/
node_modules/
@@ -19,9 +23,7 @@ resources/jquery.effects/
resources/jquery.tipsy/
resources/jquery.ui/
resources/mediawiki.libs/
-
-# legacy scripts
-skins/common/
+resources/jquery.chosen/chosen.jquery.js
# github.com/jshint/jshint/issues/729
tests/qunit/suites/resources/mediawiki/mediawiki.jscompat.test.js
diff --git a/.jshintrc b/.jshintrc
index 7fa138d4..c4e265a4 100644
--- a/.jshintrc
+++ b/.jshintrc
@@ -1,15 +1,10 @@
{
- "predef": [
- "mediaWiki",
- "jQuery",
- "QUnit"
- ],
+ /* Common */
- "bitwise": true,
+ // Enforcing
"camelcase": true,
"curly": true,
"eqeqeq": true,
- "forin": false,
"immed": true,
"latedef": true,
"newcap": true,
@@ -17,18 +12,31 @@
"noempty": true,
"nonew": true,
"quotmark": "single",
- "regexp": false,
+ "trailing": true,
"undef": true,
"unused": true,
- "strict": false,
- "trailing": true,
+ // Legacy
+ "onevar": true,
+
+ /* Local */
+ // Enforcing
+ "bitwise": true,
+ "forin": false,
+ "regexp": false,
+ "strict": false,
+ // Relaxing
"laxbreak": true,
"smarttabs": true,
"multistr": true,
-
+ // Environment
"browser": true,
-
+ // Legacy
"nomen": true,
- "onevar": true
+
+ "predef": [
+ "mediaWiki",
+ "jQuery",
+ "QUnit"
+ ]
}
diff --git a/COPYING b/COPYING
index 019694a9..c3bed284 100644
--- a/COPYING
+++ b/COPYING
@@ -1,3 +1,41 @@
+== License and copyright information ==
+
+=== License ===
+
+MediaWiki is licensed under the terms of the GNU General Public License,
+version 2 or later. Derivative works and later versions of the code must be
+free software licensed under the same or a compatible license. This includes
+"extensions" that use MediaWiki functions or variables; see
+http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins for details.
+
+For the full text of version 2 of the license, see
+https://www.gnu.org/licenses/gpl-2.0.html or '''GNU General Public License'''
+below.
+
+=== Copyright owners ===
+
+MediaWiki contributors, including those listed in the CREDITS file, hold the
+copyright to this work.
+
+=== Additional license information ===
+
+Some components of MediaWiki imported from other projects may be under other
+Free and Open Source, or Free Culture, licenses. Specific details of their
+licensing information can be found in those components.
+
+Sections of code written exclusively by Lee Crocker or Erik Moeller are also
+released into the public domain, which does not impair the obligations of users
+under the GPL for use of the whole code or other sections thereof.
+
+MediaWiki uses the following Creative Commons icons to illustrate links to the
+CC licenses:
+
+* skins/common/images/cc-by-nc-sa.png
+* skins/common/images/cc-by-sa.png
+
+These icons are trademarked, and used subject to the CC trademark license,
+available at http://creativecommons.org/policies#trademark
+
== GNU GENERAL PUBLIC LICENSE ==
Version 2, June 1991
diff --git a/CREDITS b/CREDITS
index 9c49a9b4..54aca716 100644
--- a/CREDITS
+++ b/CREDITS
@@ -1,4 +1,4 @@
-MediaWiki 1.21 is a collaborative project released under the
+MediaWiki 1.22 is a collaborative project released under the
GNU General Public License v2. We would like to recognize the
following names for their contribution to the product.
@@ -22,6 +22,7 @@ following names for their contribution to the product.
* church of emacs
* Daniel Friesen
* Daniel Kinzler
+* Daniel Renfro
* Danny B.
* David McCabe
* Derk-Jan Hartman
@@ -80,7 +81,7 @@ following names for their contribution to the product.
* Thomas Bleher
* Tim Starling
* Timo Tijhof
-* Tom Gries
+* Thomas Gries
* Trevor Parscal
* Victor Vasiliev
* Yesid Carrillo
@@ -122,6 +123,7 @@ following names for their contribution to the product.
* David Baumgarten
* Denny Vrandecic
* Dévai Tamás
+* Ebrahim Byagowi
* Edward Z. Yang
* Elvis Stansvik
* Erwin Dokter
@@ -143,6 +145,7 @@ following names for their contribution to the product.
* Jimmy Xu
* Jonathan Wiltshire
* John N
+* JuneHyeon Bae
* Jure Kajzer
* Karun Dambiec
* Katie Filbert
@@ -159,7 +162,7 @@ following names for their contribution to the product.
* Manuel Menal
* Marcin Cieślak
* Marcus Buck
-* Mark A. Pelletier
+* Marc-André Pelletier
* Mark Hershberger
* Mark Holmquist
* Marooned
@@ -234,10 +237,5 @@ following names for their contribution to the product.
* Zachary Hauri
== Translators ==
-* Anders Wegge Jakobsen
-* Hk kng
-* Hojjat
-* Meno25
-* Rotem Liss
-* Shinjiman
-* [https://translatewiki.net/wiki/Special:ListUsers/translator Translatewiki.net Translators]
+
+* [https://translatewiki.net/wiki/Translating:MediaWiki/Credits Translators on translatewiki.net and others]
diff --git a/HISTORY b/HISTORY
index 02ba8d89..45eab2e9 100644
--- a/HISTORY
+++ b/HISTORY
@@ -1,4 +1,337 @@
-Change notes from older releases. For current info see RELEASE-NOTES-1.21.
+Change notes from older releases. For current info see RELEASE-NOTES-1.22.
+
+== MediaWiki 1.21 ==
+
+MediaWiki 1.21 is an alpha-quality branch and is not recommended for use in
+production.
+
+=== Configuration changes in 1.21 ===
+* (bug 29374) $wgVectorUseSimpleSearch is now enabled by default.
+* Deprecated $wgAllowRealName is removed. Use $wgHiddenPrefs[] = 'realname'
+ instead.
+* (bug 39957) Added $wgUnwatchedPageThreshold, specifying minimum count
+ of page watchers required for the number to be accessible to users
+ without the unwatchedpages permission.
+* $wgBug34832TransitionalRollback has been removed.
+* (bug 29472) $wgUseDynamicDates has been removed and its functionality
+ disabled.
+
+=== New features in 1.21 ===
+* (bug 38110) Schema changes (adding or dropping tables, indices and
+ fields) can be now be done separately from from other changes that
+ update.php makes. This is useful in environments that use database
+ permissions to restrict schema changes but allow the DB user that
+ MediaWiki normally runs as to perform other changes that update.php
+ makes. Schema changes can be run separately. See the file UPGRADE
+ for more information.
+* (bug 34876) jquery.makeCollapsible has been improved in performance.
+* Added ContentHandler facility to allow extensions to support other content
+ than wikitext. See docs/contenthandler.txt for details.
+* New feature was developed for showing high-DPI thumbnails for high-DPI mobile
+ and desktop displays (configurable with $wgResponsiveImages).
+* Added new backend to represent and store information about sites and site
+ specific configuration.
+* jQuery upgraded from 1.8.2 to 1.8.3.
+* jQuery UI upgraded from 1.8.23 to 1.8.24.
+* Added separate fa_sha1 field to filearchive table. This allows sha1
+ searches with the api in miser mode for deleted files.
+* Add initial and programmatic sorting for tablesorter.
+* Add the event "sortEnd.tablesorter", triggered after sorting has completed.
+* The Job system was refactored to allow for different backing stores for
+ queues as well as cross-wiki access to queues, among other things. The schema
+ for the DB queue was changed to support better concurrency and reduce
+ deadlock errors.
+* Added ApiQueryORM class to facilitate creation of query API modules based on
+ tables that have a corresponding ORMTable class.
+* (bug 40876) Icon for PSD (Adobe Photoshop) file types.
+* (bug 40641) Implemented Special:Version/Credits with a list of contributors.
+* (bug 7851) Implemented one-click AJAX patrolling.
+* The <data>, <time>, <meta>, and <link> elements are allowed within WikiText
+ for use with Microdata.
+* The HTML5 <mark> tag has been whitelisted.
+* Added ParserCloned hook for when the Parser object is cloned.
+* Added AlternateEditPreview hook to allow extensions to replace the page
+ preview from the edit page.
+* Added EditPage::showStandardInputs:options hook to allow extensions to add
+ new fields to the "editOptions" area of the edit form.
+* Upload stash DB schema altered to improve upload performance.
+* The following global functions are now reporting deprecated warnings in
+ debug mode: wfMsg, wfMsgNoTrans, wfMsgForContent, wfMsgForContentNoTrans,
+ wfMsgReal, wfMsgGetKey, wfMsgHtml, wfMsgWikiHtml, wfMsgExt, wfEmptyMsg. Use
+ the Message class, or the global method wfMessage.
+* Added $wgEnableCanonicalServerLink, off by default. If enabled, a
+ <link rel=canonical> tag is added to every page indicating the correct server
+ to use.
+* Debug message emitted by wfDebugLog() will now be prefixed with the group
+ name when its logged to the default log file. That is the case whenever the
+ group has no key in wgDebugLogGroups, that will help triage the default log.
+* (bug 24620) Add types to LogFormatter.
+* jQuery JSON upgraded from 2.3 to 2.4.0.
+* Added GetDoubleUnderscoreIDs hook, for modifying the list of magic words.
+* DatabaseUpdater class has two new methods to ease extensions schema changes:
+ dropExtensionIndex and renameExtensionIndex.
+* New preference type - 'api'. Preferences of this type are not shown on
+ Special:Preferences, but are still available via the action=options API.
+* (bug 39397) Hide rollback link if a user is the only contributor of the page.
+* $wgPageInfoTransclusionLimit limits the list size of transcluded articles
+ on the info action. Default is 50.
+* Added action=createaccount to allow user account creation.
+* (bug 40124) action=options API also allows for setting of arbitrary
+ preferences, provided that their names are prefixed with 'userjs-'. This
+ officially reenables the feature that was undocumented and defective
+ in MW 1.20 (saving preferences using Special:Preferences cleared any
+ additional fields) and which has been disabled in 1.20.1 as a part of
+ a security fix (bug 42202).
+* Added option to specify "others" as author in extension credits using
+ "..." as author name.
+* Added the ability to limit the wall clock time used by shell processes,
+ as well as the CPU time. Configurable with $wgMaxShellWallClockTime.
+* Allow memory of shell subprocesses to be limited using Linux cgroups
+ instead of ulimit -v, which tends to cause deadlocks in recent versions
+ of ImageMagick. Configurable with $wgShellCgroup.
+* Added $wgWhitelistReadRegexp for regex whitelisting.
+* (bug 5346) Categories that are redirects will be displayed italic in
+ the category links section at the bottom of a page.
+* (bug 43915) New maintenance script deleteEqualMessages.php.
+* You can now create checkbox option matrices through the HTMLCheckMatrix
+ subclass in HTMLForm.
+* WikiText now permits the use of WAI-ARIA's role="presentation" inside of
+ html elements and tables. This allows presentational markup, especially
+ tables. To be marked up as such.
+* maintenance/sql.php learned the --cluster option. Let you run the script
+ on some external cluster instead of the primary cluster for a given wiki.
+* (bug 20281) test the parsing of inline URLs.
+* Added Special:PagesWithProp, which lists pages using a particular page property.
+* Implemented language-specific collations for category sorting for 67 languages
+ based in latin, greek and cyrillic alphabets. This allows one to *finally* get
+ articles to be correctly sorted on category pages. They are named
+ 'uca-<langcode>', where <langcode> is one of: af, ast, az, be, bg, br, bs, ca,
+ co, cs, cy, da, de, dsb, el, en, eo, es, et, eu, fi, fo, fr, fur, fy, ga, gd,
+ gl, hr, hsb, hu, is, it, kk, kl, ku, ky, la, lb, lt, lv, mk, mo, mt, nl, no,
+ oc, pl, pt, rm, ro, ru, rup, sco, sk, sl, smn, sq, sr, sv, tk, tl, tr, tt, uk,
+ uz, vi.
+* Added 'CategoryAfterPageAdded' and 'CategoryAfterPageRemoved' hooks.
+* Added 'HistoryRevisionTools' and 'DiffRevisionTools' hooks.
+* Added 'SpecialSearchResultsPrepend' and 'SpecialSearchResultsAppend' hooks.
+* (bug 33186) Add image rotation api "imagerotate"
+* (bug 34040) Add "User rights management" link on user page toolbox.
+* (bug 45526) Add QUnit assertion helper "QUnit.assert.htmlEqual" for asserting
+ structual equality of HTML (ignoring insignificant differences like
+ quotmarks, order and whitespace in the attribute list).
+* (bug 23393) HTML <hN> headings containing line breaks are now handled
+ correctly.
+* (bug 45803) Whitespace within == Headline == syntax and within <hN> headings
+ is now non-significant and not preserved in the HTML output.
+
+=== Bug fixes in 1.21 ===
+* (bug 40353) SpecialDoubleRedirect should support interwiki redirects.
+* (bug 40352) fixDoubleRedirects.php should support interwiki redirects.
+* (bug 9237) SpecialBrokenRedirect should not list interwiki redirects.
+* (bug 34960) Drop unused fields rc_moved_to_ns and rc_moved_to_title from
+ recentchanges table.
+* (bug 32951) Do not register internal externals with absolute protocol,
+ when server has relative protocol.
+* (bug 39005) When purging proxies listed in $wgSquidServers using HTTP PURGE
+ method requests, we now send a Host header by default, for Varnish
+ compatibility. This also works with Squid in reverse-proxy mode. If you wish
+ to support Squid configured in forward-proxy mode, set
+ $wgSquidPurgeUseHostHeader to false.
+* (bug 37020) sql.php with readline eats semicolon.
+* (bug 11748) Properly handle optionally-closed HTML tags when Tidy is
+ disabled, and don't wrap HTML-syntax definition lists in paragraphs.
+* (bug 41409) Diffs while editing an old revision should again diff against the
+ current revision.
+* (bug 41494) Honor $wgLogExceptionBacktrace when logging non-API exceptions
+ caught during API execution.
+* (bug 37963) Fixed loading process for user options.
+* (bug 26995) Update filename field on Upload page after having sanitized it.
+* (bug 41793) Contribution links to users with 0 edits on Special:ListUsers
+ didn't show up red.
+* (bug 41899) A PHP notice no longer occurs when using the "rvcontinue" API
+ parameter.
+* (bug 42036) Account creation emails now contain canonical (not
+ protocol-relative) URLs.
+* (bug 41990) Fix regression: API edit with redirect=true and lacking
+ starttimestamp and basetimestamp should not cause an edit conflict.
+* (bug 41706) EditPage: Preloaded page should be converted if possible and
+ needed.
+* (bug 41886) Rowspans are no longer exploded by tablesorter until the table is
+ actually sorted.
+* (bug 2865) User interface HTML elements don't use lang attribute.
+ (completed the fix by adding the lang attribute to firstHeading).
+* (bug 42173) Removed namespace prefixes on Special:UncategorizedCategories.
+* (bug 36053) Log in "returnto" feature forgets query parameters if no
+ title parameter was specified.
+* (bug 42410) API action=edit now returns correct timestamp for the new edit.
+* (bug 14901) Email notification mistakes log action for new page creation.
+ Enotif no longer sends "page has been created" notifications for some log
+ actions. The following events now have a correct message: page creation,
+ deletion, move, restore (undeletion), change (edit). Parameter
+ $CHANGEDORCREATED is deprecated in 'enotif_body' and scheduled for removal in
+ MediaWiki 1.23.
+* (bug 457) In the sidebar of Vector, CologneBlue, Monobook, and Monobook-based
+ skins, the heading levels have been changed from (variously per skin)
+ <h4>, <h5> or <h6> to only <h3>s, with a <h2> hidden heading above them.
+ If you are styling or scripting the headings in a custom way, this change
+ will require updates to your site's CSS or JS.
+* (bug 41342) jquery.suggestions should cancel any active (async) fetches
+ before it triggers another fetch.
+* (bug 42184) $wgUploadSizeWarning missing second variable.
+* (bug 34581) removeUnusedAccounts.php maintenance script now ignores newuser
+ log when determining whether an account is used.
+* (bug 43379) Gracefully fail if rev_len is unavailable for a revision on the
+ History page.
+* (bug 42949) API no longer assumes all exceptions are MWException.
+* (bug 41733) Hide "New user message" (.usermessage) element from printable view.
+* (bug 39062) Special:Contributions will display changes that don't have
+ a parent id instead of just an empty bullet item.
+* (bug 37209) "LinkCache doesn't currently know about this title" error fixed.
+* wfMerge() now works if $wgDiff3 contains spaces
+* (bug 43052) mediawiki.action.view.dblClickEdit.dblClickEdit should trigger
+ ca-edit click instead opening URL directly.
+* (bug 43964) Invalid value of "link" parameter in <gallery> no longer produces
+ a fatal error.
+* (bug 44775) The username field is not pre-filled when creating an account.
+* (bug 45069) wfParseUrl() no longer produces a PHP notice if passed a "mailto:"
+ URL without address
+* (bug 45012) Creating an account by e-mail can no longer show a
+ "password mismatch" error.
+* (bug 44599) On Special:Version, HEADs for submodule checkouts (e.g. for
+ extensions) performed using Git 1.7.8+ should now appear.
+* (bug 42184) $wgUploadSizeWarning missing second variable
+* (bug 40326) Check if files exist with a different extension during uploading
+* (bug 34798) Updated CSS for Atom/RSS recent changes feeds to match on-wiki diffs.
+* (bug 42430) Calling numRows on MySQL no longer propagates unrelated errors.
+* (bug 44719) Removed mention of non-existing maintenance/migrateCurStubs.php
+ script in includes/DefaultSettings.php
+* (bug 45143) jquery.badge: Treat non-Latin variants of zero as zero as well.
+* (bug 46151) mwdocgen.php should not ignore exit code of doxygen command.
+* (bug 41889) Fix $.tablesorter rowspan exploding for complex cases.
+
+=== API changes in 1.21 ===
+* prop=revisions can now report the contentmodel and contentformat.
+ See docs/contenthandler.txt.
+* action=edit and action=parse now support contentmodel and contentformat
+ parameters to control the interpretation of page content.
+ See docs/contenthandler.txt for details.
+* (bug 35693) ApiQueryImageInfo now suppresses errors when unserializing metadata.
+* (bug 40111) Disable minor edit for page/section creation by API.
+* (bug 41042) Revert change to action=parse&page=... behavior when the page
+ does not exist.
+* (bug 27202) Add timestamp sort to list=allimages.
+* (bug 43137) Don't return the sha1 of revisions through the API if the content is
+ revision-deleted.
+* ApiQueryImageInfo now also returns imageinfo for redirects.
+* list=alltransclusions added to enumerate every instance of page embedding
+* list=alllinks & alltransclusions now allow both 'from' and 'continue' in
+ the same query. When both are present, 'from' is simply ignored.
+* list=alllinks & alltransclusions now allow 'unique' in generators, to yield
+ a list of all link/template target pages instead of source pages.
+* BREAKING CHANGE: list=logevents output format changed for details of some log
+ types. Specifically, details that were formerly reported under a key like
+ "4::foo" will now be reported under a key of simply "foo".
+* BREAKING CHANGE: '??_badcontinue' error code was changed to '??badcontinue'
+ for all query modules.
+* ApiQueryBase adds 'badcontinue' error code if module has 'continue' parameter.
+* (bug 35885) Removed version parameter and all getVersion() methods.
+* action=options now takes a "resetkinds" option, which allows only resetting
+ certain types of preferences when the "reset" option is set.
+* (bug 36751) ApiQueryImageInfo now returns imageinfo for the redirect target
+ when queried with &redirects=.
+* (bug 31849) ApiQueryImageInfo no longer gets confused when asked for info on
+ a redirect and its target.
+* (bug 43849) ApiQueryImageInfo no longer throws exceptions with ForeignDBRepo
+ redirects.
+* On error, any warnings generated before that error will be shown in the result.
+* action=help supports generalized submodules (modules=query+value), querymodules obsolete
+* ApiQueryImageInfo continuation is more reliable. The only major change is
+ that the imagerepository property will no longer be set on page objects not
+ processed in the current query (i.e. non-images or those skipped due to
+ iicontinue).
+* Add supports for all pageset capabilities - generators, redirects, converttitles to
+ action=purge and action=setnotificationtimestamp.
+* (bug 43251) prop=pageprops&ppprop= now accepts multiple props to query.
+* ApiQueryImageInfo will now limit the number of calls to File::transform made
+ in any one query. If there are too many, iicontinue will be returned.
+* action=query&meta=siteinfo&siprop=general will now return the regexes used for
+ link trails and link prefixes. Added for Parsoid support.
+* Added an API query module list=pageswithprop, which lists pages using a
+ particular page property.
+* Added an API query module list=pagepropnames, which lists all page prop names
+ currently in use on the wiki.
+* (bug 44921) ApiMain::execute() will now return after the CORS check for an
+ HTTP OPTIONS request.
+* (bug 44923) action=upload works correctly if the entire file is uploaded in
+ the first chunk.
+* Added 'continue=' parameter to streamline client iteration over complex query results
+* (bug 44909) API parameters may now be marked as type "upload", which is now
+ used for action=upload's 'file' and 'chunk' parameters. This type will raise
+ an error during parameter validation if the parameter is given but not
+ recognized as an uploaded file.
+* (bug 44244) prop=info may now return the number of people watching each page.
+* (bug 33304) list=allpages will no longer return duplicate entries when
+ querying protection.
+* (bug 33304) list=allpages will now find really old indefinite protections.
+* (bug 45937) meta=allmessages will report a syntactically invalid lang as a
+ proper error instead of as an uncaught exception.
+* (bug 25325) added support for wlshow filtering (bots/anon/minor/patrolled)
+ to action=feedwatchlist
+* WDDX formatted output will actually be formatted (and normal output will no
+ longer be), and will no longer choke on booleans.
+
+=== API internal changes in 1.21 ===
+* For debugging only, a new global $wgDebugAPI removes many API restrictions when true.
+ Never use on the production servers, as this flag introduces security holes.
+ Whenever enabled, a warning will also be added to all output.
+* ApiModuleManager now handles all submodules (actions,props,lists) and instantiation
+* Query stores prop/list/meta as submodules
+* ApiPageSet can now be used in any action to process titles/pageids/revids or any generator.
+* BREAKING CHANGE: ApiPageSet constructor now has two params instead of three, with only the
+ first one keeping its meaning. ApiPageSet is now derived from ApiBase.
+* BREAKING CHANGE: ApiQuery::newGenerator() and executeGeneratorModule() were deleted.
+* ApiQueryGeneratorBase::setGeneratorMode() now requires a pageset param.
+* $wgAPIGeneratorModules is now obsolete and will be ignored.
+* Added flags ApiResult::OVERRIDE and ADD_ON_TOP to setElement() and addValue()
+* Internal API calls will now include <warnings> in case of unused parameters
+
+=== Languages updated in 1.21 ===
+
+MediaWiki supports over 350 languages. Many localisations are updated
+regularly. Below only new and removed languages are listed, as well as
+changes to languages because of Bugzilla reports.
+
+* South Azerbaijani (azb) added.
+* (bug 30040) Autonym for nds-nl is now 'Nedersaksies' (was 'Nedersaksisch').
+* (bug 45436) Autonym for pi (Pali) is now 'पालि' (was ''पाळि').
+* (bug 34977) Now formatted numbers in Spanish use space as separator
+ for thousands, as mandated by the Real Academia Española.
+* (bug 35031) Kurdish formatted numbers now use period and comma
+ as separators for thousands and decimals respectively.
+
+=== Other changes in 1.21 ===
+* BREAKING CHANGE: (bug 44385) Removed the jquery.collapsibleTabs module and
+ moved it to the Vector extension. It was entirely Vector-extension-specific,
+ deeply interconnected with the extension, and this functionality really
+ belongs to the extension instead of the skin anyway. In the unlikely case you
+ were using it, you have to either copy it to your extension, or install the
+ Vector extension (and possibly disable its features using config settings if
+ you don't want them).
+* Experimental IBM DB2 support was removed due to lack of interest and maintainership
+* BREAKING CHANGE: Filenames of maintenance scripts were standardized into
+ lowerCamelCase format, and made more explicit:
+ - clear_stats.php -> clearCacheStats.php
+ - clear_interwiki_cache.php -> clearInterwikiCache.php
+ - initStats.php -> initSiteStats.php
+ - proxy_check.php -> proxyCheck.php
+ - stats.php -> showCacheStats.php
+ - showStats.php -> showSiteStats.php.
+ Class names were renamed accordingly:
+ - clear_stats -> ClearCacheStats
+ - InitStats -> InitSiteStats
+ - CacheStats -> ShowCacheStats
+ - ShowStats -> ShowSiteStats.
+* BREAKING CHANGE: (bug 38244) Removed the mediawiki.api.titleblacklist module
+ and moved it to the TitleBlacklist extension.
== MediaWiki 1.20 ==
diff --git a/README b/README
index c9ce5db4..a4185ba0 100644
--- a/README
+++ b/README
@@ -1,122 +1,33 @@
-For system requirements, installation and upgrade details, see the files
-RELEASE-NOTES, INSTALL, and UPGRADE.
-
== MediaWiki ==
-MediaWiki is the software used for Wikipedia [http://www.wikipedia.org/] and the
-other Wikimedia Foundation websites. Compared to other wikis, it has an
-excellent range of features and support for high-traffic websites using
-multiple servers (Wikimedia sites peak in the 100K+ requests per second range
-as of January 2012).
-
-While quite usable on smaller sites, you may find you have to "roll your own"
-local documentation, and some aspects of configuration may seem overcomplicated
-because MediaWiki is primarily targeted as an in-house tool.
-
-The MediaWiki software was written by:
-* Lee Daniel Crocker
-* Magnus Manske
-* Jan Hidders
-* Brion Vibber
-* Axel Boldt
-* Geoffrey T. Dairiki
-* Tomasz Wegrzanowski
-* Erik Moeller
-* Tim Starling
-* Gabriel Wicke
-* Antoine Musso
-* Evan Prodromou
-* Ævar Arnfjörð Bjarmason
-* Niklas Laxström
-* Domas Mituzas
-* Rob Church
-* Jens Frank
-* Yuri Astrakhan
-* Aryeh Gregor
-* Aaron Schulz
-* Andrew Garrett
-* Raimond Spekking
-* Alexandre Emsenhuber
-* Siebrand Mazeland
-* Chad Horohoe
-* Roan Kattouw
-* Trevor Pascal
-* Bryan Tong Minh
-* Sam Reed
-* Victor Vasiliev
-* Rotem Liss
-* Platonides
-* Many others (view CREDITS for a more complete list)
-
-The contributors hold the copyright to this work, and it is licensed under the
-terms of the GNU General Public License, version 2 or later (see
-http://www.fsf.org/licensing/licenses/gpl.html). Derivative works and later
-versions of the code must be free software licensed under the same or a
-compatible license. This includes "extensions" that use MediaWiki functions or
-variables; see http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins for
-details.
-
-The Wikimedia Foundation currently has no legal rights to the software.
-
-Sections of code written exclusively by Lee Crocker or Erik Moeller are also
-released into the public domain, which does not impair the obligations of users
-under the GPL for use of the whole code or other sections thereof.
-
-MediaWiki makes use of the Sajax Toolkit by modernmethod,
-http://www.modernmethod.com/sajax/ which has the following license:
-
- 'This work is licensed under the Creative Commons Attribution
- License. To view a copy of this license, visit
- http://creativecommons.org/licenses/by/2.0/ or send a letter
- to Creative Commons, 559 Nathan Abbott Way,
- Stanford, California 94305, USA.'
-
-MediaWiki use Creative Commons license marks to points to their online
-licenses. This content is trademarked and used under a specific license
-available at http://creativecommons.org/policies#trademark
-The restricted content is:
-
-* skins/common/images/cc-by-nc-sa.png
-* skins/common/images/cc-by-sa.png
-
-Many thanks to the Wikimedia regulars for testing and suggestions.
-
-The official website for MediaWiki is located at:
+MediaWiki is a popular and free, open-source wiki software package written in
+PHP. It serves as the platform for Wikipedia and the other projects of the Wikimedia
+Foundation, which deliver content in over 280 languages to more than half a billion
+people each month. MediaWiki's reliability and robust feature set have earned it a
+large and vibrant community of third-party users and developers.
- http://www.mediawiki.org/
+MediaWiki is:
-The code is currently maintained in a Git repository at
-gerrit.wikimedia.org. See http://www.mediawiki.org/wiki/Git for details.
+* feature-rich and extensible, both on-wiki and with over 2,000 extensions;
+* scalable and suitable for both small and large sites;
+* available in your language; and
+* simple to install, working on most hardware/software combinations.
-Please report bugs and make feature requests in our Bugzilla system:
-
-* https://bugzilla.wikimedia.org/
-
-Documentation and discussion on new features may be found at:
-
-* http://www.mediawiki.org/wiki/Manual:FAQ
-* http://www.mediawiki.org/wiki/Documentation
-* http://www.mediawiki.org/wiki/Development
-
-Extensions are listed at:
-
-* http://www.mediawiki.org/wiki/Category:Extensions
-
-If you are setting up your own wiki based on this software, it is highly
-recommended that you subscribe to mediawiki-announce:
-
-* https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce
-
-The mailing list is very low volume, and is intended primarily for announcements
-of new versions, bug fixes, and security issues.
-
-A higher volume support mailing list can be found at:
-
-* https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
-
-Developer discussion takes place at:
-
-* https://lists.wikimedia.org/mailman/listinfo/wikitech-l
+For system requirements, installation, and upgrade details, see the files
+RELEASE-NOTES, INSTALL, and UPGRADE.
-There is also a development and support channel #mediawiki on irc.freenode.net,
-and an unoffical support forum at www.mwusers.com.
+* Ready to get started?
+** https://www.mediawiki.org/wiki/Download
+* Looking for the technical manual?
+** https://www.mediawiki.org/wiki/Manual:Contents
+* Seeking help from a person?
+** https://www.mediawiki.org/wiki/Communication
+* Looking to file a bug report or a feature request?
+** https://bugs.mediawiki.org/
+* Interested in helping out?
+** https://www.mediawiki.org/wiki/How_to_contribute
+
+MediaWiki is the result of global collaboration and cooperation. The CREDITS
+file lists technical contributors to the project. The COPYING file explains
+MediaWiki's copyright and license (GNU General Public License, version 2 or
+later). Many thanks to the Wikimedia community for testing and suggestions.
diff --git a/README.mediawiki b/README.mediawiki
index c9ce5db4..100b9382 100644..120000
--- a/README.mediawiki
+++ b/README.mediawiki
@@ -1,122 +1 @@
-For system requirements, installation and upgrade details, see the files
-RELEASE-NOTES, INSTALL, and UPGRADE.
-
-== MediaWiki ==
-
-MediaWiki is the software used for Wikipedia [http://www.wikipedia.org/] and the
-other Wikimedia Foundation websites. Compared to other wikis, it has an
-excellent range of features and support for high-traffic websites using
-multiple servers (Wikimedia sites peak in the 100K+ requests per second range
-as of January 2012).
-
-While quite usable on smaller sites, you may find you have to "roll your own"
-local documentation, and some aspects of configuration may seem overcomplicated
-because MediaWiki is primarily targeted as an in-house tool.
-
-The MediaWiki software was written by:
-* Lee Daniel Crocker
-* Magnus Manske
-* Jan Hidders
-* Brion Vibber
-* Axel Boldt
-* Geoffrey T. Dairiki
-* Tomasz Wegrzanowski
-* Erik Moeller
-* Tim Starling
-* Gabriel Wicke
-* Antoine Musso
-* Evan Prodromou
-* Ævar Arnfjörð Bjarmason
-* Niklas Laxström
-* Domas Mituzas
-* Rob Church
-* Jens Frank
-* Yuri Astrakhan
-* Aryeh Gregor
-* Aaron Schulz
-* Andrew Garrett
-* Raimond Spekking
-* Alexandre Emsenhuber
-* Siebrand Mazeland
-* Chad Horohoe
-* Roan Kattouw
-* Trevor Pascal
-* Bryan Tong Minh
-* Sam Reed
-* Victor Vasiliev
-* Rotem Liss
-* Platonides
-* Many others (view CREDITS for a more complete list)
-
-The contributors hold the copyright to this work, and it is licensed under the
-terms of the GNU General Public License, version 2 or later (see
-http://www.fsf.org/licensing/licenses/gpl.html). Derivative works and later
-versions of the code must be free software licensed under the same or a
-compatible license. This includes "extensions" that use MediaWiki functions or
-variables; see http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins for
-details.
-
-The Wikimedia Foundation currently has no legal rights to the software.
-
-Sections of code written exclusively by Lee Crocker or Erik Moeller are also
-released into the public domain, which does not impair the obligations of users
-under the GPL for use of the whole code or other sections thereof.
-
-MediaWiki makes use of the Sajax Toolkit by modernmethod,
-http://www.modernmethod.com/sajax/ which has the following license:
-
- 'This work is licensed under the Creative Commons Attribution
- License. To view a copy of this license, visit
- http://creativecommons.org/licenses/by/2.0/ or send a letter
- to Creative Commons, 559 Nathan Abbott Way,
- Stanford, California 94305, USA.'
-
-MediaWiki use Creative Commons license marks to points to their online
-licenses. This content is trademarked and used under a specific license
-available at http://creativecommons.org/policies#trademark
-The restricted content is:
-
-* skins/common/images/cc-by-nc-sa.png
-* skins/common/images/cc-by-sa.png
-
-Many thanks to the Wikimedia regulars for testing and suggestions.
-
-The official website for MediaWiki is located at:
-
- http://www.mediawiki.org/
-
-The code is currently maintained in a Git repository at
-gerrit.wikimedia.org. See http://www.mediawiki.org/wiki/Git for details.
-
-Please report bugs and make feature requests in our Bugzilla system:
-
-* https://bugzilla.wikimedia.org/
-
-Documentation and discussion on new features may be found at:
-
-* http://www.mediawiki.org/wiki/Manual:FAQ
-* http://www.mediawiki.org/wiki/Documentation
-* http://www.mediawiki.org/wiki/Development
-
-Extensions are listed at:
-
-* http://www.mediawiki.org/wiki/Category:Extensions
-
-If you are setting up your own wiki based on this software, it is highly
-recommended that you subscribe to mediawiki-announce:
-
-* https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce
-
-The mailing list is very low volume, and is intended primarily for announcements
-of new versions, bug fixes, and security issues.
-
-A higher volume support mailing list can be found at:
-
-* https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
-
-Developer discussion takes place at:
-
-* https://lists.wikimedia.org/mailman/listinfo/wikitech-l
-
-There is also a development and support channel #mediawiki on irc.freenode.net,
-and an unoffical support forum at www.mwusers.com.
+README \ No newline at end of file
diff --git a/RELEASE-NOTES-1.21 b/RELEASE-NOTES-1.21
deleted file mode 100644
index c0c956c6..00000000
--- a/RELEASE-NOTES-1.21
+++ /dev/null
@@ -1,443 +0,0 @@
-= MediaWiki release notes =
-
-Security reminder: MediaWiki does not require PHP's register_globals. If you
-have it on, turn it '''off''' if you can.
-
-== MediaWiki 1.21.3 ==
-
-This is a security adn maintenance release of the MediaWiki 1.21 branch.
-
-=== Changes since 1.21.2 ===
-
-* (bug 53032) SECURITY: Don't cache when a call could autocreate
-* (bug 55332) SECURITY: Improve css javascript detection
-* (bug 49717) Fix behaviour $wgVerifyMimeType = false; in Upload
-* Fix comma errors in various js files
-* Translations
-
-== MediaWiki 1.21.2 ==
-
-This is a security adn maintenance release of the MediaWiki 1.21 branch.
-
-=== Changes since 1.21.1 ===
-
-* SECURITY: Fix extension detection with 2 .'s
-* SECURITY: Support for the 'gettoken' parameter to action=block and action=unblock,
- deprecated since 1.20, has been removed.
-* SECURITY: Sanitize ResourceLoader exception messages
-* Purge upstream caches when deleting file assets.
-* Unit test suite now runs the AutoLoader tests. Also fixed the autoloading
- entry for the PageORMTableForTesting class though it had no impact.
-
-== MediaWiki 1.21.1 ==
-
-This is a maintenance release of the 1.21 branch.
-
-MediaWiki 1.21 is a stable branch, and is recommended for use in production.
-
-=== Changes since 1.21.0 ===
-
-* An incorrect version number was used for 1.21.0. 1.21.1 has the correct number.
-* A problem with the Oracle SQL table creation was fixed.
-* (PdfHandler extension) Fix warning if pdfinfo fails but pdftext succeeds.
-
-=== Configuration changes in 1.21 ===
-* (bug 48306) $wgAllowChunkedUploads has been added and is false by default.
-* (bug 29374) $wgVectorUseSimpleSearch is now enabled by default.
-* Deprecated $wgAllowRealName is removed. Use $wgHiddenPrefs[] = 'realname'
- instead.
-* (bug 39957) Added $wgUnwatchedPageThreshold, specifying minimum count
- of page watchers required for the number to be accessible to users
- without the unwatchedpages permission.
-* $wgBug34832TransitionalRollback has been removed.
-* (bug 29472) $wgUseDynamicDates has been removed and its functionality
- disabled.
-
-=== New features in 1.21 ===
-* (bug 41769) Add parser method to call parser functions.
-* (bug 38110) Schema changes (adding or dropping tables, indices and
- fields) can be now be done separately from from other changes that
- update.php makes. This is useful in environments that use database
- permissions to restrict schema changes but allow the DB user that
- MediaWiki normally runs as to perform other changes that update.php
- makes. Schema changes can be run separately. See the file UPGRADE
- for more information.
-* (bug 34876) jquery.makeCollapsible has been improved in performance.
-* Added ContentHandler facility to allow extensions to support other content
- than wikitext. See docs/contenthandler.txt for details.
-* New feature was developed for showing high-DPI thumbnails for high-DPI mobile
- and desktop displays (configurable with $wgResponsiveImages).
-* Added new backend to represent and store information about sites and site
- specific configuration.
-* jQuery upgraded from 1.8.2 to 1.8.3.
-* jQuery UI upgraded from 1.8.23 to 1.8.24.
-* Added separate fa_sha1 field to filearchive table. This allows sha1
- searches with the api in miser mode for deleted files.
-* Add initial and programmatic sorting for tablesorter.
-* Add the event "sortEnd.tablesorter", triggered after sorting has completed.
-* The Job system was refactored to allow for different backing stores for
- queues as well as cross-wiki access to queues, among other things. The schema
- for the DB queue was changed to support better concurrency and reduce
- deadlock errors.
-* Added ApiQueryORM class to facilitate creation of query API modules based on
- tables that have a corresponding ORMTable class.
-* (bug 40876) Icon for PSD (Adobe Photoshop) file types.
-* (bug 40641) Implemented Special:Version/Credits with a list of contributors.
-* (bug 7851) Implemented one-click AJAX patrolling.
-* The <data>, <time>, <meta>, and <link> elements are allowed within WikiText
- for use with Microdata.
-* The HTML5 <mark> tag has been whitelisted.
-* Added ParserCloned hook for when the Parser object is cloned.
-* Added AlternateEditPreview hook to allow extensions to replace the page
- preview from the edit page.
-* Added EditPage::showStandardInputs:options hook to allow extensions to add
- new fields to the "editOptions" area of the edit form.
-* Upload stash DB schema altered to improve upload performance.
-* The following global functions are now reporting deprecated warnings in
- debug mode: wfMsg, wfMsgNoTrans, wfMsgForContent, wfMsgForContentNoTrans,
- wfMsgReal, wfMsgGetKey, wfMsgHtml, wfMsgWikiHtml, wfMsgExt, wfEmptyMsg. Use
- the Message class, or the global method wfMessage.
-* Added $wgEnableCanonicalServerLink, off by default. If enabled, a
- <link rel=canonical> tag is added to every page indicating the correct server
- to use.
-* Debug message emitted by wfDebugLog() will now be prefixed with the group
- name when its logged to the default log file. That is the case whenever the
- group has no key in wgDebugLogGroups, that will help triage the default log.
-* (bug 24620) Add types to LogFormatter.
-* jQuery JSON upgraded from 2.3 to 2.4.0.
-* Added GetDoubleUnderscoreIDs hook, for modifying the list of magic words.
-* DatabaseUpdater class has two new methods to ease extensions schema changes:
- dropExtensionIndex and renameExtensionIndex.
-* New preference type - 'api'. Preferences of this type are not shown on
- Special:Preferences, but are still available via the action=options API.
-* (bug 39397) Hide rollback link if a user is the only contributor of the page.
-* $wgPageInfoTransclusionLimit limits the list size of transcluded articles
- on the info action. Default is 50.
-* Added action=createaccount to allow user account creation.
-* (bug 40124) action=options API also allows for setting of arbitrary
- preferences, provided that their names are prefixed with 'userjs-'. This
- officially reenables the feature that was undocumented and defective
- in MW 1.20 (saving preferences using Special:Preferences cleared any
- additional fields) and which has been disabled in 1.20.1 as a part of
- a security fix (bug 42202).
-* Added option to specify "others" as author in extension credits using
- "..." as author name.
-* Added the ability to limit the wall clock time used by shell processes,
- as well as the CPU time. Configurable with $wgMaxShellWallClockTime.
-* Allow memory of shell subprocesses to be limited using Linux cgroups
- instead of ulimit -v, which tends to cause deadlocks in recent versions
- of ImageMagick. Configurable with $wgShellCgroup.
-* Added $wgWhitelistReadRegexp for regex whitelisting.
-* (bug 5346) Categories that are redirects will be displayed italic in
- the category links section at the bottom of a page.
-* (bug 43915) New maintenance script deleteEqualMessages.php.
-* You can now create checkbox option matrices through the HTMLCheckMatrix
- subclass in HTMLForm.
-* WikiText now permits the use of WAI-ARIA's role="presentation" inside of
- html elements and tables. This allows presentational markup, especially
- tables. To be marked up as such.
-* maintenance/sql.php learned the --cluster option. Let you run the script
- on some external cluster instead of the primary cluster for a given wiki.
-* (bug 20281) test the parsing of inline URLs.
-* Added Special:PagesWithProp, which lists pages using a particular page property.
-* Implemented language-specific collations for category sorting for 67 languages
- based in latin, greek and cyrillic alphabets. This allows one to *finally* get
- articles to be correctly sorted on category pages. They are named
- 'uca-<langcode>', where <langcode> is one of: af, ast, az, be, bg, br, bs, ca,
- co, cs, cy, da, de, dsb, el, en, eo, es, et, eu, fi, fo, fr, fur, fy, ga, gd,
- gl, hr, hsb, hu, is, it, kk, kl, ku, ky, la, lb, lt, lv, mk, mo, mt, nl, no,
- oc, pl, pt, rm, ro, ru, rup, sco, sk, sl, smn, sq, sr, sv, tk, tl, tr, tt, uk,
- uz, vi.
-* Added 'CategoryAfterPageAdded' and 'CategoryAfterPageRemoved' hooks.
-* Added 'HistoryRevisionTools' and 'DiffRevisionTools' hooks.
-* Added 'SpecialSearchResultsPrepend' and 'SpecialSearchResultsAppend' hooks.
-* (bug 33186) Add image rotation api "imagerotate"
-* (bug 34040) Add "User rights management" link on user page toolbox.
-* (bug 45526) Add QUnit assertion helper "QUnit.assert.htmlEqual" for asserting
- structual equality of HTML (ignoring insignificant differences like
- quotmarks, order and whitespace in the attribute list).
-
-=== Bug fixes in 1.21 ===
-* (bug 48306) Chunked uploads allow arbitrary data to be dropped on the server
-* (bug 47271) $wgContentHandlerUseDB should be set to false during the upgrade
-* (bug 46084) Sanitize $limitReport before outputting.
-* (bug 46859) Disable external entities in XMLReader.
-* (bug 47251) Disable external entities in Import.
-* (bug 42649) PHP Fatal error: Call to a member function isLocal() on a
- non-object in Title.php.
-* (bug 46493) Special:ProtectedPages results in whitepage when a bad title is protected.
-* (bug 40617) Installer can now customize the logo in LocalSettings.php.
-* (bug 40353) SpecialDoubleRedirect should support interwiki redirects.
-* (bug 40352) fixDoubleRedirects.php should support interwiki redirects.
-* (bug 9237) SpecialBrokenRedirect should not list interwiki redirects.
-* (bug 34960) Drop unused fields rc_moved_to_ns and rc_moved_to_title from
- recentchanges table.
-* (bug 32951) Do not register internal externals with absolute protocol,
- when server has relative protocol.
-* (bug 39005) When purging proxies listed in $wgSquidServers using HTTP PURGE
- method requests, we now send a Host header by default, for Varnish
- compatibility. This also works with Squid in reverse-proxy mode. If you wish
- to support Squid configured in forward-proxy mode, set
- $wgSquidPurgeUseHostHeader to false.
-* (bug 37020) sql.php with readline eats semicolon.
-* (bug 11748) Properly handle optionally-closed HTML tags when Tidy is
- disabled, and don't wrap HTML-syntax definition lists in paragraphs.
-* (bug 41409) Diffs while editing an old revision should again diff against the
- current revision.
-* (bug 41494) Honor $wgLogExceptionBacktrace when logging non-API exceptions
- caught during API execution.
-* (bug 37963) Fixed loading process for user options.
-* (bug 26995) Update filename field on Upload page after having sanitized it.
-* (bug 41793) Contribution links to users with 0 edits on Special:ListUsers
- didn't show up red.
-* (bug 41899) A PHP notice no longer occurs when using the "rvcontinue" API
- parameter.
-* (bug 42036) Account creation emails now contain canonical (not
- protocol-relative) URLs.
-* (bug 41990) Fix regression: API edit with redirect=true and lacking
- starttimestamp and basetimestamp should not cause an edit conflict.
-* (bug 41706) EditPage: Preloaded page should be converted if possible and
- needed.
-* (bug 41886) Rowspans are no longer exploded by tablesorter until the table is
- actually sorted.
-* (bug 2865) User interface HTML elements don't use lang attribute.
- (completed the fix by adding the lang attribute to firstHeading).
-* (bug 42173) Removed namespace prefixes on Special:UncategorizedCategories.
-* (bug 36053) Log in "returnto" feature forgets query parameters if no
- title parameter was specified.
-* (bug 42410) API action=edit now returns correct timestamp for the new edit.
-* (bug 14901) Email notification mistakes log action for new page creation.
- Enotif no longer sends "page has been created" notifications for some log
- actions. The following events now have a correct message: page creation,
- deletion, move, restore (undeletion), change (edit). Parameter
- $CHANGEDORCREATED is deprecated in 'enotif_body' and scheduled for removal in
- MediaWiki 1.23.
-* (bug 457) In the sidebar of Vector, CologneBlue, Monobook, and Monobook-based
- skins, the heading levels have been changed from (variously per skin)
- <h4>, <h5> or <h6> to only <h3>s, with a <h2> hidden heading above them.
- If you are styling or scripting the headings in a custom way, this change
- will require updates to your site's CSS or JS.
-* (bug 41342) jquery.suggestions should cancel any active (async) fetches
- before it triggers another fetch.
-* (bug 42184) $wgUploadSizeWarning missing second variable.
-* (bug 34581) removeUnusedAccounts.php maintenance script now ignores newuser
- log when determining whether an account is used.
-* (bug 43379) Gracefully fail if rev_len is unavailable for a revision on the
- History page.
-* (bug 42949) API no longer assumes all exceptions are MWException.
-* (bug 41733) Hide "New user message" (.usermessage) element from printable view.
-* (bug 39062) Special:Contributions will display changes that don't have
- a parent id instead of just an empty bullet item.
-* (bug 37209) "LinkCache doesn't currently know about this title" error fixed.
-* wfMerge() now works if $wgDiff3 contains spaces
-* (bug 43052) mediawiki.action.view.dblClickEdit.dblClickEdit should trigger
- ca-edit click instead opening URL directly.
-* (bug 43964) Invalid value of "link" parameter in <gallery> no longer produces
- a fatal error.
-* (bug 44775) The username field is not pre-filled when creating an account.
-* (bug 45069) wfParseUrl() no longer produces a PHP notice if passed a "mailto:"
- URL without address
-* (bug 45012) Creating an account by e-mail can no longer show a
- "password mismatch" error.
-* (bug 44599) On Special:Version, HEADs for submodule checkouts (e.g. for
- extensions) performed using Git 1.7.8+ should now appear.
-* (bug 42184) $wgUploadSizeWarning missing second variable
-* (bug 40326) Check if files exist with a different extension during uploading
-* (bug 34798) Updated CSS for Atom/RSS recent changes feeds to match on-wiki diffs.
-* (bug 42430) Calling numRows on MySQL no longer propagates unrelated errors.
-* (bug 44719) Removed mention of non-existing maintenance/migrateCurStubs.php
- script in includes/DefaultSettings.php
-* (bug 45143) jquery.badge: Treat non-Latin variants of zero as zero as well.
-* (bug 46151) mwdocgen.php should not ignore exit code of doxygen command.
-* (bug 41889) Fix $.tablesorter rowspan exploding for complex cases.
-* (bug 47489) Installer now automatically selects the next-best database type if
- the PHP mysql extension is not loaded, preventing fatal errors in some cases.
-* (bug 47202) wikibits: FF2Fixes.css should not be loaded in Firefox 20.
-
-=== API changes in 1.21 ===
-* BREAKING CHANGE: Chunked uploads are now disabled by default. You can re-enable
- them by setting $wgAllowChunkedUploads=true
-* BREAKING CHANGE: list=logevents output format changed for details of some log
- types. Specifically, details that were formerly reported under a key like
- "4::foo" will now be reported under a key of simply "foo".
-* BREAKING CHANGE: '??_badcontinue' error code was changed to '??badcontinue'
- for all query modules.
-* prop=revisions can now report the contentmodel and contentformat.
- See docs/contenthandler.txt.
-* action=edit and action=parse now support contentmodel and contentformat
- parameters to control the interpretation of page content.
- See docs/contenthandler.txt for details.
-* (bug 35693) ApiQueryImageInfo now suppresses errors when unserializing metadata.
-* (bug 40111) Disable minor edit for page/section creation by API.
-* (bug 41042) Revert change to action=parse&page=... behavior when the page
- does not exist.
-* (bug 27202) Add timestamp sort to list=allimages.
-* (bug 43137) Don't return the sha1 of revisions through the API if the content is
- revision-deleted.
-* ApiQueryImageInfo now also returns imageinfo for redirects.
-* list=alltransclusions added to enumerate every instance of page embedding
-* list=alllinks & alltransclusions now allow both 'from' and 'continue' in
- the same query. When both are present, 'from' is simply ignored.
-* list=alllinks & alltransclusions now allow 'unique' in generators, to yield
- a list of all link/template target pages instead of source pages.
-* ApiQueryBase adds 'badcontinue' error code if module has 'continue' parameter.
-* (bug 35885) Removed version parameter and all getVersion() methods.
-* action=options now takes a "resetkinds" option, which allows only resetting
- certain types of preferences when the "reset" option is set.
-* (bug 36751) ApiQueryImageInfo now returns imageinfo for the redirect target
- when queried with &redirects=.
-* (bug 31849) ApiQueryImageInfo no longer gets confused when asked for info on
- a redirect and its target.
-* (bug 43849) ApiQueryImageInfo no longer throws exceptions with ForeignDBRepo
- redirects.
-* On error, any warnings generated before that error will be shown in the result.
-* action=help supports generalized submodules (modules=query+value), querymodules obsolete
-* ApiQueryImageInfo continuation is more reliable. The only major change is
- that the imagerepository property will no longer be set on page objects not
- processed in the current query (i.e. non-images or those skipped due to
- iicontinue).
-* Add supports for all pageset capabilities - generators, redirects, converttitles to
- action=purge and action=setnotificationtimestamp.
-* (bug 43251) prop=pageprops&ppprop= now accepts multiple props to query.
-* ApiQueryImageInfo will now limit the number of calls to File::transform made
- in any one query. If there are too many, iicontinue will be returned.
-* action=query&meta=siteinfo&siprop=general will now return the regexes used for
- link trails and link prefixes. Added for Parsoid support.
-* Added an API query module list=pageswithprop, which lists pages using a
- particular page property.
-* Added an API query module list=pagepropnames, which lists all page prop names
- currently in use on the wiki.
-* (bug 44921) ApiMain::execute() will now return after the CORS check for an
- HTTP OPTIONS request.
-* (bug 44923) action=upload works correctly if the entire file is uploaded in
- the first chunk.
-* Added 'continue=' parameter to streamline client iteration over complex query results
-* (bug 44909) API parameters may now be marked as type "upload", which is now
- used for action=upload's 'file' and 'chunk' parameters. This type will raise
- an error during parameter validation if the parameter is given but not
- recognized as an uploaded file.
-* (bug 44244) prop=info may now return the number of people watching each page.
-* (bug 33304) list=allpages will no longer return duplicate entries when
- querying protection.
-* (bug 33304) list=allpages will now find really old indefinite protections.
-* (bug 45937) meta=allmessages will report a syntactically invalid lang as a
- proper error instead of as an uncaught exception.
-* (bug 48542) SpecialStatistics::getOtherStats() now uses the user language.
-
-=== API internal changes in 1.21 ===
-* BREAKING CHANGE: ApiPageSet constructor now has two params instead of three, with only the
- first one keeping its meaning. ApiPageSet is now derived from ApiBase.
-* BREAKING CHANGE: ApiQuery::newGenerator() and executeGeneratorModule() were deleted.
-* For debugging only, a new global $wgDebugAPI removes many API restrictions when true.
- Never use on the production servers, as this flag introduces security holes.
- Whenever enabled, a warning will also be added to all output.
-* ApiModuleManager now handles all submodules (actions,props,lists) and instantiation
-* Query stores prop/list/meta as submodules
-* ApiPageSet can now be used in any action to process titles/pageids/revids or any generator.
-* ApiQueryGeneratorBase::setGeneratorMode() now requires a pageset param.
-* $wgAPIGeneratorModules is now obsolete and will be ignored.
-* Added flags ApiResult::OVERRIDE and ADD_ON_TOP to setElement() and addValue()
-* Internal API calls will now include <warnings> in case of unused parameters
-
-=== Languages updated in 1.21 ===
-
-MediaWiki supports over 350 languages. Many localisations are updated
-regularly. Below only new and removed languages are listed, as well as
-changes to languages because of Bugzilla reports.
-
-* South Azerbaijani (azb) added.
-* (bug 30040) Autonym for nds-nl is now 'Nedersaksies' (was 'Nedersaksisch').
-* (bug 45436) Autonym for pi (Pali) is now 'पालि' (was ''पाळि').
-* (bug 34977) Now formatted numbers in Spanish use space as separator
- for thousands, as mandated by the Real Academia Española.
-* (bug 35031) Kurdish formatted numbers now use period and comma
- as separators for thousands and decimals respectively.
-
-=== Other changes in 1.21 ===
-* BREAKING CHANGE: (bug 44385) Removed the jquery.collapsibleTabs module and
- moved it to the Vector extension. It was entirely Vector-extension-specific,
- deeply interconnected with the extension, and this functionality really
- belongs to the extension instead of the skin anyway. In the unlikely case you
- were using it, you have to either copy it to your extension, or install the
- Vector extension (and possibly disable its features using config settings if
- you don't want them).
-* BREAKING CHANGE: Filenames of maintenance scripts were standardized into
- lowerCamelCase format, and made more explicit:
- - clear_stats.php -> clearCacheStats.php
- - clear_interwiki_cache.php -> clearInterwikiCache.php
- - initStats.php -> initSiteStats.php
- - proxy_check.php -> proxyCheck.php
- - stats.php -> showCacheStats.php
- - showStats.php -> showSiteStats.php.
- Class names were renamed accordingly:
- - clear_stats -> ClearCacheStats
- - InitStats -> InitSiteStats
- - CacheStats -> ShowCacheStats
- - ShowStats -> ShowSiteStats.
-* BREAKING CHANGE: (bug 38244) Removed the mediawiki.api.titleblacklist module
- and moved it to the TitleBlacklist extension.
-* Experimental IBM DB2 support was removed due to lack of interest and maintainership.
-
-== Compatibility ==
-
-MediaWiki 1.21 requires PHP 5.3.2 or later.
-
-MySQL is the recommended DBMS. PostgreSQL or SQLite can also be used, but
-support for them is somewhat less mature. There is experimental support for
-Oracle.
-
-The supported versions are:
-
-* MySQL 5.0.2 or later
-* PostgreSQL 8.3 or later
-* SQLite 3.3.7 or later
-* Oracle 9.0.1 or later
-
-== Upgrading ==
-
-1.21 has several database changes since 1.20, and will not work without schema
-updates. Note that due to changes to some very large tables like the revision
-table, the schema update may take quite long (minutes on a medium sized site,
-many hours on a large site).
-
-If upgrading from before 1.11, and you are using a wiki as a commons
-repository, make sure that it is updated as well. Otherwise, errors may arise
-due to database schema changes.
-
-If upgrading from before 1.7, you may want to run refreshLinks.php to ensure
-new database fields are filled with data.
-
-If you are upgrading from MediaWiki 1.4.x or earlier, you should upgrade to
-1.5 first. The upgrade script maintenance/upgrade1_5.php has been removed
-with MediaWiki 1.21.
-
-Don't forget to always back up your database before upgrading!
-
-See the file UPGRADE for more detailed upgrade instructions.
-
-For notes on 1.19.x and older releases, see HISTORY.
-
-== Online documentation ==
-
-Documentation for both end-users and site administrators is available on
-MediaWiki.org, and is covered under the GNU Free Documentation License (except
-for pages that explicitly state that their contents are in the public domain):
-
- https://www.mediawiki.org/wiki/Documentation
-
-== Mailing list ==
-
-A mailing list is available for MediaWiki user support and discussion:
-
- https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
-
-A low-traffic announcements-only list is also available:
-
- https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce
-
-It's highly recommended that you sign up for one of these lists if you're
-going to run a public MediaWiki, so you can be notified of security fixes.
-
-== IRC help ==
-
-There's usually someone online in #mediawiki on irc.freenode.net.
diff --git a/RELEASE-NOTES-1.22 b/RELEASE-NOTES-1.22
new file mode 100644
index 00000000..dad24388
--- /dev/null
+++ b/RELEASE-NOTES-1.22
@@ -0,0 +1,610 @@
+Security reminder: MediaWiki does not require PHP's register_globals. If you
+have it on, turn it '''off''' if you can.
+
+== MediaWiki 1.22 ==
+
+THIS IS NOT A RELEASE YET
+
+MediaWiki 1.22 is an alpha-quality branch and is not recommended for use in
+production.
+
+* Breaking Changes in 1.22
+* New features in 1.22
+* Configuration changes in 1.22
+* Bug fixes in 1.22
+* API changes in 1.22
+* Languages updated in 1.22
+* Other changes in 1.22
+
+=== Breaking Changes in 1.22 ===
+* BREAKING CHANGE: (bug 41729) Display editsection links next to headings. Also
+ change their class name from .editsection to .mw-editsection and place them at
+ the end of the heading element instead of the beginning. Client-side code and
+ screen-scrapers will have to be adjusted to handle both cases (old HTML will
+ still be visible on cached page renders until they are purged); extensions
+ using the DoEditSectionLink or EditSectionLink hooks might need adjustments as
+ well.
+* (bug 55818) BREAKING CHANGE: Removed undocumented 'Debug' hook in wfDebug.
+ This resolves an infinite loop when using $wgDebugFunctionEntry = true.
+* BREAKING CHANGE: action=parse no longer returns all langlinks for the page
+ with prop=langlinks by default. The new effectivelanglinks parameter will
+ request that the LanguageLinks hook be called to determine the effective
+ language links.
+* BREAKING CHANGE: list=allpages, list=langbacklinks, and prop=langlinks do not
+ apply the new LanguageLinks hook, and thus only consider language links
+ stored in the database.
+* BREAKING CHANGE: Implementation of MediaWiki's JS and JSON value encoding
+ has changed:
+** MediaWiki no longer supports PHP installations in which the native JSON
+ extension is missing or disabled.
+** XmlJsCode objects can no longer be nested inside objects or arrays.
+ (For Xml::encodeJsCall(), this individually applies to each argument.)
+** The sets of characters escaped by default, along with the precise escape
+ sequences used, have changed (except for the Xml::escapeJsString()
+ function, which is now deprecated).
+* BREAKING CHANGE: The Services_JSON class has been removed. If necessary,
+ be sure to upgrade affected extensions at the same time (e.g. Collection).
+* BREAKING CHANGE: Legacy skins Simple, MySkin, Chick, Standard and Nostalgia
+ were all removed. (Nostalgia was moved to an extension.) The SkinLegacy and
+ LegacyTemplate classes that supported them were removed as well and are now a
+ part of the Nostalgia extension.
+* BREAKING CHANGE: The "ExternalAuth" authentication subsystem was removed, along
+ with its associated globals of $wgExternalAuthType, $wgExternalAuthConf,
+ $wgAutocreatePolicy and $wgAllowPrefChange. Affected users are encouraged to
+ use AuthPlugin for external authentication/authorization needs.
+* BREAKING CHANGE: mw.util.tooltipAccessKeyRegexp: The match group for the
+ accesskey character is now $6 instead of $5.
+* BREAKING CHANGE: meta keywords are no longer supported. A <meta name="keywords"
+ will no longer be output and OutputPage::addKeyword no longer exists.
+* BREAKING CHANGE: The EditSectionLink hook was removed after being
+ deprecated since MediaWiki 1.14. Use DoEditSectionLink instead.
+* (bug 50310) BREAKING CHANGE: wikibits: Drop support for mwCustomEditButtons.
+ It defaults to an empty array and emits mw.log.warn when accessed.
+* BREAKING CHANGE: Special:Disambiguations has been removed from MediaWiki core.
+ Functions related to disambiguation pages are now handled by the Disambiguator
+ extension (https://www.mediawiki.org/wiki/Extension:Disambiguator) (bug
+ 35981).
+* BREAKING CHANGE: The 'mediawiki.legacy.wikiprintable' module has been removed.
+ The skins/common/wikiprintable.css file no longer exists. Return value of
+ Skin#commonPrintStylesheet is ignored. Please use the 'mediawiki.legacy.commonPrint'
+ module instead or base your skin on SkinTemplate.
+* BREAKING CHANGE: The module 'mediawiki.legacy.IEFixes' has been removed as it was
+ unused. The file skins/common/IEFixes.js remains but is only used by wikibits.
+ The file never contained any re-usable components. To use it in a skin, load
+ 'mediawiki.legacy.wikibits' (which IEFixes depends on) and that will import
+ IEFixes automatically if user agent conditions are met.
+
+=== New features in 1.22 ===
+* You can now install extensions using Composer.
+ See https://www.mediawiki.org/wiki/Composer
+* (bug 44525) mediawiki.jqueryMsg can now parse (whitelisted) HTML elements and attributes.
+* (bug 33454) Language::sprintfDate now has a timezone parameter, and supports
+ the "eIOPTZ" formatting characters.
+* EditWarning: A warning is shown when an editor leaves the edit form without
+ saving (enabled by default, users can opt-out via the 'useeditwarning'
+ preference). This feature was moved from the Vector extension, and is now part
+ of core for all skins. Take care when upgrading that you don't use an older
+ version of the Vector extension as this feature may conflict.
+* New 'mediawiki.ui' CSS module providing mw-ui-* styles for buttons and a
+ compact vertical form layout.
+* HTMLForm supports a new display format 'vform' which applies this compact vertical
+ layout and button styling. Special:PasswordReset uses this format.
+* New versions of login (Special:UserLogin) and create account
+ (Special:UserLogin/signup) forms using the "vform" compact vertical form layout.
+ These forms use new messages that assume a "Help logging in" link, see
+ https://www.mediawiki.org/wiki/Manual:Page_customizations;
+ https://www.mediawiki.org/wiki/Account_creation_user_experience/Strings lists the
+ message key changes.
+* (bug 23343) Implemented ability to apply IP blocks to the contents of X-Forwarded-For headers
+ by adding a new configuration variable $wgApplyIpBlocksToXff (disabled by default).
+* The new hook 'APIGetPossibleErrors' to modify the list of possible errors was
+ added.
+* (bug 25592) LogEventsList::showLogExtract() will now ignore various
+ Pager-related WebRequest parameters by default, as this is overwhelmingly
+ likely to be what was intended by users of the method. If any caller wishes
+ to use these parameters, the new param 'useRequestParams' may be set to true.
+* mw.util.addPortletLink: Tooltip is no longer required to be plain (without
+ an accesskey in it already). As such it now rountrips. Creating a link with a
+ message as tooltip, grabbing the title attribute and using it to create
+ another portlet will work as expected.
+* (bug 6747) {{ROOTPAGENAME}} introduced, contains the name of the topmost
+ page without namespace.
+* (bug 45535) introduced the new 'LanguageLinks' hook for manipulating the
+ language links associated with a page before display.
+* Chosen (http://harvesthq.github.io/chosen/) was added as module 'jquery.chosen'
+* HTMLForm will turn multiselect checkboxes into a Chosen interface when setting cssclass 'mw-chosen'
+* rebuildLocalisationCache learned --lang option. Let you rebuild l10n caches
+ of the specified languages instead of all of them.
+* New GetNewMessagesAlert hook allowing extensions to disable or modify the new
+ messages alert
+* New wgUserNewMsgRevisionId JS global for logged in users. This will be null
+ if the user has no new talk page messages. Otherwise it will be set to the
+ revision ID of the oldest new talk page message. This will allow gadgets and
+ extensions to create their own new message alerts on the client side.
+* mediawiki.log: Added log.warn wrapper (uses console.warn and console.trace).
+* mediawiki.log: Implemented log.deprecate. This method defines a property and
+ uses ES5 getter/setter to emit a warning when they are used.
+* $wgCascadingRestrictionLevels was added, allowing one to specify restriction levels
+ which can be cascading (previously 'sysop' was hard-coded as the only one).
+* XHTML5 support has been improved. If you set $wgMimeType = 'application/xhtml+xml'
+ MediaWiki will try outputting markup acording to XHTML5 rules.
+* Altered hook 'ProtectionForm::save', adding the reason page protection is
+ changed as third parameter.
+* New hook 'TitleSquidURLs' for manipulating the list of URLs to be purged from
+ HTTP caches when a page is changed.
+* Changed the patrolling system to always show the link for patrolling in case the
+ current revision is patrollable. This also removed the usage of the rcid URI parameters.
+* Oracle DB backend now supports Database Resident Connection Pooling (DRCP).
+ Can be enabled by setting $wgDBOracleDRCP=true.
+ Requires Oracle DB 11gR1 or above, enabled DRCP inside the DB itself and a
+ propper connect string.
+ More about DRCP can be found at:
+ http://www.oracle-base.com/articles/11g/database-resident-connection-pool-11gr1.php
+* Add a new parameter $patrolFooterShown to hook ArticleViewFooter so the hook
+ handlers can take further action based on the status of the patrol footer
+* A new hook TitleQuickPermissions was added to allow overriding of quick
+ permissions in the Title class.
+* LinkCache singleton can now be altered or cleared, letting one to specify
+ another instance that does not rely on a database backend.
+* MediaWiki's PHPUnit tests can now use PHPUnit installed using composer --dev.
+* (bug 43689) The lists of templates used on the page and hidden categories it
+ is a member of, shown below the edit form, are now collapsible (and collapsed
+ by default).
+* Parser profiling data, formerly only available in the "NewPP limit report"
+ HTML comment, is now also displayed at the bottom of page previews.
+* Added ParserLimitReportPrepare and ParserLimitReportFormat hooks, deprecated
+ ParserLimitReport hook.
+* New user rights have been added to increase granularity in rights management
+ for extensions such as OAuth:
+** editmyusercss controls whether a user may edit their own CSS subpages.
+** editmyuserjs controls whether a user may edit their own JS subpages.
+** viewmywatchlist controls whether a user may view their watchlist.
+** editmywatchlist controls whether a user may edit their watchlist.
+** viewmyprivateinfo controls whether a user may access their private
+ information (e.g. registered email address, real name).
+** editmyprivateinfo controls whether a user may change their private
+ information.
+** editmyoptions controls whether a user may change their preferences.
+* Add new hook AbortTalkPageEmailNotification, this will be used to determine
+ whether to send the regular talk page email notification
+* Action classes registered in $wgActions are now also supported in the form of
+ a callback (which returns an instance of Action) instead of providing the name
+ of a subclass of Action.
+* (bug 46513) Vector: Add the collapsibleTabs script from the Vector extension.
+* Added $wgRecentChangesFlags for defining new flags for RecentChanges and
+ watchlists.
+* (bug 40518) mw.toolbar: Implemented mw.toolbar.addButtons for adding multiple
+ button objects in one call.
+* Rights used for the default protection levels ('sysop' and 'autoconfirmed')
+ are now used just for that purpose, instead of overloading other rights. This
+ allows easy granting of the ability to edit sysop-protected pages without
+ also granting the ability to protect and unprotect.
+* (bug 48256) Make brackets in section edit links accessible to CSS.
+ They are now wrapped in <span class="mw-editsection-bracket" />.
+* (bug 8480) Allow handler specific parameters in galleries (like page number)
+* jquery.client: Add detection for Opera 15 and Internet Explorer 11.
+* Change tags (used by the AbuseFilter extension) are now shown on diff pages.
+* Change tag lists (shown on recent changes, watchlist, user contributions,
+ history pages, diff pages) now include a link to Special:Tags to distinguish
+ them from edit summaries.
+* Added a new method and hook, User::isEveryoneAllowed() and
+ UserIsEveryoneAllowed, for use in situations where a "does everyone have this
+ right?" check is used to avoid more expensive checks.
+* (bug 14431) Display "(No difference)" instead of an empty diff (when comparing
+ revisions in the history or when previewing changes while editing).
+* New hook 'IsUploadAllowedFromUrl' is added which can be used to intercept uploads by
+ URL, useful for blacklisting specific URLs
+* (bug 21912) Watchlist token implementation has been refactored and
+ Special:ResetTokens was added to allow users to reset their tokens
+ instead of presenting them in Preferences.
+* Special:PrefixIndex now lets you strip the searched prefix from the displayed
+ titles. Given a list of articles named Bug1, Bug2, you can now transclude the
+ list of bug numbers using: {{Special:PrefixIndex/Bug|stripprefix=1}}.
+ The special page form received a new checkbox matching that option.
+* (bug 23580) Implement javascript callback interface "mw.hook".
+* (bug 30713) New mw.hook "wikipage.content".
+* (bug 40430) jquery.placeholder gets a new parameter to set the attribute value
+ to be used.
+* $wgHTCPMulticastRouting renamed $wgHTCPRouting since it accepts unicast.
+* $wgHTCPRouting rules can now be passed an array of hosts/ports to send purge
+ too. Can be used whenever several multicast group could be interested by a
+ specific purge.
+* (bug 25931) Add Special:RandomInCategory.
+* mediawiki.util: addPortletLink now supports passing a jQuery object as nextnode.
+* <wbr> can now be used inside WikiText.
+* WebResponse::setcookie is much more featureful. Callers using PHP's
+ setcookie() or setrawcookie() should begin using this instead.
+* New hook WebResponseSetCookie, called from WebResponse::setcookie().
+* New hook ResetSessionID, called when the session id is reset.
+* Add a mode parameter to <gallery> tag with potential options of "traditional",
+ "nolines", "packed", "packed-overlay", or "packed-hover".
+* (bug 47399) A success message is now displayed after changing the password.
+* Make thumb.php give HTTP redirects for file redirects
+* (bug 30607) Special:ListFiles can now show old versions of files. Additionally
+ Special:AllMyUploads was introduced so the user can get a list of all things
+ they have ever uploaded, even if it was subsequently overriden.
+* Introduced Special:MyFiles and Special:AllMyFiles as an alias for Special:MyUploads
+ and Special:AllMyUploads respectively.
+* IPv6 addresses in X-Forwarded-For headers are now normalised before checking
+ against allowed proxy lists.
+* Add deferrable update support for callback/closure.
+* Add TitleMove hook before page renames.
+* Revision deletion backend code is moved out of SpecialRevisiondelete
+* Added {{REVISIONSIZE}} variable to get the current size of a revision.
+* Add support for the LESS stylesheet language to ResourceLoader. LESS is a
+ stylesheet language that compiles into CSS. ResourceLoader file modules may
+ include LESS style files; ResourceLoader will compile these files into CSS
+ before sending them to the client.
+** The $wgResourceLoaderLESSVars configuration variable is an associative array
+ mapping variable names to string CSS values. These variables are considered
+ declared for all LESS files. Additional variables may be registered by
+ adding keys to the array.
+** $wgResourceLoaderLESSFunctions is an associative array of custom LESS
+ function names to PHP callables. See <http://leafo.net/lessphp/docs/#custom_functions>
+ for more details regarding custom functions.
+** $wgResourceLoaderLESSImportPaths is an array of file system paths. Files
+ referenced in LESS '@import' statements are looked up here first.
+* ResourceLoader supports hashes as module cache invalidation trigger (instead
+ of or in addition to timestamps).
+* Added $wgExtensionEntryPointListFiles for use in mergeMessageFileList.php.
+* Added a hook, APIQuerySiteInfoStatisticsInfo, to allow extensions to modify
+ the output of the API query meta=siteinfo&siprop=statistics
+* Primary keys have been added to both the archive table and the externallinks
+ tables.
+* Added $wgEnableParserLimitReporting to control whether the NewPP limit report is
+ output in a HTML comment.
+* The 'UnwatchArticle' and 'WatchArticle' hooks now support a Status object
+ instead of just a boolean return value to abort the hook.
+* Added a hook, SpecialWatchlistGetNonRevisionTypes, to allow extensions
+ with custom recentchanges entries to hook into the Watchlist without
+ clobbering each other.
+* A hidden, empty input field was added to the edit form, and any edit that fills
+ it in will be rejected. This prevents against the simplest form of spambots.
+ Previously in the "SimpleAntiSpam" extension by Ryan Schmidt.
+* populateRevisionLength.php maintenance script updated to also populate
+ archive.ar_len field.
+* (bug 43571) DatabaseMySQLBase learned to list views, optionally filtered by a
+ prefix. Also fixed PHPUnit test suite when using a MySQL backend containing
+ views.
+
+=== Configuration changes in 1.22 ===
+* $wgRedirectScript was removed. It was unused.
+* Removed $wgLocalMessageCacheSerialized, it is now always true.
+* $wgVectorUseIconWatch is now enabled by default.
+* $wgCascadingRestrictionLevels was added.
+* ftps, ssh, sftp, xmpp, sip, sips, tel, sms, bitcoin, magnet, urn, and geo
+ have been whitelisted inside of $wgUrlProtocols.
+* $wgDocType and $wgDTD have been removed and are no longer used for the DOCTYPE.
+* $wgHtml5 is no longer used by core. Setting it to false will no longer disable HTML5.
+ It is still set to true for extension compatibility but doing so in extensions is deprecated.
+* $wgXhtmlDefaultNamespace is no longer used by core. Setting it will no longer change the
+ xmlns used by MediaWiki. Reliance on this variable by extensions is deprecated.
+* $wgHandheldStyle was removed.
+* $wgHandheldForIPhone was removed.
+* $wgJsMimeType is no longer used by core. Most usage has been removed since
+ HTML output is now exclusively HTML5.
+* $wgDBOracleDRCP added. True enables persistent connection with DRCP on Oracle.
+* $wgLogAutopatrol added to allow disabling logging of autopatrol edits in the logging table.
+ default for $wgLogAutopatrol is true.
+* The 'edit' right no longer allows for editing a user's own CSS and JS.
+* New rights 'editmyusercss', 'editmyuserjs', 'viewmywatchlist',
+ 'editmywatchlist', 'viewmyprivateinfo', 'editmyprivateinfo', and
+ 'editmyoptions' restrict actions that were formerly allowed by default. They
+ have been added to the default for $wgGroupPermissions['*'].
+* The 'editprotected' right no longer allows bypassing of all page protection
+ restrictions. Any group using it for this purpose will now need to have all
+ the individual rights listed in $wgRestrictionTypes for the same effect.
+* The 'protect' and 'autoconfirmed' rights are no longer used for the default
+ page protection levels. The rights 'editprotected' and 'editsemiprotected'
+ are now used for this purpose instead.
+* (bug 40866) wgOldChangeTagsIndex removed.
+* $wgNoFollowDomainExceptions now only matches entire domains. For example,
+ an entry for 'bar.com' will still match 'foo.bar.com' but not 'foobar.com'.
+* $wgCopyUploadTimeout and $wgCopyUploadAsyncTimeout added to change the timeout times for
+ fetching the file during upload by url.
+* New key added to $wgGalleryOptions - $wgGalleryOptions['mode'] to set
+ default gallery mode.
+* New hook 'GalleryGetModes' to allow extensions to make new gallery modes.
+* The checkbox for staying in HTTPS displayed on the login form when $wgSecureLogin is
+ enabled has been removed. Instead, whether the user stays in HTTPS will be determined
+ based on the user's preferences, and whether they came from HTTPS or not.
+* $wgRC2UDPAddress, $wgRC2UDPInterwikiPrefix, $wgRC2UDPOmitBots, $wgRC2UDPPort,
+ and $wgRC2UDPPrefix configuration options have been deprecated in favor of a
+ $wgRCFeeds configuration array. $wgRCFeeds makes both the format and
+ destination of recent change notifications customizable, and allows for
+ multiple destinations to be specified.
+* (bug 53862) portal-url, currentevents-url and helppage have been removed from the
+ default Sidebar.
+* The 'vector-simplesearch' preference is now enabled by default. Previously
+ it was only enabled if the Vector extension was installed.
+* The precise format of metric datagrams produced by the UDP profiler and stats counter
+ may now be specified as $wgUDPProfilerFormatString and $wgStatsFormatString,
+ respectively.
+* (bug 54597) $wgBlockOpenProxies, $wgProxyPorts, $wgProxyScriptPath, and
+ $wgProxyMemcExpiry have been removed, along with the open proxy scanner
+ script they were added for.
+* Default value of $wgMaxShellMemory has been tripled (it's now 300 MB).
+
+=== Bug fixes in 1.22 ===
+* (bug 47271) $wgContentHandlerUseDB should be set to false during the upgrade
+* Disable Special:PasswordReset when $wgEnableEmail is false. Previously one
+ could still navigate to the page by entering the URL directly.
+* (bug 47138) Fixed a fatal error when a blocked user tries to automatically
+ create an account on login due external authentication in some circumstances.
+* (bug 23393) HTML <hN> headings containing line breaks are now handled
+ correctly.
+* (bug 45803) Whitespace within == Headline == syntax and within <hN> headings
+ is now non-significant and not preserved in the HTML output.
+* (bug 47218) Special:BlockList now handles correctly user names with spaces
+ when passed as subpage.
+* Pager's properly validate which fields are allowed to be sorted on.
+* mw.util.tooltipAccessKeyRegexp: The regex now matches "option-" as well.
+ Support for Mac "option" was added in 1.16, but the regex was never updated.
+* (bug 46768) Usernames of blocking users now display correctly, even if numeric.
+* (bug 39590) Self-transclusions now show the most up to date result always
+ after save instead of being a revision behind.
+* A bias in wfRandomString() toward digits 1-7 has been corrected. Generated
+ strings will now start with digits 0 and 8-f as often as they should.
+* (bug 45371) Removed Parser_LinkHooks and CoreLinkFunctions classes.
+* (bug 41545) Allow <kbd>, <samp>, and <var> to be nested like allowed in html.
+* PLURAL magic word no longer causes a PHP notice when no matching form exists.
+* (bug 36641) Patrol page links no longer show on non-existent revisions.
+* (bug 35810) Pages not linked from Special:RecentChanges or Special:NewPages
+ are patrollable now.
+* (bug 30213) JavaScript for search suggestions is now disabled when the API
+ is disabled, and AJAX patrolling and watching are now disabled when use of
+ the write API is not allowed.
+* (bug 48294) API: Fix chunk upload async mode.
+* (bug 46749) Broken files tracking category removed from pages if an image
+ with that name is uploaded.
+* (bug 14176) System messages that are empty were previously incorrectly treated
+ as non-existent, causing a fallback to the default. This stopped users from
+ overriding system messages to make them blank.
+* (bug 48319) action=parse no longer returns an error if passed none of 'oldid',
+ 'pageid', 'page', 'title', and 'text' (e.g. if only passed 'summary'). A
+ warning will instead be issued if 'title' is non-default, unless no props are
+ requested.
+* Special:Recentchangeslinked will now include upload log entries
+* (bug 41281) Fixed ugly output if file size could not be extracted for multi-page media.
+* (bug 50315) list=logevents API module will now output log entries by anonymous users.
+* (bug 38911) Handle headers with rowspan in jquery.tablesorter
+* (bug 658) Converted the table of contents on wiki pages from <table> to <div>
+ and adjusted skin CSS accordingly. The CSS was carefully crafted to be
+ backwards-compatible in all reasonable cases (uses of the __TOC__ magic word,
+ the #toc CSS id and the .toc CSS class). However, particularly bad abuse of
+ the id or the class can possibly break.
+* CSSJanus now supports rgb, hsl, rgba, and hsla color syntaxes.
+* Special:Listfiles can no longer be sorted by image name when filtering
+ by user in miser mode.
+* (bug 49074) CSSJanus: Handle values of border-radius correctly.
+* Handle relative inclusions ({{../name}}) in main namespace with subpages
+ enabled correctly (previously MediaWiki tried to include Template:Parent/name
+ instead of just Parent/name).
+* Added $wgAPIUselessQueryPages to allow extensions to flag their query pages
+ for non-inclusion in ApiQueryQueryPages.
+* (bug 50870) mediawiki.notification: Notification area should remain visible
+ when scrolled down.
+* (bug 13438) Special:MIMESearch no longer an expensive special page.
+* (bug 48342) Fixed a fatal error when $wgValidateAllHtml is set to true and
+ the function apache_request_headers() function is not available.
+* (bug 33399) LivePreview: Re-run wikipage content handlers
+ (jquery.makeCollapsible, jquery.tablesorter) after preview content is loaded.
+* (bug 51891) Fixed PHP notice on Special:PagesWithProp when no properties
+ are defined.
+* (bug 52006) Corrected documentation of $wgTranscludeCacheExpiry.
+* (bug 52077) The APIEditBeforeSave hook is giving the content of the whole
+ revision as second argument now, rather than just the current section.
+* (bug 49694) $wgSpamRegex is now also applied on the new section headline text
+ adding a new topic on a page
+* (bug 41756) Improve treatment of multiple comments on a blank line.
+* (bug 51064) Purge upstream caches when deleting file assets.
+* (bug 39012) File types with a mime that we do not know the extension for
+ can no longer be uploaded as an extension that we do know the mime type
+ for.
+* (bug 51742) Add data-sort-value for better sorting of hitcounts Special:Tags
+* (bug 26811) On DB error pages, server hostnames are now hidden when both
+ $wgShowHostnames and $wgShowSQLErrors are false.
+* (bug 6200) line breaks in <blockquote> are handled like they are in <div>
+* (bug 14931) Default character set now set to 'utf8' when a new MySQL
+ database is created.
+* (bug 47191) Fixed "Column 'si_title' cannot be part of FULLTEXT index"
+ MySQL error when installing using the binary character set option.
+* (bug 45288) Support mysqli PHP extension
+* (bug 56707) Correct tooltip of "Next n results" on query special pages.
+* (bug 56770) mw.util.addPortletLink: Check length before access array index.
+
+=== API changes in 1.22 ===
+* (bug 25553) The JSON output formatter now leaves forward slashes unescaped
+ to improve human readability of URLs and similar strings. Also, a "utf8"
+ option is now provided to use UTF-8 encoding instead of hex escape codes
+ for most non-ASCII characters.
+* (bug 46626) xmldoublequote parameter was removed. Because of a bug, the
+ parameter has had no effect since MediaWiki 1.16, and so its removal is
+ unlikely to impact existing clients.
+* (bug 47216) action=query&meta=siteinfo&siprop=skins will now indicate which
+ skin is the default and which are unusable (e.g. listed in $wgSkipSkins).
+* (bug 25325) Added support for wlshow filtering (bots/anon/minor/patrolled)
+ to action=feedwatchlist.
+* WDDX formatted output will actually be formatted (and normal output will no
+ longer be), and will no longer choke on booleans.
+* action=opensearch no longer silently ignores the format parameter.
+* action=opensearch now supports format=jsonfm.
+* list=usercontribs&ucprop=ids will now include the parent revision id.
+* (bug 47219) Allow specifying change type of Wikipedia feed items
+* prop=imageinfo now allows setting iiurlheight without setting iiurlwidth
+* prop=info now adds the content model and page language of the title.
+* New upload log entries will now contain information on the relevant
+ image (sha1 and timestamp).
+* (bug 49239) action=parse now can parse in preview and section preview modes.
+* (bug 49259) action=patrol now accepts revision ids.
+* (bug 48129) list=blocks&bkip= now correctly handles IPv6 CIDR ranges and
+ honors $wgBlockCIDRLimit. Note any clients passing invalid values to bkip
+ will now receive an error, rather than the previous behavior listing all
+ user blocks.
+* (bug 48201) action=parse&text=foo now assumes wikitext if no title is given,
+ rather than using the content model of the page "API".
+* action=watch no longer silently ignores hook abort.
+* (bug 50785) action=purge with forcelinkupdate=1 no longer queues refreshLinks
+ jobs in the job queue for link table updates of pages that use the given page
+ as a template. Instead, forcerecursivelinkupdate=1 is introduced and should
+ be used if that behaviour is desirable.
+* The 'debugLog' property (enabled by $wgDebugToolbar) no longer sets the log
+ entry values through ApiResult::content but directly. This changes the JSON
+ output from an array of objects with content in '*' to an array of strings
+ with the content.
+* (bug 51342) prop=imageinfo iicontinue now contains the dbkey, not the text
+ version of the title.
+* (bug 52538) action=edit will now use empty text instead of the contents
+ of section 0 when passed prependtext or appendtext with section=new.
+* Support for the 'gettoken' parameter to action=block and action=unblock,
+ deprecated since 1.20, has been removed.
+* (bug 49090) Token-getting functions will fail when using jsonp callbacks.
+* (bug 52699) action=upload returns normalized file name on warning
+ "exists-normalized" instead of filename to be uploaded to.
+* (bug 53884) action=edit will now return an error when the specified section
+ does not exist in the page.
+* Added meta=filerepoinfo API module for getting information about foreign
+ file repositories, and related ForeignAPIRepo methods getInfo and getApiUrl.
+* The new query module list=allfileusages to enumerate file usages was added.
+
+=== Languages updated in 1.22 ===
+
+MediaWiki supports over 350 languages. Many localisations are updated
+regularly. Below only new and removed languages are listed, as well as
+changes to languages because of Bugzilla reports.
+
+* Batak Toba (bbc-latn) added.
+* (bug 46751) Made Buryat (Russia) (буряад) (bxr) fallback to Russian.
+
+=== Other changes in 1.22 ===
+* redirect.php was removed. It was unused.
+* ClickTracking integration was dropped from the mediaWiki.user.bucket
+ JavaScript function. The 'tracked' option is now ignored.
+* Event namespace used by jquery.makeCollapsible has been changed from
+ 'mw-collapse' to 'mw-collapsible' for consistency with the module name.
+* The Quickbar feature of the legacy skin model and the last remnants of it
+ throughout the code base have been removed.
+* Externaledit/externaldiff preference was removed. Very few users used this
+ feature, and improper configuration can actually prevent a user from editing
+* Calling Linker methods using a skin will now output deprecation warnings.
+* (bug 46680) "Return to" links are no longer tagged with rel="next".
+* HipHop compiler (hphpc) support was removed. HipHop VM support (hhvm) was
+ added.
+* A new Special:Redirect page was added, providing lookup by revision ID,
+ user ID, or file name. The old Special:Filepath page was reimplemented
+ to redirect through Special:Redirect.
+* Monobook: Removed the old conditional stylesheets for Opera 6, 7 and 9.
+* Support for XHTML 1.0 has been removed. MediaWiki now only outputs (X)HTML5.
+* wikibits: User-agent related globals have been deprecated. The following
+ properties now default to false and emit mw.log.warn: is_gecko, is_chrome_mac,
+ is_chrome, webkit_version, is_safari_win, is_safari, webkit_match, is_ff2,
+ ff2_bugs, is_ff2_win, is_ff2_x11, opera95_bugs, opera7_bugs, opera6_bugs,
+ is_opera_95, is_opera_preseven, is_opera, and ie6_bugs.
+* (bug 48276) MediaWiki will now flash a confirmation message upon successfully
+ editing a page.
+* (bug 40785) mediawiki.legacy.ajax has been marked as deprecated. The following
+ properties now emit mw.log.warn when accessed: sajax_debug, sajax_init_object,
+ sajax_do_call and wfSupportsAjax.
+* Methods Title::userCanEditCssSubpage and Title::userCanEditJsSubpage,
+ deprecated since 1.19, have been removed.
+* (bug 50134) Hook functions are no longer required to return a value. When a
+ hook function does not return a value (or when it returns an explicit null),
+ processing continues. To abort the hook, a hook function must return an
+ explicit, boolean false or a string error message. Other falsey values are
+ tantamount to a 'return true' in earlier versions of MediaWiki.
+* (bug 48256) The 'editsection-brackets' optional message was removed.
+ Section edit links' brackets can now be customized using CSS by
+ styling span.mw-editsection-bracket.
+* The usePatrol function in ChangesList has been marked as deprecated.
+* (bug 50785) A "null edit", that is, a save action in which no changes to the
+ page text are made and no revision recorded, will no longer send refreshLinks
+ jobs to the job table to update pages which use the edited page as a template.
+* The LivePreviewPrepare and LivePreviewDone events triggered on "jQuery( mw )"
+ have been deprecated in favour of using mw.hook.
+* The 'showjumplinks' user preference has been removed, jump links are now
+ always included.
+* Methods RecentChange::notifyRC2UDP, RecentChange::sendToUDP, and
+ RecentChange::cleanupForIRC have been deprecated, as it is now the
+ responsibility of classes implementing the RCFeedFormatter and RCFeedEngine
+ interfaces to implement the formatting and delivery for recent change
+ notifications.
+* SpecialPrefixindex methods namespacePrefixForm() and showPrefixChunk() have
+ been made protected. They were accepting form variance arguments, this is now
+ using properties in the SpecialPrefixindex class.
+* (bug 49629) The hook ExtractThumbParamaters has been deprecated in favour
+ of media handler overriding MediaHandler::parseParamString.
+* (bug 46512) The collapsibleNav feature from the Vector extension has been moved
+ to the Vector skin in core.
+* SpecialRecentChanges::addRecentChangesJS() function has been renamed
+ to addModules() and made protected.
+* Methods WatchAction::doWatch and WatchAction::doUnwatch now return a Status
+ object instead of a boolean.
+* Information boxes (CSS classes errorbox, warningbox, successbox) have been
+ made more subtle.
+* Code specific to the Math extension was marked as deprecated.
+* mediawiki.util: mw.util.wikiGetlink has been renamed to getUrl. (The old name
+ still works, but is deprecated.)
+
+== Compatibility ==
+
+MediaWiki 1.22 requires PHP 5.3.2 or later.
+
+MySQL is the recommended DBMS. PostgreSQL or SQLite can also be used, but
+support for them is somewhat less mature. There is experimental support for
+Oracle.
+
+The supported versions are:
+
+* MySQL 5.0.2 or later
+* PostgreSQL 8.3 or later
+* SQLite 3.3.7 or later
+* Oracle 9.0.1 or later
+
+== Upgrading ==
+
+1.22 has several database changes since 1.21, and will not work without schema
+updates. Note that due to changes to some very large tables like the revision
+table, the schema update may take quite long (minutes on a medium sized site,
+many hours on a large site).
+
+If upgrading from before 1.11, and you are using a wiki as a commons
+repository, make sure that it is updated as well. Otherwise, errors may arise
+due to database schema changes.
+
+If upgrading from before 1.7, you may want to run refreshLinks.php to ensure
+new database fields are filled with data.
+
+If you are upgrading from MediaWiki 1.4.x or earlier, you should upgrade to
+1.5 first. The upgrade script maintenance/upgrade1_5.php has been removed
+with MediaWiki 1.21.
+
+Don't forget to always back up your database before upgrading!
+
+See the file UPGRADE for more detailed upgrade instructions.
+
+For notes on 1.21.x and older releases, see HISTORY.
+
+== Online documentation ==
+
+Documentation for both end-users and site administrators is available on
+MediaWiki.org, and is covered under the GNU Free Documentation License (except
+for pages that explicitly state that their contents are in the public domain):
+
+ https://www.mediawiki.org/wiki/Documentation
+
+== Mailing list ==
+
+A mailing list is available for MediaWiki user support and discussion:
+
+ https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
+
+A low-traffic announcements-only list is also available:
+
+ https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce
+
+It's highly recommended that you sign up for one of these lists if you're
+going to run a public MediaWiki, so you can be notified of security fixes.
+
+== IRC help ==
+
+There's usually someone online in #mediawiki on irc.freenode.net.
diff --git a/UPGRADE b/UPGRADE
index 7987b221..96b58361 100644
--- a/UPGRADE
+++ b/UPGRADE
@@ -296,18 +296,3 @@ If you have a very old database (earlier than organized MediaWiki releases
in late August 2003) you may need to manually run some of the update SQL
scripts in maintenance/archives before the installer is able to pick up
with remaining updates.
-
-
-== Upgrading from UseModWiki or old "phase 2" Wikipedia code ==
-
-There is a semi-maintained UseModWiki to MediaWiki conversion script at
-maintenance/importUseModWiki.php; it may require tweaking and customization
-to work for you.
-
-Install a new MediaWiki first, then use the conversion script which will
-output SQL statements; direct these to a file and then run that into your
-database.
-
-You will have to rebuild the links tables etc after importing.
-
-
diff --git a/api.php b/api.php
index bc902297..8fab878c 100644
--- a/api.php
+++ b/api.php
@@ -36,16 +36,12 @@ define( 'MW_API', true );
// Bail if PHP is too low
if ( !function_exists( 'version_compare' ) || version_compare( phpversion(), '5.3.2' ) < 0 ) {
// We need to use dirname( __FILE__ ) here cause __DIR__ is PHP5.3+
- require( dirname( __FILE__ ) . '/includes/PHPVersionError.php' );
+ require dirname( __FILE__ ) . '/includes/PHPVersionError.php';
wfPHPVersionError( 'api.php' );
}
// Initialise common code.
-if ( isset( $_SERVER['MW_COMPILED'] ) ) {
- require ( 'core/includes/WebStart.php' );
-} else {
- require ( __DIR__ . '/includes/WebStart.php' );
-}
+require __DIR__ . '/includes/WebStart.php';
wfProfileIn( 'api.php' );
$starttime = microtime( true );
@@ -58,8 +54,8 @@ if ( !$wgRequest->checkUrlExtension() ) {
// Verify that the API has not been disabled
if ( !$wgEnableAPI ) {
header( $_SERVER['SERVER_PROTOCOL'] . ' 500 MediaWiki configuration Error', true, 500 );
- echo( 'MediaWiki API is not enabled for this site. Add the following line to your LocalSettings.php'
- . '<pre><b>$wgEnableAPI=true;</b></pre>' );
+ echo 'MediaWiki API is not enabled for this site. Add the following line to your LocalSettings.php'
+ . '<pre><b>$wgEnableAPI=true;</b></pre>';
die( 1 );
}
diff --git a/composer-example.json b/composer-example.json
new file mode 100644
index 00000000..6c4d37f5
--- /dev/null
+++ b/composer-example.json
@@ -0,0 +1,11 @@
+{
+ "require": {
+ "php": ">=5.3.2"
+ },
+ "suggest": {
+ "ext-fileinfo": "*",
+ "ext-mbstring": "*",
+ "ext-wikidiff2": "*",
+ "ext-apc": "*"
+ }
+}
diff --git a/composer.json b/composer.json
deleted file mode 100644
index ded33652..00000000
--- a/composer.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "name": "mediawiki/core",
- "description": "Free software wiki application developed by the Wikimedia Foundation and others",
- "keywords": ["mediawiki", "wiki"],
- "homepage": "https://www.mediawiki.org/",
- "authors": [
- {
- "name": "MediaWiki Community",
- "homepage": "https://www.mediawiki.org/wiki/Special:Version/Credits"
- }
- ],
- "license": "GPL-2.0",
- "support": {
- "issues": "https://bugzilla.wikimedia.org/",
- "irc": "irc://irc.freenode.net/mediawiki",
- "wiki": "https://www.mediawiki.org/"
- },
- "require": {
- "php": ">=5.3.2"
- },
- "require-dev": {
- "phpunit/phpunit": "*"
- },
- "suggest": {
- "ext-fileinfo": "*",
- "ext-mbstring": "*",
- "ext-wikidiff2": "*",
- "ext-apc": "*"
- }
-}
diff --git a/docs/hooks.txt b/docs/hooks.txt
index d4a1c909..5aaf5961 100644
--- a/docs/hooks.txt
+++ b/docs/hooks.txt
@@ -120,7 +120,7 @@ If the code is well enough isolated, it can even be excluded when not used --
making for some slight savings in memory and load-up performance at runtime.
Admins who want to have all the reversed titles can add:
- require_once('extensions/ReverseTitle.php');
+ require_once 'extensions/ReverseTitle.php';
...to their LocalSettings.php file; those of us who don't want or need it can
just leave it out.
@@ -270,6 +270,10 @@ $reason: the reason for the move (added in 1.13)
$user: the User object about to be created (read-only, incomplete)
&$msg: out parameter: HTML to display on abort
+'AbortTalkPageEmailNotification': Return false to cancel talk page email notification
+$targetUser: the user whom to send talk page email notification
+$title: the page title
+
'AbortChangePassword': Return false to cancel password change.
$user: the User object to which the password change is occuring
$mOldpass: the old password provided by the user
@@ -377,6 +381,11 @@ result.
&$module: ApiBase Module object
&$properties: Array of properties
+'APIGetPossibleErrors': Use this hook to modify the module's list of possible
+errors.
+$module: ApiBase Module object
+&$possibleErrors: Array of possible errors
+
'APIQueryAfterExecute': After calling the execute() method of an
action=query submodule. Use this to extend core API modules.
&$module: Module object
@@ -423,6 +432,10 @@ sites general information.
$module: the current ApiQuerySiteInfo module
&$results: array of results, add things here
+'APIQuerySiteInfoStatisticsInfo': Use this hook to add extra information to the
+sites statistics information.
+&$results: array of results, add things here
+
'APIQueryUsersTokens': Use this hook to add custom token to list=users. Every
token has an action, which will be used in the ustoken parameter and in the
output (actiontoken="..."), and a callback function which should return the
@@ -488,7 +501,8 @@ $logEntry: the ManualLogEntry used to record the deletion
'ArticleEditUpdateNewTalk': Before updating user_newtalk when a user talk page
was changed.
-$wikiPage: WikiPage (object) of the user talk page
+&$wikiPage: WikiPage (object) of the user talk page
+$recipient: User (object) who's talk page was edited
'ArticleEditUpdates': When edit updates (mainly link tracking) are made when an
article has been changed.
@@ -609,6 +623,7 @@ the user is redirected back to the page.
'ArticleViewFooter': After showing the footer section of an ordinary page view
$article: Article object
+$patrolFooterShown: boolean whether patrol footer is shown
'ArticleViewHeader': Before the parser cache is about to be tried for article
viewing.
@@ -747,8 +762,22 @@ $user: the user who did the block (not the one being blocked)
$isbn: ISBN to show information for
$output: OutputPage object in use
+'CanIPUseHTTPS': Determine whether the client at a given source IP is likely
+to be able to access the wiki via HTTPS.
+$ip: The IP address in human-readable form
+&$canDo: This reference should be set to false if the client may not be able
+to use HTTPS
+
'CanonicalNamespaces': For extensions adding their own namespaces or altering
the defaults.
+Note that if you need to specify namespace protection or content model for
+a namespace that is added in a CanonicalNamespaces hook handler, you
+should do so by altering $wgNamespaceProtection and
+$wgNamespaceContentModels outside the handler, in top-level scope. The
+point at which the CanonicalNamespaces hook fires is too late for altering
+these variables. This applies even if the namespace addition is
+conditional; it is permissible to declare a content model and protection
+for a namespace and then decline to actually register it.
&$namespaces: Array of namespace numbers with corresponding canonical names
'CategoryAfterPageAdded': After a page is added to a category.
@@ -837,10 +866,6 @@ etc.
'DatabaseOraclePostInit': Called after initialising an Oracle database
&$db: the DatabaseOracle object
-'Debug': Called when outputting a debug log line via wfDebug() or wfDebugLog()
-$text: plaintext string to be output
-$group: null or a string naming a logging group (as defined in $wgDebugLogGroups)
-
'NewDifferenceEngine': Called when a new DifferenceEngine object is made
$title: the diff page title (nullable)
&$oldId: the actual old Id to use in the diff
@@ -1008,14 +1033,6 @@ notice.
$title: title of page being edited
&$msg: localization message name, overridable. Default is 'editpage-tos-summary'
-'EditSectionLink': Do not use, use DoEditSectionLink instead.
-$skin: Skin rendering the UI
-$title: Title being linked to
-$section: Section to link to
-$link: Default link
-&$result: Result (alter this to override the generated links)
-$lang: The language code to use for the link in the wfMessage function
-
'EmailConfirmed': When checking that the user's email address is "confirmed".
$user: User being checked
$confirmed: Whether or not the email address is confirmed
@@ -1060,6 +1077,7 @@ change the tables headers.
'ExtractThumbParameters': Called when extracting thumbnail parameters from a
thumbnail file name.
+DEPRECATED: Media handler should override MediaHandler::parseParamString instead.
$thumbname: the base name of the thumbnail file
&$params: the currently extracted params (has source name, temp or archived zone)
@@ -1106,6 +1124,12 @@ $reason: reason
$title: An optional title object used to links to sections. Can be null.
$local: Boolean indicating whether section links should refer to local page.
+'GalleryGetModes': Get list of classes that can render different modes of a
+ gallery
+$modeArray: An associative array mapping mode names to classes that implement
+ that mode. It is expected all registered classes are a subclass of
+ ImageGalleryBase.
+
'GetAutoPromoteGroups': When determining which autopromote groups a user is
entitled to be in.
&$user: user to promote.
@@ -1138,6 +1162,15 @@ $title: Title object of page
$url: string value as output (out parameter, can modify)
$query: query options passed to Title::getFullURL()
+'GetHumanTimestamp': Pre-emptively override the human-readable timestamp generated
+by MWTimestamp::getHumanTimestamp(). Return false in this hook to use the custom
+output.
+&$output: string for the output timestamp
+$timestamp: MWTimestamp object of the current (user-adjusted) timestamp
+$relativeTo: MWTimestamp object of the relative (user-adjusted) timestamp
+$user: User whose preferences are being used to make timestamp
+$lang: Language that will be used to render the timestamp
+
'GetInternalURL': Modify fully-qualified URLs used for squid cache purging.
$title: Title object of page
$url: string value as output (out parameter, can modify)
@@ -1178,10 +1211,28 @@ to do this unless they broke backwards compatibility with a previous version of
the media handler metadata output.
&$version: Array of version strings
+'GetNewMessagesAlert': Disable or modify the new messages alert
+&$newMessagesAlert: An empty string by default. If the user has new talk page
+messages, this should be populated with an alert message to that effect
+$newtalks: An empty array if the user has no new messages or an array containing
+links and revisions if there are new messages (See User::getNewMessageLinks)
+$user: The user object of the user who is loading the page
+$out: OutputPage object (to check what type of page the user is on)
+
'GetPreferences': Modify user preferences.
$user: User whose preferences are being modified.
&$preferences: Preferences description array, to be fed to an HTMLForm object
+'GetRelativeTimestamp': Pre-emptively override the relative timestamp generated
+by MWTimestamp::getRelativeTimestamp(). Return false in this hook to use the custom
+output.
+&$output: string for the output timestamp
+&$diff: DateInterval representing the difference between the timestamps
+$timestamp: MWTimestamp object of the current (user-adjusted) timestamp
+$relativeTo: MWTimestamp object of the relative (user-adjusted) timestamp
+$user: User whose preferences are being used to make timestamp
+$lang: Language that will be used to render the timestamp
+
'getUserPermissionsErrors': Add a permissions error when permissions errors are
checked for. Use instead of userCan for most cases. Return false if the user
can't do it, and populate $result with the reason in the form of
@@ -1340,6 +1391,10 @@ $article: article (object) being checked
$ip: IP being check
$result: Change this value to override the result of wfIsTrustedProxy()
+'IsUploadAllowedFromUrl': Override the result of UploadFromUrl::isAllowedUrl()
+$url: URL used to upload from
+&$allowed: Boolean indicating if uploading is allowed for given URL
+
'isValidEmailAddr': Override the result of User::isValidEmailAddr(), for
instance to return false if the domain name doesn't match your organization.
$addr: The e-mail address entered by the user
@@ -1375,6 +1430,16 @@ $lang: language code (string)
&$names: array of language code => language name
$code language of the preferred translations
+'LanguageLinks': Manipulate a page's language links. This is called
+in various places to allow extensions to define the effective language
+links for a page.
+$title: The page's Title.
+&$links: Associative array mapping language codes to prefixed links of the
+ form "language:title".
+&$linkFlags: Associative array mapping prefixed links to arrays of flags.
+ Currently unused, but planned to provide support for marking individual
+ language links in the UI, e.g. for featured articles.
+
'LinkBegin': Used when generating internal and interwiki links in
Linker::link(), before processing starts. Return false to skip default
processing and return $ret. See documentation for Linker::link() for details on
@@ -1760,10 +1825,29 @@ cache or return false to not use it.
$parser: Parser object
$varCache: variable cache (array)
-'ParserLimitReport': Called at the end of Parser:parse() when the parser will
+'ParserLimitReport': DEPRECATED, use ParserLimitReportPrepare and
+ParserLimitReportFormat instead.
+Called at the end of Parser:parse() when the parser will
include comments about size of the text parsed.
$parser: Parser object
-$limitReport: text that will be included (without comment tags)
+&$limitReport: text that will be included (without comment tags)
+
+'ParserLimitReportFormat': Called for each row in the parser limit report that
+needs formatting. If nothing handles this hook, the default is to use "$key" to
+get the label, and "$key-value" or "$key-value-text"/"$key-value-html" to
+format the value.
+$key: Key for the limit report item (string)
+$value: Value of the limit report item
+&$report: String onto which to append the data
+$isHTML: If true, $report is an HTML table with two columns; if false, it's
+ text intended for display in a monospaced font.
+$localize: If false, $report should be output in English.
+
+'ParserLimitReportPrepare': Called at the end of Parser:parse() when the parser will
+include comments about size of the text parsed. Hooks should use
+$output->setLimitReportData() to populate data.
+$parser: Parser object
+$output: ParserOutput object
'ParserMakeImageParams': Called before the parser make an image link, use this
to modify the parameters of the image.
@@ -1783,7 +1867,7 @@ $section: the section number, zero-based, but section 0 is usually empty
$showEditLinks: boolean describing whether this section has an edit link
'ParserTestParser': Called when creating a new instance of Parser in
-maintenance/parserTests.inc.
+tests/parser/parserTest.inc.
$parser: Parser object created
'ParserTestGlobals': Allows to define globals for parser tests.
@@ -1806,6 +1890,7 @@ $action : Action being performed
&$result : Whether or not the action should be prevented
Change $result and return false to give a definitive answer, otherwise
the built-in rate limiting checks are used, if enabled.
+$incrBy: Amount to increment counter by
'PlaceNewSection': Override placement of new sections. Return false and put the
merged text into $text to override the default behavior.
@@ -1843,9 +1928,10 @@ $article: the title being (un)protected
$output: a string of the form HTML so far
'ProtectionForm::save': Called when a protection form is submitted.
-$article: the title being (un)protected
-$errorMsg: an html message string of an error or an array of message name and
+$article: the Page being (un)protected
+&$errorMsg: an html message string of an error or an array of message name and
its parameters
+$reasonstr: a string describing the reason page protection level is altered
'ProtectionForm::showLogExtract': Called after the protection log extract is
shown.
@@ -1871,6 +1957,10 @@ IContextSource $context: The RequestContext the skin is being created for.
&$skin: A variable reference you may set a Skin instance or string key on to
override the skin that will be used for the context.
+'ResetSessionID': Called from wfResetSessionID
+$oldSessionID: old session id
+$newSessionID: new session id
+
'ResourceLoaderGetConfigVars': Called at the end of
ResourceLoaderStartUpModule::getConfig(). Use this to export static
configuration variables to JavaScript. Things that depend on the current page
@@ -1911,12 +2001,6 @@ $data: the data stored in old_text. The meaning depends on $flags: if external
$flags: a comma-delimited list of strings representing the options used. May
include: utf8 (this will always be set for new revisions); gzip; external.
-'SearchUpdate': Prior to search update completion.
-$id : Page id
-$namespace : Page namespace
-$title : Page title
-$text : Current text being indexed
-
'SearchGetNearMatchBefore': Perform exact-title-matches in "go" searches before
the normal operations.
$allSearchTerms : Array of the search terms in all content languages
@@ -1952,8 +2036,6 @@ $title : Current Title object being displayed in search results.
'SearchableNamespaces': An option to modify which namespaces are searchable.
&$arr : Array of namespaces ($nsId => $name) which will be used.
-'SeleniumSettings': TODO
-
'SetupAfterCache': Called in Setup.php, after cache objects are set
'ShowMissingArticle': Called when generating the output for a non-existent page.
@@ -2078,8 +2160,6 @@ $checkEdit: Whether or not the action=edit query should be added if appropriate.
&$text: Link text.
&$result: Complete assoc. array if you want to return true.
-'SkinTemplateTabs': TODO
-
'SkinTemplateToolboxEnd': Called by SkinTemplate skins after toolbox links have
been rendered (useful for adding more).
$sk: The QuickTemplate based skin template running the hook.
@@ -2191,6 +2271,11 @@ $opts: FormOptions for this request
&$query_options: array of options for the database request
&$select: Array of columns to select
+'SpecialResetTokensTokens': Called when building token list for
+SpecialResetTokens.
+&$tokens: array of token information arrays in the format of
+ array( 'preference' => '<preference-name>', 'label-message' => '<message-key>' )
+
'SpecialSearchCreateLink': Called when making the message to create a page or
go to the existing page.
$t: title object searched for
@@ -2280,6 +2365,11 @@ $special: the special page object
&$fields: array of query fields
$values: array of variables with watchlist options
+'SpecialWatchlistGetNonRevisionTypes': Called when building sql query for
+SpecialWatchlist. Allows extensions to register custom values they have
+inserted to rc_type so they can be returned as part of the watchlist.
+&$nonRevisionTypes: array of values in the rc_type field of recentchanges table
+
'TestCanonicalRedirect': Called when about to force a redirect to a canonical
URL for a title when we have no other parameters on the URL. Gives a chance for
extensions that alter page view behavior radically to abort that redirect or
@@ -2299,6 +2389,20 @@ database result.
&$titleArray: set this to an object to override the default object returned
$res: database result used to create the object
+'TitleQuickPermissions': Called from Title::checkQuickPermissions to add to
+or override the quick permissions check.
+$title: The Title object being accessed
+$user: The User performing the action
+$action: Action being performed
+&$errors: Array of errors
+$doExpensiveQueries: Whether to do expensive DB queries
+$short: Whether to return immediately on first error
+
+'TitleGetEditNotices': Allows extensions to add edit notices
+$title: The Title object for the page the edit notices are for
+$oldid: Revision ID that the edit notices are for (or 0 for latest)
+&$notices: Array of notices. Keys are i18n message keys, values are parseAsBlock()ed messages.
+
'TitleGetRestrictionTypes': Allows extensions to modify the types of protection
that can be applied.
$title: The title in question.
@@ -2332,6 +2436,11 @@ $result: Boolean; whether MediaWiki currently thinks this is a wikitext page.
Hooks may change this value to override the return value of
Title::isWikitextPage()
+'TitleMove': Before moving an article (title).
+$old: old title
+$nt: new title
+$user: user who does the move
+
'TitleMoveComplete': After moving an article (title).
$old: old title
$nt: new title
@@ -2346,6 +2455,10 @@ $title: Title object being checked against
$user: Current user object
&$whitelisted: Boolean value of whether this title is whitelisted
+'TitleSquidURLs': Called to determine which URLs to purge from HTTP caches.
+$this: Title object to purge
+&$urls: An array of URLs to purge from the caches, to be manipulated.
+
'UndeleteForm::showHistory': Called in UndeleteForm::showHistory, after a
PageArchive object has been created but before any further processing is done.
&$archive: PageArchive object
@@ -2378,6 +2491,7 @@ $article: article "acted on"
'UnwatchArticle': Before a watch is removed from an article.
$user: user watching
$page: WikiPage object to be removed
+&$status: Status object to be returned if the hook returns false
'UnwatchArticleComplete': After a watch is removed from an article.
$user: user that watched
@@ -2538,6 +2652,10 @@ $title: Title of the page in question
$ip: User's IP address
&$blocked: Whether the user is blocked, to be modified by the hook
+'UserIsEveryoneAllowed': Check if all users are allowed some user right; return
+false if a UserGetRights hook might remove the named right.
+$right: The user right being checked
+
'UserLoadAfterLoadFromSession': Called to authenticate users on external or
environmental means; occurs after session is loaded.
$user: user object being loaded
@@ -2586,6 +2704,12 @@ $user : User object that was changed
$add : Array of strings corresponding to groups added
$remove: Array of strings corresponding to groups removed
+'UserRequiresHTTPS': Called to determine whether a user needs
+to be switched to HTTPS.
+$user: User in question.
+&$https: Boolean whether $user should be switched to HTTPS.
+
+
'UserRetrieveNewTalks': Called when retrieving "You have new messages!"
message(s).
$user: user retrieving new talks messages
@@ -2627,6 +2751,7 @@ used to alter the SQL query which gets the list of wanted pages.
'WatchArticle': Before a watch is added to an article.
$user: user that will watch
$page: WikiPage object to be watched
+&$status: Status object to be returned if the hook returns false
'WatchArticleComplete': After a watch is added to an article.
$user: user that watched
@@ -2643,6 +2768,13 @@ $skin: Skin object
REQUEST_URI.
$router: The PathRouter instance
+'WebResponseSetCookie': when setting a cookie in WebResponse::setcookie().
+Return false to prevent setting of the cookie.
+&$name: Cookie name passed to WebResponse::setcookie()
+&$value: Cookie value passed to WebResponse::setcookie()
+&$expire: Cookie expiration, as for PHP's setcookie()
+$options: Options passed to WebResponse::setcookie()
+
'WikiExporter::dumpStableQuery': Get the SELECT query for "stable" revisions
dumps. One, and only one hook should set this, and return false.
&$tables: Database tables to use in the SELECT query
diff --git a/docs/maintenance.txt b/docs/maintenance.txt
index 27619c86..87a32a80 100644
--- a/docs/maintenance.txt
+++ b/docs/maintenance.txt
@@ -34,7 +34,7 @@ In it, write the following:
<?php
-require_once( "Maintenance.php" );
+require_once 'Maintenance.php';
class DemoMaint extends Maintenance {
@@ -47,7 +47,7 @@ class DemoMaint extends Maintenance {
}
$maintClass = "DemoMaint";
-require_once( RUN_MAINTENANCE_IF_MAIN );
+require_once RUN_MAINTENANCE_IF_MAIN;
==END==
diff --git a/docs/php-memcached/Documentation b/docs/php-memcached/Documentation
index c9056053..32e340ac 100644
--- a/docs/php-memcached/Documentation
+++ b/docs/php-memcached/Documentation
@@ -163,7 +163,7 @@ MemCacheClient::set_compression($setting)
EXAMPLE:
<?php
-require("MemCachedClient.inc.php");
+require 'MemCachedClient.inc.php';
// set the servers, with the last one having an integer weight value of 3
$options["servers"] = array("10.0.0.15:11000","10.0.0.16:11001",array("10.0.0.17:11002", 3));
diff --git a/docs/scripts.txt b/docs/scripts.txt
index 4af2a2b4..0b8ee8f6 100644
--- a/docs/scripts.txt
+++ b/docs/scripts.txt
@@ -42,21 +42,11 @@ Primary scripts:
and $wgDBadminpassword in your LocalSettings.php, as well as $wgEnableProfileInfo
See also http://www.mediawiki.org/wiki/How_to_debug#Profiling.
- redirect.php
- Script that only redirect to the article passed in the wpDropdown parameter
- of the request. Used by the nostalgia skin to access special pages with the
- dropdown box at the top of the page.
-
thumb.php
Script used to resize images if it is configured to be done when the web
browser requests the image and not when generating the page. This script can
be used as a 404 handler to generate image thumbs when they don't exist.
- trackback.php
- Allow to add a new trackback to the database. This script returns XML
- and require a POST request to work, thus it should only be accessed by some
- specific programs and won't work with normal web browsers.
-
There is also a file with a .php5 extension for each script. They can be used if
the web server needs a .php5 to run the file with the PHP 5 engine and runs .php
scripts with PHP 4. To use these files, you have to modify $wgScriptExtension to
diff --git a/docs/skin.txt b/docs/skin.txt
index fab27b87..1459d7af 100644
--- a/docs/skin.txt
+++ b/docs/skin.txt
@@ -1,57 +1,59 @@
skin.txt
-MediaWiki's default skin is called Vector. Vector was introduced in
-the 1.16 release (2010) and has been set as the default in MediaWiki since
-the 1.17 release (2011). This replaced the popular skin, Monobook which
-had been been the default since MediaWiki 1.3 (2004). Vector is now the
-default skin on Wikimedia Projects.
+MediaWiki includes four core skins:
-There are three legacy skins which were introduced before MediaWiki 1.3:
+* Vector: The default skin. Introduced in the 1.16 release (2010), it has been
+ set as the default in MediaWiki since the 1.17 release (2011), replacing
+ Monobook.
-* Standard (a.k.a. Classic): The old default skin written by Lee Crocker
-during the phase 3 rewrite, in 2002.
+* Monobook: Named after the black-and-white photo of a book in the page
+ background. Introduced in the 2004 release of 1.3, it had been been the
+ default skin since then, before being replaced by Vector.
-* Nostalgia: A skin which looks like Wikipedia did in its first year (2001).
-This skin is now used for the old Wikipedia snapshot at
-http://nostalgia.wikipedia.org/
+* Modern: An attractive blue/grey theme with sidebar and top bar. Derived from
+ Monobook.
-* Cologne Blue: A nicer-looking alternative to Standard.
+* Cologne Blue: A lightweight skin with minimal formatting. The oldest of the
+ currently bundled skins, largely rewritten in 2012 while keeping its
+ appearance.
-The other skin that is widely used (and is the MediaWiki default before 1.17)
-is Monobook.
-* Monobook: Named after the black-and-white photo of a book, in the page background.
-This was introduced in the 2004 release of 1.3
+Several legacy skins were removed in the 1.22 release, as the burden of
+supporting them became too heavy to bear. Those were:
-And there are four Monobook-derived skins which have been introduced since 1.3:
+* Standard (a.k.a. Classic): The old default skin written by Lee Crocker during
+ the phase 3 rewrite, in 2002.
-* MySkin: Monobook without the CSS. The idea is that you customise it using user
-or site CSS (see below)
+* Nostalgia: A skin which looks like Wikipedia did in its first year (2001).
+ This skin is now used for the old Wikipedia snapshot at
+ http://nostalgia.wikipedia.org/
-* Chick: A lightweight Monobook skin with no sidebar, the sidebar links are
-given at the bottom of the page instead, as in the unstyled MySkin.
+* Chick: A lightweight Monobook skin with no sidebar. The sidebar links were
+ given at the bottom of the page instead.
-* Simple: A lightweight skin with a simple white-background sidebar and no
-top bar.
+* Simple: A lightweight skin with a simple white-background sidebar and no top
+ bar.
+
+* MySkin: Essentially Monobook without the CSS. The idea was that it could be
+ customised using user-specific or site-wide CSS (see below).
-* Modern: An attractive blue/grey theme with sidebar and top bar.
== Custom CSS/JS ==
It is possible to customise the site CSS and JavaScript without editing any
-source files. This is done by editing some pages on the wiki:
+server-side source files. This is done by editing some pages on the wiki:
* [[MediaWiki:Common.css]] -- for skin-independent CSS
-* [[MediaWiki:Monobook.css]], [[MediaWiki:Simple.css]], etc. -- for
-skin-dependent CSS
-* [[MediaWiki:Common.js]], [[MediaWiki:Monobook.js]], etc. -- for custom
-site JavaScript
+* [[MediaWiki:Common.js]] -- for skin-independent JavaScript
+* [[MediaWiki:Vector.css]], [[MediaWiki:Monobook.css]], etc. -- for
+ skin-dependent CSS
+* [[MediaWiki:Vector.js]], [[MediaWiki:Monobook.js]], etc. -- for
+ skin-dependent JavaScript
These can also be customised on a per-user basis, by editing
-[[User:<name>/monobook.css]], [[User:<name>/monobook.js]], etc.
+[[User:<name>/vector.css]], [[User:<name>/vector.js]], etc.
-This feature has led to a wide variety of "user styles" becoming available,
-which change the appearance of Monobook or MySkin:
+This feature has led to a wide variety of "user styles" becoming available:
http://www.mediawiki.org/wiki/Manual:Gallery_of_user_styles
@@ -72,7 +74,7 @@ $wgSkipSkins[] = '<name>';
This technique is used by the more ambitious MediaWiki site operators, to
create complex custom skins for their wikis. It should be preferred over
-editing the core Monobook skin directly.
+editing the core Monobook skin directly.
See http://www.mediawiki.org/wiki/Manual:Skinning for more information.
diff --git a/docs/title.txt b/docs/title.txt
index d2d91c9c..454711dc 100644
--- a/docs/title.txt
+++ b/docs/title.txt
@@ -8,7 +8,7 @@ and can be queried for the others, and for other attributes of the title. This
is intended to be an immutable "value" class, so there are no mutator functions.
To get a new instance, call Title::newFromText(). Once instantiated, the
-non-static accessor methods can be used, such as getText(), getDBKey(),
+non-static accessor methods can be used, such as getText(), getDBkey(),
getNamespace(), etc. Note that Title::newFromText() may return false if the text
is illegal according to the rules below.
@@ -36,11 +36,11 @@ An initial colon in a title listed in wiki text may however suppress special
handling for interlanguage links, image links, and category links. It is also
used to indicate the main namespace in template inclusions.
-Once prefixes have been stripped, the rest of the title processed this way:
+Once prefixes have been stripped, the rest of the title processed this way:
* Spaces and underscores are treated as equivalent and each is converted to the
other in the appropriate context (underscore in URL and database keys, spaces
- in plain text).
+ in plain text).
* Multiple consecutive spaces are converted to a single space.
* Leading or trailing space is removed.
* If $wgCapitalLinks is enabled (the default), the first letter is capitalised,
@@ -58,7 +58,7 @@ UTF-8, because that is the size of the database field. Special page titles may
be up to 512 bytes.
Note that Unicode Normal Form C (NFC) is enforced by MediaWiki's user interface
-input functions, and so titles will typically be in this form.
+input functions, and so titles will typically be in this form.
getArticleID() needs some explanation: for "internal" articles, it should return
the "page_id" field if the article exists, else it returns 0. For all external
diff --git a/docs/uidesign/child-selector-emu.html b/docs/uidesign/child-selector-emu.html
index 8294b6d7..dedb3a67 100644
--- a/docs/uidesign/child-selector-emu.html
+++ b/docs/uidesign/child-selector-emu.html
@@ -2,7 +2,7 @@
<html>
<head>
<title>CSS Child selector emulation for IE 6</title>
- <style type="text/css">
+ <style>
/** Common rules **/
body { background-color: #CCC; }
table { border:1px black solid; }
@@ -98,4 +98,3 @@ With child selector we could limit the wikitable styling to the direct childs of
</tr>
</table>
<p><strong>NOTE:</strong>The nested caption keep the green background. The nested table keep the black border. This is because those declarations are global so we did not reset them.</p>
-
diff --git a/docs/uidesign/design.html b/docs/uidesign/design.html
index 7062a826..a285a5b2 100644
--- a/docs/uidesign/design.html
+++ b/docs/uidesign/design.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
-<html lang="en" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
+<html lang="en" dir="ltr">
<head>
- <link rel="stylesheet" href="../../skins/common/shared.css" />
+ <link rel="stylesheet" href="../../skins/common/shared.css">
</head>
<body style="font-size: small;">
@@ -31,4 +31,5 @@
<tr><td>line with hover</td><td>line with hover</td></tr>
</table>
-</body></html>
+</body>
+</html>
diff --git a/docs/uidesign/mediawiki.action.history.diff.html b/docs/uidesign/mediawiki.action.history.diff.html
index 7b8eb2a0..5edcfb86 100644
--- a/docs/uidesign/mediawiki.action.history.diff.html
+++ b/docs/uidesign/mediawiki.action.history.diff.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
-<html lang="en" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
+<html lang="en" dir="ltr">
<head>
- <link rel="stylesheet" href="../../resources/mediawiki.action/mediawiki.action.history.diff.css" />
+ <link rel="stylesheet" href="../../resources/mediawiki.action/mediawiki.action.history.diff.css">
</head>
<body style="background-color: #C0C0C0;">
<p>
@@ -54,4 +54,5 @@ Below are some basic lines being applied one or two classes. Mainly for debuggin
</td></tr>
</table>
-</body></html>
+</body>
+</html>
diff --git a/docs/uidesign/monospace.html b/docs/uidesign/monospace.html
index 84ec13a4..f2b988e2 100644
--- a/docs/uidesign/monospace.html
+++ b/docs/uidesign/monospace.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
-<html lang="en" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
+<html lang="en" dir="ltr">
<head>
- <style type="text/css">
+ <style>
pre {
border: 1px dashed #AAA;
background-color: #E0E0E0;
@@ -75,4 +75,3 @@ font-family: monospace, Verdana;
font-family: monospace, DOESNOTEXISTREALLY;'>
font-family: monospace, DOESNOTEXISTREALLY;
</pre>
-
diff --git a/docs/uidesign/table-layout.html b/docs/uidesign/table-layout.html
index 6f538258..2c268199 100644
--- a/docs/uidesign/table-layout.html
+++ b/docs/uidesign/table-layout.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
- <style type="text/css">
+ <style>
/** This is just for coloring: */
table { border: 1px solid #CC0; }
td { border: 1px solid #CCC; }
@@ -57,4 +57,3 @@ On a perfect browser, both tables should look the same</p>
</tr>
</table>
</div>
-
diff --git a/docs/upload.txt b/docs/upload.txt
deleted file mode 100644
index a0f0a594..00000000
--- a/docs/upload.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-This document describes how the current uploading system is build up and how
-custom backends can be built. (At least someday it will).
diff --git a/extensions/Cite/.jshintignore b/extensions/Cite/.jshintignore
new file mode 100644
index 00000000..df46ab97
--- /dev/null
+++ b/extensions/Cite/.jshintignore
@@ -0,0 +1 @@
+modules/jquery.tooltip/jquery.tooltip.js
diff --git a/extensions/Cite/.jshintrc b/extensions/Cite/.jshintrc
new file mode 100644
index 00000000..4b356f81
--- /dev/null
+++ b/extensions/Cite/.jshintrc
@@ -0,0 +1,34 @@
+{
+ "camelcase": true,
+ "curly": true,
+ "eqeqeq": true,
+ "immed": true,
+ "latedef": true,
+ "newcap": true,
+ "supernew": true,
+ "shadow": true,
+ "noarg": true,
+ "noempty": true,
+ "nonew": true,
+ "quotmark": false, // sometimes