MediaWiki 1.27/wmf.21/Changelog

Core changes

 * - mediawiki.api.upload: Unbreak finishing stash uploads
 * - Make MessageCache handle lock timeouts better
 * - Catch errors in pushLazyJobs and log them
 * - Avoid ack race condition in JobQueueRedis
 * - rebuildrecentchanges: Allow rebuilding specified time range only
 * - Segment stash edit cache stats by basis for hit/miss
 * - Allow tag names for SqlBagOStuff consistent hashing
 * - SpecialRunJobs: delegate error handling to MWExceptionHandler
 * - Follow-up Idb1202579: Add special-characters-group-greekextended to RL module
 * - Revert "Hack IEUrlExtension::haveUndecodedRequestUri to always return true"
 * - Hack IEUrlExtension::haveUndecodedRequestUri to always return true
 * - Update CentralNotice
 * - Update Wikidata
 * - OOjs UI: Apply texfield -> textfield typo fix on the library build
 * - Don't report image cache hits / misses
 * - Revert "Measure commitMasterChanges run time"
 * - [1.27.0-wmf.15] MF cache pollution debug log
 * - Fix core DB data in unit testing
 * - Reduce code duplication in MessageCache
 * - Flag triggerOpportunisticLinksUpdate behind $wgMiserMode
 * - Cache first-letter data in APC, if available
 * - Increase triggerOpportunisticLinksUpdate backoff TTL
 * - Revert "Allow reset of global services."
 * - Revert "Make WatchedItemStore use MediaWikiServices"
 * - Fix RebuildLocalisationCache bug from MediaWikiServices
 * - Run generateLocalAutoload.php
 * - Make WatchedItemStore use MediaWikiServices
 * - Allow reset of global services.
 * - Add missing use MWException to SessionManager
 * - Thumbnails: allow overflow inside thumbnails
 * - Normalize `input[type="search"]`
 * - Show absolute block expiry in user timezone on block logs
 * - Make some TablePager methods actually protected
 * - Add preference for watching uploaded files
 * - Finish stash uploads with upload dialog
 * - Change \\ to \ in phpdoc
 * - Fix mbstring check in update.php
 * - SkinTemplate.php: Add missing @param documentation to wrapHTML
 * - Run generateLocalAutoload.php
 * - Update OOjs UI to v0.16.5
 * - Clean up after "Kill mbstring fallbacks"
 * - Support empty explicit plural forms in JavaScript
 * - Explicitly require all the required PHP extensions
 * - registration: Load extra autoload files before executing callbacks
 * - Kill mbstring fallbacks
 * - Unbreak tests
 * - Fix phpdoc in StatsdAwareInterface
 * - User.php: Update 'setEmailWithConfirmation' for notification email
 * - mediawiki.Title: Reuse local variable fragment
 * - Don't replace !! in elements
 * - Swap exif-pixelydimension and exif-pixelxdimension messages
 * - Sync up with Parsoid parserTests.
 * - mw.Upload.BookletLayout: Handle additional warnings/errors
 * - SpecialLog: Don't put assignment within another expression
 * - Update monolog to 1.18.2
 * - ImageListPager: Fix improper use of Title::newFromText.
 * - Preprocessor: Don't allow unclosed extension tags (matching until end of input)
 * - Add possibility to filter for log_action in all core logs
 * - Switch Special:FileDuplicateSearch to OOUI
 * - Revert "Split ClassCollector class into own file"
 * - Move action filter logic to LogPager
 * - jquery.makeCollapsible: Don't ignore clicks on fake links without href
 * - RightsLogFormatter: Use DB key to generate foreign user link
 * - Add a hook for collapsible content
 * - Ignore DBPerformance warnings for ?action=purge for users with "purge"
 * - Add templateOverridesBySection to multi LBFactory
 * - Convert Special:Search input to OOUI
 * - Allow to pass a rev id to a log entry without making it unpatrolled
 * - Add note that IP::isInRange can return unexpected results for invalid args

Vendor

 * - Update OOjs UI to v0.16.5

AbuseFilter

 * - Fixes to filter profiling
 * - Remove unnecessary phpcs overrides
 * - Remove a tab from abusefilter-exception-notenoughargs
 * - Improve ignoring short-circuited operations
 * - Improve how the number of conditions is counted
 * - Interpret data correctly in getMoveVarsFromRCRow
 * - Avoid crippled APIEditBeforeSave hook, use new features of EditFilterMergedContent instead
 * - Mostly unbreak profiling of number of conditions used by filters
 * - Add $wgAbuseFilterProfile to enable filter profiling
 * - Revert "Removed filter profiling using $wgMemc"
 * - Remove executable bit from files

BetaFeatures

 * - Fix a failing test

CirrusSearch

 * - Added count-cluster.sh

Cite

 * - Fix wikitext conversion of pasted ' 's

ContentTranslation

 * - Enable europeana2802016 campaign
 * - Guard against Array.prototype modifications in MT control
 * - Use array in invalid title error message

