MediaWiki 1.22/wmf3/Changelog

Core changes

 * - Hook for changing language links.
 * - Split line and fixed spacing in skins folder
 * - wfRandomString: Correct bias toward digits 1-7
 * - [JobQueue] Added a delayedJobsEnabled function.
 * - Move section edit links to after the headings
 * - Created ProfileSection class to avoid wfProfileOut whack-a-mole.
 * - Fixed spacing around parenthesis in languages/tests/maintenance
 * - Fixed spacing around parenthesis in includes
 * - Fix email address formatting in API credits.
 * - Fix PHPUnit ORM Tests to work with Postgres
 * - Don't underline a elements with the mw-ui-button class:
 * -, not outdated
 * - Pass array to Title::getLocalURL instead of an urlencoded string
 * - Use wfShellExec in parserTest.inc
 * - Avoid use of __METHOD__ in closures.
 * - Updated wikitext-escaping tests to reflect Parsoid's latest output
 * - Added space after switch/Removed spaces after unset
 * - Clean-up to global overrides in NewParserTest
 * - Update code formatting
 * - Update messages.inc and rebuild MessagesEn.php.
 * - Update maintenance file with new message keys slipped in sometime...
 * - Removed space after isset
 * - Ignore message 'today-at' for translation
 * - Add input checks for Language::sprintfDate
 * - Remove unused local variables in tests
 * - Fix &quot;contributors this month&quot; # in signup form
 * - Create account-specific header for its error box
 * - Moved RC purge logic to RecentChange::purgeExpiredChanges.
 * - Changed on-request job running to shell out instead of doing a loop.
 * - MyISAM warning when InnoDB is not available
 * - Fixed maintenance/tables.sql (typo i guess)
 * - Updated onTransactionIdle docs a bit.
 * - test: describe the parser tests recorder
 * - Use wfShellExec in MimeMagic
 * - Add linkprefix test to parserTests.txt.
 * - Fixed dumpBlocks fcn
 * - Add parserTests for tilde and equals signs in links.
 * - Update checkStorage.php to not use deprecated Revision::getText
 * - Remove globals unneeded after 47d1060
 * - Add some recently added messages as ignored
 * - Clarified PoolCounter::execute docs a bit.
 * - Add parentid to output of list=usercontribs
 * - Simplify the logic to decide whether to show &quot;variant&quot; and &quot;noconvertlink&quot; on Special:Preferences
 * - Docs for Redis' -&gt;exec return value
 * - Remove is_numeric check from Title::checkUserBlock
 * - Fix bug in OOM avoidance for RepoGroup cache.
 * - Create account form with vertical form appearance
 * - Fixed return value for RedisBagOStuff::cas.
 * - Introducing a new variable
 * - Check read permissions in ApiFeedContribs
 * - Include cluster name in JobQueueDB cache keys.
 * - Minor fixes to the code documentation
 * - Move &quot;SpecialSearchResultsPrepend&quot; note back to 1.21
 * - Update AutoLoader
 * - Fix TimestampTest broken by 7e3386d4
 * - Simplify the nested ifs of Preprocessor_DOM::preprocessToObj
 * - User::addGroup could cause duplicate groups
 * - Moved CryptRand.php to MWCryptRand.php
 * - StatCounter doc tweaks.
 * - Fix case of $wgLocalTZoffset from 7e3386d4
 * - Renamed QoS_Atomic =&gt; QOS_ATOMIC in some places.
 * - update file metadata in importImages
 * - Make current year default value in the Special:Contributions
 * - Don't repeat label styling
 * - HTMLForms: Support non submit buttons
 * - Move template header inside form so CAPTCHA works
 * - Web installer: always autoselect some DB type
 * - Replace weird usage of explode
 * - Bumped RING_SIZE to use 28 bits to improve weight accuracy a bit.
 * - mediawiki.util: Fix roundtripping of tooltip in portlet links
 * - Avoid use of __METHOD__ in closure.
 * - Refactor MWTimestamp::getHumanTimestamp and add hook.
 * - Fix HTMLForm's documentation example
 * - Cleaned up Hooks code, comments, and documentation.
 * - LogEventsList:showLogExtract should ignore WebRequest
 * - Fix debug log line for $userLimit.
 * - Handle search engine returning status objects to the API
 * - Placeholder attribute of searchInput element
 * - Fixed spacing in files direct in includes folder
 * - Fixed spacing in context/installer/media/templates/upload folder
 * - Add doc for SpecialPage::postText
 * - Added more fine grained groups for parser tests
 * - Improved readability of MediaWikiParserTest::suite code
 * - Fixed spacing in db/debug/diff/externalstore/objectcache folder
 * - Fixed spacing in actions/cache/filebackend/filerepo/job folder
 * - Remove duplicate code from Setup.php
 * - Fixed spacing in logging/parser/profiler/rl/revdel/search folder
 * - Remove subpage from form target on Special:BlockList
 * - Fixed spacing in specials folder
 * - Update formatting
 * - Fixed spacing in api folder
 * - Separate language generation from outputPage
 * - [JobQueue] Fixed numbers given to redis queue stat calls.
 * - [JobQueue] Use regular wfDebug in some places.
 * - Added abandoned job stats.
 * - API: Add new hook 'APIGetPossibleErrors'
 * - Only allow fields from isFieldSortable to be sorted on.
 * - [FileBackend] Made stat cache factor in last-modified time.
 * - [FileBackend] Disallow files ending in / and clarified some docs.
 * - [JobQueue] Added JobQueueFederated class for partitioned queues.
 * - [LockManager] Added a RedisLockManager class.
 * - [JobQueue] Deprecated confusing Job::getId function.
 * - Factored JobQueueRedis::redisEval into RedisConnRef::luaEval.
 * - Moved Block and Title purgeExpired functions to onTransactionIdle.
 * - UIDGenerator: better support for 32-bit machines
 * - Fix @return type hint for Title::newFromID
 * - Clean up, comments, remove obsolete mw-ui-formlist
 * - [JobQueue] Added per-type stat counter calls for better graphs.
 * - Wrap job execution around profiling calls.
 * - Fixed some spacing in maintenance folder
 * - Pass a limit to BackLinkCache::getNumLinks in some places to avoid OOMs.
 * - Normalise user names passed to Special:BlockList
 * - Use a combined const, instead of string concat in Exif.php
 * - Move list generation out of TablePager::getLimitSelect
 * - Cleaned up test cleanup for FileBackend and avoid use of @.
 * - [JobQueue] Simplified a bit of code in JobQueueRedis.
 * - Make UserCache only look up a user once.
 * - Do not bother with ForkController for procs=1.
 * - Got rid of some global $wgContLang usage in SpecialAllpages
 * - Add gender to 'passwordreset-emailerror-capture' message
 * - Make concurrent runs of FileBackendTest independent
 * - Fixed spacing in languages folder
 * - Add missing braces to for in wfGetCallerTest
 * - [FileBackend] Simplified the shard list iterator to use AppendIterator and FilterIterator.
 * - Reduced DB contention in User::saveOptions.
 * - Small doc fix to JobQueueRedis.
 * - Set up the profiler in CLI mode.
 * - Clean up SpecialFilepath.
 * - else if -&gt; elseif
 * - Move release notes from 1.21 to 1.22
 * - Rebuild MessagesEn.php
 * - Clean up old way to disable variants (using a special name 'disable')
 * - Set 'skin' template parameter rather than override parent method
 * - Support HTTP timeout detection in curl backend
 * - Use onTransactionIdle for page invalidations when not using the job queue.
 * - Add non DBMS depending SQL tests for DatabaseBase
 * - Some tweaks to the database commit callback docs.
 * - Account for $wgSquidMaxage in OutputPage::checkLastModified.
 * - Pushed updateCategoryCounts to transaction end to reduce contention.
 * - [Database] Added onTransactionPreCommitOrIdle function.
 * - Some more editor files to ignore.
 * - Added a function to LoginForm to show the &quot;return to&quot; page.
 * - Disable external entities in Import
 * - Disable external entities in XMLReader
 * - Sanitize $limitReport before outputting
 * - Add git HEAD date to Special:Version for core and extensions
 * - Fixed spacing in skins folder
 * - Modifying ArticleEditUpdateNewTalk hook so that it passes the recipient
 * - Set Agora font stack to mw-ui-container in Vector
 * - Fixes to Special:ConfirmEmail form
 * - 5 new tests (3 Parsoid serializer, 2 parser) &amp; fixed 4 tests.
 * - jquery.makeCollapsible: minor fixes to togglingHandler
 * - Fixes to Special:BookSources form
 * - Moved JobQueueDB::recycleAndDeleteStaleJobs function below overriden ones.
 * - test: abstract parser test result
 * - Cleanup and performance tweaks for BacklinkCache.
 * - Fix HTML output of TablePager
 * - $.tablesorter: require separators when detecting dates

