diff options
author | Pierre Schmitz <pierre@archlinux.de> | 2013-12-08 09:55:49 +0100 |
---|---|---|
committer | Pierre Schmitz <pierre@archlinux.de> | 2013-12-08 09:55:49 +0100 |
commit | 4ac9fa081a7c045f6a9f1cfc529d82423f485b2e (patch) | |
tree | af68743f2f4a47d13f2b0eb05f5c4aaf86d8ea37 | |
parent | af4da56f1ad4d3ef7b06557bae365da2ea27a897 (diff) |
Update to MediaWiki 1.22.0
1906 files changed, 98835 insertions, 66825 deletions
@@ -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 @@ -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" + ] } @@ -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 @@ -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] @@ -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 == @@ -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. @@ -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. - - @@ -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: |