MediaWiki 1.21/wmf4

Deployment of MediaWiki 1.21wmf4 to Wikimedia sites
The latest version (labeled "1.21wmf4 ") of MediaWiki, the software that powers Wikipedia and its sister sites, was deployed to all Wikimedia sites in stages (see the roadmap).

We will continue to deploy the latest software every two weeks. This is intended to minimize disruption and possible issues, and make it easier to identify the cause of problems, since the possibly problematic code will be much more recent.

Core changes

 * - Update extensions/Vector
 * - Skin: Make portlet rules backwards compatible with html cache.
 * - Updating VisualEditor
 * - Update E3Experiments (ACUX to 100% backported)
 * - Update EventLogging on wmf4
 * - Fix syntax error.
 * - Simplify &quot;my talk&quot; link logic in personal tools
 * - Fixed broken thumbnails for files with a &quot;+&quot; in the name.
 * - Remove StringFunctionsEscaped
 * - FlaggedRevs: Update to latest master (09fd236...f81ea1b)
 * - Add Solarium
 * - Update UniversalLanguageSelector
 * - Reverting change to UploadWizard
 * - [JobQueue] Fixed de-listing updates to pending job cache.
 * - Fixing Diff and Wikibase referenced commits
 * - Fix regression in API edit of redirect
 * - fix conflict marker in comment
 * - Account creation email link needs protocol
 * - Cleanup Hebrew grammar code a little.
 * - test classes autoloading path was broken
 * - Removed unused var from jquery.badge.js
 * - fix @depends
 * - Set wgLanguageCode/wgContLang for backup_PageTest.php
 * - Test: Add AutoLoaderTest.
 * - avoid STDERR diff3 messages when using wfMerge
 * - Provide tests for edit conflicts.
 * - Remove unneeded third param
 * - Follow-up Ib2b8dfb8 (803abc7): fix a typo in a variable name
 * - Explicitly define member variables
 * - Gracefully handle failure to load text blob.
 * - Lint: Go-go-gadget jshint! Passing entire JS code base (again).
 * - Make sure that SQLite uses no prefix
 * - Add grammar tests for Hebrew
 * - Minor fixes to User and ApiQueryUsers
 * - Sanitize text input to $.fn.badge
 * - Simplify cached check in Special:SpecialPages
 * - Fix E_STRICT in ForeignAPIRepo
 * - move ORMTableTest from Wikibase to core
 * - Oops, restoring the line I accidently deleted.
 * - Allowing badges to use strings and returning this
 * - Change copy of talk page link in personal tools
 * - [FileJournal] Randomly prune old log entries.
 * - Put a 15 minute limit on the cache key lock in nextJobDB.php
 * - [JobQueue] Abstracted nextJobDB.php to not assume JobQueueDB.
 * - [FileBackend] Added getFileHttpUrl function.
 * - More parameter stripping tests: nested and single-line
 * - Add a test for named vs. positional parameter whitespace stripping
 * - Test broken br tag sanitization
 * - Add test for &lt;/pre&gt; inside nowiki block
 * - Add parser tests for template-generated table cell with attributes
 * - Fix &quot;Undefined index: start&quot; notice
 * - Add test for bracketed external links with invalid template-generated target
 * - Add RecentChange::selectFields and use it
 * - Proper fix for vanishing content.
 * - fix testEditCount to work with non-wikitext content in main NS
 * - Add profiling for database interaction
 * - [FileBackend] Avoid some stat calls in various operations.
 * - Simplified thumb.php for 404 handling.
 * - [FileRepo] Allow different file URLs for media based on file extension.
 * - Add since 1.20 for Revision::READ_LATEST
 * - Add a test for an uncovered bullet in a deeply nested list
 * - Define $wgAlwaysUseTidy to false where needed in unit tests
 * - Make contribs. link on Special:ListUsers red for users with 0 edits
 * - Update RELEASE-NOTES-1.20 from tarball
 * - put SpecialMovepageAfterMove hook after success message output
 * - Additional Parsoid-centric tests to improve code coverage.
 * - Making sure badge container is a consistant height
 * - Doc tweak: variable is actually $isKnown and is a reference
 * - Content::convert for conv. betw. content models.
 * - Hook for custom search hit rendering.
 * - Fix for Iaac1bb9a (6b2b06d): remove leading space
 * - follow-up for Ic9e728f8, release db connection in ORMRow
 * - Tweaking CSS of badge display per Vibha'a design
 * - Fixed version docs for job queue.
 * - make ORMRow compatible with load balancer, replace usage of wfGetDB( DB_MASTER )
 * - Extend category/p interaction test with indent and template
 * - Add a test for category link / paragraph interactions
 * - Drop possessive in personal tools
 * - Allow diffs across text based content.
 * - mw.loader: Fixes for &lt;script&gt; and &lt;link&gt; loading.
 * - Clean up: Fix trailing comments from I7e22cc3c
 * - replace # by // for comments
 * - make addPortletLink work with CologneBlue
 * - WAI-ARIA landmark roles in most used skins
 * - Update whatlinkshere-hideimages to file inclusion
 * - Fix escaping of pattern in export-0.8.xsd
 * - update export-demo.xml to version-0.8.xsd
 * - Update AutoLoader
 * - Galician date and time localization
 * - Moved FileBackend tests to /filebackend.
 * - Update filename field on Special:Upload after sanitizing
 * - Document what ParserOutput::setProperty is for
 * - raise timeout for WikiPage tests
 * - Fix handling of strings containing \0 in SQLite.
 * - minor style improvements
 * - Correct URL in comment; currently points to wrong post
 * - [JobQueue] Actually use the right job_random value.
 * - rephrase underline-default message
 * - Also ignore sublime project files
 * - Link $wgVersion on Special:Version to Release Notes
 * - Adding primary authors of Wikidata branch
 * - fixed type hints
 * - Some cleanup of doApiRequest in test module
 * - add redlink styles to legacy shared.css
 * - Added Parsoid WT escaping tests (several disabled for PHP parser).
 * - Use $this-&gt;getTitle instead of $out-&gt;getTitle
 * - Fix undelete.
 * - race condition in CdbTests
 * - Clarify error message for oldid info action
 * - [FileBackend] Check if paths are writable for delete ops too.
 * - Revert &quot; Tone down sanity check, just warn, don't die.&quot;
 * - [JobQueue] Use &quot;flush&quot; option with commit.
 * - [JobQueue] Make sure broken/duplicate job removal counts in stats.
 * - CologneBlue rewrite: rewrite bottomLinks
 * - CologneBlue rewrite: output the sidebar items as &lt;ul&gt; lists
 * - Update parts order in message files
 * - [JobQueue] Added a test job that just replaces itself.
 * - ORMRow must not ignore failures on insert by deault.
 * - Show &quot;Page information&quot; toolbox link to info action also in history etc.
 * - [FileRepo] Changed &quot;publishBatch&quot; to handle failure better.
 * - [FileBackend] Support &quot;ignoreMissingSource&quot; for copy and move operations.
 * - WikitextContentHandlerTest expects the messages to be in English.
 * - Fixed loading process for user options.
 * - hints for generatexml param in api modules
 * - [FileBackend] Use the new CloudFiles metadata functions.
 * - [FileBackend] Made path normalization in FileOp more robust.
 * - [FileBackend] Simplified code for handling &quot;overwrite&quot; parameter.
 * - [FileBackend] Simplified FileOpBatch code to have just one &quot;run&quot; function.
 * - Don't fail on incomplete row info when exporting.
 * - Proper directionality for entry points table
 * - Honor $wgLogExceptionBacktrace in APIMain
 * - Revert &quot;Deglobalization in EditPage.php&quot;
 * - [FileRepo] Fixed purging for &quot;short style&quot; thumbnail names.
 * - Passing the undid revisionId from the API request to the WebRequest
 * - Regression: API action=parse with nonexistent page
 * - OutputPage::addWikiTextTitleTidy requires variable as second para
 * - Fix typo in method
 * - Warn when creating TextContent around false/null.
 * - Back out config table and related code
 * - Deglobalization in EditPage.php
 * - list=allusers&amp;aurights=[unusedright] returns all users of the wiki
 * - CologneBlue rewrite: rework quickbar once again
 * - Use selectRow when load one ArchivedFile
 * - It should not be possible for a RequestContext's WikiPage and Title to be different.
 * - Prevent editing textarea from overflowing out of bodyContent
 * - Use LogFormatter to format rights log.
 * - Correcting system message linksearch-text
 * - Fix test for view language for non-wikitext in main NS.
 * - tweaks to mediawiki.action.history.diff.css
 * - mw.notification: fix error on notif. close with $.fx.off=true
 * - Update some external conversion tables to latest versions

