Release notes/1.19

= MediaWiki release notes =

Security reminder: MediaWiki does not require PHP's register_globals setting since version 1.2.0. If you have it on, turn it off if you can.

MediaWiki 1.19
THIS IS NOT A RELEASE YET

This is a beta release of the MediaWiki 1.19 branch. Please test it and let us know what you think of it. Beta releases are not recommended for use in production.

Changes since 1.19 beta 2
automatic
 * Special:Watchlist no longer sets links to feed when the user is anonymous
 * (bug 35565) Special:Log/patrol doesn't indicate whether patrolling was

Changes since 1.19 beta 1
included page. "movepage-moved". preloaded into edit summary on section edit. contentSub, ... The same div often also contains the class mw-content-ltr/rtl. the "return this.each" loop. core parser functions which operate on strings, such as padleft. inside a heading. CSRF attacks
 * (bug 35014) Including a special page no longer sets the page's title to the
 * (bug 35019) Edit summaries are no longer transformed in notification e-mails.
 * (bug 35152) Help message for e-mail is shown again in user preferences.
 * (bug 34887) $3 and $4 parameters are now substituted correctly in message
 * (bug 34841) Edit links are no longer displayed when display old page versions
 * (bug 34889) User name should be normalized on Special:Contributions.
 * (bug 35051) If heading has a trailing space after == then its name is not
 * (bug 31417) New ID mw-content-text around the actual page text, without categories,
 * (bug 35303) Proxy and DNS blacklist blocking works again
 * (bug 35294) jquery.byteLimit shouldn't set element specific variables outside
 * (bug 22555) Remove or skip strip markers from tag hooks like &lt;nowiki&gt; in
 * (bug 18295) Don't expose strip markers when a tag appears inside a link
 * (bug 34907) Fixed exposure of tokens through load.php that could have facilitated

Configuration changes in 1.19
ImageMagick. items to show by default on query pages (special pages such as Whatlinkshere).
 * Removed SkinTemplateSetupPageCss hook; use BeforePageDisplay instead.
 * (bug 27132) movefile right granted by default to registered users.
 * Default cookie lifetime ($wgCookieExpiration) is increased to 180 days.
 * (bug 31204) Removed old user.user_options.
 * $wgMaxImageArea now applies to jpeg files if they are not scaled with
 * Introduced $wgQueryPageDefaultLimit (defaults to 50) for the number of
 * (bug 32470) Increase the length of ug_group.
 * (bug 32239) Removed $wgEnableTooltipsAndAccesskeys.
 * Removed $wgVectorShowVariantName.
 * Removed $wgExtensionAliasesFiles. Use $wgExtensionMessagesFiles.
 * Removed $wgResourceLoaderInlinePrivateModules, now always enabled.

