MediaWiki 1.27/wmf.16/Changelog

Core changes

 * - [1.27.0-wmf.15] MF cache pollution debug log
 * - initSiteStats.php: Make it obvious you need to use --update
 * - Move EmailNotification::updateWatchlistTimestamp to WatchedItemStore
 * - DB: Correct argument documentation to match code.
 * - Replace uses of join by implode
 * - MemoizedCallable: Add test for memoized closure
 * - SpecialPageFactory: Update main RequestContext in addition to globals
 * - Use single quotes in API where possible
 * - Declare functions with access modifiers
 * - Explicitly declare ApiQueryImageInfo::getInfo public
 * - Remove deprecated methods in ApiQuery
 * - Explicitly declare ApiImport::getData public
 * - Explicitly declare ImportReporter::reportPage and override public
 * - Explicitly declare ApiFormatXml::addXslt protected
 * - Explicitly declare ApiFormatBase::initPrinter public
 * - Call static functions statically in API
 * - Use Elvis operator where possible in API
 * - Remove unused local variables in API
 * - Move WatchedItem logic to WatchedItemStore
 * - Add WatchedItemIntegrationTest
 * - Fixes to masterPosWait for master switchovers
 * - Fix some JobQueue IDEA errors
 * - Hooks do not have to return true any more, they can return null
 * - Correcting comments regarding $wgCacheDirectory in DefaultSettings
 * - Ignore name-less inputs on preference page confirmCloseWindow check
 * - context: Support setting title to null
 * - Add FileOperationReplication log to improve multiwrite backend logging
 * - Log violations of load.php's no-session constraint
 * - Improve change content model log entry for page creations
 * - qunit: Don't require expect anymore
 * - Instrument diff timing
 * - Don't treat configured but absent engine as executable
 * - Ditch support for original wikidiff
 * - Clarify FileRepo::concatenate docs a bit
 * - Add additional tracking information to mediawiki.searchSuggest
 * - SpecialUserlogin: Update main RequestContext in addition to globals
 * - Revert "Allow auto suggestion for subpages of Special:BotPasswords"
 * - Revert "Templatize Special:Contributions lines"
 * - Fix parserTests.php script
 * - Follow-up e33d6f45a. Fix some mistakes w/ limit on QueryPage
 * - mediawiki.ui: Button group active buttons unchanged on user interaction
 * - Templatize Special:Contributions lines
 * - Integrate Less helper `.mixin-screen-reader-text`
 * - MediaWiki Widgets: Add new SearchInputWidget
 * - installer: Update main RequestContext when updating $wgLang
 * - tests: Ensure main RequestContext reflects custom $wgLang
 * - maintenance: Remove odd use of $wgLang
 * - filebackend: Clean up TempFSFile and fix IDEA errors
 * - CSSMin: Remove file-existance filter in getLocalFileReferences
 * - resourceloader: Don't cache CSSMin::remap calls
 * - Prevent "Failed to create..." warnings when session loading fails
 * - Linker: Avoid passing false to Title::newFromText
 * - Upstream `isElementInViewport` from MobileFrontend
 * - api: Fix "PHP Notice: Undefined variable: config"
 * - Fix trivial PHPCS violations in */skins/* directories
 * - Revert "Deprecating: Consolidating `progressive` & `constructive` buttons"
 * - AutoloadGenerator: Account for PHP 5.5 syntax like "self::static"
 * - Allow FSFile objects for src in FileBackend::do*Operations
 * - Add help link for Special:ChangeContentModel
 * - Fix use of RawMessage in Status::getMessage
 * - Add ContentHandler::supportsCategories method
 * - objectcache: Fix MultiWriteBagOStuff docs ('asyncHandler', not 'asyncCallback')
 * - findHooks.php: Use recursive directory iterator
 * - user: Remove obsolete note in docs/memcached.txt
 * - Update OOjs UI to v0.16.1
 * - Add mobile target to mediawiki.special
 * - Add access modifiers to MagicWordArray.php
 * - Fix comment in SearchEngine.php
 * - Convert remaining array to [] in API
 * - Guard against allowing intermediate caching when cookies are present
 * - Add tags support to patrol, protect, unblock, and undelete
 * - WebRequestUpload: Use canonical header name in getHeader
 * - mw.Upload.BookletLayout/Dialog: Add determinate progress bar

ActiveAbstract

 * - Add translatable description
 * - Update grunt-banana-checker to 0.4.0

BetaFeatures

 * - Revert "Add version hash to screenshot urls"
 * - Remove blank gom.json
 * - Add version hash to screenshot urls

CentralAuth

 * - Reset scoped session for two more jobs after deferred updates
 * - Reset scoped session for global rename jobs after deferred updates
 * - Remove use of "successful" in strings

CharInsert

 * - Add grunt-jscs and make pass

CirrusSearch

 * - Allow switching completion suggester between default and beta feature
 * - Check response from index create
 * - Remove unused import from Hooks
 * - Dont log to CirrusSearchRequestSet when disabled
 * - Convert StreamingForkController into OrderedStreamingForkController
 * - Added Similarity configuration
 * - Refactor and rename IndexValidator to IndexCreator

Cite

 * - Auto-convert pasted ref tags
 * - VE: Lookup the correct command for the node

Citoid

 * - Re-select fragment after collapsing
 * - Add mode index cards before events are bound

CleanChanges

 * - Call static methods statically
 * - Pass-by-reference is not needed

CodeReview

 * - Remove use of "successful" in strings

ContactPage

 * - Update grunt-banana-checker to 0.4.0

ContentTranslation

 * - Do not attempt adding orphan section unless source article is old revision
 * - Do not count a section restored as orphan as orphan again
 * - Trigger mw.cx.translation.change event on enter key press
 * - MT Card: Correct the menu when MT is disabled by default
 * - Set target lang and dir attributes in the linter card
 * - Notifications: truncate without adjust length
 * - Show the save progress indication
 * - Remove data-cx-mt-provider attributes from content before publishing
 * - Exclude short sections from validations
 * - Use correct timestamp for updates

DonationInterface

 * - Add more Chile payment methods
 * - Allow multiple name filter rules
 * - Add and update AstroPay logos
 * - Add more LATAM card logos
 * - Hide submethod buttons when only one choice
 * - Update payment methods and submethods for AstroPay LATAM rollout
 * - remove Friesland Bank
 * - Prepare logos for AstroPay LATAM banks and cards
 * - give 'bt' submethod a group
 * - Use RequestContext instead of $wgLang
 * - fix quote
 * - Make PayPal tests less tautological
 * - Don't show single-value currency dropdown
 * - Update Paypal return URL handling
 * - Fix appending country to TY page URL

Echo

 * - Add debug logging for when the thank-you-edit code detects a race condition
 * - EchoTargetPage: Don't call Title::newFromId repeatedly
 * - Fix EchoAttributeManager::getNotificationSection php doc
 * - Defer onPersonalUrls DB writes to post-send
 * - build: Enable jscs rule 'requireVarDeclFirst' and make pass
 * - Try and avoid race conditions with thank-you-edit notifications
 * - Use padding instead of margin to separate cross-wiki sections from each other
 * - Mark all as read should not apply to cross-wiki bundles
 * - Echo API layer
 * - Styling adjustments for notifications
 * - Revert "Compress PNGs with zopflipng"
 * - Add a short abbreviation for timestamps in notifications
 * - Change "Expand N alerts/messages" to "View N alerts/messages"
 * - Notifications: truncate without adjust length
 * - Allow mark as read for a cross-wiki bundle
 * - Support generating sample notifications by types
 * - Add unreadfirst parameter that works in non-groupbysection mode
 * - Remove resolved TODO about adding wiki field to Schema:EditInteraction
 * - Don't list foreign notifications for both sections when not using groupbysection

EducationProgram

 * - Remove use of "successful" in strings
 * - Notifications: truncate without adjust length
 * - Fix broken PHPDoc block in UserMergeArticleReviewersJob

EventLogging

 * - Fix missing global var declaration for $wgDBname
 * - Configure automatic linting; apply lint fixes

FlaggedRevs

 * - Remove use of "successful" in strings

Flow

 * - Use same link for flow & flowusertalk summary notification
 * - Remove use of "successful" in strings
 * - TalkpageManager method renames
 * - Notifications: truncate without adjust length
 * - Clear failing listeners from tests where we don't provide sufficient metadata
 * - Have NamespaceIsMovable hook set NS_TOPIC to false and not touch others

Gather

 * - Remove use of "successful" in strings

GlobalBlocking

 * - Remove use of "successful" in strings

ImageMap

 * - Add version hash to ImageMap desc image

Interwiki

 * - Use ternary
 * - Merge nested positive ifs
 * - Remove useless return
 * - Perform cheaper checks first
 * - Suppress static code analysis check for a missing break

Kartographer

 * - Apply alignment classes to VE nodes

LiquidThreads

 * - Remove use of "successful" in strings

MassMessage

 * - Only check if the title is an interwiki if it is for the local site (mm-ch)

Math

 * - Prevent modification of math markup after output

MobileFrontend

 * - Fix parser cache issues
 * - Use RL context language in MFResourceLoaderParsedMessageModule
 * - Allow lazy loading of references (feature flagged)
 * - Drop NetSpeed cookie and associated preference
 * - Add Vary header User-Agent, if appropriate
 * - Avoid pushing down content on image load
 * - Lazy load all images that have been replaced by the placeholder
 * - Hygiene: Switch skin methods to get method
 * - Hygiene: Remove doc of non-existing variable in MobileFormatter
 * - Fix lead section handling in MobileFrontend
 * - Completely remove Special:UserProfile
 * - Hide categorization changes depending on user setting
 * - Exchange generic `active` class with stateful `is-on` class
 * - user: Remove old sessionId only once and asynchronous

MultimediaViewer

 * - Fix browsertests-MultimediaViewer-mediawiki.org-linux-firefox-sauce Jenkins job
 * - Trigger fullscreen-change event when closing lightbox interface
 * - Message 'multimediaviewer-description-page-popup-text-local' doesn't exist

ORES

 * - Use $dbr instead of calling slave every time

OpenStackManager

 * - Instance creation: remove check for the 'show' metadata item
 * - Remove use of "successful" in strings

PageImages

 * - Remove not needed "return true" from hook handlers
 * - Thumbnails generated from SVG may be larger than original

RelatedArticles

 * - Fix mobile Selenium Jenkins job

Renameuser

 * - Cheaper checks first
 * - Remove pre MediaWiki 1.25 compatible code
 * - Use single quotes where possible

SecurePoll

 * - New election property "voter-privacy"

SemanticForms

 * - Added jsGrid JS library (http://js-grid.com)
 * - Modified and updated JS library credits in README
 * - Simplified standard creation of SFTemplateInForm class
 * - Remove use of "successful" in strings
 * - Fixed "dummy" delimiter - fix for 7574243

SiteMatrix

 * - Set "array_plus_2d" merge strategy for "SiteMatrixSites" config option

TemplateData

 * - [BREAKING CHANGE] Change default format to null instead of 'inline'

Thanks

 * - Remove deprecated API functions
 * - Include error code in API failure message

TimedMediaHandler

 * - Update two tests packages

Translate

 * - Remove use of "successful" in strings
 * - Define $out
 * - Make logic easier to read
 * - Remove duplicate key "pm-langcode-missing"
 * - Mark constructor for extensions of Job public
 * - Pass by reference is not needed
 * - Declare functions as much as possible with access modifiers
 * - Replace SpecialPage::getTitle with getPageTitle
 * - Pass __METHOD__ to Http::get for profiling
 * - Use Http::get instead of Http::request
 * - Fix CSS issues in Special:ManageTranslatorSandbox
 * - Update type hints
 * - Fix check
 * - Replace type casting via PHP4 functions
 * - Make cheaper checks earlier
 * - Remove superfluous return statements
 * - Remove duplicate and overwritten CSS properties
 * - Remove unused local variables
 * - Add type hint
 * - Update documentation
 * - Add missing required parameter
 * - Fix callable name case mismatches
 * - Remove deprecated TranslateUtils::getTokenAction
 * - Safely use single quotes
 * - Remove no longer present entry
 * - Remove shuffling the languages
 * - Fix incorrect variable name
 * - Replace more functions deprecated in MediaWiki 1.25
 * - Remove deprecated profiling calls
 * - Fix incorrect variable name
 * - Remove unused private method
 * - Fix static method invocation via $this
 * - Remove superfluous newlines
 * - Fix regression in marking page for translation
 * - Use DB_SLAVE in TranslatablePage for GET request

UniversalLanguageSelector

 * - Use single quotes where possible
 * - Fix case mismatch in method call
 * - Perform cheaper check first
 * - Move assignment of $dir outside of loop
 * - Update newlines
 * - Pass-by-reference is not needed
 * - Declare functions with access modifiers

UploadWizard

 * - Remove use of "successful" in strings

UserMerge

 * - Fix name case mismatches
 * - Declare function with access modifier
 * - Update documentation

VisualEditor

 * - Link inspector: Remove premature call to onLinkTypeIndexSet
 * - Link inspector: make height consistent
 * - i18n: Don't refer to the name of the tab in the beta notice given it changes
 * - i18n: Explain to returning users that their preferences are mutable
 * - i18n: Relabel the SET preference and dialog to 'mode'
 * - Update VE core submodule to master (5d4881e)
 * - DesktopArticleTarget: Add Edge and MSIE to whitelist
 * - Don't give the user the option to discard changes when changing editor
 * - Follow-up I65d96627: Remember the user's preference in WikiEditor too
 * - DesktopArticleTarget.init#getLastEditor: Check values for validity
 * - Use iconWhenInvisible for alien extension nodes
 * - Simplify showtabdialog logic a little bit
 * - Wikitext paste: Move MWWikitextStringTransferHandler matchRegExp into a registry
 * - Update ArticleTarget for new API token handling
 * - Handle API errors when refetching the edit token
 * - Follow-up 2c24efae: fix typo in event name for unknown save errors
 * - Update VE core submodule to master (f77ac2b)
 * - Try to fix handling of empty document on WTE->VE switch
 * - Use abstract target widget creation
 * - Use new surface executeCommand method
 * - Update VE core submodule to master (46f34e1)
 * - Update VE core submodule to master (ac24b50)
 * - CategoryWidget: Remove reorder event fix after upstream fix
 * - Education popup: Also handle clicks on dots
 * - Change Accept header a bit
 * - [BrowserTest] Fix `ve.init is undefined` and `ve.init.target is undefined` error messages
 * - Keep summary and checkbox selections when swtiching WTE->VE
 * - Update VE core submodule to master (6b85afc)
 * - ArticleTarget: Update documentation
 * - MWTemplateSpecModel: Use namespace constant
 * - MWTemplatePage: Don't assume template is the template namespace

WikiLove

 * - Provide license label for "Special:Version"

WikimediaEvents

 * - Implement SpecialSearchGoResult to forward wprov on redirect
 * - ext.wikimediaEvents.deprecate: Convert to use statsv instead of EventLogging
 * - ext.wikimediaEvents.statsd: Use navigator.sendBeacon if available
 * - Increase deliverability guarantee of unload events in search satisfaction schema
 * - Add autocomplete to search satisfaction schema

cldr

 * - Small optimisations
 * - Remove PHP4-isms in type casting
 * - Declare functions with access modifiers

MonoBook

 * - Revert "Replace deprecated functions"
 * - Replace deprecated functions
 * - Declare execute public as in parent

Vector

 * - Use mediawiki-codesniffer 0.6.0
 * - Use single quotes where possible
 * - Remove IE6 CSS hover support
 * - Make vectorMenu expand as tabs in IE6