MediaWiki 1.21/wmf3

Deployment of MediaWiki 1.21wmf3 to Wikimedia sites
The latest version (labeled "1.21wmf3 ") of MediaWiki, the software that powers Wikipedia and its sister sites, will soon be deployed to all Wikimedia sites in stages.

Deployment will start on Monday, October 29 and continue until Wednesday, November 7 (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.

The biggest changes

 * 1) ResourceLoader integration into MobileFrontend now enabled (discussion on wikitech-l).

Core changes

 * - Re-add Wikidata related extensions to 1.21wmf3 due to being missing from make-wmf-branch
 * - Symlink README.mediawiki to README so Github renders it as wikitext.
 * - Add the page content language to the page information
 * - Add GENDER support to Special:EmailUser
 * - Stash global only once per test case.
 * - tests: rm duplicate code in language classes
 * - Preemptively add image-set to our sanitizer.
 * - Option to use group members on Special:UserRights
 * - Cache the result of User::getDefaultOptions
 * - Implement Special:Version/Credits
 * - Link in password reset is broken
 * - PHP Fatal error: Cannot break/continue 2 levels in maintenance/runJobs.php on line 94
 * - Fix unmatched profiling calls
 * - rm unused $egWBRemoteTitleNormalization var from MediaWikiSite.php
 * - A little cleanup in gender
 * - Avoid duplicate &quot;null&quot; change journal entries.
 * - The class is named Revision, no need to shout its name :) Remove a couple of unused globals.
 * - Set be as fallback language for be-tarask.
 * - document Skin::buildSidebar per own experience
 * - fix sidebar HTML escaping in CologneBlue (again)
 * - Minor documentation fix.
 * - Rewritten $wgAdaptiveMessageCache
 * - Fix tabs inside/between statements/text
 * - Fix indentation whitespace errors
 * - Fix rc_logid in RecentChange::loadFromCurRow
 * - re-apply I9a56b7c6, Don't parse the section's name in the summary
 * - raise timeout for UserTest::testEditCount
 * - [FileBackend] More improvements to README file.
 * - Fix regression in diffs while editing old revisions
 * - Fix warnings and enforce conventions in ContentHandler tests.
 * - Move cache purging out of doUpdates
 * - [JobQueue] Added support for approximate FIFO job queues.
 * - : Handle optionally-closed HTML tags
 * - add some brackets in RecentChange.php
 * - Seems we have error conditions where fa_storage_key == ''
 * - fix code style violations in RecentChange.php
 * - sql.php in interactive no more exit on DBerror
 * - alter sql.php prompt on line continuation
 * - sql.php with readline eats semicolon
 * - accessor for database delimiter
 * - Revert &quot;Function for &quot;pretty timestamps&quot; that are human readable and understandable.&quot;
 * - deprecate make(Known?)LinkObj methods
 * - Make action=query&amp;list=users use User::getRights
 * - revert gerrit change 29597 for TextContent constructor
 * - restore pre-ContentHandler version of mergeChangesInto
 * - [JobQueue] README file for job queue classes.
 * - Add additional job columns to PostgreSQL as well.
 * - mediawiki.searchSuggest: Reorder code + fix selectors
 * - Some minor fixes to README file.
 * - partial fix: re-apply Id4d5504a
 * - Use ParserOptions::newFromUserAndLang in tests
 * - partial fix: re-applying Id7b331e1b
 * - partial fix: re-apply I9441a277
 * - Correct documentation for EditFilter hook parameter
 * - Consistency tweak: Monobook -&gt; MonoBook
 * - Swap isSpecialPage for canExist
 * - Detect CSV/array values in $_SERVER['REMOTE_ADDR'].
 * - tests: always call parent setUp
 * - Additional parser tests to spec parser behavior and test Parsoid.
 * - Localize parentheses in Linker::formatTemplates
 * - Moved core Job classes under includes/job/jobs.
 * - Removed reference to * from docs.
 * - fix sidebar HTML escaping in CologneBlue
 * - [FileBackend] Give warnings when metadata is missing from swift.
 * - Use Html class instead of Xml where possible in Special:Contributions
 * - [FileBackend] Created README file for the file backend classes.
 * - miscellaneous doxygen warnings
 * - doxygen now recognizes README and .txt files
 * - Remove duplicate files, no point in loading them twice
 * - CologneBlue rewrite: fix talkLink to use generic nav links
 * - Cache performer of a LogEntry to load it only once from the database
 * - RecentChangesLinked: 'tagfilter' option already set in parent
 * - When deleting old thumbnails, actually increment $i
 * - Remove float from config-settings-block
 * - add comments about the purpose of skins/common/common*.css files
 * - Setting $wgContLang without changing $wgLanguageCode accordingly is a very bad idea.
 * - Remove a bunch of trailing spaces and unneeded newlines
 * - Remove a bunch of trailing spaces and unneeded newlines
 * - Add filearchive.fa_sha1 to PostgreSQL as well.
 * - - api prop=imageinfo broken on PHP 5.4
 * - getParamValue defaults to current page only if url undefined
 * - Add additional specs + Parsoid-centric tests to keep Parsoid in line.
 * - Remove a bunch of trailing spaces and unneeded newlines
 * - Remove a bunch of trailing spaces and unneeded newlines
 * - Revert &quot;Revert &quot;Show a &quot;(blocked)&quot; hint on Special:ListUsers/ActiveUsers&quot;&quot;
 * - Icon for PSD (Adobe Photoshop) file types.
 * - Add some debug logging to ContentHandler
 * - Release note for ApiQueryORM class
 * - Revert excessive indenting from 28433
 * - Protect against Xdebug overloading var_dump.
 * - Updated release notes for job queue refactoring.
 * - Removed outdated FileRepo docs.
 * - Add id to the toolbox page info link
 * - [] Record links on CSS/JS pages in the DB.
 * - Fixup some returns, documentation
 * - Refactor User::edits and User::incEditCount
 * - Unit test for User::getEditCount
 * - Work in progress on ResourceLoader mobilification
 * - reinstating Change Ifb1f6125...
 * - Deprecate static User::edits in favour of User::getEditCount
 * - Show cascading protection info on action=info
 * - Follow-up I186669a5 (4b62b03): reorder hooks alphabetically
 * - Fixup some method documentation return types
 * - Followup I15843fab: don't show &amp;page=1 in file link
 * - [JobQueue] Fixed misuse of array type cast.
 * - Set $wgContentHandlerUseDB to false by default for now
 * - [FileBackend] Added more tests and fixed some local copy/reference bugs.
 * - Minor action=info redirect changes
 * - sort method for jquery.tablesorter
 * - [JobQueue] Added type-guard checks to JobQueueGroup::push.
 * - Fixed dependencies for jquery.collapsibleTabs
 * - [JobQueue] Added more b/c wrapper functions.
 * - Warn when flushing inside an explicit transaction.
 * - Fix various boundary cases in IcuCollation::findLowerBound
 * - Fixed the caching of redirects in Squid
 * - Moved ContentHandler deriving classes into their own files for better discoverability and more manageable line count per file
 * - Added a pile of missing docs and fixed a few incorrect ones
 * - Added docu headers to content(handler) files
 * - update @since tags
 * - Tweaked code comment from 557a68838c594ea98bd233f6cc05ff44d80e901e
 * - Added MAX_JOB_RANDOM constant and replace one bad instance.
 * - [FileBackend] Added chaining ability to some TempFSFile methods.
 * - Adding a base query API module that allows very easily creating query modules for tables that have an associated ORMTable class
 * - Use 'flush' flag to end automatic transactions.
 * - Fix typo in contenthandler documentation
 * - Reject invalid titles as sitelinks
 * - [JobQueue] Job queue refactoring and generalizing.
 * - Added ugly nesting and template interaction tests (to stress Parsoid).
 * - restore wgDebugTimestamps in testDebugFunctionTest
 * - Remove unused 'qbpageinfo'
 * - Avoid using $wgUser in TitlePermissionTest
 * - On action=info show where this page redirects to and whether it's a content page or not.
 * - SI standards for time units
 * - Fix MediaWiki:Continue-editing
 * - Stop php strict error warnings from MemcachedClient::_flush_read_buffer
 * - Fix RevisionStorageTest with non-wikitext NS_MAIN
 * - Fixing dump tests for non-wikitext in NS_MAIN.
 * - Function for &quot;pretty timestamps&quot; that are human readable and understandable.
 * - Use Linker::link instead of Linker::linkKnown when having options
 * - fix fatal error in HttpTest
 * - [FileBackend] Added tiny getContainerStoragePath convenience function.
 * - Removed READ_LATEST default from Revision::newFromTitle.
 * - define RC_EXTERNAL type for recent changes
 * - Replaced some !count with explicit and more efficient check
 * - don't overwrite $item['single-id'] in makeListItem in SkinTemplate