AbuseFilter

 * - Run filter number through formatNum
 * - fix php notices

ArticleFeedbackv5

 * - fix fetching activity in other languages
 * - hotfixes
 * - Remove dependency on E3Experiments for clicktracking
 * - - Switching filters with an action flyout open breaks AFT5
 * - Revert &quot; - Feedback link on article pages&quot;
 * - Save last selected filter as user preference
 * - - Feedback link on article pages
 * - - AFTv5: The token parameter must be set
 * - - LotteryOdds incorrect calculation
 * - Make sure previously disallowed feedback is not re-submitted right away
 * - - Featuring oversight-requested posts

CentralNotice

 * - add some helpful metadata about each change log entry
 * - Campaign log api
 * - Enabling Arbitrary Central Notice Buckets
 * - Hide banners if this is a mobile device
 * - querycampaign api.
 * - Add Banner Callback for CN Impression Reporting
 * - Do not set the secure flag or the http only flag for hide banner cookies.

Collection

 * - Revert &quot;There is no need to use an expanded URL for this downloadlink.&quot;
 * - There is no need to use an expanded URL for this downloadlink.

ConfirmEdit

 * - Support generation of random challenges instead of wordlist-based ones.
 * - Allow to generate the challenges from more than 2 wordlist entries.
 * - Provide parameters for setting the min/max length of the captcha &quot;word&quot; (challenge).