New features in 1.19
cache is used. elements to work with DNSBLs that require keys, such as Project Honeypot. links and images links. as with templates. plugin. limited type of titles. tables. css style rules. These attributes were removed from html5 and so we clean them up when $wgHtml5 is enabled. This can be disabled using $wgCleanupPresentationalAttributes. NAMESPACE) now depend on the page content language instead of the site language. In theory this sets the right magic words in system messages,  although they are not used there.  generating sitemaps.  'class') in the Html helper class. attribute values and element contents. to stop it from replace an already existing default sort, and suppress error. localisation. instead of the wiki content language. in outdated text browsers. of generic styles from MonoBook or Vector's css. converted to css. syntax. also called when checking for 'read' permission. for an IP address redirects to the contributions list for that IP. containing HTML or JS. DISABLING THESE CHECKS IS VERY DANGEROUS. and adding paths to the PathRouter. "target" query parameter (eg. Special:ActiveUsers/Username). perceiving colors differently. languages using messages files outside of core. 200 status code instead of 404 for nonexistent articles. due to tests potentially being harmful, not to be run on a production wiki. Enable by setting $wgEnableJavaScriptTest to true. loaded in some contexts. a new section to a page via the edit API action.
 * (bug 19838) Add ability to get all interwiki prefixes also if the interwiki
 * $wgDnsBlacklistUrls now accepts an array with url and key as the
 * (bug 30022) Add support for custom loadScript sources to ResourceLoader.
 * (bug 19052) Unicode space separator characters (Zs) now terminates external
 * (bug 30160) Add public method to mw.loader to get module names from registry.
 * (bug 15558) Parameters to special pages included in wikitext can now be passed
 * Installer now issues a warning if mod_security is present.
 * (bug 29455) Add support for a filter callback function in jQuery byteLimit
 * Added two new GetLocalURL hooks to better serve extensions working on a
 * Added a --no-updates flag to importDump.php that skips updating the links
 * Most presentational html attributes like valign are now converted to inline
 * Magic words (time and number-formatting ones, plus DIRECTIONMARK, but not
 * (bug 30451) Add page_props to RefreshLinks::deleteLinksFromNonexistent.
 * (bug 30450) Clear page_props table on page deletion.
 * Hook added to check for exempt from account creation throttle.
 * (bug 30344) Add configuration variable for setting custom priorities when
 * (bug 96170) Add array support for space-separated list attributes (like
 * (bug 26470) Add checkered background image on hover on files pages.
 * (bug 30774) mediawiki.html: Add support for numbers and booleans in the
 * Conversion script between Tifinagh and Latin for the Tachelhit language.
 * (bug 16755) Add options 'noreplace' and 'noerror' to
 * (bug 18578) Rewrote revision delete related messages to allow better
 * (bug 30364) LanguageConverter now depends on the page content language
 * Jump links will now be usable in CSS-capable browsers instead of only
 * New common*.css files usable by skins instead of having to copy piles
 * Some deprecated presentational html attributes will now be automatically
 * (bug 31297) Add support for namespaces in Special:RecentChanges subpage filter
 * The default user signature now contains a talk link in addition to the user link.
 * (bug 25306) Add link of old page title to MediaWiki:Delete_and_move_reason.
 * Added hook BitmapHandlerCheckImageArea.
 * (bug 30062) Add $wgDBprefix option to cli installer.
 * getUserPermissionsErrors and getUserPermissionsErrorsExpensive hooks are now
 * Introduce $wgEnableSearchContributorsByIP which controls whether searching
 * (bug 8859) Database::update should take array of tables too.
 * (bug 19698) Add "Inverse namespaces" option to Special:Contributions.
 * (bug 24037) Add byte length of revision to Special:Contributions.
 * (bug 1672) Added $wgDisableUploadScriptChecks to allow uploading of files
 * New path mappings can be added using the WebRequestPathInfoRouter hook
 * (bug 32666) Special:ActiveUsers now allows a subpage to be used as value for the
 * New JavaScript variable wgPageContentLanguage.
 * Added new debugging toolbar, enabled with $wgDebugToolbar.
 * Differences in the history page now uses slightly better colors for people
 * (bug 32879) Upgrade jQuery to 1.7.1.
 * jQuery UI upgraded to 1.8.17.
 * Extensions can use the 'Language::getMessagesFileName' hook to define new
 * (bug 32512) Add 'Associated namespace' checkbox to Special:Contributions.
 * Added $wgSend404Code, true by default, which can be set to false to send a
 * (bug 33447) Link to the broken image tracking category from Special:Wantedfiles.
 * (bug 27724) Add timestamp to job queue.
 * (bug 30339) Implement SpecialPage for running javascript tests. Disabled by default,
 * Extensions can use the RequestContextCreateSkin hook to override what skin is
 * (bug 33456) Show $wgQueryCacheLimit on cached query pages.
 * (bug 10574) Add an option to allow all pages to be exported by Special:Export.
 * mediawiki.js Message object constructor is now publicly available as mw.Message.
 * (bug 29309) Allow CSS class per tooltip (tipsy).
 * (bug 33565) Add accesskey/tooltip to submit buttons on Special:EditWatchlist.
 * (bug 17959) Inline rendering/thumbnailing for Gimp XCF images.
 * (bug 27775) Namespace has it's own XML tag in the XML dump file.
 * (bug 30513) Redirect tag is now resolved in XML dump file.
 * sha1 xml tag added to XML dump file.
 * (bug 33646) Badtitle error page now emits a 400 HTTP status.
 * Special:MovePage now has a dropdown menu for namespaces.
 * (bug 34420) Special:Version now shows git HEAD sha1 when available.
 * (bug 33952) Refactor mw.toolbar to allow dynamic additions at any time.
 * Now possible to specify separate section title and edit summary when adding

Bug fixes in 1.19
$wgUploadMissingFileUrl is not set. The first was used for this until the second was introduced in 1.17. inheritance to nested tables which caused various issues (bug 30485 and bug 33434). If your wiki has overriden rules for ".wikitable", please revise them and adjust where neccecary. For comparison, use the "table.wikitable" section in skins/common/shared.css as base. $wgUploadMissingFileUrl is not set. The former was used for this until the second was introduced in 1.17. div#bodyContent. when the function exists but is disabled. Introduced Maintenance::posix_isatty. require_once instead require for included extensions. warnings/notices to be thrown. URLs are used. truncating log comments. unescaped. importing a new revision into it. has no subpage. restrictions on some of the database fields. due to DST. suppressed. "create account" when the user cannot create an account. from recent changes feeds. files (like audio files). was specified. now disabled by default and is buggy. APC, XCache and WinCache are not affected. using the Special:BlockList/username URL. wgDigitTransformTable depend on page content language so the sort script sorts correctly more often. also happens to create the page. email address is removed. with .xxx causes Internal error. causes the first log type requested to be removed but not the others. Special:PrefixIndex rather then re-using Special:AllPages's allinnamespace. when using non-normalized username. cssText after DOM insertion. now always added to the current version of the page. XML entities correctly. should be loaded in for proper dependency resolution. for backward compatibility. relative to correct title. calculated correctly with respect to timezone. HTTPS when the local wiki is served over HTTPS. or other metadata. of whatever the query value contains. a null edit. the edit. New user contributions are obtained using the form or using ?contribs=newbie in URL. getText on a non-object. around a bug where not all styles were applied in Internet Explorer. array. on Windows when "from" is filled. Special:WhatLinksHere/Example
 * $wgUploadNavigationUrl should be used for file redlinks if.
 * BREAKING CHANGE: Style rules for wikitable are now more specific and prevent
 * $wgUploadNavigationUrl is now used for file redlinks if
 * (bug 27894) Move 'editondblclick' event listener down from body to
 * (bug 30172) The check for posix_isatty in maintenance scripts did not detect
 * (bug 30264) Changed installer-generated LocalSettings.php to use
 * Do not convert text in the user interface language to another script.
 * (bug 26283) Previewing user JS/CSS pages didn't load other user JS/CSS pages.
 * (bug 26486) ResourceLoader modules with paths to nonexistent files cause PHP
 * (bug 30335) Fix for HTMLForms using GET that were breaking when non-friendly
 * (bug 28649) Preventing half truncated multi-byte unicode characters when
 * Show --batch-size option in help of maintenance scripts that support it.
 * (bug 4381) Magic quotes cleaning was not comprehensive, key strings were not
 * (bug 23057) Importers no longer can 'edit' or 'create' a fully-protected page by
 * Allow moving the associated talk pages of subpages even if the base page
 * Per page edit-notices now work in namespaces without subpages enabled.
 * (bug 31081) $wgEnotifUseJobQ is no longer unconditionally enqueueing jobs.
 * (bug 30202) File names are now restricted on upload to 240 bytes, because of
 * Timezones are now recognised in user preferences when offset is different
 * (bug 31692) "summary" parameter now also works when undoing revisions.
 * (bug 18823) "move succeeded" text displayed bluelinks even when redirect was
 * (bug 19186) Special:UserLogin's title on Special:SpecialPages now says
 * (bug 31818) 'usercreated' message now supports GENDER.
 * (bug 32022) Our phpunit.php script can now be executed from another directory.
 * (bug 26020) Setting $wgEmailConfirmToEdit to true no longer removes diffs.
 * (bug 30232) add current time to message wlnote on Special:Watchlist.
 * (bug 29110) $wgFeedDiffCutoff did not affect new pages.
 * (bug 32168) Add wfRemoveDotSegments for use in wfExpandUrl.
 * (bug 32358) Do not display "No higher resolution available" for dimensionless
 * (bug 32168) Add wfAssembleUrl for use in wfExpandUrl.
 * (bug 32168) fixed - wfExpandUrl expands dot segments now.
 * (bug 31535) Upload comments now truncated properly, and don't have brackets.
 * (bug 32086) Special:PermanentLink now show an error message when no subpage
 * (bug 30368) Special:Newpages now shows the new page name for moved pages.
 * (bug 1697) The way to search blocked usernames in block log should be clearer.
 * (bug 29747) eAccelerator shared memory caching has been removed since it is
 * Installer now refuses to install if php was not compiled with Ctype support.
 * (bug 29475) Remove "trackback" feature entirely from core.
 * (bug 32665) Special:BlockList prefills the username in the input field if
 * (bug 27721) Make JavaScript variables wgSeparatorTransformTable and
 * (bug 32230) Expose wgRedirectedFrom in JavaScript.
 * (bug 31212) History tab not collapsed when the screen is narrow.
 * (bug 15521) Use new section summary when the action of adding a new section
 * (bug 32960) Remove EmailAuthenticationTimestamp from database when a
 * (bug 32414) Empty page get a empty bytes attribute in Export/Dump.
 * (bug 33101) Viewing a User or User talk of username resembling IP ending
 * Warning about undefined index in certain situations when $wgLogRestrictions
 * Use separate message ('prefixindex-namespace') for title of
 * (bug 33156) Special:Block now allows you to confirm you want to block yourself
 * (bug 33246) News icon shown for news:// URLs but not for news: URLs.
 * (bug 33305) Make mw.util.addCSS resistant to IE's @font-face bug by setting
 * (bug 30711) When adding a new section to a page with section=new, the text is
 * (bug 31719) Fix uploads of SVGs exported by Adobe Illustrator by expanding
 * (bug 30914) Embeddable ResourceLoader modules (user.options, user.tokens)
 * (bug 32702) Removed method Skin::makeGlobalVariablesScript has been readded
 * (bug 31469) Make sure tracking category messages expand variables like
 * (bug 33454) ISO-8601 week-based year number (format character 'o') is now
 * (bug 32219) InstantCommons now fetches content from Wikimedia Commons using
 * (bug 33525) clearTagHooks doesn't clear function hooks.
 * (bug 33523) Function tag hooks don't appear on Special:Version.
 * Files with IPTC blocks we can't read no longer prevent extraction of exif
 * (bug 33587) Remove action "historysubmit" from history pages.
 * (bug 25800) mw.config wgAction should contain the actually performed action instead
 * (bug 4438) Add CSS hook for current WikiPage action.
 * (bug 33703) Common border-bottom color for should inherit default (text) color.
 * (bug 33819) Display file sizes in appropriate units.
 * (bug 32948) and related variables are no longer blank after doing
 * (bug 33880) $wgUsersNotifiedOnAllChanges should not send e-mail to user who made
 * (bug 33902) Decoding %2B with mw.Uri.decode results in ' ' instead of +.
 * (bug 33762) QueryPage-based special pages no longer misses *-summary message.
 * Other sizes links are no longer generated for wikis without a 404 thumbnail handler.
 * (bug 29454) Enforce byteLimit for page title input on Special:MovePage.
 * (bug 34114) CSSMin::remap doesn't respect its $embed parameter.
 * Special:Contributions/newbies now shows the contributions for the user "newbies".
 * It is now possible to delete images that have no corresponding description pages.
 * (bug 33165) GlobalFunctions.php line 1312: Call to a member function
 * (bug 31676) Group dynamically inserted CSS into a single tag, to work
 * (bug 28936, bug 5280) Broken or invalid titles can't be removed from watchlist.
 * (bug 34600) Older skins using useHeadElement=false were broken in 1.18.
 * (bug 34604) [mw.config] wgActionPaths should be an object instead of a numeral
 * (bug 29753) mw.util.tooltipAccessKeyPrefix should be alt-shift for Chrome
 * (bug 25095) Special:Categories should also include the first relevant item
 * (bug 12262) Indents and lists are now aligned
 * (bug 34972) An error occurred while changing your watchlist settings for

API changes in 1.19
message (which may have come from a hook call or similar). a best effort language name translation. Use CLDR extension for best result. inputs. address blocks for list=blocks. severedby if it's set to false. up as a redirect to the linked page on Special:Whatlinkshere. to Captcha extension(s). many types. values is given as an array. calling action=purge&forcelinkupdate. of "API". or overwritten) in the MediaWiki namespace change.
 * Made action=edit less likely to return "unknownerror", by returning the actual error
 * (bug 19838) siprop=interwikimap can now use the interwiki cache.
 * (bug 29748) Add API search prefix support.
 * (bug 29684) Set forgotten parameter types in ApiQueryIWLinks.
 * (bug 29685) do not output NULL parentid with list=deletedrevs&drprop=parentid.
 * siprop=interwikimap and siprop=languages can use silanguagecode to have
 * (bug 30230) action=expandtemplates should not silently override invalid title
 * (bug 18634) Create API to fetch MediaWiki's language fallback tree structure.
 * (bug 26885) Allow show/hide of account blocks, temporary blocks and single IP
 * (bug 30591) Add support to only return keys in ApiAllMessages.
 * The API now respects $wgShowHostnames and won't share the hostname in
 * wlexcludeuser parameter added to ApiFeedWatchlist.
 * (bug 7304) Links on redirect pages no longer cause the redirect page to show
 * (bug 32609) API: Move captchaid/captchaword of action=edit from core
 * Added 'APIGetDescription' hook.
 * (bug 32688) Paraminfo for parameter "generator" of the query module shows too
 * (bug 32415) Empty page get no size attribute in API output.
 * (bug 31759) Undefined property notice in querypages API.
 * (bug 32495) API should allow purge by pageids.
 * (bug 33147) API examples should explain what they do.
 * (bug 33482) Api incorrectly calls ApiBase::parseMultiValue if allowed
 * (bug 32948) and related variables are no longer blank after
 * (bug 34377) action=watch now parses messages using the correct title instead
 * (bug 35036) ResourceLoaderWikiModule should auto-update when messages (created

Languages updated in 1.19
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.

languages Assamese, Bengali, Hindi, Malyalam and Odiya. with larger numbers (tera-yotta).
 * Canadian English (en-ca) (new).
 * Norwegian (bokmål) (nb) (renamed from no).
 * Uighur (Latin) (ug-latn) was incorrectly marked as right-to-left language.
 * (bug 30217) Make pt-br a fallback of pt.
 * (bug 31193) Set fallback language of Assamese from Bengali to English.
 * Update date format for dsb and hsb: month names need the genitive.
 * (bug 28643) Serbian variant conversion improvements (Nikola Smolenski).
 * (bug 29405, bug 30809) Lower diacritics are invisible in titles in Indic
 * (bug 32826) Titles in indic languages are partially cut.
 * (bug 33367) Gendered namespaces for Czech.
 * (bug 33014) Language::formatSize/formatBitrate should be able to deal

Other changes in 1.19
been removed from wikibits.js. populateImageSha1.php. real IP address. existing exclusively for IE5.0 and IE5.5 have now been removed (which were in skins 'chick' and 'monobook'). Context source and is required. proper html building methods to escape the normal get{...}URL methods instead. have been replaced with a secondary query argument. methods have been removed, the variant is now part of the $query argument. using Title::isCssJsSubpage or checking Title::isWrongCaseCssJsPage. Html::namespaceSelector instead (note that the parameters have changed also). for scripts missing dependencies. New configuration variable $wgPreloadJavaScriptMwUtil has been introduced for this (set to false by default for new installations). Set to true if your wiki has a large amount of user/site scripts that are lacking dependency information. In the short to medium term these user/site scripts should be fixed by adding the used modules to the dependencies in the module registry and/or wrapping them in a callback to mw.loader.using.
 * BREAKING CHANGE: Legacy global array 'ta' and global function 'akeytt' have
 * jquery.mwPrototypes module was renamed to jquery.mwExtension.
 * The maintenance script populateSha1.php was renamed to the more concise
 * The Client-IP header is no longer checked for when trying to resolve a client's
 * (bug 22096) Although IE5.x and below was already unsupported officially, stylesheets
 * The constructor for CategoryView has changed, the second parameter is now a
 * The Title::escape{Local,Full,Canonical}URL methods are deprecated, please use
 * The $variant arguments in the Title::get{Local,Full,Link,Canonical}URL methods
 * The $variant argument in the hooks for the Title::get{Local,Full,Link,Canonical}URL
 * Removed Title::isValidCssJsSubpage, deprecated since 1.17 in favor of
 * Support for the deprecated hook MagicWordMagicWords was removed.
 * The Xml::namespaceSelector method has been deprecated, please use
 * (bug 33746) Preload popular ResourceLoader modules (mediawiki.util) as stop-gap
 * MediaWiki now requires MySQL 5.0.2 or later when using a MySQL database.

Compatibility
MediaWiki 1.19 requires PHP 5.2.3. PHP 4 is no longer supported.

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 IBM DB2 and 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.19 has several database changes since 1.18, and will not work without schema updates.

As of 1.19 several JavaScript interfaces that were deprecated or superseeded in MediaWiki 1.17, MediaWiki 1.16 or even earlier have been removed. They are listed at the top of the "Other changes" list as a "BREAKING CHANGE".

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, some major database changes are made, and there is a slightly higher chance that things could break. Don't forget to always back up your database before upgrading!

See the file UPGRADE for more detailed upgrade instructions.

For notes on 1.18.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.