X-Git-Url: https://git.cyclocoop.org/%27.WWW_URL.%27admin/?a=blobdiff_plain;f=HISTORY;h=4343c5d5d74a6b0488b3762288be4ea381fecf27;hb=da951d45e931042dc907d96440ddfd05ba3225fc;hp=12532dbf62e2f7c655f5f42d923bbb1770b6a743;hpb=85d4e39ff096d05386fd2f333cd6acea66ad6f90;p=lhc%2Fweb%2Fwiklou.git diff --git a/HISTORY b/HISTORY index 12532dbf62..4343c5d5d7 100644 --- a/HISTORY +++ b/HISTORY @@ -1,7 +1,1276 @@ -Change notes from older releases. For current info see RELEASE-NOTES-1.24. +Change notes from older releases. For current info see RELEASE-NOTES-1.25. + +== MediaWiki 1.24 == + +=== Configuration changes in 1.24 === +* MediaWiki will no longer run if register_globals is enabled. It has been + deprecated for 5 years now, and was removed in PHP 5.4. For more information + about why, see . +* MediaWiki now requires PHP's iconv extension. openSUSE users may need to + install the php5-iconv package. Users of other systems may need to add + extension=iconv.so to php.ini or recompile PHP without --without-iconv. +* MediaWiki will no longer function if magic quotes are enabled. It has + been deprecated for 5 years now, and was removed in PHP 5.4. +* The server's canonical hostname is available as $wgServerName, which is + exposed in both mw.config and ApiQuerySiteInfo. +* Introduced $wgPagePropsHaveSortkey as a backwards-compatibility switch, + for using the old schema of the page_props table, in case the respective + schema update was not applied. +* $wgSearchEverythingOnlyLoggedIn was removed as the 'searcheverything' + user option was removed. Use $wgNamespacesToBeSearchedDefault instead or + if you used to have $wgDefaultUserOptions['searcheverything'] = 1. +* $wgMasterWaitTimeout has been deprecated. +* $wgDBClusterTimeout has been removed. +* $wgProxyKey has been removed. It is no longer used by MediaWiki core. + Ensure $wgSecretKey is set in LocalSettings.php. +* $wgExtraInterlanguageLinkPrefixes is a new configuration variable that + contains an array of interwiki prefixes that should be treated as language + prefixes (i.e. turned into interlanguage links when $wgInterwikiMagic is set + to true). +* $wgParserTestRemote has been removed. +* $wgCountTotalSearchHits has been removed. If you're concerned about efficiency + of search, you should use something like CirrusSearch instead of built in + search. +* Users in the 'sysop' group have access to Special:MergeHistory by default. +* $wgFileStore was removed after having been deprecated in 1.17. Alternative + configurations are $wgDeletedDirectory and $wgHashedUploadDirectory. +* The deprecated $wgUseCommaCount variable has been removed. +* $wgEnableSorbs and $wgSorbsUrl have been removed. +* The UserCryptPassword and UserComparePassword hooks are no longer called. + Any extensions using them must be updated to use the Password Hashing API. +* $wgCompiledFiles has been removed. +* $wgSortSpecialPages was removed, the listing on Special:SpecialPages is + now always sorted. +* $wgSpecialPages may now use callback functions as an alternative to plain class names. + This allows more control over constructor parameters. +* $wgHTCPMulticastAddress, $wgHTCPMulticastRouting and $wgHTCPPort were removed. +* $wgRC2UDPAddress, $wgRC2UDPInterwikiPrefix, $wgRC2UDPOmitBots, $wgRC2UDPPort + and $wgRC2UDPPrefix have been removed. +* The default password type for MediaWiki has been changed from MD5 to PBKDF2. + Password hashes will automatically be updated as users log in. If necessary, the + old MD5 hashing can be restored by changing $wgPasswordDefault to 'B'. In addition, + there is a maintenance script wrapOldPassword.php that can wrap all passwords in + PBKDF2 (or the hashing algorithm of your choice) if you don't want to wait for your + users to log in. +* $wgImportSources can now either be a regular array, or an associative map + specifying subprojects on the interwiki map of the target wiki, or a mix of + the two. Existing configurations will still work. +* Users must be able to edit through a page's protection to be able to delete it. +* The default thumb size ($wgDefaultUserOptions['thumbsize']) is now 300px, up from + 180px. If you have altered the number of entries in $wgThumbLimits for your wiki, you + may need to adjust your default user settings to compensate for the index change. +* $wgDeferredUpdateList is now deprecated, you should use DeferredUpdates::addUpdate() + instead. +* $wgCanonicalLanguageLinks has been removed. Per Google recommendations, we + will not send a rel=canonical pointing to a variant-neutral page, however + we will send rel=alternate. +* $wgResourceLoaderLESSFunctions has been deprecated and will be removed in the future. +* $wgGoToEdit has been removed. Use the SpecialSearchNogomatch hook for similar + functionality. + +=== New features in 1.24 === +* Added new hook WatchlistEditorBeforeFormRender, allowing subscribers to + manipulate the list of pages and/or preload lots of data at once. +* Added new argument &$link in hook WatchlistEditorBuildRemoveLine, allowing the + link to the title to be changed. +* Added a new hook, "WhatLinksHereProps", to allow extensions to annotate + WhatLinksHere entries. +* Added a new hook, "ContentGetParserOutput", to customize parser output for + a given content object. +* Deprecated the hook "ShowRawCssJs", use "ContentGetParserOutput" instead. +* HTMLForm's HTMLTextField now supports the 'url' type. +* HTMLForm fields may now be dynamically hidden based on the values of other + fields in the form. +* HTMLForm now supports multiple copies of an input field or set of input + fields, e.g. the form may request "one or more usernames" without having to + have the user enter delimited list of names into a text field. +* Added a new hook, "SidebarBeforeOutput", to allow to edit the structure of + the sidebar just before its display. +* (bug 49156) Added the mediawiki.cookie ResourceLoader module, which wraps + jquery.cookie so that getting/setting a cookie is syntactically and + functionally similar to using the WebRequest::getCookie() and + WebResponse::setcookie() methods. +* (bug 44740) jQuery upgraded from 1.8.3 to 1.11.1. A new configuration option, + $wgIncludejQueryMigrate, also loads the jQuery Migrate hack to let extensions + and gadgets use the long-deprecated functions that were removed in jQuery 1.9. + This option is turned off by default, and will be removed in MediaWiki 1.25. +* (bug 47076) jQuery UI upgraded from 1.8.24 to 1.9.2. +* Changes to content typography (fonts, etc.). See + https://www.mediawiki.org/wiki/Typography_refresh for further information. +* WikitextContent will now render redirects with the expected "redirect" + header, rather than as an ordered list. Code calling Article::viewRedirect + can probably be changed to no longer special-case redirects. +* Header font set to a serif font stack. See + https://www.mediawiki.org/wiki/Typography_refresh for further information. +* (bug 65567) Added a new hook, "BeforeHttpsRedirect", to allow cancellation of + the HTTP to HTTPS redirect due to forceHTTPS cookie, userRequires, etc. This + is only for page views, since this hook doesn't affect UserLogin, OAuth, + CentralAuth, etc. ATTENTION: This hook is likely to be removed soon due to + overall design of the system. +* (bug 17367) It is now possible to add pages to your watchlist from + Special:UnwatchedPages without reloading the special page. +* New methods setVolatile and isVolatile are added to PPFrame, so that + extensions such as Cite.php can mark that their output is volatile and + shouldn't be cached. +* (bug 52817) Advanced search options are now saved on the search page itself, + rather than in a dedicated pane in the preferences panel. +* (bug 44591) The dropdown actions menu (little triangle next to page tabs) in + the Vector skin has gained a label that should make it more discoverable. +* MWCryptHKDF added for fast, cryptographically secure random number generation + that won't deplete openssl's entropy pool. +* ResourceLoader: File modules can now provide a skip function that uses an + inline feature test to bypass loading of the module. +* (bug 20210) Special pages may now provide autocompletion of their subpage + names in search suggestions. Right now the only useful implementation is in + Special:Log, but more are to come. +* Special:MostLinkedTemplates is no longer limited to transclusions from the + Template namespace. +* Skins can now use 'remoteSkinPath' when defining ResourceLoader modules. + This works the same as 'remoteExtPath' but is relative to the skins/ folder + instead of the extensions/ folder. +* Added the json2.js polyfill for the ES5 JSON.stringify and JSON.parse methods. + Exposed as module "json" with a skip function to optimise loading. +* Extensions and skins may now use 'namemsg' in $wgExtensionCredits in addition + to 'name', to allow for the name to be localizable. 'name' should still be + specified for backwards-compatibility and to define the path Special:Version + uses to find extension license information. +* Browser tests are now included to verify basic wiki functionality in developer + environments. For details on running tests, see tests/browser/README.mediawiki. +* Upgrade jStorage to v0.4.10. +* {{!}} is now a magic word that produces the | character. This removes the need + for Template:! for purposes such as passing pipes inside of parameters. +* (bug 20790) The block log snippet on Special:Contributions and while + editing user and user talk pages now works for IP range blocks. +* (bug 9360) Added ability to change the page language for MediaWiki pages using + Special:PageLanguage. All pages are set to wiki language by default. + The feature needs to be enabled with $wgPageLanguageUseDB=true and + permission needs to be set for 'pagelang'. +* Upgrade Moment.js to v2.8.3. +* (bug 67042) Added support for the HTML5 tag for East Asian typography. +* Upgrade Sinon.JS to 1.10.3. +* Added the es5-shim polyfill for older or non-compliant javascript engines. +* Upgrade jQuery Cookie to v1.3.1. +* (bug 20476) Add a "viewsuppressed" user right to be able to view + suppressed content but not suppress it ("suppressrevision" right). +* (bug 66440) The MediaWiki web installer will now allow you to choose the skins + to enable (from the ones included in download tarball) and decide which one + should be the default. +* (bug 68085, 68802) Links like [[localInterwikiPrefix:languageCode:pageTitle]], + where localInterwikiPrefix is a member of the $wgLocalInterwikis array, will + no longer be displayed in the sidebar when $wgInterwikiMagic is true. In a + similar way, links like [[localInterwikiPrefix:File:Image.png]] and + [[localInterwikiPrefix:Category:Hello]] will now render as regular links, and + will not include the file or add the page to the category. +* New special page, MyLanguage, to redirect users to subpages with localised + versions of a page. (Integrated from Extension:Translate) +* MediaWiki now supports multiple password types, including bcrypt and PBKDF2. + The default type can be changed with $wgPasswordDefault and the type + configurations can be changed with $wgPasswordConfig. +* Skins can now define custom styles for default ResourceLoader modules using + the $wgResourceModuleSkinStyles global. See the Vector skin for examples. +* (bug 4488) There is now a preference to watch pages where the user has + rollbacked an edit by default. +* (bug 15484) Users will now be redirected to the login page when they need to + log in, rather than being shown a page asking them to log in and having to click + another link to actually get to the login page. +* A JsonContent and JsonContentHandler were added for extensions to extend. +* (bug 35045) Redirects to sections will now update the URL in browser's address + bar using the HTML5 History API. When [[Dog]] redirects to [[Animals#Dog]], + the user will now see "Animals#Dog" in their browser instead of "Dog#Dog". +* API token handling has been rewritten. Any API module using tokens will need + to be updated. See the entry below under "Action API internal changes". +* Added HTMLAutoCompleteSelectField. +* Added a new hook, "SkinPreloadExistence", to allow extensions to add titles to + link existence cache before the page is rendered. +* Config::set() was moved to its own interface, MutableConfig. GlobalVarConfig::set() + is now deprecated, does not implement MutableConfig. +* A MutableConfig named HashConfig was added, that stores an array of configuration + settings. +* (bug 69418) A MultiConfig implementation was added that supports fallback + to multiple Config instances. +* Update CSSJanus to v1.1.0. +* Added FormatJson::parse() returning status with result or localized error message + +=== Bug fixes in 1.24 === +* (bug 50572) MediaWiki:Blockip should support gender +* (bug 49116) Footer copyright notice is now always displayed in user language + rather than content language (same as copyright notice for editing interface). +* (bug 62258) A bug was fixed in File::getUnscaledThumb when a height + restriction was present in the parameters. Images with both the "frame" + option and a size specification set will now always ignore the provided + size and display an unscaled image, as the documentation has always + claimed it would. +* (bug 39035) Improved Vector skin performance by removing collapsibleNav, + which used to collapse some sidebar elements by default. + This removes -list id suffixes like p-lang-list: instead of using things like + #p-lang-list, you can do #p-lang .body ul. +* (bug 890) Links in Special:RecentChanges and Special:Watchlist no longer + follow redirects to their target pages. +* Parser now dies early if called recursively, instead of producing subtle bugs. +* (bug 14323) Redirect pages, when viewed with redirect=no, no longer hide the + remaining page content. +* (bug 52587) Maintenance script deleteBatch.php no longer follows redirects + in the file namespace and delete the file on the target page. It will still + however delete the redirect page. +* (bug 22683) {{msgnw:}} and other uses of PPFrame::RECOVER_ORIG will correctly + recover the original code of extension tags. +* (bug 65757) MSSQL: Update script drops unnamed constraints to be prepared + for future updates. Because it's doing so heuristically, it may fail or drop + wrong constraints. +* (bug 67870) wfShellExec() cuts off stdout at multiples of 8192 bytes. +* $wgRunJobsAsync now works with private wikis (e.g. read requires login). +* (bugs 57238, 65206) Blank pages can now be directly created. +* (bug 69789) Title::getContentModel() now loads from the database when + necessary instead of incorrectly returning the default content model. +* (bug 69249) wfBaseConvert() now works around PHP Bug #50175 when using GMP. +* (bug 57909) URLs in the externallinks table will no longer have certain + characters decoded in the query string. +* (bug 67368) LESS mixins like .background-image() correctly flip image + references for RTL stylesheets now. + +=== Action API changes in 1.24 === +* action=parse API now supports prop=modules, which provides the list of + ResourceLoader modules that should be used to enhance the parsed content. +* action=query&meta=siteinfo&siprop=interwikimap returns a new "protorel" + field which is true if protocol-relative urls can be used to access + a particular interwiki map entry. +* list=logevents now provides logpage, which is the page ID from the + logging table, if ids are requested and the user has the permissions. +* action=edit now requires that appendtext, prependtext, or section=new be used + when using the 'redirect' parameter, to prevent clients accidentally + overwriting the target page with the content of the redirect. +* list=logevents will now return an error if both letitle and leprefix are + specified. +* list=logevents has a new parameter, lenamespace, to allow filtering by + namespace. +* action=expandtemplates has a new parameter, prop, and a new output format. + The old format is still used if prop isn't provided, but this is deprecated. +* meta=userinfo can now return the count of unread pages on the watchlist. +* list=watchlist can now filter by unread status. +* The deprecated action=parse&prop=languageshtml has been removed. +* (bug 48071) action=setnotificationtimestamp no longer throws PHP or database + errors when no pages are given. +* (bug 60734) Actions that use ApiPageSet (e.g. purge, watch, + setnotificationtimestamp) will now include continuation information when + using a generator. +* Removed 'props' and 'errors' from action=paraminfo, as they have extremely + limited use and are generally inaccurate, unmaintained, and impossible to + properly maintain. +* Formats dbg, dump, txt, wddx, and yaml are now deprecated. +* action=paraminfo now indicates when a parameter is specifying a submodule. +* The iwurl parameter to prop=iwlinks is deprecated in favor of iwprop=url, for + parallelism with prop=langlinks. +* All tokens should be fetched from action=query&meta=tokens; all other methods + of fetching tokens are deprecated. The value needed for meta=tokens's 'type' + parameter for each module is documented in the action=help output and is + returned from action=paraminfo. +* New action ClearHasMsg that can be used to clear HasMsg flag. +* The cmstartsortkey and cmendsortkey parameters to list=categorymembers are + deprecated in favor of cmstarthexsortkey and cmendhexsortkey. +* (bug 63326) Add blockedtimestamp field to output of blockinfo property for + the list=allusers and list=users modules. +* prop=imageinfo no longer requires iiurlwidth to be set when using iiurlparam. +* Added prop=linkshere, prop=fileusage, and prop=transcludedin, which are + roughly equivalent to list=backlinks, list=imageusage, and list=embeddedin + but can work on a list of titles (including titles from a generator). +* prop=redirects can now filter returned redirects by namespace. + +=== Action API internal changes in 1.24 === +* Methods for handling continuation are added to ApiResult, so actions other + than query that use generators can easily support continuation. +* $wgAPIModules (and the related $wgAPIFormatModules, $wgAPIMetaModules, + $wgAPIPropModules, and $wgAPIListModules settings) now allow API modules + to be specified using a "module spec" array instead of a plain class name. + A "module spec" is an associative array containing at least the 'class' key + for the module's class, and optionally a 'factory' key for the factory function + to use for the module. This is intended for extensions that want control over + the instantiation of their API modules, to allow for proper dependency + injection. +* A new param type 'submodule' is available. Parameters of this type will take + the list of valid values from the module's ApiModuleManager for the group + corresponding to the parameter name. +* The 'APIGetPossibleErrors' and 'APIGetResultProperties' hooks are no longer used. +* API token handling has been rewritten. Any API module using tokens will need + to be updated: + * ApiBase::needsToken now returns a token type instead of boolean true when a + token is needed. Returning true will throw an exception. See documentation + of that method for details. + * Information for the 'token' parameter is automatically set by ApiBase + getFinalParams and getFinalParamDescription. + * ApiBase::getTokenSalt has been removed. + * The hooks APIQueryInfoTokens, APIQueryRevisionsTokens, + APIQueryRecentChangesTokens, APIQueryUsersTokens, and + ApiTokensGetTokenTypes are deprecated, but are still called to support + backwards-compatible token access. +* ApiBase::validateLimit and ApiBase::validateTimestamp are now protected. +* ApiQueryRedirects was removed; prop=redirects is now implemented by + ApiQueryBacklinksProp along with the newly-added prop modules. +* The following methods have been deprecated and may be removed in a future + release: + * ApiBase::getResultProperties + * ApiBase::getFinalResultProperties + * ApiBase::addTokenProperties + * ApiBase::getRequireOnlyOneParameterErrorMessages + * ApiBase::getRequireMaxOneParameterErrorMessages + * ApiBase::getRequireAtLeastOneParameterErrorMessages + * ApiBase::getTitleOrPageIdErrorMessage + * ApiBase::getPossibleErrors + * ApiBase::getFinalPossibleErrors + * ApiBase::parseErrors + * ApiQuery::setGeneratorContinue + * ApiQueryBase::checkRowCount + * ApiQueryBase::titleToKey + * ApiQueryBase::keyToTitle + * ApiQueryBase::keyPartToTitle + * ApiQueryInfo::getTokenFunctions + * ApiQueryInfo::resetTokenCache + * ApiQueryInfo::getEditToken + * ApiQueryInfo::getDeleteToken + * ApiQueryInfo::getProtectToken + * ApiQueryInfo::getMoveToken + * ApiQueryInfo::getBlockToken + * ApiQueryInfo::getUnblockToken + * ApiQueryInfo::getEmailToken + * ApiQueryInfo::getImportToken + * ApiQueryInfo::getWatchToken + * ApiQueryInfo::getOptionsToken + * ApiQueryRecentChanges::getTokenFunctions + * ApiQueryRecentChanges::getPatrolToken + * ApiQueryRevisions::getTokenFunctions + * ApiQueryRevisions::getRollbackToken + * ApiQueryUsers::getTokenFunctions + * ApiQueryUsers::getUserrightsToken +* The following classes have been deprecated and may be removed in a future + release: + * ApiFormatDbg + * ApiFormatDump + * ApiFormatTxt + * ApiFormatWddx + * ApiFormatYaml + * ApiTokens +* The following class constants have been deprecated and may be removed in a + future release: + * ApiBase::PROP_ROOT + * ApiBase::PROP_LIST + * ApiBase::PROP_TYPE + * ApiBase::PROP_NULLABLE + +=== Languages updated in 1.24 === + +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. + +=== Other changes in 1.24 === +* The deprecated jquery.delayedBind ResourceLoader module was removed. +* The deprecated function mw.util.toggleToc was removed. +* The Special:Search hooks SpecialSearchGo and SpecialSearchResultsAppend + were removed as they were unused. +* (bug 65477) User::pingLimiter() now has an additional profile point varying + by action being used. +* mediawiki.util.$content no longer supports old versions of the Vector, + Monobook, Modern and CologneBlue skins that don't yet implement the "mw-body" + and/or "mw-body-primary" class name in their html. +* Added pp_sortkey column to page_props table, so pages can be efficiently + queried and sorted by property value (bug 58032). + See $wgPagePropsHaveSortkey if you want to postpone the schema change. +* BREAKING CHANGE: All four built-in MediaWiki skins (Vector, MonoBook, Modern + and Cologne Blue) were moved out of MediaWiki core to their own respective + repositories. They will be installed with the release tarball, but you must + install them separately if installing MediaWiki from source code. A warning + message displayed until you do it should guide you through the process. See + also . +* BREAKING CHANGE: Skins built for MediaWiki 1.15 and earlier that do not use + the "headelement" template key are no longer supported. Setting + $useHeadElement = false; is no longer supported and will not cause old keys + like "headlinks", "skinnameclass", etc. to be defined. +* BREAKING CHANGE: The files commonElements.css, commonContent.css and + commonInterface.css (in skins/common/) have been removed. Skins may no longer + rely on their presence and include them in their style modules. ResourceLoader + modules introduced in MediaWiki 1.23 should be loaded instead: + - skins/common/commonElements.css → 'mediawiki.skinning.elements' module + - skins/common/commonContent.css → 'mediawiki.skinning.content' module + - skins/common/commonInterface.css → 'mediawiki.skinning.interface' module +* The deprecated 'SpecialVersionExtensionTypes' hook was removed. +* (bug 63891) Add 'X-Robots-Tag: noindex' header in action=render pages. +* SpecialPage no longer supports the syntax for invoking wfSpecial*() functions. + Special pages should subclass SpecialPage and implement the execute() method. +* (bug 63755) The deprecated constants RC_MOVE and RC_MOVE_OVER_REDIRECT were + removed. +* Special:MostLinkedTemplates has been renamed to Special:MostTranscludedPages. +* The skin autodiscovery mechanism has been deprecated and will be removed in + MediaWiki 1.25. See https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery + for migration guide for creators and users of custom skins that relied on it. +* ResourceLoaderFileModule#getAllStyleFiles now returns all style files and all + skin style files used by the module. +* Removed getLang() from IContextSource and subclasses. (deprecated since 1.19) +* Removed setLang() from subclasses of IContextSource. (deprecated since 1.19) +* Removed WebRequest::escapeAppendQuery(). (deprecated since 1.20) +* Removed info(), purge(), revert() and rollback() from the Article class; they + have since become subclasses of the Action class. (deprecated since 1.19) +* SearchEngineReplacePrefixesComplete hook was removed. +* The "jquery.json" module has been deprecated. Use the "json" module instead. +* Removed HTMLForm::addJS(). (deprecated since 1.18) +* Removed LogEventsList::showHeader(). (deprecated since 1.19) +* Removed ImageGalleryBase::useSkin(). (deprecated since 1.18) +* Removed DatabaseMysqlBase::getLagFromProcesslist(). (deprecated since 1.19) +* Removed LoadBalancer::closeConnecton(). (deprecated since 1.18) +* Removed ApiBase::createContext(). (deprecated since 1.19) +* BREAKING CHANGE: The undocumented Special{$this->getName()}BeforeFormDisplay + set of hooks has been removed and replaced by a single new hook + SpecialPageBeforeFormDisplay. +* (bug 65781) Removed block warning on included {{Special:Contributions}} +* Removed Skin::makeGlobalVariablesScript(). (deprecated since 1.19) +* Removed MWNamespace::isMain(). (deprecated since 1.19) +* Removed Preferences::loadOldSearchNs(). (deprecated since 1.19) +* Removed OutputPage::getStatusMessage(). (deprecated since 1.18) +* Removed OutputPage::isUserJsAllowed(). (deprecated since 1.18) +* Removed Title::updateTitleProtection(). (deprecated since 1.19) +* Removed ParserOptions::setSkin(). (deprecated since 1.19) +* Removed Title::escapeCanonicalURL(). (deprecated since 1.19) +* Removed Title::escapeLocalURL(). (deprecated since 1.19) +* Removed Title::escapeFullURL(). (deprecated since 1.19) +* Removed User::isValidEmailAddr(). (deprecated since 1.18) +* Removed Title::getEscapedText(). (deprecated since 1.19) +* Removed Language::getFallbackLanguageCode(). (deprecated since 1.19) +* Removed WikiPage::isBigDeletion(). (deprecated since 1.19) +* Removed MWInit class which contained functions related to a now discontinued + PHP compiler called hphpc. (deprecated since 1.22) +* ApiResult::enableSizeCheck() and disableSizeCheck() are now obsolete. +* Removed ResourceLoaderGetStartupModules hook. (deprecated since 1.23) +* Removed getFormFields(), onSubmit() and onSuccess() from FormlessAction, as + these were meant specifically for FormAction instead. +* Removed Action::execute(). +* Removed AjaxAddScript which has been obsolete since ResourceLoader and + is unused by any modern extension. +* Removed maintenance/nextJobDB.php; no longer in use. +* Removed global function wfViewPrevNext(). (deprecated since 1.19) +* Removed global function xmlsafe() from Export.php. (moved to OAIRepo extension) +* Removed Title::userCanRead(). (deprecated since 1.19) +* Removed maintenance script importTextFile.php. Use edit.php script instead. +* A _from_namespace field has been added to the templatelinks, pagelinks, + and filelinks tables. Run update.php to apply this change to the schema. +* Removed File::sha1Base36(). (deprecated since 1.19) +* Removed File::getPropsFromPath(). (deprecated since 1.19) +* Removed functions blockedPage(), noCreatePermission(), readOnlyPage() and + userNotLoggedInPage() from EditPage.php. (deprecated since 1.19) +* Removed functions getContent(), getPreloadedText(), mergeChangesInto() and + setPreloadedText() from EditPage.php. (deprecated since 1.21) +* Removed global functions wfArrayLookup(), wfArrayMerge(), wfDebugDieBacktrace() + and wfTime(). (deprecated since 1.22) +* Browser support for Internet Explorer 6 and 7 lowered from Grade A to Grade C, + meaning that JavaScript is no longer executed in these browser versions. +* Browser support for Opera 11 lowered from Grade A to Grade C. +* Removed IEFixes module which existed purely to provide support for MSIE versions + below 7 (conditionally loaded only for those browsers). +* Deprecated SpecialPageFactory::getList() in favor of + SpecialPageFactory::getNames() +* Action::checkCanExecute() no longer has a return value. +* Removed cleanupForIRC(), loadFromCurRow(), newFromCurRow(), notifyRC2UDP() + and sendToUDP() from RecentChange.php. (deprecated since 1.22) +* Removed EnhancedChangesList::arrow(), sideArrow(), downArrow(), spacerArrow(). +* Removed Xml::namespaceSelector(). (deprecated since 1.19) +* Removed WikiPage::estimateRevisionCount(). (deprecated since 1.19) +* MYSQL: Enum item added to "major MIME type" columns. + Running update.php on MySQL < v5.1 may result in heavy processing. +* RSS and Atom feeds generated by MediaWiki no longer include a fallback + stylesheet. It was ignored by most browsers these days anyway. +* SpecialSearchNoResults hook has been removed. SpecialSearchResults is now + called unconditionally. +* TablePager::getBody() is now 'final' and can't be overridden in subclasses. +* TablePager::getBody() is deprecated, use getBodyOutput() or getFullOutput(). +* Added $outputPage parameter to the SkinTemplateGetLanguageLink hook. +* log_page for move log entries store the original page ID, rather than that + of the new redirect page. This is not retroactive. +* LCStoreAccel was removed. $wgLocalisationCacheConf can no longer be set to + use this store class. +* Html::infoBox() no longer accepts paths relative to skins/common/images/. +* Deprecated defunct Skin::getCommonStylePath(). +* Some extensions had their ResourceLoader modules depend on the "mediawiki" + and "jquery" modules. In the past, this behavior was undefined, now it will + throw an error. +* Removed BagOStuff::replace(). (deprecated since 1.23) +* In Linker.php, link(), linkText() and makeBrokenImageLinkObj() now display + warnings if their first parameter is not a Title object. Also makeImageLink() + now requires a Parser as its first parameter. +* (bug 67368) LESS functions embed() and embeddable(), added in MediaWiki 1.23 + and broken by design, have been removed. Use appropriate LESS mixins instead. +* Removed cssjanus.py from maintenance directory as it was unused. +* Removed maintenance/purgeOldText.inc and the PurgeRedundantText() function + it contained (superseded by Maintenance::purgeRedundantText() in 1.16). + The purgeOldText.php maintenance script has been retained. +* PHPUnit tests can be found by directory discovery, by adding the directory + path from your UnitTestsList callback. Older versions of MediaWiki core will + barf at this usage. + +==== Renamed classes ==== +* CLDRPluralRuleConverter_Expression to CLDRPluralRuleConverterExpression +* CLDRPluralRuleConverter_Fragment to CLDRPluralRuleConverterFragment +* CLDRPluralRuleConverter_Operator to CLDRPluralRuleConverterOperator +* CLDRPluralRuleEvaluator_Range to CLDRPluralRuleEvaluatorRange +* CSSJanus_Tokenizer to CSSJanusTokenizer +* MediaWiki_I18N to MediaWikiI18N +* Parser_DiffTest to ParserDiffTest +* RevDel_ArchiveItem to RevDelArchiveItem +* RevDel_ArchiveList to RevDelArchiveList +* RevDel_ArchivedFileItem to RevDelArchivedFileItem +* RevDel_ArchivedFileList to RevDelArchivedFileList +* RevDel_ArchivedRevisionItem to RevDelArchivedRevisionItem +* RevDel_FileItem to RevDelFileItem +* RevDel_FileList to RevDelFileList +* RevDel_Item to RevDelItem +* RevDel_List to RevDelList +* RevDel_LogItem to RevDelLogItem +* RevDel_LogList to RevDelLogList +* RevDel_RevisionItem to RevDelRevisionItem +* RevDel_RevisionList to RevDelRevisionList +* WebInstaller_Complete to WebInstallerComplete +* WebInstaller_Copying to WebInstallerCopying +* WebInstaller_DBConnect to WebInstallerDBConnect +* WebInstaller_DBSettings to WebInstallerDBSettings +* WebInstaller_Document to WebInstallerDocument +* WebInstaller_ExistingWiki to WebInstallerExistingWiki +* WebInstaller_Install to WebInstallerInstall +* WebInstaller_Language to WebInstallerLanguage +* WebInstaller_Name to WebInstallerName +* WebInstaller_Options to WebInstallerOptions +* WebInstaller_Readme to WebInstallerReadme +* WebInstaller_ReleaseNotes to WebInstallerReleaseNotes +* WebInstaller_Restart to WebInstallerRestart +* WebInstaller_Upgrade to WebInstallerUpgrade +* WebInstaller_UpgradeDoc to WebInstallerUpgradeDoc +* WebInstaller_Welcome to WebInstallerWelcome + +==== Removed classes ==== +* IPBlockForm - Use SpecialBlock directly +* WatchlistEditor - Use SpecialEditWatchlist directly +* FormatExif - Use FormatMetadata directly +* RevertFileAction - Use RevertAction directly +* HistoryPage - Use HistoryAction directly +* RawPage - Use RawAction directly +* StubContLang - Use Language::factory() instead +* XMLReader2 - Use XMLReader directly +* ResourceLoaderLESSFunctions - No longer in use, not intended for public usage + +==== Removed files ==== +The skins/common/ directory, previously containing some assets intended to be +used by skins and a number of legacy styles and scripts, has been removed. Its +contents have been deleted or relocated into the resources/ directory. Full list +of files that are no longer available follows. + +* skins/common/ajax.js +* skins/common/commonContent.css +* skins/common/commonElements.css +* skins/common/commonInterface.css +* skins/common/commonPrint.css +* skins/common/config-cc.css +* skins/common/config.css +* skins/common/config.js +* skins/common/feed.css +* skins/common/IEFixes.js +* skins/common/oldshared.css +* skins/common/protect.js +* skins/common/shared.css +* skins/common/upload.js +* skins/common/wikibits.js +* skins/common/images/add.png +* skins/common/images/ajax-loader.gif +* skins/common/images/arrow_disabled_first_25.png +* skins/common/images/arrow_disabled_last_25.png +* skins/common/images/arrow_disabled_left_25.png +* skins/common/images/arrow_disabled_right_25.png +* skins/common/images/arrow_first_25.png +* skins/common/images/arrow_last_25.png +* skins/common/images/arrow_left_25.png +* skins/common/images/arrow_right_25.png +* skins/common/images/Arr_.png +* skins/common/images/Arr_d.png +* skins/common/images/Arr_l.png +* skins/common/images/Arr_r.png +* skins/common/images/Arr_u.png +* skins/common/images/bullet.gif +* skins/common/images/button_bold.png +* skins/common/images/button_extlink.png +* skins/common/images/button_headline.png +* skins/common/images/button_hr.png +* skins/common/images/button_image.png +* skins/common/images/button_italic.png +* skins/common/images/button_link.png +* skins/common/images/button_media.png +* skins/common/images/button_nowiki.png +* skins/common/images/button_sig.png +* skins/common/images/button_template.png +* skins/common/images/cc-0.png +* skins/common/images/cc-by-nc-sa.png +* skins/common/images/cc-by-sa.png +* skins/common/images/cc-by.png +* skins/common/images/Checker-16x16.png +* skins/common/images/closewindow.png +* skins/common/images/closewindow19x19.png +* skins/common/images/critical-32.png +* skins/common/images/diffunderline.gif +* skins/common/images/download-32.png +* skins/common/images/feed-icon.png +* skins/common/images/feed-icon.svg +* skins/common/images/gnu-fdl.png +* skins/common/images/help-question-hover.gif +* skins/common/images/help-question.gif +* skins/common/images/info-32.png +* skins/common/images/link_icon.gif +* skins/common/images/magnify-clip-rtl.png +* skins/common/images/magnify-clip.png +* skins/common/images/mediawiki.png +* skins/common/images/nextredirectltr.png +* skins/common/images/nextredirectrtl.png +* skins/common/images/poweredby_mediawiki_88x31.png +* skins/common/images/public-domain.png +* skins/common/images/question-small.png +* skins/common/images/question.svg +* skins/common/images/redirectltr.png +* skins/common/images/redirectrtl.png +* skins/common/images/remove.png +* skins/common/images/spinner.gif +* skins/common/images/tick-32.png +* skins/common/images/tipsy-arrow.gif +* skins/common/images/tooltip_icon.png +* skins/common/images/warning-32.png +* skins/common/images/wiki.png +* skins/common/images/Zoom_sans.gif +* skins/common/images/ar/button_bold.png +* skins/common/images/ar/button_headline.png +* skins/common/images/ar/button_italic.png +* skins/common/images/ar/button_link.png +* skins/common/images/ar/button_nowiki.png +* skins/common/images/be-tarask/button_bold.png +* skins/common/images/be-tarask/button_italic.png +* skins/common/images/be-tarask/button_link.png +* skins/common/images/cyrl/button_bold.png +* skins/common/images/cyrl/button_italic.png +* skins/common/images/cyrl/button_link.png +* skins/common/images/de/button_bold.png +* skins/common/images/de/button_italic.png +* skins/common/images/fa/button_bold.png +* skins/common/images/fa/button_headline.png +* skins/common/images/fa/button_italic.png +* skins/common/images/fa/button_link.png +* skins/common/images/fa/button_nowiki.png +* skins/common/images/icons/fileicon-c.png +* skins/common/images/icons/fileicon-cpp.png +* skins/common/images/icons/fileicon-deb.png +* skins/common/images/icons/fileicon-djvu.png +* skins/common/images/icons/fileicon-djvu.xcf +* skins/common/images/icons/fileicon-dvi.png +* skins/common/images/icons/fileicon-exe.png +* skins/common/images/icons/fileicon-h.png +* skins/common/images/icons/fileicon-html.png +* skins/common/images/icons/fileicon-iso.png +* skins/common/images/icons/fileicon-java.png +* skins/common/images/icons/fileicon-mid.png +* skins/common/images/icons/fileicon-mov.png +* skins/common/images/icons/fileicon-o.png +* skins/common/images/icons/fileicon-ogg.png +* skins/common/images/icons/fileicon-ogg.xcf +* skins/common/images/icons/fileicon-pdf.png +* skins/common/images/icons/fileicon-ps.png +* skins/common/images/icons/fileicon-psd.png +* skins/common/images/icons/fileicon-rm.png +* skins/common/images/icons/fileicon-rpm.png +* skins/common/images/icons/fileicon-svg.png +* skins/common/images/icons/fileicon-tar.png +* skins/common/images/icons/fileicon-tex.png +* skins/common/images/icons/fileicon-ttf.png +* skins/common/images/icons/fileicon-txt.png +* skins/common/images/icons/fileicon.png +* skins/common/images/ksh/button_S_italic.png + + +== MediaWiki 1.23 == + +=== Configuration changes in 1.23 === +* (bug 13250) Restored method for clearing a watchlist in web UI + so that users with large watchlists don't have to perform + contortions to clear them. +* When $wgJobRunRate is higher than zero, jobs are now executed via an + asynchronous HTTP request to a MediaWiki entry point. This may require + increasing the number of server worker threads. $wgRunJobsAsync has been + added to disable this feature if needed, falling back to executing the job + on the same process but making the execution synchronously. +* $wgDebugLogGroups values may be set to an associative array with a + 'destination' key specifying the log destination. The array may also contain + a 'sample' key with a positive integer value N indicating that the log group + should be sampled by dispatching one in every N messages on average. The + sampling is random. +* In addition to the current exception log format, MediaWiki now serializes + exception metadata to JSON and logs it to the 'exception-json' log group. + This makes MediaWiki easier to integrate with log aggregation and analysis + tools. +* $wgSquidServersNoPurge now supports the use of Classless Inter-Domain + Routing (CIDR) notation to specify contiguous blocks of IPv4 and/or IPv6 + addresses that should be trusted to provide X-Forwarded-For headers. +* Preferences 'watchcreations', 'watchdefault', 'enotifwatchlistpages' ("Add + pages I create and files I upload to my watchlist", "Add pages and files I + edit to my watchlist", "Email me when a page or file on my watchlist is + changed") are now enabled by default. In addition new user accounts' personal + and talk pages are now watched by them by default. +* $wgLBFactoryConf: Class names have had underscores removed. The configuration + should be updated if LBFactory_Simple or LBFactory_Multi is configured. +* $wgPasswordSenderName has been removed and is no longer functional. To set a + custom mailer name, the system message 'emailsender' should be modified + (default: "{{SITENAME}}"). +* (bug 63269) Email notifications were not correctly handling the + [[MediaWiki:Helppage]] message being set to a full URL (the default). + If you customized [[MediaWiki:Enotif body]] (the text of email notifications), + you'll need to edit it locally to include the URL via the new variable + $HELPPAGE instead of the parser functions fullurl and canonicalurl; otherwise + you don't have to do anything. +* $wgDBAhandler was removed as the only class using it was also removed +* The 'max threads' setting was removed from $wgDBservers. +* Support for AdminSettings.php has been completely removed. All configuration + belongs in LocalSettings.php. +* $wgSkipSkin, which has been replaceable by $wgSkipSkins since 2005 (r9249), is + now formally deprecated. +* Removed deprecated $wgDisabledActions as it is hardly used anywhere. +* $wgRateLimitLog has been deprecated and replaced by + $wgDebugLogGroup['ratelimit']. +* $wgLocalInterwikis is an array containing multiple local interwiki prefixes + (interwiki prefixes that point back to the current wiki). This effectively + allows more than one value of $wgLocalInterwiki to be specified and + understood by the parser. The value of $wgLocalInterwiki is automatically + prepended to the start of this array. +* $wgQueryPages has been removed. Query Pages should be added to by using the + wgQueryPages hook. +* $wgHttpOnlyBlacklist has been removed. +* $wgLicenseTerms has been removed as it was unused. +* $wgProfileOnly is now deprecated; set the log file in + $wgDebugLogGroups['profileoutput'] to replace it. +* $wgMaxBacklinksInvalidate was removed; use $wgJobBackoffThrottling instead +* Deprecated ResourceLoaderGetStartupModules hook. + +=== New features in 1.23 === +* ResourceLoader can utilize the Web Storage API to cache modules client-side. + Compared to the browser cache, caching in Web Storage allows ResourceLoader + to be more granular about evicting stale modules from the cache while + retaining the ability to retrieve multiple modules in a single HTTP request. + This capability can be enabled by setting $wgResourceLoaderStorageEnabled to + true. This feature is currently considered experimental and should only be + enabled with care. +* (bug 6092) Add expensive parser functions {{REVISIONID:}}, {{REVISIONUSER:}} + and {{REVISIONTIMESTAMP:}} (with friends). +* Add "wgRelevantUserName" to mw.config containing the current + Skin::getRelevantUser value. +* (bug 56033) Add content model to the page information. +* Added Article::MissingArticleConditions hook to give extensions a chance to + hide their (unrelated) log entries. +* Added LonelyPagesQuery hook to let extensions modify the query used to + generate Special:LonelyPages. +* Added $wgOpenSearchDefaultLimit defining the default number of entries to show + on action=opensearch API call. +* For namespaces with $wgNamespaceProtection (including the MediaWiki + namespace), the "protect" tab will be shown only if there are restriction + levels available that would restrict editing beyond what + $wgNamespaceProtection already applies. The protection form will offer only + those protection levels. +* Added $wgAPIFormatModules, allowing extensions to add additional output + formatting modules for the API. +* (bug 47812) The MediaWiki:Group-user.{css,js} pages can now be used to add + custom CSS or JavaScript enabled only for registered users. +* (bug 52005) Special pages RecentChanges, RecentChangesLinked and Watchlist + now include a legend describing the symbols used in lists of changes. +* Improved the accessibility of the tabs in Special:Preferences. +* Added ApiBeforeMain hook, roughly equivalent to the BeforeInitialize hook: + it's called after everything is set up but before any major processing + happens. +* The jquery.client module now performs a component-wise version comparison in + its #test method when strings are used in the browser map: version '1.10' is + now correctly considered larger than '1.2'. Using numbers in the version map + is not affected. +* All API modules now support an assert parameter, which can either be + 'user' or 'bot'. The API will throw an error if the user is not logged + in (user) or does not have the 'bot' userright (bot). Based off of the + AssertEdit extension by Steve Sanbeg. +* [[Special:Diff]] was added, allowing users to create internal links to + revision comparison pages using syntax such as [[Special:Diff/12345]], + [[Special:Diff/12345/prev]] or [[Special:Diff/12345/98765]]. +* New user accounts' personal and talk pages are now watched by them by default. +* Added SkinTemplateGetLanguageLink hook to allow changing the html of language + links. +* Added MessageCache::get hook as a new way to customize messages across + multiple sites. +* Added jquery.throttle-debounce ResourceLoader module to limit the number of + callbacks for frequently occurring events. +* Special:ProtectedPages shows now a table. The timestamp, the reason and + the protecting user are also shown. +* Added experimental support for using Microsoft SQL Server as the database + backend. +** Added new Microsoft SQL Server-specific configuration variable + $wgDBWindowsAuthentication, which makes the web server authenticate against + the database server using Integrated Windows Authentication instead of + $wgDBuser/$wgDBpassword. +* HTMLForm 'select', 'selectandother', 'selectorother', 'multiselect', and + 'radio' fields can now use message keys as labels via the 'options-messages' + parameter, which overrides the 'options' parameter. +* Admins can expire users users passwords manually, or on a schedule using the + $wgPasswordExpirationDays configuration setting. +* Add new hook SendWatchlistEmailNotification, this will be used to determine + whether to send a watchlist email notification. +* (bug 42026) Special:Contributions now includes an option to filter page + creations, similar to the topOnly option. +* Add mediawiki.ui.button styling to all pages so wiki content can use styled + buttons. +* Special:UserLogin/signup now does AJAX checks for invalid and taken usernames, + displaying the error live. +* Added BaseTemplateAfterPortlet hook to allow injecting html after portlets in skins. +* Support has been added for a JSON based localisation file format. The + installer has been updated to use it. +* Changes to content typography (colors, line-height etc.). See + https://www.mediawiki.org/wiki/Typography_refresh for further information. +* The Vector skin's visual treatment of external links has been simplified to a + single icon (from nine). This should not affect local rules unless they were + re-using these icons, which have now been deleted. +* ResourceLoader: mw.loader.using() now implements a Promise interface. +* Add new hook ChangesListInitRows accessed via ChangesList::initChangesListRows. + If called by the ChangesList consumer this gives extensions a chance to batch + process the result set prior to rendering. +* A PoolCounterRedis class was added which can be make use of in $wgPoolCounterConf. + This requires at least one Redis 2.6+ server. +* $wgProfileToDatabase was removed. Set $wgProfiler to ProfilerSimpleDB + in StartProfiler.php instead of using this. +* (bug 63444) Made it possible to change the indent string (default: 4 spaces) + used by FormatJson::encode(). + +=== Bug fixes in 1.23 === +* (bug 41759) The "updated since last visit" markers (on history pages, recent + changes and watchlist) and the talk page message indicator are now correctly + updated when the user is viewing old revisions of pages, instead of always + acting as if the latest revision was being viewed. +* (bug 56443) Special:ConfirmEmail no longer shows a "Mail a confirmation code" + when the email address is already confirmed. Also, consistently use + "confirmed", rather than "authenticated", when messaging whether or not the + user has confirmed an email address. +* (bug 19415) action=render no longer shows section edit links. This affects + behavior of several other features where (bogus) section edit links will + disappear, such as file description pages loaded via $wgUseInstantCommons or + pages transcluded cross-wiki via $wgEnableScaryTranscluding. +* (bug 56912) Show correct link color on cached result of Special:DeadendPages. +* Classes TitleListDependency and TitleDependency have been removed, as they + have been found unused in core and extensions for a long time. +* (bug 57098) SpecialPasswordReset now obeys returnto parameter +* (bug 37812) ResourceLoader will notice when a module's definition changes and + recompile it accordingly. +* (bug 57201) SpecialRecentChangesFilters hook is now executed for feeds. +* (bug 58640) Fixed a compatibility issue with PCRE 8.34 that caused pages + to appear blank or with missing text. +* (bug 56931) Updated the plural rules to CLDR 24. They are in new format + which is detailed in UTS 35 Rev 33. The PHP parser and evaluator as well as + the JavaScript evaluator were updated to support the new format. Plural rules + for some languages have changed, most notably Russian. Affected software + messages have been updated and marked for review at translatewiki.net. +* (bug 23542) imagelinks now stores both the redirect and target (as + templatelinks does). +* (bug 58167) The web installer no longer throws an exception when PHP is + compiled without support for MySQL yet with support for another DBMS. +* (bug 56199) Raw option of parser functions must now match complete word, + to take effect. +* (bug 60543) Special:PrefixIndex forgot stripprefix=1 for "Next page" link +* (bug 29762) Undoing an already-undone edit will now display an appropriate + message instead of leading the user to make a null edit. +* (bug 52659) mediawiki.notification: Notification area remained visible when + empty and thus was stealing pointer events from links on the page. +* (bug 26811) When a DBUnexpectedError occurs, DB server hostnames are now + hidden unless $wgShowExceptionDetails is true, and $wgShowDBErrorBacktrace + no longer applies in such cases. +* (bug 60960) Avoid doing file_exist() checks on data: URIs, as they cause + warnings to be printed on Windows due to large path length. +* (bug 48084) Fixed a bug in the installer that could cause $wgLogo to hold + the wrong path to the placeholder logo (skins/common/images/wiki.png). +* (bug 64289) jquery.textSelection: Don't throw errors on empty collections. + +=== Web API changes in 1.23 === +* (bug 54884) action=parse&prop=categories now indicates hidden and missing + categories. +* action=query&meta=filerepoinfo now returns additional information for each + repo. +* action=parse&prop=languageshtml was deprecated in 1.18 and will be removed in + MediaWiki 1.24. +* action=parse now has disabletoc flag to disable table of contents in output. +* (bug 25702) list=allcategories, list=allimages, list=alllinks, list=allpages, + list=deletedrevs and list=filearchive did not handle case-sensitivity + properly for all parameters. +* ApiQueryBase::titlePartToKey allows an extra parameter that indicates the + namespace in order to properly capitalize the title part. +* (bug 57874) action=feedcontributions no longer has one item more than limit. +* All API modules now support an assert parameter. See the new features section + for more details. +* Added prop=contributors to fetch the list of contributors to the page. +* The following API modules will now return entries where fields have been + revision-deleted: list=deletedrevs, list=filearchive, list=recentchanges, + list=watchlist. "hidden" indicators will be included, in the same style as is + already done for prop=revisions. +* The following API modules will now return the content of revision-deleted + fields, in addition to the "hidden" indicators, if the querying user has the + necessary rights: list=logevents, list=usercontribs, prop=imageinfo, + prop=revisions. +* The above modules, where applicable, will now return entries filtered by + revision-deleted fields if the querying user has the necessary rights. For + example, prop=revisions with rvuser or rvexcludeuser will no longer skip + revisions where the user was revision-deleted if the current user has the + deletedhistory right. +* The 'hideuser' right, used when blocking, is no longer necessary or + sufficient for seeing contributions with revision-deleted in + list=usercontribs. +* list=watchlist now uses the querying user's rights rather than the wlowner's + rights when checking whether wlprop=patrol is allowed. +* (bug 32151) ApiWatch now has pageset capabilities (titles/pageids/generators). + Title parameter is now deprecated. +* (bug 23005) Added action=revisiondelete. +* Added siprop=restrictions to API action=query&meta=siteinfo for querying + possible page restriction (protection) levels and types. +* Added prop 'limitreportdata' and 'limitreporthtml' to action=parse. +* (bug 58627) Provide language names on action=parse&prop=langlinks. +* Deprecated llurl= in favour of llprop=url for action=query&prop=langlinks. +* Added llprop=langname and llprop=autonym for action=query&prop=langlinks. +* prop=redirects is added, to return redirects to the pages in the query. +* list=allredirects is added, to list all redirects pointing to a namespace. +* (bug 42026) Added ucshow={new,!new,top,!top} to list=usercontribs. + Also added newonly to action=feedcontributions. +* (bug 42026) Deprecated uctoponly in favor of ucshow=top. +* list=search no longer has a "srredirects" parameter. Redirects are now + included in all searches. +* Added list=prefixsearch that works like action=opensearch but can be used as + a generator. +* (bug 24782) Various modules will now use unique continuation parameters. +* (bug 63249) Cache RecentChanges Atom feed in varnish for 15 seconds. + +=== Languages updated in 1.23 === + +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. + +* Support was added for Algerian Spoken Arabic (arq). +* Support was added for Riograndenser Hunsrückisch (hrx). +* Support was added for Northern Luri (lrc). + +=== Other changes in 1.23 === +* The rc_type field in the recentchanges table has been superseded by a new + rc_source field. The rc_source field is a string representation of the + change type where rc_type was a numeric constant. This field is not yet + queried but will be in a future release. +** Utilize update.php to create and populate this new field. On larger wikis + which do not wish to update recentchanges table in one large update please + review the SQL and comments in maintenance/archives/patch-rc_source.sql. +** The rc_type field of recentchanges will be deprecated in a future release. +* The global variable $wgArticle has been removed after a lengthy deprecation. +* The global functions addButton and insertTags (for mw.toolbar.addButton and + mw.toolbar.insertTags) now emits mw.log.warn when accessed. +* The ExpandTemplates extension has been moved into MediaWiki core. +* (bug 52812) Removed "Disable search suggestions" from Preference. +* (bug 52809) Removed "Disable browser page caching" from Preference. +* Three new modules intended for use by custom skins were added: + 'mediawiki.skinning.elements', 'mediawiki.skinning.content', and + 'mediawiki.skinning.interface', representing three levels of standard + MediaWiki styling. Previously skin creators wishing to use them had to refer + to the file names of appropriate files directly, which is now discouraged. +* The modules 'skins.vector' and 'skins.monobook' have been renamed to + 'skins.vector.styles' and 'skins.monobook.styles', respectively, + and their definition was changed not to include the common*.css files; + the two skins now load the 'mediawiki.skinning.interface' module instead. +* A page_links_updated field has been added to the page table. +* SpecialPage::getTitle has been deprecated in favor of + SpecialPage::getPageTitle. +* BREAKING CHANGE: Two potentially backwards-incompatible changes have been made + to the 'SpecialWatchlistQuery' hook's last parameter (array $values) to make + the hook more consistent with the 'SpecialRecentChangesQuery' one: +** Several array keys have been renamed: hideMinor → hideminor, + hideBots → hidebots, hideAnons → hideanons, hideLiu → hideliu, + hidePatrolled → hidepatrolled, hideOwn → hidemyself. +** The parameter value is now a FormOptions object, not a plain array (array + access operators should continue to work, as it implements the ArrayAccess + interface). +* Option to mark hooks as deprecated has been added. +* (bug 52811) Preference "Enable section editing via [edit] links" was removed. +* (bug 52813) Preference "Show table of contents (for pages with more than + 3 headings)" was removed. +* (bug 52810) Preference "Justify paragraphs" was removed. +* OutputPage::showErrorPage raises a notice if arguments are incoherent. +* Thumbnails that keep failing to render in thumb.php will be rate-limited + against further render attempts for 1 hour. $wgAttemptFailureEpoch can be + altered to reset all rate-limited thumbnails at once. +* (bug 56572) Builds of the OOjs and OOjs UI libraries are now available. +* mw.loader.go and mw.loader.version have been removed. +* (bug 52815) Preference "Enable simplified search bar (Vector skin only)" + was removed. +* A user_password_expires column has been added to the user table. The User + object expects this column to exist. Use update.php to create this new field. +* The jquery.delayedBind ResourceLoader module was deprecated in favor of the + jquery.throttle-debounce module. It will be removed in MediaWiki 1.24. +* mw.user.bucket has been deprecated. +* On Special:PrefixIndex, a table#mw-prefixindex-list-table was changed to + table.mw-prefixindex-list-table to avoid duplicate ids when the special page + is transcluded. +* (bug 62198) window.$j has been deprecated. +* Preference "Disable link title conversion" was removed. +* SpecialRecentChanges no longer includes any functionality for generating feeds + - it has been factored out to ApiFeedRecentChanges. Old URLs redirect to new + ones. +* RecentChange::mExtra['lang'] is no longer set and should no longer be used. + Extensions should read from other configuration variables, including + $wgLocalInterwikis, to identify the current wiki. +* Sections in the parser test framework have been renamed and the old + section names are deprecated. Please use "!!wikitext" and "!!html" + (or "!!html/php") instead of "!!input" and "!!result". This allows + us to extend parser tests to accommodate additional input/output + pairs, such as "!!html/parsoid" (for the output of the Parsoid + parser, where it differs from the PHP parser). +* Special:Search no longer has an "include redirects" option on the advanced + tab. Redirects are now included in all searches. +* mediawiki.api.category's getCategories() 'async' parameter was deprecated. +* The locations of resources have been split between upstream libraries, now in + resources/lib/, local libaries in resources/src/, and local forks of upstream + libraries, also in resources/src/. +* BREAKING CHANGE: The automatically-generated function closure with which + ResourceLoader wraps all modules' JavaScript code now binds the identifier + names 'jQuery' and '$' to the jQuery object of the version of jQuery that is + bundled with MediaWiki. If you bind these names to other objects in global + scope (like Zepto.js or document.querySelectorAll, for example) you will need + to use different names to or re-bind them at the top of each + ResourceLoader-loaded module. +* (bug 52342) Preference "Remember my login" was removed. +* The skin autodiscovery mechanism has been deprecated and will be removed in + MediaWiki 1.25. See https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery + for migration guide for creators and users of custom skins that relied on it. + +==== Removed classes ==== +* FakeMemCachedClient (deprecated in 1.18) +* RdfMetaData (unused) +* TitleDependency (unused) +* TitleListDependency (unused) +* WikiError (deprecated in 1.17) +* WikiXmlError (deprecated in 1.17) +* WikiErrorMsg (deprecated in 1.17) + +==== Renamed classes ==== +* CdbReader_DBA to CdbReaderDBA +* CdbReader_PHP to CdbReaderPHP +* CdbWriter_DBA to CdbWriterDBA +* CdbWriter_PHP to CdbWriterPHP +* DiffOp_Add to DiffOpAdd +* DiffOp_Change to DiffOpChange +* DiffOp_Copy to DiffOpCopy +* DiffOp_Delete to DiffOpDelete +* HWLDF_WordAccumulator to HWLDFWordAccumulator +* LBFactory_Fake to LBFactoryFake +* LBFactory_Multi to LBFactoryMulti +* LBFactory_Simple to LBFactorySimple +* LBFactory_Single to LBFactorySingle +* LCStore_Accel to LCStoreAccel +* LCStore_CDB to LCStoreCDB +* LCStore_DB to LCStoreDB +* LCStore_Null to LCStoreNull +* LoadBalancer_Single to LoadBalancerSingle +* LoadMonitor_MySQL to LoadMonitorMySQL +* LoadMonitor_Null to LoadMonitorNull +* LocalisationCache_BulkLoad to LocalisationCacheBulkLoad +* csvStatsOutput to CsvStatsOutput +* extensionLanguages to ExtensionLanguages +* languages to Languages +* statsOutput to StatsOutput +* textStatsOutput to TextStatsOutput +* wikiStatsOutput to WikiStatsOutput + +==== Removed methods ==== +* ApiBase::getValidNamespaces() (deprecated in 1.17) +* ApiMain::setCachePrivate() (deprecated in 1.17) +* ApiMain::setVaryCookie (deprecated in 1.17) +* Article::doRedirect() (deprecated in 1.18) +* Article::doUnwatch() (deprecated in 1.18) +* Article::doWatch() (deprecated in 1.18) +* Article::forUpdate() (deprecated in 1.18) +* Article::markpatrolled() (deprecated in 1.18) +* Article::unwatch() (deprecated in 1.18) +* Article::watch() (deprecated in 1.18) +* Block::clear() (deprecated in 1.18) +* Block::decodeExpiry() (deprecated in 1.18) +* Block::encodeExpiry() (deprecated in 1.18) +* Block::forUpdate() (deprecated in 1.18) +* Block::infinity() (deprecated in 1.18) +* Block::load() (deprecated in 1.18) +* Block::newFromDB() (deprecated in 1.18) +* Block::normaliseRange() (deprecated in 1.18) +* Block::parseExpiryInput() (deprecated in 1.18) +* CategoryViewer::addSubcategory() (deprecated in 1.17) +* EditPage::spamPage() (deprecated since 1.17) +* Exif::getFormattedData() (deprecated in 1.18) +* Exif::makeFormattedData() (deprecated in 1.18) +* in_string (deprecated in 1.21) +* Language::convertLinkToAllVariants() (deprecated in 1.17) +* LanguageConverter::convertLinkToAllVariants() (deprecated in 1.17) +* Linker::makeBrokenLink() (deprecated in 1.16) +* Linker::makeBrokenLinkObj() (deprecated in 1.16) +* Linker::makeColouredLinkObj() (deprecated in 1.16) +* Linker::makeSizeLinkObj() (deprecated in 1.17) +* MediaWiki::articleFromTitle() (deprecated in 1.18) +* ParserOptions::getkin() (deprecated 1.18) +* ProfilerSimple::getCpuTime (deprecated in 1.20) +* Revision::revText() (deprecated in 1.17) +* SkinTemplate::jstext() (deprecated in 1.21) +* SpecialPage::__call() (deprecated in 1.17) +* SpecialPage::executePath() (deprecated in 1.18) +* SpecialPage::exists() (deprecated in 1.18) +* SpecialPage::file() (deprecated in 1.18) +* SpecialPage::func() (deprecated in 1.18) +* SpecialPage::getGroup() (deprecated in 1.18) +* SpecialPage::getPage() (deprecated in 1.18) +* SpecialPage::getPageByAlias() (deprecated in 1.18) +* SpecialPage::getLocalNameFor() (deprecated in 1.18) +* SpecialPage::getRegularPages() (deprecated in 1.18) +* SpecialPage::getRestrictedPages() (deprecated in 1.18) +* SpecialPage::getTitleForAlias() (deprecated in 1.18) +* SpecialPage::getUsablePages() (deprecated in 1.18) +* SpecialPage::includable() (deprecated in 1.18) +* SpecialPage::init() +* SpecialPage::initAliasList() (deprecated in 1.18) +* SpecialPage::initList() (deprecated in 1.18) +* SpecialPage::name() (deprecated in 1.18) +* SpecialPage::removePage() (deprecated in 1.18) +* SpecialPage::resolveAlias() (deprecated in 1.18) +* SpecialPage::resolveAliasWithSubpage() (deprecated in 1.18) +* SpecialPage::restriction() (deprecated in 1.18) +* SpecialPage::setGroup() (deprecated in 1.18) +* SpecialRecentChanges::feedSetup() +* SpecialRevisionDelete::extractBitField() (deprecated in 1.22) +* User::getPageRenderingHash() (deprecated in 1.17) +* WebRequest::getFileSize() (deprecated in 1.17) +* WebRequest::isPathInfoBad() (deprecated in 1.17) +* wfGenerateToken (deprecated in 1.20) +* wfStreamFile (deprecated in 1.19) +* wfUILang (deprecated in 1.18) +* WikiPage::createUpdates() (deprecated in 1.18) +* WikiPage::quickEdit() (deprecated in 1.18) +* WikiPage::useParserCache() (deprecated in 1.18) +* WikiPage::viewUpdates() (deprecated in 1.18) + +==== Removed globals ==== +* $wgBetterDirectionality (deprecated in 1.18) == MediaWiki 1.22 == + +== MediaWiki 1.22.13 == +This is a maintenance release of the MediaWiki 1.22 branch. + +=== Changes since 1.22.12 === +* (bug 67440) Allow classes to be registered properly from installer + +== MediaWiki 1.22.12 == +This is a security release of the MediaWiki 1.22 branch. + +=== Changes since 1.22.11 === +* (bug 70672) SECURITY: OutputPage: Remove separation of css and js module allowance. + +== MediaWiki 1.22.11 == +This is a security release of the MediaWiki 1.22 branch. + +=== Changes since 1.22.10 === +* (bug 69008) SECURITY: Enhance CSS filtering in SVG files. Filter