AbuseFilter

 * - Don't revert global log actions

ArticleFeedback

 * - Add plural for 'articlefeedback-report-ratings'
 * - Like 24325, disable click tracking. Blame Ori for this change too ;)
 * - Remove empty ext.articleFeedback.dashboard.js

ArticleFeedbackv5

 * - Add ext.Experiments.lib as a dependency

Babel

 * - Fix docs
 * - HTML5 compliant Babel code.

Cite

 * - Removing obsoleted system message
 * - Cite anchors should be numbered starting at 1

Collection

 * - Fix Special:Books and load book content again
 * - - Missing argument 1 for wfAjaxCollectionGetPopupData
 * - Revert &quot;Revert &quot;Follow-up Ia01c9da5: Fix many escaping issues.&quot;&quot;
 * - Revert &quot;Revert &quot;Collection maintenance.&quot;&quot;
 * - Revert &quot;Fix revert artefact&quot;
 * - Fix revert artefact
 * - Revert &quot;Collection maintenance.&quot;
 * - Revert &quot;Follow-up Ia01c9da5: Fix many escaping issues.&quot;
 * - - Collection: Invalid argument supplied for foreach
 * - PHP fatal error in /usr/local/apache/common-local/php-1.21wmf1/extensions/Collection/Collection.templates.php line 351: Call to undefined function number_format_Render
 * - - Collection array_push expects parameter 1 to be array, null given
 * - - Collection.templates Call to a member function getFullURL on a non-object
 * - Follow-up Ia01c9da5: Fix many escaping issues.
 * - - Collection: Call to a member function getDBkey on a non-object
 * - Fix for Call to a member function getTimestamp on a non-object
 * - - Collection: Call to undefined method WikiPage::getOldID
 * - Use $wgExtensionAssetsPath instead of $wgScriptPath for the URL path to the extension.
 * - Collection maintenance.

