MediaWiki 1.27/wmf.5/Changelog

Core changes

 * - Update VisualEditor sub-module
 * - A few more FindOrphanedFiles fixes for "!" files
 * - Make FindOrphanedFiles handle files with ! properly
 * - FindOrphanedFiles cleanups
 * - MonologSpi: add support for customizing Monolog\Logger instances
 * - Update VisualEditor sub-module for switching fixes
 * - Update VisualEditor sub-module to eb555534
 * - Update VisualEditor sub-module for wmf.5
 * - Improve BacklinkCache field docs
 * - objectcache: Add a clear method to HashBagOStuff
 * - objectcache: Refresh key in HashBagOStuff::set for maxKeys eviction
 * - objectcache: Add TTL_INDEFINITE to IExpiringStore
 * - LinkCache: Remove deprecated getBadLinks and getGoodLinks methods
 * - objectcache: Move unit tests for HashBagOStuff to its own suite
 * - Avoid "headers already sent" error in jobs for UseDC cookie
 * - Make SqlBagOStuff respect WRITE_SYNC flag
 * - Move brace matching rules to Preprocessor class
 * - TOC: Separate columns for tocnumber and toctext
 * - gallery.js: Do not resize gallery caption
 * - Let Import also read CDATA as content
 * - mw.widgets.TitleWidget: Correct documentation
 * - Remove getLocalServerInstance try/catch in UIDGenerator and DBLockManager
 * - User: Migrate from foreign cache to global cache for UserRightsProxy
 * - Replace newAccelerator with getLocalServerInstance
 * - Revert "Add MediaWiki-Timestamp header to ResourceLoader requests"
 * - Make makeKeyInternal limit more conservative
 * - Improve MIME detection in FileBackend
 * - phpcs: Fix some "Assignment expression not allowed"
 * - Convert JobQueueDB to using the WAN cache
 * - OutputPage: documentation for (semi-)deprecated methods
 * - mw.html: Document mw.html.elements optional parameters
 * - Improve error message from when vendor files don't exist
 * - Enable WebP uploads by default
 * - Remove search preferences from Special:Preferences JavaScript
 * - Convert SiteStatsUpdate to using getMainStashInstance
 * - Fixed arguments syntax in hooks.txt
 * - Load 'mediawiki.page.gallery.styles' also without javascript
 * - objectcache: Allow bounded HashBagOStuff sizes and limit it in WANObjectCache
 * - objectcache: Use singleton cache in newAccelerator
 * - Disallow User::setPassword on users not in database
 * - Update description of LinkCache::forUpdate
 * - jobqueue: Pass count value delta instead of $type for the inserts_actual metric
 * - Log warnings on on preg_* failures in MagicWordArray::matchAndRemove
 * - .0.1
 * - Fix AbortLogin hook return value check
 * - Get rid of the !importants in the Special:Search form styling
 * - Revert throwing exceptions on preg_* failures
 * - Free $textMatches results only when done using it
 * - Fix "Notice: Undefined property: Category::$mId" errors
 * - Include preg_last_error in error message when preg_* fails
 * - API: Be consistent in siteinfo showhooks output
 * - TitleWidget: Sort results correctly
 * - Remove ORM code from core
 * - Parse huge XML metadata from DjVu images
 * - Installer: Validate password against sysop/bureaucrat policies
 * - Add script to find orphaned LocalRepo files
 * - [search] Fix method call on null value
 * - Language: Remove logic for class file inclusion
 * - Convert buildSidebar to using getWithSetCallback
 * - resourceloader: Sanitize lang with isValidBuiltInCode, not isValidCode
 * - Client-side migration for empty li preservation
 * - Fix slow callbacks in getWithSetCallback using lockTSE
 * - wikimedia/running-stat 1.0.0 → 1.1.0
 * - mediawiki.Upload.BookletLayout: Allow for asynchronous initialization
 * - Fix diff/history links not showing up for ungrouped enhanced RC
 * - HTMLRadioField: Use another variable for the radio value to avoid conflicts
 * - Add tests for MemcachedBagOStuff::validateKeyEncoding
 * - Improve WAN cache delete docs a bit
 * - Convert DjVU cache to WANObjectCache
 * - Convert wfGenerateThumbnail away from $wgMemc
 * - objectcache: Introduce IExpiringStore for convenient TTL constants
 * - resourceloader: Consistently refer to the framework as ResourceLoader
 * - resourceloader: Remove 'loaderScripts' option from FileModule
 * - LinksUpdate: Keep track of the triggering User
 * - Bump development Monolog version
 * - Typo fix for maintenance/install.php.
 * - Normalize header case for FileBackend operations
 * - Replace local RunningStat with wikimedia/running-stat library
 * - Make WAN cache HOLDOFF_TTL smaller by combining db/snapshot lag
 * - Restore TitleMoveComplete by-reference flags to avoid errors
 * - Update OOjs UI to v0.13.0
 * - set serialize_precision to 17, current PHP default
 * - Avoid "$text must be a string" in Linker::formatLinksInComment
 * - updateSpecialPages: Get rid of dead SpecialPage::getFile code
 * - Styling tweaks for inline interwiki search