ContributionReporting

 * - Updating for the 2012 fundraiser.
 * - Maintenance for ContributionReporting extension.

CustomData

 * - Add i18n file

DonationInterface

 * - Fixes for DD
 * - Adding dd-ES for Direct Debit in Spain.
 * - payments &quot;emailAdd&quot; field can be optional
 * - Tweaks to the orphan rectifier - Explicit cancel behavior, more logging, typo cleanup
 * - Adding remaining name and email only forms and adding country-specific instructions.
 * - Hacking in a new API call so status 200 Globalcollect CC payments will ever go through. This is terrible, and temporary until I can figure out a nicer way to do this.
 * - Adding CTID to Session Velocity Filter output
 * - Making sure we add an antimessage on transactions we deliberately fail.
 * - Falseish when I was trying to look for a zero. So very annoyed.
 * - Fixing the stack trace currently being served up by bt and obt transactions

E3Experiments

 * - Present ACUX to 100% of new users.

Echo

 * - Fatal error: Call to a member function equals on a non-object
 * - Call to a member function getNamespace on a non-object
 * -  All notificationsâ¦ is sometimes unnecessary
 * - Don't run the same SQL file 3 times
 * - Make sure that notification count is defined and properly typed.
 * - Checking that revert notification is enabled before firing it
 * - A couple CSS tweaks to eliminate overlap and make sure all link is visible
 * - Drop posessive in notifications personal tool
 * - Add max-height to notification overlay
 * - Use canonical url for email links
 * - Improve Echo Hooks
 * - Adding more notification icons
 * - Echo: Add &quot;reverted&quot; notification for when a user's edit is reverted.

EventLogging

 * - Append ? to baseUri if not present
 * - Fix tiny mistake in comment block

FlaggedRevs

 * - Revert &quot;Part of - Add a global to enable/disable update ot ValidationStatistics&quot;. See fed3fae7c92c272dc55f2ee141ae946a7e8b7ec6.
 * - Rewrote getEditReviewTimes function to use subqueries.
 * - Part of - Add a global to enable/disable update ot ValidationStatistics
 * - Avoid a parse call in the synced/FR_INCLUDES_CURRENT case.
 * - Some message need GENDER support

GeoCrumbs

 * - Delete old BreadCrumbs files

GlobalBlocking

 * - Fix block expiry times

GlobalUsage

 * - optimize globalimagelinks query

Insider

 * - maintenance, resubmitting

LiquidThreads

 * - Reduce master load from Title::isValidMoveOperation when possible