DonationInterface

 * - Rename $unstaged variable
 * - Clear up some ffname logspam
 * - Minor PHPDoc cleanup
 * - Minimalist iDEAL order id refresh fix
 * - Maintenance script to get AstroPay payment status
 * - Run SessionVelocity for Adyen
 * - Make SessionVelocity log like a fraud filter
 * - Reuse common error display code
 * - Bring iDEAL forms more in line with our newer RapidHtml forms
 * - Update form settings for CL
 * - Remove Knab from iDEAL options
 * - Fix CO fiscal number validation
 * - Force continue button when submethods hidden

Echo

 * - Follow-up 1608a5e6fc: add hasOwnProperty check
 * - Recreate test users for every test
 * - Never show a negative number in the notifications badge
 * - Also show the survey tooltip on click
 * - FooterNoticeWidget: Set image height explicitly
 * - Update notifications when reopening the popup

FlaggedRevs

 * - Set doesWrites where needed

Flow

 * - Fix new topic notifications
 * - Show cursor:pointer on things that toggle expand/collapse of resolved topics

Gather

 * - Reset Gather tables between tests
 * - Recreate test users after every test
 * - Hygiene: Refactor schemas

JsonConfig

 * - Fix loading issue when isLocal is not set
 * - Break up complex statement
 * - Refactoring JCObjContent.php
 * - Use pattern to choose content model, unit tests

Kartographer

 * - VE: Detect changes by comparing mwData
 * - Don't export uneeded geometries into page
 * - Load maplink data on demand.
 * - Data API

MassMessage

 * - Support using the sender's account to deliver messages in the backend

Math

 * - Reduce number of Restbase requests
 * - Add inverse of texToClass function in comment
 * - CSS code style: spaces inside parentheses
 * - Use new executeCommand method
 * - Allow SVG images with and without speech on Special:MathStatus

MobileApp

 * - Roll out RESTBase usage to Android production app: 100%

MobileFrontend

 * - Integration tests should be run in Chrome
 * - Hygiene: Remove unused Page::getReferenceSection method
 * - Hygiene: Cleanup old schema related code
 * - Hygiene: remove some MobileWebClickTracking schemas
 * - Hygiene: Use mw.eventLog.Schema for logging MobileWebMainMenuClickTracking events
 * - Have npm doc to install jsduck with bundler
 * - Include cross-wiki notifications in serverside-rendered badge
 * - Remove kss dependency
 * - Hide page actions for non-JS browsers when no actions are visible

MultimediaViewer

 * - Migration of browsertests* Jenkins jobs to selenium* jobs

OATHAuth

 * - Fixup DB/uid handling for SUL wikis

PageTriage

 * - Fixing 'not reviewed' icon

PdfHandler

 * - Migration of browsertests* Jenkins jobs to selenium* jobs

ProofreadPage

 * - Follow-up I876c902c: Use new 'articles' icon from OOUI v0.16.5+
 * - [Index: pages form] Set input type=number only if the existing value type is actually a number
 * - Update registration for ProofreadPage extension

RelatedArticles

 * - Temporary fix for blurry images

SemanticForms

 * - Added initialization of variable
 * - Removed some now-unnecessary setup before formHTML

SyntaxHighlight_GeSHi

 * - VE: Rename parent tool
 * - Prevent selecting line numbers in syntaxhighlight

TemplateData

 * - GUI data: Actually do something useful with the normalized type
 * - GUI: Don't set format: null when outputting data

TextExtracts

 * - The last sentence of the paragraph was lost.

Translate

 * - Avoid more master queries on page views
 * - Update version before MLEB release
 * - Defer DatabaseMessageIndex unlock action to post-commit

UniversalLanguageSelector

 * - Use localstorage instead of cookie for previous language autonym
 * - Remove the years old cookie to localstorage migration code
 * - Remove browser checks and use MediaWiki browser policy
 * - Update jquery.ime to 7572e2
 * - Fix language undo tooltip not showing
 * - Add .jsbeautifyrc
 * - Clean up ULS localstorage preference saving system
 * - Update jquery.uls from upstream to 40e67f5
 * - Update ULS settings UI style to mediawiki.ui style
 * - Update jquery.uls to 7b3cd3d885
 * - Resolve language code redirects before using them in ULS
 * - Correct the position the arrow of selector and add shadow
 * - Update version before MLEB release
 * - Remove logging the language selection method

UploadWizard

 * - mw.UploadWizardDetails: Correctly pass raw mw.Message, not escaped text, take two

VisualEditor

 * - Check wpSection before converting textbox contents for use in VE
 * - Update VE core submodule to master (f8be8c3)
 * - Adjust DOM and CSS so UI surface runs from top to bottom of page
 * - Add ?redirect=false to VE's RB /page/html/ requests
 * - More minor/watch checkbox state computation server-side
 * - Use widgets for wiki-page-name, wiki-user-name, wiki-template-name, boolean, URL and line template fields
 * - Update VE core submodule to master (5109934)

WikidataPageBanner

 * - Attempt at fixing table of contents problem

WikimediaEvents

 * - Revert "Test to measure clickthrough position after swapping results"
 * - Track autocomplete events from mw.widgets.SearchInputWidget
 * - Collect impact of proposed ResourceLoader feature-test in statsd