Vendor

 * - .0.1
 * - wikimedia/running-stat 1.0.0 → 1.1.0
 * - Monolog: Backport useMicrosecondTimestamps
 * - Bump Monolog to 1.17.2
 * - Add wikimedia/running-stat v1.0.0

CentralAuth

 * - Use new key for User cache in CentralAuthUser

CirrusSearch

 * - Extend output of runSearch.php
 * - Fix unwritable cluster errors
 * - Re-apply "Remove ampersands from onTitleMoveComplete"
 * - Revert "Remove ampersands from onTitleMoveComplete"

Cite

 * - Add isset check before accessing $this->mRefs[$group]

Citoid

 * - Fix remaining uses of now-removed OOUI mixin aliases
 * - Fix two uses of now-removed OOUI mixin aliases

Collection

 * - Use SidebarBeforeOutput hook to avoid breaking the sidebar cache

ConfirmEdit

 * - Add extension.json, empty PHP entry point
 * - Add php code sniffer
 * - Recurse into the sub folders with grunt jshint
 * - Add error message for edit captcha trigger

ContentTranslation

 * - Revert modules/dashboard/images/cx-circle.svg to working version
 * - Optimize SVG files in modules/dashboard
 * - Add a link to the experimental recommend tool
 * - Show a different message for adding a missing link from the page selector
 * - In the page selector, focus on the target title if the source title is prefilled
 * - Suggestions: Do not show the list heading for fallback suggestions ("Featured")
 * - Suggestions: Show list headings as part of list
 * - Fix the behavior of be-tarask and nb in gray interlanguage links
 * - Suggestions: Public task lists based on category and their paging
 * - Fix fatal due to undefined $db, broken since last refactoring

DonationInterface

 * - Log reasons for redirects to fail/ty pages
 * - refresh page on configurable token expiry

Echo

 * - Migrate LocalCache from MapCacheLRU to HashBagOStuff
 * - LocalCache: Fix bad type hint of getTargets
 * - Allow notifications to not have a primary link
 * - IDatabase::delete does not take a fourth parameter
 * - Move some boilerplate code into EchoEventFormatter
 * - Re-enable presentation model for mentions
 * - build: Enable phpcs rule 'MediaWiki.VariableAnalysis.UnusedGlobalVariables' and make pass
 * - build: Enable phpcs rule 'MediaWiki.WhiteSpace.SpaceAfterControlStructure.Incorrect' and make pass
 * - build: Enable phpcs rule 'Squiz.Classes.ValidClassName.NotCamelCaps' and make pass
 * - build: Enable phpcs rule 'MediaWiki.NamingConventions.PrefixedGlobalFunctions.wfPrefix' and make pass
 * - build: Enable phpcs rule 'PSR2.Classes.PropertyDeclaration.VarUsed' and make pass
 * - build: Enable phpcs rule 'PSR2.Classes.PropertyDeclaration.ScopeMissing' and make pass
 * - build: Enable phpcs rule 'PSR2.Methods.MethodDeclaration.StaticBeforeVisibility' and make pass
 * - build: Enable phpcs rule 'PSR2.Methods.MethodDeclaration.AbstractAfterVisibility' and make pass
 * - build: Enable phpcs rule 'MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment' and make pass
 * - build: Enable phpcs rule 'MediaWiki.Usage.DirUsage.FunctionFound' and make pass
 * - build: Enable phpcs rule 'Generic.PHP.ForbiddenFunctions.FoundWithAlternative' and make pass
 * - build: Enable phpcs rule 'Generic.Functions.FunctionCallArgumentSpacing.SpaceBeforeComma' and make pass
 * - build: Enable phpcs rule 'Squiz.WhiteSpace.LanguageConstructSpacing.Incorrect' and make pass
 * - Run phpcs through "composer test", disabling failing rules
 * - Document that text from getSecondaryLinks isn't escaped
 * - Fix @return doc on EchoEventPresentationModel::getPrimaryLink
 * - API: Remove no-op wfProfile(In|Out) calls
 * - Allow presentation models to indicate a notification can't be formatted
 * - Comment out presentation model for mentions since it fatals on deleted pages
 * - Fix page-linked notifications

EducationProgram

 * - Add `getTiming` for compatibility with IContextSource
 * - Avoid calling User::setPassword on users not in database
 * - build: Configure banana-checker and jsonlint

Flow

 * - Simplify RevisionActionPermissions::isAllowedAny a little
 * - Fix how events are handled to make them work on board re-sort.
 * - Organize flow-initialize and add an Initializer object
 * - Revert "Clean up captcha form and remove to stylesheet"
 * - Revert "Follow-up 65cc2f6c1d:"
 * - Fix non-deterministic behavior in FeatureIndex
 * - Get captcha text in user language
 * - Follow-up 65cc2f6c1d:
 * - Clean up captcha form and remove to stylesheet
 * - Pull out isModeratedChange to check if something is a moderation action
 * - Centralize tree cache keys creation in TreeCacheKey::build
 * - Include namespace in exception message when Title can't be created
 * - Update for breaking change for mixins in OOUI
 * - Browser tests: Actions on suppressed topics not in board history anymore
 * - Do not attempt to fall back to PHP parser

