1 = MediaWiki release notes =
3 Security reminder: MediaWiki does not require PHP's register_globals
4 setting since version 1.2.0. If you have it on, turn it *off* if you can.
8 THIS IS NOT A RELEASE YET.
10 MediaWiki is now using a "continuous integration" development model with
11 quarterly snapshot releases. The latest development code is always kept
12 "ready to run", and in fact runs our own sites on Wikipedia.
14 Release branches will continue to receive security updates for about a year
15 from first release, but nonessential bugfixes and feature development happen
16 will be made on the development trunk and appear in the next quarterly release.
18 Those wishing to use the latest code instead of a branch release can obtain
19 it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
21 == Configuration changes ==
24 == Major new features ==
27 == Changes since 1.8 ==
29 * (bug 8200) Make category lists sorted by name when using Postgres.
30 * (bug 7841) Support 'IGNORE' inserts for Postgres, fixes watchlist
32 * (bug 6835) Removing the includes/Parser.php::getTemplateArgs() function,
33 because it seems to be unused.
34 * (bug 7139) Increasing the visual width of the edit summary field on larger
35 screen sizes, for the default monobook skin.
36 * Fix PHP notice and estimates for dumpBackup.php and friends
37 * Improved register_globals paranoia checks
38 * (bug 7545) Fix PHP version check on install
39 * Disable PHP exception backtrace printing unless $wgShowExceptionDetails
40 is set. Backtraces may contain sensitive information in function call
42 * (bug 6164) Avoid smashing Cite state if message transformation triggers
43 during bad image list check, by skipping message transformation.
44 This isn't a good permanent fix.
45 * (bug 6918) Stopped borders and backgrounds from showing through floated
47 * (bug 6868) Un-hardcode section edit link style
48 * (bug 3205) Stop right floats from stacking horizontally in non-Monobook skins
49 * Added global $wgStyleVersion to centralize bumping CSS and JS file versions
50 for cache-friendly style and script updating
51 * (bug 7562) Fix non-ASCII namespaces on Windows/XAMPP servers
52 * Friendlier check for PHP 5 in command-line scripts; it's common for parallel
53 PHP 4 and 5 installations to interfere on the command-line.
54 * Fix regression in autoconfirm permission check
55 * (bug 3015) Add CSS ids to subcategory and page sections on category pages
56 * (bug 7587) Fix erroneous id for specialpage tab, enabling informative popup
57 * (bug 7599) Fix thumbnail purging, PHP notices on HTCP image page purge
58 * (bug 7581) Update language name for cbk-zam
59 * (bug 7444) Update namespace translations for Telugu (te), kept old values as
60 alias for compatibility
61 * (bug 4525) Move section links down visually to same level as headings
62 (editsection links are now inside the heading elements)
63 * Workaround for http://bugs.php.net/bug.php?id=31892 , PATH_INFO and hence
64 URLs of the style /index.php/Main_Page were broken on some CGI installations.
65 * (bug 7623) Validate custom HTML id's correctly in Monobook interface
66 * (bug 2241) Fix collision of 'w' and 'd' accesskeys
67 * (bug 5795) CSS class added to body based on page name for page-specific
69 * (bug 6276) Stopped search field from getting too large in Cologne Blue
70 * (bug 7644) User creations that are aborted by hooks shouldn't be counted
71 against account creations per day limit
72 * (bug 7636) Show Firefox 2 users correct accesskey prefix
73 * (bug 6427) Block blocked IPs from using the mail password function
74 to allow blocking of flooders
75 * Include common.css from classic-style skins in main HTML with the bump URL
76 * (bug 7607) Add Karakalpak (kaa) to Names.php and stub message file for linktrail
77 * (bug 7582) Add 'tog-nolangconversion' to MessagesEn.php.
78 This key is need for languages with variants (zh, sr, kk)
79 * (bug 7606) MediaWiki messages for "rss" and "atom" missing
80 * (bug 7609) Add some more '*-summary' messages to MessagesEn.php with empty
81 strings to allow better localisation via Special:Allmessages. Mark this new
82 messages as optional for localisation.
83 * Fix user_newpass upgrade for prefixed tables (reported by Fyren)
84 * (bug 7663) Include language variant switcher links on Nostalgia skin
85 * (bug 6531) Fix PHP fatal error on installation page with bad username input.
86 * (bug 6977) Remove 404 link for autogenerated database documentation.
87 * (bug 7369) Allow "Show Changes" without requiring edit token.
88 * (bug 7687) Fix movetalk box checks itself when confirming a delete and move.
89 * (bug 7684) Obey watchcreated preference for Special:Upload watch checkbox
90 * (bug 7686) Include id attribute on delete form confirmation button
91 * Allow compound interwiki prefixes in $wgImportSources
92 * (bug 7304) Added redirect table to store redirect targets.
93 * Added querycachetwo table (similar to querycache but has two titles)
94 * PageArchive can now return a Revision object for more convenient processing
95 of deleted revision data
96 * Added 'UndeleteShowRevision' hook in Special:Undelete
97 * Error message on attempt to view invalid or missing deleted revisions
98 * Remove unsightly "_" from namespace in Special:Allpages, Special:Prefixindex
99 * (bug 3224) Allow minor edits by bots to skip new message notification on
100 user talk pages. This can be disabled by adjusting the 'nominornewtalk'
101 permission. Patch by Werdna.
102 * (bug 7741) MATH: fixed broken syntax of underbrace etc. Fixed arrays
103 * Fix purging for updated SVG files
104 * (bug 7745) Add id attribute to search button in Monobook
105 * (bug 7749) MATH: added some more LaTeX symbols, e.g. parallel, diamond, ast, ...
106 * (bug 7304) Added code in Article.php to keep redirect table up to date.
107 * Made special page names case-insensitive and localisable. Care has been taken
108 to maintain backwards compatibility.
109 * Used special page subpages in a few more places, instead of query parameters.
110 * (bug 7758) Added wrapper span to "templates used" explanation to allow CSS
111 styling (class="mw-templatesUsedExplanation").
112 * Added {{#special:}} parser function, to give the local default title for
114 * (bug 7766) Remove redundant / from AJAX requests, can break some servers
115 * Add tab links from extensions to classic-based skins (SkinTemplateTab hook)
116 Provides better cross-skin compatibility for extensions using the modern
117 skin hooks, such as Oversight
118 * Moved variant language links on Cologne Blue and Nostalgia to before the
120 * Fix for parser tests with MySQL 5 in strict mode
121 * Added block option "enable autoblocks"
122 * Amend Special:Ipblocklist to note when a block has autoblock DISABLED.
123 * (bug 7780) Fix regression in editing redirects
124 * Add whitespace above "templates included on this page" using CSS, not
125 hardcoded line break.
126 * Remove entries from redirect table on article deletion
127 * (bug 7788) Force section headers in new section links for users who have
128 'prompt for blank edit summaries' on.
129 * (bug 1133) Special:Emailuser: add an option to send yourself a copy of your mail.
130 * (bug 461) Allow "Categories:" link at bottom of pages to be customized via
131 pagecategorieslink message.
132 * Sort the list of skins in "My Preferences" -> Skins by alphabetical order.
133 * (bug 7785) Postgres compatibility for timestamps in RC feeds
134 * (bug 7550) Normalize user parameter normally on Special:Log
135 * (bug 7294) Fix PATH search for diff3 on install
136 * Various fixes related to the blocking change re: autoblocks. On inserting
137 an IP block, the ipb_enable_autoblock field is now automagically blanked,
138 because it doesn't make any sense for an IP. Additionally, IP blocks
139 without the ipb_enable_autoblock option no longer show up as "autoblock
140 disabled" on Special:Ipblocklist.
141 * (bug 7774) MATH: aded more amstex functions
142 * (bug 1182) MATH: fixed inconsistent rendering of upper case Greek letters in TeX
143 * Fix regression in streaming page dump generation
144 * (bug 7801) Add support for parser function hooks in parser tests
145 * checkUsernames.php now uses wfDebugLog instead of hardcoded path to log
146 * (bug 7810) Update talk namespaces for Occitan
147 * Allow case-sensitive URLs to be used for uploading from URLs.
148 * (bug 1109) Correct fix for compressed 304 responses when additional output
149 buffers have been installed within the compression handler
150 * (bug 7819) Move automatic redirect edit summary after pre-save transform
151 to work properly with subst: fun
152 * (bug 7826) Fix typos in two English messages.
153 * (bug 5365) Stop users being prompted to enter an edit summary for null edits,
154 if they have selected that option in preferences.
155 * (bug 5936) Show an 'm' to the left of the edit summary on diff pages for minor edits.
156 * (bug 7820) Improve error reporting for uploads via URL.
157 * (bug 5149) When autoblocks are enabled, retroactively apply an autoblock to the most
158 recently used IP of a user when they are blocked.
159 * Add an index on (rc_user_text,rc_timestamp) on the recentchanges table. This will
160 make CheckUser.php and the new retroactive autoblock functionality faster.
161 * Fix regression in Special:Undelete for revisions deleted under MediaWiki 1.4
162 with compression or legacy encoding
163 * (bug 6737) Fixes for MySQL 5 schema in strict mode
164 * Approximate height for client-side scaling fallback instead of passing -1
165 into the HTML output.
166 * Make the DNSBL to check for proxy blocking configurable via $wgSorbsUrl
167 * Add experimental recording/reporting mode to parser tests runner, to
168 compare changes against the previous run.
169 Additional tables 'testrun' and 'testitem' are in maintenance/testRunner.sql,
170 source this and pass --record option to parserTests.php
171 * Make the set of default parser test input files extensible via
172 $wgParserTestFiles. This can now be appended to by extensions or local
173 configuration files so that extension or custom tests can be automatically
174 run along with the main batch.
175 * Run PHP install version checks on update.php so command-line updaters see
176 new version requirements
177 * Do a check for the PHP 5.0.x 64-bit bug, since this is much more disruptive
178 as of MW 1.8 than it used to be. Install or upgrade now aborts with a
179 warning and a request to upgrade.
180 * (bug 6440) Updated indexes to improve backlinking queries (links, templates, images)
181 * Switched 'anon-only' block mode to default for IP blocks
182 * (bug 3687, 7892) Add distinct heading for media files in category display,
184 * (bug 1578) Add different icons for external links to audio, video, or PDF in
186 * Made autoblocks block account creation if the user block has that option enabled.
187 * Add auto-summaries to blankings and large removals without summaries.
188 * (bug 7811) Allow preview of edit summaries.
189 * (bug 6839) Wikibits.js minor changes to make JS-lint happier.
190 * (bug 7932) Make sure that edit toolbar clears floats so it appears correctly.
191 * (bug 6873) When viewing old revisions, add link to diff to current version.
192 * (bug 3315) Provide rollback link directly on history page.
193 * Detect CGI configurations where PATH_INFO is set up correctly.
194 PHP config var cgi.fix_pathinfo isn't detectable through ini_get(), but
195 we can find some side-effects. Only tested on lighttpd so far, hopefully
197 * Replace 'old-revision-navigation' message with 'revision-info' and
198 'revision-nav' messages, wrapped in divs with appropriate id's.
199 * (bug 4178) MediaWiki:Common.js will now be included for all users if
200 $wgUseSiteJs is enabled, in addition to (if applicable) MediaWiki:Monobook.js
201 and user JS subpages.
202 * (bug 7918) "Templates used on this page" changes during preview to reflect
203 any added or removed templates, and works as expected for section edits.
204 * (bug 7919) "Templates used on this page" is now shown for read-only pages.
205 * (bug 7688) When viewing diff, section anchors in autosummary jump to section
206 on current page instead of loading the latest version.
207 * (bug 7970) Use current connection explicitly on Database::getServerVersion
208 * (bug 2001) Tables with class="sortable" can now be dynamically sorted via
210 * Added autosummary for new pages with 500 or less characters, and refactor
211 the autosummary code so it's all done in one function. doEdit is getting too
213 * (bug 7554) The correct MIME type for SVG images is now displayed on the
214 image page (image/svg+xml, not image/svg).
215 * (bug 7883) Added autoblock whitelisting feature, using which specific ranges
216 can be protected from autoblocking. These ranges are specified, in list format,
217 in the autoblock_whitelist system message.
218 * Added placeholders for text injection by hooks to EditPage.php
219 * (bug 8009) Automatic edit summary for redirects is not filled for edits in existing pages
220 * Installer support for experimental MySQL 4.1/5.0 binary-safe schema
221 * Use INSERT IGNORE for db-based BagOStuff add/insert, for more memcache-like
222 behavior when keys already exist on add (instead of dying with an error...)
223 * Add a hook 'UploadForm:initial' before the upload form is generated, and two
224 member variable for text injection into the form, which can be filled by the hooks.
225 * (bug 6295) Add a "revision patching" functionality, where an edit can be undone
226 (with a functionality similar to diff rev1 rev2 | patch -R rev3 -o rev3).
227 This is triggered by including &undo=revid in an edit URL. A link to a URL
228 that will undo a given edit is shown on NEW NON-CURRENT revision headers on diff pages.
229 * Fix display of link in "already rolled back" message for image/category pages
230 * (bug 6016) Left-aligned images should stack vertically, like right-aligned
231 images, not horizontally.
232 * Patch from LeonWP: added UploadForm:BeforeProcessing hook in SpecialUpload.php
233 * Add AuthPluginSetup hook to override $wgAuth after configuration
234 * Fix regression in authentication hook auto-creation on login
235 * (bug 8110) Allow spaces in ISBNs
236 * (bug 8024) Introduce "send me copies of emails I send to others" preference
237 * Added 'EditPage::attemptSave' hook before an article is saved.
238 * (bug 8083) Applied patch for sk localisation
239 * Add a backslash character to the edit token, to prevent edits via certain
240 broken proxies that mangle such characters in form submissions
241 * (bug 7461) Allow overwriting pages using importTextFile.php
242 * (bug 7946) importTextFile.php doesn't perform pre-save transform
243 * (bug 8117) {{REVISIONTIMESTAMP}} showed weird default if $wgLocalTZoffset set;
244 now uses current time for previews and if timestamp can't be loaded from DB
245 * {{REVISIONTIMESTAMP}} now uses site local timezone instead of user timezone
246 to ensure consistent behavior
247 * {{REVISIONTIMESTAMP}} and friends should now work on non-MySQL backends
248 * (bug 7671) Observe canonical media namespace prefix in Linker::formatComment
249 * Added js variable wgCurRevisionId to the output
250 * (bug 8141) Cleanup of Parser::doTableStuff, patch by AzaTht
251 * (bug 8042) Make miser mode caching limits settable via $wgQueryCacheLimit
252 instead of hardcoding to 1000
253 * Enable QueryPage classes to override list formatting
254 * (bug 5485) Show number of intervening revisions in diff view
255 * (bug 8100) Fix XHTML validity in Taiwanese localization
256 * Added redirect to section feature. Use it wisely.
257 * Added a configuration variable allowing the "break out of framesets" feature
258 to be switched on and off ($wgBreakFrames). Off by default.
259 * Allow Xml::check() $attribs parameter to override 'value' attribute
260 * DB schema change: added two columns (rc_old_len and rc_new_len) to the recentchanges table to store
261 the text lengths before and after the edit
262 * (bug 1085) Made Special:Recentchanges show the character difference between the changed revisions
263 * Removed a redundant <strong> tag from diff pages that was causing display issues for some users
264 * (bug 8203) The keyboard shortcut for "log out" was removed, because users were pressing it
265 when they intended to press the shortcut for "preview".
266 * (bug 8148) Handle non-removable output buffers gracefully when cleaning
267 buffers for HTTP 304 responses, StreamFile, and Special:Export.
268 Duplicated code merged into wfResetOutputBuffers() and wfClearOutputBuffers()
269 * Special:AllPages : 'next page' link now point to the first title of the next
270 chunk instead of pointing to the last title of current chunk.
271 * (bug 4673) Special:AllPages : add a 'previous' link (new message 'prevpage')
272 * (bug 8121) wfRandom() was not between 0 and 1
273 * Add static method Parser::createAssocArgs($args), so parser functions can
274 use the same code to parse arguments as the templates do.
275 * Change behavior of logins using the temporary e-mailed password (as stored
276 in user_newpassword hash field). Instead of just logging in silently and
277 leaving the previous user_password field in place indefinitely, the user
278 is now prompted to set a new password.
280 The password-changing form is at Special:Resetpass; currently it's only
281 usable for changing from the temporary password during login, but it
282 could perhaps be generalized, replacing the subform in preferences.
284 Once the new password is set successfully, the temporary password is wiped
285 so it cannot be used to login a second time, and the login process
287 * Suppress 'mail new password' button on login form if $wgAuth forbids
288 changing user passwords; it wouldn't work very well...
289 * Consolidate password length checks and $wgAuth manipulation into
290 User::setPassword() to avoid duplicate code in different places
292 * User::setPassword() now throws PasswordError exceptions if the password
293 is illegal or cannot be set via $wgAuth. These can be caught and a human-
294 readable error message displayed by UI code.
295 * Added Title::isSubpage()
296 * (bug 8241) Don't consider user pages of User:Foo.css to be CSS subpages
297 * Set an explicit class on framed thumbnail inner divs and images, changed some
298 CSS to use these instead of using descendent selectors.
299 * Accept null parameter to User::setPassword() as indicating the password
300 field should be cleared to an unusable state. Login will only be possible
301 after the password is reset, for instance by e-mail.
302 * (bug 6394) Invalidate the password set for "by e-mail" account creations
303 to avoid accidental empty password creations.
304 * Made the show change size function work on page moves, page creations, and
305 log entries. Also fixed it in the javascript recentchanges.
306 * (bug 8239) correctly get 50 new contributions when clicking '(50 next)'
307 * (bug 2259) Fix old regression where e-mail addresses were no longer
308 confirmed on login with mailed password.
309 * Add a notification about the confirmation mail sent during account
310 creation, so people don't immediately go off to request a second one.
311 * Add a warning on Special:Confirmemail if a code was already sent and has
313 * Add user_editcount field to provide data for heuristics on account use.
314 Incremented on edit, with lazy initialization from past revision data.
315 Can batch-initialize with maintenance/initEditCount.php (not yet friendly
316 to replication environments, this will do all accounts in one query).
317 * Allow raw SQL subsections in Database::update() SET portion as well as
318 for WHERE portion. Handy for increments and such.
319 * User::getOption now accept a default value to override default user values
320 this makes it consistent with WebRequest::get* methods. Corrected code in
321 various places accordingly.
322 * (bug 8264) Fix JavaScript global vars for XHTML mode
323 * Make $wgSiteNotice value wikitext again, for consistency with editable
324 MediaWiki:Sitenotice and MediaWiki:Anonnotice.
325 * (bug 8044) When redirecting from the canonical name of the special page
326 to the localised one, parameters/subpages are omitted
327 * (bug 8164) Special:Booksources should use GET for form submission
328 * Rewrite Special:Booksources to clean up interface and remove redundant code
329 * (bug 7925) Change Special:Allmessages message name filter javascript to be
330 a bit more responsive and easier on the CPU
331 * (bug 4488) Support watching pages on deletion; introduces new user preference
332 * Minor restructuring of Special:Preferences; "watch pages I edit" and "watch
333 pages I create" options now accessible under "Watchlist" options
334 * (bug 8153) <nowiki> doesn't work in site notice
335 * (bug 6690) wfMsgNoTrans() transforms messages
336 * (bug 8274) Wrap edit tools in a <div> with a specified class
337 * Detect PHP 5.0.x 64-bit bug and abort in WebStart.php; too many things break
338 mysteriously otherwise (detection code copied from install-utils.inc)
339 * (bug 8295) Change handling of <center> tags in doBlockLevels() to match that
341 * (bug 8110) Make magic ISBN linking stricter: only match ten-digit sequences
342 (plus optional ISBN-13 prefix) with no immediately following alphanumeric
343 character, disallow multiple consecutive internal redirects
344 * (bug 2785) Accept optional colon prefix in links when formatting comments
345 * Don't show "you can view and copy the source of this page" message for
346 pages which don't exist
347 * (bug 8310) Blank line added to top of 'post' when page is blank
349 == Languages updated ==
352 * Bishnupriya Manipuri (bpy)
369 * Old Church Slavonic (cu)
375 * Taiwanese/Holo: (bug 8217) changed language code to nan (from zh-min-nan)
376 due to http://www.sil.org/iso639-3/codes.asp?order=639_3&letter=n
377 * Upper Sorbian (hsb)
382 MediaWiki 1.9 requires PHP 5 (5.1 recommended). PHP 4 is no longer supported.
384 PHP 5.0.x fails on 64-bit systems due to serious bugs with array processing:
385 http://bugs.php.net/bug.php?id=34879
386 Upgrade affected systems to PHP 5.1 or higher.
388 MySQL 3.23.x is no longer supported; some older hosts may need to upgrade.
389 At this time we still recommend 4.0, but 4.1/5.0 will work fine in most cases.
394 Some minor database changes have been made since 1.7:
395 * new fields and indexes on ipblocks
396 * index change on recentchanges
398 Several changes from 1.5 and 1.6 do require updates to be run on upgrade.
399 To ensure that these tables are filled with data, run refreshLinks.php after
402 If you are upgrading from MediaWiki 1.4.x or earlier, some major database
403 changes are made, and there is a slightly higher chance that things could
404 break. Don't forget to always back up your database before upgrading!
406 See the file UPGRADE for more detailed upgrade instructions.
412 Some output, particularly involving user-supplied inline HTML, may not
413 produce 100% valid or well-formed XHTML output. Testers are welcome to
414 set $wgMimeType = "application/xhtml+xml"; to test for remaining problem
415 cases, but this is not recommended on live sites. (This must be set for
416 MathML to display properly in Mozilla.)
419 For notes on 1.5.x and older releases, see HISTORY.
422 === Online documentation ===
424 Documentation for both end-users and site administrators is currently being
425 built up on Meta-Wikipedia, and is covered under the GNU Free Documentation
428 http://www.mediawiki.org/wiki/Documentation
433 A MediaWiki-l mailing list has been set up distinct from the Wikipedia
436 http://mail.wikimedia.org/mailman/listinfo/mediawiki-l
438 A low-traffic announcements-only list is also available:
440 http://mail.wikimedia.org/mailman/listinfo/mediawiki-announce
442 It's highly recommended that you sign up for one of these lists if you're
443 going to run a public MediaWiki, so you can be notified of security fixes.
448 There's usually someone online in #mediawiki on irc.freenode.net