MobileFrontend

 * - add #content element to non-beta
 * - fix styling of page load error message
 * - don't attempt to load the edit page dynamically
 * - photo uploads for articles without images in the summary section
 * - add close this section to dynamically rendered pages
 * - reorganise the section anchor rules
 * - special case main page
 * - update parameters referencing titles when title changes
 * - when clicking random update url
 * - Simplify rules
 * - follow up to I3493fa549fa082002de540fae63306e10e83154d
 * - replace all tables with a link to open table in an overlay
 * - Images in dynamic sections even when images disabled
 * - deal with errors in request for section (#2)
 * - put edit link in #content
 * - ensure toggling always enabled on pages
 * - jshint all the code base
 * - getArticleUrl returns canonical url
 * - allow html in headings
 * - adjust random function
 * - Fix adding unnecessary callbacks in mf-cleanuptemplates
 * - watch the correct article
 * - add jshint to MobileFrontend
 * - center heading in overlay header
 * - only enable toggling if more than one heading in content
 * - show progress indicator when watching article
 * - increase font size of edit areas to be 1em
 * - switch h2 to h1 for homepage msg
 * - Collapsible sections now behave properly w/o JS
 * - Hash links broken in mobile
 * - Mobile replacement for Special:Watchlist, initial version.
 * - Fix styling of galleries on mobile
 * - remove historic code
 * - Correct target context for mobile.desktop resource
 * - Story 214 - update mobile detection rules
 * - Replace setting with get/setConfig; update title on history change.
 * - address todo comment
 * - center the heading relative to the back arrow
 * - introduce styling for code pre tags
 * - table styling cleanup
 * - nest tbody under table
 * - nest specific table rules / throw away strange rules
 * - improve styling of search results page
 * - only initialise when jQuery is present
 * - use u rather than jQuery
 * - rename utilities to u
 * - move the jquery shim defined in application.js
 * - Merge latest DeviceDetection back from core
 * - indent try again random box
 * - expose getArticleUrl function

MoodBar

 * - Fix c&amp;p error from I54e13245
 * - Add right and action messages for the delete right
 * - MoodBar response API is failing on non-existing user talkpage

OAI

 * - Add PK to oaiaudit table
 * - Fix typo in comment
 * - Cleanup whitespace and stuff
 * - Brion doesn't have to do everything himself...
 * - Avoid constructing Title object if not needed
 * - Make non-text data searchable via lsearch.
 * - Use ContentHandler type and format info in DC output.
 * - Remove explicit pass by reference from OAI code.
 * - Add alias file for Special:OAIRepository.

OggHandler

 * - Fix ffmpeg thumb extraction
 * - Set -y to override 0-byte temp file.

PageTriage

 * - Integrate 'mark as reviewed' notification into pagetriage

PagedTiffHandler

 * - Display TIFF size correctly

ParserFunctions

 * - Add test for special parameter whitespace stripping behavior
 * - Add a test for the preservation of tags in the #switch default value

ProofreadPage

 * - Allow to edit old versions of index pages.

ReaderFeedback

 * - Fatal error: Call to a member function makeLinkObj on a non-object in /usr/local/apache/common-local/php-1.21wmf3/extensions/ReaderFeedback/specialpages/RatingHistory_body.php on line 655

RelatedArticles

 * - maintenance

RelatedSites

 * - maintenance

SiteMatrix

 * - - Special:SiteMatrix gives incorrect interwiki link prefix for Wikivoyage

SwiftCloudFiles

 * - Cleaned up exception error messages.
 * - Fixed doc typo.
 * - Merged temp URL feature from upstream.

Translate

 * - Fix file format.
 * - Rewritten pyffs to match mwextffs logic
 * - Better escaping in pyffs
 * - Proper check for untranslated messages
 * - Documentation refresh
 * - Update messages for Wikimedia mobile groups
 * - Remove obsolete messages
 * - - PLURAL suggested for headline messages on page translate move confirmation page
 * - Fix fatal error with the dynamic message groups
 * - - Dynamic message groups not in list=messagecollection API
 * - Follow-up I3df95f84: Put file in correct folder
 * - Avoid PHP notices in MessageCollection
 * - Add context to TranslateTasks
 * - MediaWiki 1.19 or later is now required
 * - Remove XLIFF support
 * - JSHint/JSLInt suggested fixes.
 * - Document undocumented parameter
 * - magic-export.php does not export files
 * - Drop unneeded else.
 * - Fix fatal: TPException doesn't know getWikiText
 * - Add prop revision to messagecollection api
 * - getReviewBlockers only has two params
 * - Use single quotes and tabs instead of spaces
 * - Remove unreachable code
 * - Remove unused global and two unused assignments
 * - Add missing required parameters for dieUsage
 * - Update @throws docs
 * - Stylize
 * - Add RecentAdditionsMessageGroup
 * - Fix documentation and variable name

UniversalLanguageSelector

 * - Allow ULS toolbar to be disabled for anons only
 * - Allow the main functionality of ULS to be disabled
 * - Follow up of Ie536dbe1 trailing whitespaces
 * - Fixed the - 'class' as property name
 * - Reformat code.
 * - Update jquery.uls from upstream
 * - Fixed -  Cancel / Apply button on Display settings
 * - Geoclient fixes for https and WMF
 * - Update from upstream
 * - Fix - Display Settings shows dual labels for Font Selection
 * - i18n updates for jquery.uls
 * - Avoid contstructing html with concatenation
 * - Update jquery.i18n from upstream
 * - Avoid constructing html with concatenation
 * - Update jquery.i18n from upstream
 * - Add z-index for the input selector to avoid hiding behind popup divs
 * - Correct the preference overriding for IME

UploadWizard

 * - refixing for Safari
 * - Fixing UploadWizard in Safari
 * - Display Copied msg after copying metadata
 * - Fix typos: flickr -&gt; Flickr
 * - Implement uploading images from Flickr
 * - Make sure copyMetadataCrtlDiv exists and is correct
 * - Add in new checkmark and alert graphics for upload step

Vector

 * - temporary fix for - adding forward compatibility
 * - Create wmf/1.21wmf4 branch and update .gitreview
 * - Fix width of edit page elements after merge of I42f42654.

VisualEditor

 * - Add hover state to link inspector suggestion items.
 * - Fixed onUpdate over-writing in ve.ce.HeadingNode
 * - Restyle suggestion dropdown into a single column.
 * - Link inspector close on selection change
 * - Cursor movement fixes
 * - Immediately provide default suggestions based on 0 results.
 * - Handle edit conflicts
 * - Delete and backspace broken around inline aliens in Firefox
 * - Render inline annotations in CE
 * - Fix rebase artefact in ve.dm.Node.getAttributes
 * - Add message docs for 43684f88fce065bf0bceecff4b84eb761fc8c03e
 * -  Refactor init.mw setupSkinTabs.
 * - Handle annotated inline nodes in the converter
 * - Make annotating inline elements actually work
 * - Show annotations on nodes in demo debugger
 * - Store the data model element in the DM tree
 * - Only apply HTML attributes to DOM nodes that are &quot;safe&quot;
 * - Add Parsoid prefix to POST requests too.
 * - Added contextChange event to surface model, replacing annotationChange
 * - Errors passing &quot;incorrect&quot; offsets to ve.ce.Surface.getNodeAndOffset
 * - Fix tests for fda2e6c1b54a0139a3123de413f672e895ff3352
 * - Tag edits made by VE
 * - First character in empty document behaves strangely in Firefox
 * - The last ever mw.ext.ve jshint fixup
 * - Split out two cases so as not to throw an error
 * - Inserted characters get annotated with empty set
 * - Fix even more inspector issues, and some ce ones as well
 * - Fix for document sync issue
 * - Change markers lost for first paragraph on new page
 * - Handle alienation in wrapping mode properly
 * - Add moar demo pages
 * - Display the lengths of model nodes in the demo debugging thingy
 * - Adding IE to the browser blacklist for the December release
 * - Make entity nodes work in CE
 * - Fixed inspector behavior
 * - Add MWEntityNode
 * - Fix message key, probably c&amp;p error in I1cc00844
 * - Store comments in the meta-linmod
 * - Don't force spaces to underscores in internal links
 * - Always apply inspected annotations to the right range
 * - Added undo-before-apply for new link annotations
 * - Fixing Pre-Annotations
 * - Cleanup var statements
 * - The great inspector and context rewrite of 2012
 * - Fix JS error when inserting after alien at the end
 * - Add i18n for aliennated content tool tip.
 * - Propagate change markers when unwrapping generated nodes
 * - Add ce.AlienNode to tests
 * - Phantoms not vanishing on mouseout
 * - Add shields after node is attached to the live DOM
 * - Better Shield Logic

WebFonts

 * - Fix - Amiri font for Arab lacks italics and bold causing bad rendering

WikimediaIncubator

 * - Exception on Incubator Special:Preferences

cldr

 * - Final minor updates to the 22.1 release

wikidiff2

 * - Describes libthai dependency in README.