GWToolset

 * - build: Configure banana-checker and jsonlint

Gadgets

 * - Remove default gadgets from Special:GadgetUsage

Graph

 * - Fix TableWidget row delete button styles
 * - Update for breaking change for mixins in OOUI

MassMessage

 * - Upgrade MediaWiki-Codesniffer to 0.4.0

MobileFrontend

 * - Fix the commons category feature
 * - Minerva: Use addMeta and addLink instead of addHeadItem
 * - Fix changing the license message key via the "MobileLicenseLink" hook
 * - Don't set target=mobile on blacklisted pages
 * - Update grunt-banana-checker to 0.4.0
 * - Wikidata descriptions should only be displayed in beta
 * - Hygiene: Remove SkinMinervaBeta functions
 * - Update grunt-jscs to 2.2.0
 * - Add grunt-jsonlint package
 * - Update for breaking change for mixins in OOUI
 * - Introduce SchemaMobileWebSectionUsage

MultimediaViewer

 * - Improve the spelling of multimediaviewer-errorreport-privacywarning

PageImages

 * - Use mExtensionData instead of undeclared class property

PageTriage

 * - Use startAtomic/endAtomic to avoid breaking transactions

PdfHandler

 * - Add type hint to getPageText
 * - Add type hint to getPageDimensions

RelatedArticles

 * - Tweak readMore.minerva to reflect upstream changes
 * - mw.config.get doesn't work that way.

Scribunto

 * - When logging perf stats, include wfWikiId in metric key
 * - Make the percentile threshold for slow function stats configurable
 * - Scribunto_LuaSandboxEngine::getResourceUsage: call load
 * - Move getResourceUsage to Scribunto_LuaSandboxEngine
 * - Keep stats on slow function calls
 * - Add ScribuntoEngineBase::getResourceUsage

SemanticForms

 * - Fix for generated templates when field is nonempty & has namespace
 * - Removed unnecessary inclusion of SF CSS in helper pages

TemplateData

 * - Specify MediaWiki version requirement in extension.json

Thanks

 * - Convert Echo notifications to the new system

TimedMediaHandler

 * - Convert ext.tmh.transcodetable to OOjs UI

Translate

 * - Add status property to each message class in pagemode.
 * - Do not hide if the descendants of the trigger is clicked.
 * - Avoid calling User::setPassword on users not in database

UploadWizard

 * - mw.FormDataTransport: Get progress notifications for the whole file
 * - Actually display a link to existing file with the same name
 * - Remove dead code dealing with 'unknown' language
 * - Remove unused config options
 * - mw.UploadWizardDeed: Do not assume that deed is always set
 * - mw.UploadWizardDetails: We must call every valid function
 * - Get rid of pubsub once and for all
 * - Remove unused method mw.UploadWizardUploadInterface.prototype.setPreview
 * - build: Updating development dependencies
 * - Fix CodeSniffer 'MediaWiki.ControlStructures.IfElseStructure.SpaceBeforeElse' warnings

VisualEditor

 * - Don't allow keeping changes when switching from wikitext *section* editing
 * - Apply same hide/show logic to both education popup dots
 * - Unbreak 404 handling code
 * - Target init: Add edit mode switch icons to VE and WE toolbars
 * - Source icon: Use double brakcets
 * - Set wgAction when messing with the action URL parameter
 * - Fix check for loading from modified action=edit
 * - Use mw.loader.using instead of weird hacks to load OOjs UI on action=edit
 * - VESwitchConfirmDialog: Set pending on the correct button
 * - VESwitchConfirmDialog: Use modes to hide 'keep' button
 * - Unbreak loading of VE in the read page
 * - CommandHelpDialog: Move insertions into a separate group
 * - CommandHelpDialog: Use new method for getting access key prefix
 * - Update VE core submodule to master (062cb26)
 * - Dialog for switching between wikitext and visual editing
 * - MWSaveDialog: Fix styling of border radii
 * - MWEducationPopupTool: Changes to the dot
 * - [PULL THROUGH] Remove resize detection now that TextInputWidget implements it
 * - Allow switching from wikitext to VE
 * - [BrowserTest] Select English when LANGUAGE_SCREENSHOT_CODE environment variable is not set
 * - Add mediawiki-specific sequences to the command help dialog
 * - AceEditorWidget: Preserve selection on setValue
 * - Register the preference to hide education popups
 * - Make new error element
 * - AUTHORS: Update for October 2015
 * - Make jsonlint ignore more node_modules
 * - MediaSearch: Order search results correctly
 * - Update VE core submodule to master (ec09198)
 * - ve.ui.MWMediaDialog: Wait for upload booklet to initialize when setting up
 * - AceEditorWidget: Make setters chainable and support invalid flag

WikimediaEvents

 * - Bump schema.Search version with null edit
 * - Further cleanup of ext.wikimediaEvents.search.js
 * - Update schema version number to bust varnish cache

WikimediaMessages

 * - Add "please-translate" message
 * - Custom privacypage message for labs to point to correct policies

Vector

 * - Viewport dependant sizing of the search field