ConfirmEdit

 * - Ensure a session is created when necessary for Captcha

DonationInterface

 * - Adding the AUTHENTICATIONINDICATOR node to all GC transactions, and defaulting to '0' as per their new instructions.
 * - Readding statics in setNormalizedOrderIDs
 * - Changing our not-so-random random number generator to a different random, and a minor bug fix.
 * - Absolute madness.
 * - Changing the way we do order ID generation, and the ways we can do it in the future.
 * - Cleaning up the new log line on end of transaction, and a lot of bugs I found looking at the output after the first pass.
 * - Fixing a typo that was filling up my php error log.
 * - Adding a final donation status log line, and fixing a couple minor bugs that this surfaced
 * - Removing opt-opt hidden field from the rest of the forms.
 * - Removing opt-out field. One form only for now.

DoubleWiki

 * - Pages with multi-wiki content haven't to be indexed by search engines.

Echo

 * - $language-&gt;prettyTimestamp is expecting 3 arguments
 * - Fix a couple of email parameter issues.
 * - Fix a typo in array key
 * - Create special page aliases file
 * - syncing params between child and parent methods
 * - Add some useful hooks to Echo extension

EditPageTracking

 * - Normalize i18n file.

EducationProgram

 * - Use short form for reason.
 * - Remove dead code
 * - Renamed groups based on request by sage ross

FlaggedRevs

 * - No longer in svn
 * - Normalize i18n files.
 * - Fix lack of parsing 'revert page back to' message on rejection confirmation page
 * - Fix stability log escaping HTML links to pages
 * - Track logged-in user stats internally (not shown yet).

GoogleNewsSitemap

 * - Normalize i18n file.

LiquidThreads

 * - Set new messages css/js to top loading
 * - Add profiling for Threads::synchroniseArticleData
 * - Updated onLoadExtensionSchemaUpdates code

Math

 * - Fixed file mode setting.