AbuseFilter

 * - Deprecate addHolder for addHolders.
 * - Added css class for hidden logs.
 * - Add a &quot;ucase&quot; function to convert the provided string to uppercase.
 * - Use POST method for action=abusefilterchecksyntax API requests
 * - Add .jshintrc for AbuseFilter and make it pass

ArticleFeedbackv5

 * - Timestamp params (no longer Message-&gt;escaped) still need to be escaped

CentralAuth

 * - Sanitize user auto creation in CentralAuth
 * - Refactoring SpecialGlobalUsers.php and SpecialMergeAccount.php to use XML and HTML forms.
 * - meta=globaluserinfo doesn't display homewiki
 * - Add option to meta=globaluserinfo to provide global edit count
 * - Refactoring Special:CentralAuth to use XML and HTML forms.
 * - Refactoring specials/SpecialGlobalGroupPermissions.php to use XML forms.
 * - Updates to migrateAccount.

ConfirmEdit

 * - Move reload image into the _Refresh_ background

DonationInterface

 * - (FR #901) Recurring Amazon
 * - Adjustment to the iFrame liberator such that it hides all elements that other resourses might add (skin stuff, whatever) while we're waiting for the liberated iframe contents to load.

Echo

 * - Change icons to use img tags, allowing easier customization:
 * - Changing how the enotifusertalkpages user option is handled by Echo
 * - Only create notifications that are wanted by the recipients
 * - Making system messages email to users by default per specs
 * - More fixes for Monobook and adding a missing message key
 * - Hedging my bets
 * - Override text color for monobook skin.
 * - Making page title bold in flyout version of revert notification

EducationProgram

 * - Added CourseActivity special page
 * - Sort events within their groups as well + new tests
 * - Pass in correct timestamp format to event query
 * - Moved logic into CourseActivityView from the action that is using it
 * - Added course not found support to view course activity action
 * - Added __METHOD__ to MW DB abstraction layer calls in course store
 * - Added extra tests for the course store and fixed some found issues
 * - Added tests for top level factory
 * - Fix tab selection check
 * - Added getCourseById and getCourseByTitle to CourseStore
 * - Further implementation work on ViewCourseActivity action
 * - Started implementation of CourseActivityView and fixed dependency injection issues in the Timeline code
 * - Fix how student id is passed to ArticleTable
 * - Displat &quot;No summary provided&quot; for edit events that have no associated summary
 * - Split up event grouping logic and added tests
 * - Modified text for Special:MyCourses when it is blank to be more general

EventLogging

 * - ...and back to utf8 as default charset
 * - Default MariaDB character encoding for EL data: utf8 -&gt; utf8mb4
 * - Use more precise type annotation for promise.
 * - Show newlines and whitespace in schema values.
 * - Partial revert of Idc3d42be7
 * - Make &quot;count&quot; optional
 * - Add optional &quot;count&quot; argument for injecting seq ids

GeoData

 * - Fix test I broke during merge conflict resolution
 * - makefile
 * - : empty globe should be treated as $wgDefaultGlobe
 * - : Coordinate value in dec format does not work on de,da,is
 * - Detect fractional numbers where they shouldn't be in coordinates

GettingStarted

 * - Update how icon is configured, due to corresponding Echo change

GuidedTour

 * - Reuse mediawiki.ui button styles:
 * - Make shouldSkip functions for common actions (edit and submit).
 * - Allow arbitrary function for okay button, fix to resumeTour:

Math

 * - Add support to MathJax for RGB colors
 * - MathJax: Ignore pagecolor command
 * - : Protect against tex nodes wrapped in tex nodes.
 * - MathJax: Update to version 2.1
 * - MathJax: Remove support for wikEd and AjaxPreview
 * - MathJax: Add a renderTex hook to render elements on demand
 * - Do not poison the tex formula with markup
 * - Remove even more unused variables
 * - MathJax: Allow user to configure MathJax
 * - remove unused code
 * - debug log was attempting to show a Blob object
 * - tests: skip math table creation for SQLite DB
 * - renaming of read and write methods for database access
 * - rename tests/MathRenderTest.php
 * - escape literal % in tex input

Narayam

 * - Add .jshintrc
 * - Update spelling for Odia

OpenStackManager

 * - Call $project-&gt;editArticle for all member changes.
 * - Fix gidNumber conflicts for service groups vs. project groups.

PageTriage

 * - Add new $icons parameter to Echo hook:

ProofreadPage

 * - Fix some regressions included in EditProofreadIndePage
 * - Replaced Xml class by Html.

RSS

 * - updated version number to 2.21

Scribunto

 * - Fix sandboxing with require
 * - Magic word localization in Galician.
 * - Don't pass negative years to Language::sprintfDate
 * - lang:parseFormattedNumber should return a number, not a string

ShortUrl

 * - jshint fixes

Thanks

 * - Prevent short-term duplicate thanking
 * - Add new $icons parameter to Echo hook:

TimedMediaHandler

 * - only filter out files not directory
 * - deduplicate transcode jobs

Translate

 * - Disable upload from URL on Special:ImportTranslations by default
 * - Update the target language direction when changing the language
 * - Ensure translated pages are rendered with data from master
 * - Drop Special:MyLanguage from wiki page group descriptions
 * - Small comment fixes
 * - Add refresh-translatable-pages.php script
 * - Documentation formatting update
 * - &lt;tvar|&gt; visible on translation pages in source language
 * - Replace method which already exists as strtr
 * - Simplify tracking of changed units and fix invalidation
 * - Code consistency
 * - Check that there are editing controls when removing tipsy
 * - Add group description for Vicuña Uploader
 * - Remove some no longer needed description messages
 * - Add message for blockly groups
 * - Show &quot;Cancel&quot; instead of &quot;Skip&quot; at the last message
 * - Make sure that the proofread tipsy is hidden when editing
 * - Update .jshintrc
 * - Bump version
 * - Always show the empty-list helpers
 * - Update comment
 * - Word-wrap the source text to prevent overflow
 * - Fix double escaping
 * - Better adapt textarea to content
 * - Reminding functionality for sandbox
 * - Implement empty state indicators for proofread mode
 * - Removed repeated function calls.
 * - Add dropdown menu as a separate module

TranslationNotifications

 * - notifytranslators.js: Fix broken closure
 * - Add .jshintrc

UniversalLanguageSelector

 * - Fix tipsy behaviour
 * - Avoid null in the IME languages buttons
 * - Fix typo
 * - Don't let anonymous users change interface language
 * - Fix JSHint issues
 * - Update webfonts and uls libs from upstream
 * - Cleanup for jslint and coding conventions
 * - Load ULS language list from a resource loader module
 * - Use wmf geoip by default
 * - Styling for the Language settings panel
 * - Update from upstream
 * - Fix Undefined offset notice
 * - Ignore libs for JSHint
 * - Introduced $wgULSAnonCanChangeLanguage
 * - Don't show tipsy for an unknown language
 * - Scroll the ULS panel into view automatically
 * - Update ULS from upstream
 * - Add help text above the buttons
 * - Show the web fonts selectors only if they are enabled
 * - Split language settings view into two tabs
 * - Update from upstream
 * - Add the sidebar ULS cog icon and $wgULSPosition variable
 * - Cleanup CSS
 * - Remove uls-select-content-language
 * - Update .jshintrc
 * - Update from upstream

UploadWizard

 * - Use $.each instead of for(in) loop on Array's
 * - Cleanup: missing &quot;var&quot;s, unused locals, etc.
 * - Making sure disclaimer message is parsed in Flickr interface
 * - Hide the 'Next' button until a license is chosen.
 * - User preference for maxSimultaneousUpload

VisualEditor

 * - Fix new test case to use new domElements instead of html
 * - AlienNode stores original DOM elements instead of HTML
 * - Paragraph-&gt;heading conversion was broken when cursor next to an inline node
 * - Add Matma Rex to AUTHORS.txt
 * - Allow fixUpInsertion to move offsets when inserting at start/end
 * - Stop dropping properties in copyObject/copyArray
 * - Add a copy of jquery.client so the standalone still works
 * - UI Refactor
 * - Add TableCaptionNode
 * - Fix FF specific bug
 * - Further AnnotationSet optimisation: create containsIndex
 * - Add method to ElementLinearData to get IVStore items in use

Wikibase

 * - Make ChangeRow work with new ORMTable.
 * - Handle invalid entity IDs in SetReference::getEntityContent
 * - Handle unknown entities in PropertySQLLookup::getMainSnaksByPropertyId
 * - Make MessageReporter available in production.
 * - avoid namespace checker error, check variable type
 * - (hotfix) Preventing default event handling when stopping snakview edit mode
 * - Add profiling to dispatchChanges script.
 * - Fix misleading output of Special:DispatchStats.
 * - Don't prune undispatched changes.
 * - Give default value to new onSpecialWatchlistQuery parameter $values
 * - use allowDataTransclusion setting in ChangeHandler
 * - (hotfix) removed hardcoded values from dispatcher options
 * - Follow-up, fix entity namespace link, rm 'wikibase-'
 * - Fix link with item namespace
 * - Improve default and parameter docu for dispatcher.

ZeroRatedMobileAccess

 * - Migrated to single page config