MobileFrontend

 * - mark closing tags to assist readability
 * - improve html validation
 * - enable toggling on edit page
 * - add javascript to split large edit area into several edit boxes
 * - add edit link to pages in beta mode
 * - 1px tweak to menu items
 * - hijack random button and load content dynamically in beta
 * - abstract createStubPage function and return ajax requests
 * - refactor footer css
 * - remove footer from beta
 * - add margin to bottom of anchor tags
 * - change watch list icon to black star
 * - move watch article css from mf-navigation to mf-watchlist
 * - move watchlist.css into less file
 * - use min-width instead of width for save settings button
 * - : don't output TM or (R) next to the sitename by default.
 * - ensure content takes up full width
 * - bring basic editing to mobile
 * - jslint / whitespace fixes
 * - bring back language filter code

MoodBar

 * - Some MoodBar deletion message creations/changes
 * - Change allowed feedback length from 140 to 255
 * - Maintenances updates for Moodbar.

NewUserMessage

 * - More maintenance for NewUserMessage extension.
 * - Fix Id0c9b0b7: The logic was wrongly changed.

Nuke

 * - Use strict, add semi-colon and reformat code
 * - Add explicit GENDER support for all relevant messages.

ProofreadPage

 * - Fix a small bug in the new configuration system.
 * - Create index and page namespaces automatically if not set
 * - Rewriting of Index pages edit form in PHP
 * - Make the link to the image works with Tiff files.

RSS

 * - Normalize i18n file.

ReaderFeedback

 * - Normalize i18n file
 * - Maintenance for ReaderFeedback extension.

Renameuser

 * - Use short form for reason.

SiteMatrix

 * - don't act up on new dblist entries

SwiftCloudFiles

 * - - Allow X-Content-Duration to be set
 * - Broke up some long lines.
 * - Cleaned up metadata normalization issues.

TimedMediaHandler

 * - Use avconv by default

TitleBlacklist

 * - Fixing several issues with the titleblacklist API
 * - Parse the unacceptable new account name/move messages

Translate

 * - Typofix
 * - Add Yandex Translation Helper support.
 * - Follow-up I6f93083e: Correct variable names and types
 * - Flesh out some method parameter type documentation
 * - Sort order of statstables is now included in the url
 * - Profile the HTTP calls made to external services
 * - Document SingleFileBasedMessageGroup properly
 * - Increase timeout for tests
 * - Reduce queries in WorkflowStatesMessageGroup
 * - Reduce database queries in WikiPageMessageGroup
 * - Reduce database queries
 * - Stop passing file contents to collections...
 * - Optimization to message table
 * - More profiling
 * - Little bit more info in debugging messages
 * - Various optimizations and fixes for (proofreading OOM)
 * - Timeout when trying to move a translatable page
 * - Also profile the store part
 * - Added tests to database fuzzy marker updates
 * - Provide context to getDescription in few places
 * - Hardcoded paths in PremadeMediawikiExtensionsGroups
 * - Introduce $context param to label and desc of message groups
 * - Desc messages not displayed for MediaWikiExtensionFFS
 * - Filter ignored messages on export
 * - Revert &quot;Revert &quot;Small performance improvement&quot;&quot;
 * - Revert &quot;Small performance improvement&quot;
 * - Small performance improvement
 * - Sort dropdown items on Special:AggregateGroups
 * - MediaWikiExtensionFFS and related changes
 * - Removing now unused script
 * - Undefined variable useCtxtAsKey
 * - Infinite loop in MediaWikiMessageChecker
 * - Prevent page scrolling when adding new groups
 * - Cleanups
 * - Special:AggregateGroups does nothing
 * - Clear any floats before the table
 * - Cleanup MessageIndexTest
 * - Added framework for key generation algorithms in GettextFFS
 * - Narayam integration with editors
 * - Lots of work on tests
 * - Only add instances of FileBasedMessageGroup
 * - Add 'translate-group-desc-frontlinesms'.
 * - Add option 'group' to processMessageChanges.php.

UniversalLanguageSelector

 * - Update jquery.ime from upstream
 * - Move the IME customization code out of document.ready
 * - Cleanup
 * - Remove unused settingspanel.js
 * - Callback for preference save action is optional
 * - Save the ime preference when disabled
 * - Guard for web execution
 * - Show languages with Input methods in the language selector
 * - Update jquery.ime from upstream and a fix in default preferences
 * - CSS, tooltip fixes for the more button in IME selector menu.
 * - Refactor font selector creation code
 * - Avoid lazyloading when used for input method language selection.
 * - Update jquery.uls from upstream
 * - Input method integration with ULS
 * - Make the setting item toggle on click

UploadWizard

 * - Add GENDER support to upwiz-deeds-macro-prompt
 * - Black frame in UploadWizard
 * - Tweak some messages.
 * - Removing obsolete system message
 * - Dont use unicode characters in temorary name
 * - Check for completeness in confirmCloseWindow

Vector

 * - Adjust right side alignment of insertChars container on editPage.
 * - Alignment for editOptions and insertChars when WikiEditor enabled
 * - fix indenting in footerCleanup.js
 * - Align edit options with text area

VisualEditor

 * - (bug #41434) Converting format across 2 lists with paragraphs in between fail
 * - Really properly initialize static member before adding stuff to it
 * - Properly initialize static member before adding stuff to it
 * - Add commands to ve.Surface
 * - Tools changes
 * - UI context reorganization, inspector rewrite, iframe refactor, icon generalization
 * - Add ve.Action, ve.ActionFactory, subclasses
 * - Add ve.dm.Surface.has{Past,Future}State, add docs
 * - Add ve.dm.Node.hasAttributes
 * - Add ve.dm.Node.hasMatchingAncestor
 * - Trying to edit a blank page fails
 * - Add ve.dm.SurfaceFragment.getAnnotations
 * - Whitespace and comment cleanup on ve.ce.SurfaceObserver
 * - Test: Enforce # of expected assertions.
 * - Fix JS error in ve.setProp
 * - Fix number of doc sync tests
 * - DocumentSynchronizer fix and cleanup
 * - Actually use nodeOuterRange, selectNodes has provided this forever
 * - Reorganize text-only replacement detection
 * - Guard transactions against double commit/rollback
 * - No longer copy data in ve.dm.Document constructor
 * - Remove 'internal' property from DM nodes
 * - Fix annotation object creation in SurfaceFragment
 * - Documentation fixes
 * - ve.ui.CommandFactory: Initial implementation
 * - Standards: Fix global variables and pass JSHint.
 * - Upstream: jQuery 1.8.2, QUnit 1.10.0.
 * - Rename property &quot;timeout&quot; to &quot;timeoutId&quot; - more descriptive.
 * - Removed htmlTagName and htmlAttributes from hash
 * - Add parentOuterRange to selectNodes output
 * - Make the debug tool (Dump all data) compatible with ve.AnnotationsSet (instead of array)
 * - Do reference comparison in selectNodes tests and fix test data
 * - Add ve.setProp
 * - Add missing var statement
 * - Fixing large content copy and paste from external source for Firefox/Windows
 * - Fix for native deletion - it was breaking document (model and view) when deleting really fast (holding the key for example). This solution completely fix the problem, however it is not optimal - stop and start is called more often than should be.
 * - Fix selectNodes bug reported by Inez
 * - &quot;Is there data?&quot; a.k.a. Insert data only if there is a data to be inserted.
 * - Fix bug in ve.ce.BrancNode.setupSlugs. It was removing slugs from the DOM, but not from the internal (this.slugs) collection, so getSlugAtOffset was returning incorrect information.
 * - Wrap inline elements properly
 * - Fixing location of ve.ce.CenterNode.js and adding comma between variable declarations
 * - Missing coma. Who knows how it happened...
 * - Whitespace and comment cleanup for dm annotation classes
 * - When getOffset is called for a slug offset there is no need to traverse DOM - we can simply just call getSlugAtOffset and use that information.
 * - Fixing cut
 * - Fix path issues with missing files, inconsistent subset in demo, test &amp; mediawiki.
 * - Get annotations from first character of a range
 * - Fix exception when deleting all text (Ctrl+A Backspace)
 * - Fix JS error in DocumentSynchronizer when adding to an empty document

WikiEditor

 * - Enabling editors to distinguish dashes in the WikiEditor

WikiLove

 * - Correcting object name in comments

WikimediaIncubator

 * - Remove redundant logo messages
 * - Adding support for Wikivoyage test projects on Incubator

WikimediaMaintenance

 * - Replace deprecated methods and remove unused variables

ZeroRatedMobileAccess

 * - update carrier names

cldr

 * - Update with 22-1-d03 RC

wikidiff2

 * - Fix potential use of uninitialised stack variable