MediaWiki 1.26/wmf24/Changelog

Core changes

 * - Moved LinksDeletionUpdate to a separate file
 * - Add the performer to the UserRightsChanged hook
 * - mediawiki.Upload: Return same data for upload &amp; stashed upload
 * - Set visibility of monolog tests setUp method to protected
 * - Also check Kafka class exists in KafkaHandlerTest
 * - Fix typo in KafkaHandlerTest
 * - Fix missing dependencies needed for tests.
 * - Follow-up 5cd0a43e5: Add SelectFileWidget's i18n to ResourcesOOUI
 * - Fix typo in AvroFormatterTest
 * - By default have Main page text on Main page tab
 * - jobqueue: A few small code cleanups to RefreshLinksJob
 * - Removed DeferredUpdates::addHTMLCacheUpdate
 * - Reduced the DOS potential of 404 page floods
 * - Removed deprecated $wgDeferredUpdateList
 * - Set getFeatures for MemoryFileBackend
 * - Produce monolog messages through kafka+avro
 * - Cleaned up $asyncWrites member variable in MultiWriteBagOStuff
 * - MultiWriteBagOStuff: require nonempty 'caches' param
 * - Added read affinity tests for FileBackendMultiWrite
 * - registration: Allow extensions to specify which MW core versions they require
 * - Refactor changeTypes in RecentChange
 * - Add i18n messages for ApiStashEdit
 * - Add tests for RecentChange::parse(To|From)RCType
 * - Add test for RecentChange::newFromRow
 * - Add test for RecentChange::isInRCLifespan
 * - Use setUp instead of __construct in RecentChangeTest
 * - Cleanup RecentChangeTest, move things out that don't belong
 * - Update UploadWizard-specific messages
 * - Prevent IDEA error in doOperationsInternal
 * - Removed unused LockManager var
 * - Added readAffinity flag to FileBackendMultiWrite
 * - Update documentation for EmailUser hooks
 * - Fix hook documentation for ArticleRevisionVisibilitySet
 * - Made some FileBackendMultiWrite docs more accurate
 * - Strip comments before gathering url(...) refs in CSS
 * - Fixed small IDE error in syncFileBackend.php
 * - Add localized &quot;Project&quot; namespace alias for Northern Luri
 * - DatabaseBase::deadlockLoop: Remove unused variables
 * - Support async writes to secondary MultiWriteBagOStuff stores
 * - Removed old &quot;noPush&quot; config hacks from FileBackendMultiWrite
 * - ResourceLoaderModule: cache file content hash
 * - resourceloader: Use MD4 to compute file hash rather than SHA1
 * - Do not double load gallery styles now cache has expired
 * - resourceloader: Run ResourceLoaderRegisterModules after wgResourceModules
 * - Update at-ease to v1.1.0, and OOjs UI to v0.12.8-atease
 * - Cleaned up getScopedFileLocks return value
 * - Fix another test broken by I826adf9
 * - Fix test broken by I826adf9
 * - Replace leafo/lessphp with oyejorge/less.php
 * - Add missing semicolon to mediawiki.filewarning.less
 * - SpecialChangeEmail: error if old email was entered in new email field
 * - Add new authentication-related hooks (and remove one) replacing some AuthPlugin methods
 * - Use User::equals where applicable in the class
 * - Database: Remove unused errorCount method
 * - Load the module mediawiki.page.watch.ajax only when needed
 * - Avoid unneeded memcached queries in showPatrolFooter
 * - Guard &quot;NotPatrollablePage&quot; negative caching against slave lag
 * - Small cleanups to WANObjectCache
 * - registration: Fix merging of array_plus
 * - API: Finish killing &quot;raw mode&quot;
 * - Browser test: avoid loading elements over network
 * - Drop zh-tw message &quot;saveprefs&quot;
 * - Fixed &quot;last modified&quot; date fudging on null edit
 * - Make feedlink icon visible by setting a size
 * - Explicitly float local search results left so they come first
 * - HttpError: Convert line breaks in text message to &lt;br&gt;
 * - Purge remaining oversight references from code
 * - Add line breaks between label and value in &quot;Username&quot; and &quot;Password&quot;
 * - Remove dead local var in MssqlInstaller
 * - mw.widgets.CalendarWidget: Simplify the logic for deciding animations
 * - mw.widgets.DateInputWidget: Ensure newly opened calendar shows current selection
 * - Avoid master queries on image history view
 * - Fixes for RedisBagOStuff when using twemproxy
 * - Moved some WANObjectCache number literals to constants
 * - Remove dead argument in EncryptedPassword.php
 * - FauxRequest: Avoid header leak
 * - Remove dead argument in SpecialEditTags
 * - Remove commented out code in SpecialExport
 * - Extend Title check in Skin for titles without associated titles
 * - resourceloader: Add missing argument to makeLoaderImplementScript
 * - Remove dead local vars in ApiRevisionDelete
 * - Add missing argument to dieDebug call so it does not die
 * - Add '@since 1.25' annotation to wfLoad* functions
 * - mediawiki.Title: Correct documentation
 * - Make MWExceptionHandler work with PHP7's exception changes
 * - When aborting EnhancedRC block line, block should reflect that
 * - Revert &quot;When aborting EnhancedRC block line, block should reflect that&quot;
 * - mediawiki.Title: Remove fileExtension option from newFromFileName
 * - resourceloader: Don't localise hidden exception
 * - ResourcesTest: Detect missing files in url(...) expressions
 * - resourceloader: Support absolute-path references in mw.loader.load
 * - resourceloader: Don't call wfExpandUrl on load.php urls
 * - Remove unused private methods in FauxRequest
 * - Remove WMF deployment hack for .feedlink from mediawiki.legacy.shared
 * - Allow Linker::formatComment to link to another wiki per default.
 * - resourceloader: Log load.php exceptions to JavaScript console
 * - Fix use of preg_match_all in MagicWord.php
 * - Move prefsection style to mediawiki.special.preferences.css
 * - Use CSS columns instead of tables in Special:SpecialPages (2)
 * - Update test documentation, fix broken links
 * - SpecialMovepage: Convert form to use OOUI controls
 * - Move query rewriting into search backend
 * - jquery.byteLimit: Trigger 'change' event after limitting

Vendor

 * - Update at-ease to v1.1.0, and OOjs UI to v0.12.8-atease

Babel

 * - Remove configuration options for the cdb files

BetaFeatures

 * - Defer the User::saveSettings call in getPreferences

CentralAuth

 * - Don't query for oldname if none was provided in SpecialLogAddLogSearchRelations hook
 * - Use 'centralauth-state-mismatch' message in adminLock and adminUnlock
 * - Modify &lt;globalrenamerequest&gt;
 * - Updated watir-webdriver Ruby gem to the latest version

Citoid

 * - Inspector: Use upstream padding settings
 * - Use indexLayout for tab menu
 * - Fix class name typo
 * - build: Update linting tools and make pass

Collection

 * - Fix undefined indicies in Collection.suggest.php

ContentTranslation

 * - Do not call cxserver to display gray interwiki link
 * - API: Support limit and offset params for suggestion and translation queries
 * - Defer the user update in enableCXBetaFeature
 * - Update labels and headings on CXStats
 * - Add missing ApiHelp descriptions
 * - Don't localize the namespace unnecessarily
 * - Add missing ApiHelp messages
 * - Remove the default value from an ApiHelp message
 * - Remove styles duplicated between dictionary.less and manager.less
 * - Prevent NaN in the trend in CXStats
 * - Prettify language selectors when it overflows
 * - Prevent creation of unadapted link in target
 * - Fix background color of the small arrow when hovering item
 * - Rename two createLink methods to disambiguate
 * - Fix internal API error when suggestion requested for empty language pair
 * - Revert &quot;Do not call cxserver to display gray interwiki link&quot;
 * - Optimize link_lightgray.svg
 * - Fix the PNG image path for list modules
 * - Do not show missing target link card when clicking red link on source
 * - Ensure $titles is defined even when $suggestions is empty
 * - Updated watir-webdriver Ruby gem to the latest version
 * - Use correct domain languages when adding a link to Magnus tool
 * - Padding adjustment for the dashboard filter buttons
 * - Update the data for the categories test

DonationInterface

 * - Only send IsVerified if !ESOP
 * - Amazon: Set txn id on $this-&gt;transaction_response
 * - Handle errors thrown by Amazon SDK
 * - worldpay iframe styles
 * - handle return result and maybe show fail page
 * - Log all Amazon SDK calls
 * - Minor Amazon formatting cleanup
 * - add name and email to required fields for WP
 * - Stylesheet for Worldpay.
 * - selection weight = 0 for worldpay iframe
 * - Case IsHosted parameter for ESOP only.
 * - Bring Amazon branch back to normal Mustache templates
 * - Comment out old WP API for now.
 * - Worldpay resultswitcher
 * - Don't submit an Amazon payment with invalid amount
 * - worldpay ESOP
 * - Handle results of Amazon API calls
 * - de-centralize mustache js
 * - optional address fields for mustache
 * - Allow callables in GatewayAdapter::$error_map
 * - Move Amazon test responses into their own files
 * - Quit validating that order_id is numeric
 * - Add amount and currency to Amazon API post
 * - Amazon code cleanup
 * - Authorize and capture Amazon payment
 * - Clean up a bit of Amazon javascript
 * - Use modern hook registration for Amazon
 * - Move Amazon Widget script and return URL into account
 * - Add Amazon API endpoint
 * - Add pay with Amazon SDK composer package
 * - Add Amazon wallet widget
 * - Redirect to Amazon for login
 * - Switch Amazon to Mustache form, add modules
 * - Clear out old Amazon code to prepare for PwA

Echo

 * - Add an emailuser web notification
 * - Remove talk page notification bar if all messages are read
 * - IP addresses should link to Special:Contributions instead of user page for revert
 * - Replace entire &lt;li&gt; element to produce button and popup separately
 * - Update the API when a single notification is marked as read
 * - Correct unseen animation in notifications
 * - Add a missing dot in the new api error message in English.
 * - Fix a code comment to make it much clearer
 * - Show a default message if no notifications are available
 * - Make the footer links readable in Modern
 * - Handle API fetching errors
 * - Updated watir-webdriver Ruby gem to the latest version
 * - Split up ext.echo.nojs into badge and notifications styles
 * - Don't depend upon ext.echo.logger in ext.echo.init
 * - Measure how likely users open flyout if they have unseen notifications
 * - Adjust margins for the notification badge in MonoBook
 * - Split out .mw-echo-alert styles back into a separate module
 * - Only load ext.echo.ui if the user clicks the echo badge
 * - Also defer the markRead master updates
 * - Don't show orange alert if you are viewing your user talk page
 * - Don't load unused Echo JS/CSS on mobile
 * - Hack around OOUI's icon pack being too large by creating our own
 * - Use math to compute badge padding in nojs
 * - Don't load oojs-ui.styles on every page
 * - Only load nojs Special:Notifications styles on the special page
 * - Wrap notifications with a link for native click behavior
 * - Link directly to notification preferences in flyout
 * - Let action buttons center align
 * - Avoid flashes: late debounce causes annoying flashes
 * - Use localized numbers in the badge
 * - Make links non-white in the notification popup in Modern
 * - Defer the &quot;seen time&quot; updates on GET requests
 * - Fix vertical alignment of 'Mark all as read' button
 * - Add constructed class and messages names in comment for greppability
 * - Don't clear notifications when refetching
 * - Restyle buttons to be fully clickable
 * - Remove unnecessary calc from css
 * - Override padding for links in personal tools in Modern skin
 * - Only use inverted icons for skins using the MediaWiki OOUI theme
 * - Align popup footer buttons to take 50% width each
 * - Add mediawiki.jqueryMsg dependency
 * - Only show 'mark all as read' AFTER there are notifications
 * - Reduce distance between notification badges
 * - Use #pt-notifications-alert to get Special:Notifications link
 * - Add a tooltip to the notification badges
 * - Show unread notifications first in the popup
 * - The return of the 'mark all as read' button
 * - chmod 644 for php files
 * - Only send api request if the popup is opening
 * - Align notification badge higher on the personal navigation bar
 * - Fix the badge icon update
 * - Specify firstHeading rule for .mw-special-Notifications only
 * - Restore echo.alert styles
 * - Move edit-user-talk to messages
 * - Use the correct cache key when storing 'hasMessages'
 * - Create an 'initiallyUnseen' class for initially unseen notifications
 * - Don't wait for the API to update seen status of notifications
 * - Add a border between the popup head and notification list
 * - build: Bump grunt-contrib-jshint from 0.11.2 to 0.11.3 to fix upstream issue
 * - Separate 'seen time' for alerts and messages
 * - Correct 'primaryLink' to 'primaryUrl' everywhere
 * - Use db-replicated objectcache for storing last seen time
 * - Split alerts and messages in Echo
 * - Require a Language object in DiscussionParser::getTextSnippet
 * - Expose the revid of the event revision in the API

EventLogging

 * - server: Use HTTPS for meta.wikimedia.org in devserver example

FlaggedRevs

 * - Removed $wgDeferredUpdateList mentioning
 * - Avoid calling addHTMLCacheUpdate

Flow

 * - Revert &quot;Add debug info to OptInController&quot;
 * - Add debug info to OptInController
 * - Don't use getContent in optIn
 * - Browser tests: Wait for preloaded text to be populated in VE
 * - Fix FlowFixLinks to use ref_src_wiki and require migration be complete
 * - Defer the User::saveSettings call in TopicListBlock
 * - Assume wgUser when no ParserOptions are given
 * - Fix LESS syntax error
 * - Browser tests: remove redundant assertion
 * - Use localized version of LQT magic word
 * - Instantiate the Optin controller only when needed
 * - Preload new topic
 * - Show real output instead of placeholder HTML
 * - build: Enable jscs rule 'requireSpacesInsideBrackets' and make pass
 * - Read board content from master db
 * - Use the currect user when checking whether there was a board before
 * - Remove obsolete comment. This is no longer the last one.
 * - Update Title &amp; LinkCache article ids right after move
 * - Make sure $title object has the correct article id
 * - Make it seem like new workflow creation has no page
 * - Clear LinkCache when failing to fetch Flow board

Gather

 * - Get rid of deprecated module warnings
 * - Fixed Metrics/LineLength RuboCop offense
 * - Fixed Style/AlignParameters RuboCop offense
 * - Fixed Style/HashSyntax RuboCop offense
 * - Fixed Style/IndentationWidth RuboCop offense
 * - Fixed Style/RegexpLiteral RuboCop offense
 * - Fixed Style/SpaceAfterColon RuboCop offense
 * - Fixed Style/SpaceAroundOperator RuboCop offense
 * - Fixed Style/SpaceInsideParens RuboCop offense

GeoData

 * - Remove use of no longer existing $wgUseDumbLinkUpdate variable
 * - Move updateIndexGranularity into maintenance subdirectory

GettingStarted

 * - Remove !ie hacks

Graph

 * - VisualEditor: Only draw focus box around canvas, instead of full width
 * - Remove CSS hacks
 * - Fixed tracking category incomplete commit
 * - Add CSSLint
 * - Update grunt-banana-checker
 * - Update JSCS and pass

GuidedTour

 * - Make LESS compatible with oyejorge/less.php

Math

 * - Fixed Style/StringLiterals RuboCop offense
 * - Fixed Style/SpaceInsideHashLiteralBraces RuboCop offense
 * - Fixed Style/SpaceAroundOperators RuboCop offense
 * - Updated RuboCop to the latest version
 * - Upgrade browser tests to use mediawiki_selenium 1.x
 * - Add composer.json and php lint
 * - Fix old class name
 * - Remove redundant size property
 * - VisualEditor: Remove MathJax support
 * - Rename modules/VisualEditor to modules/ve-math

MobileFrontend

 * - Fix module deprecation warning in WatchListGateway
 * - Hygiene: WatchlistApi -&gt; WatchlistGateway
 * - Do not apply max-width to notifications overlay
 * - Don't double load gallery css
 * - Get rid of deprecated module warnings
 * - Make Categories overlay work again
 * - Goodbye yellow brick alpha
 * - Hygiene: Cleanup cached page FiXMES
 * - Tweaking WikidataPageBanner compatibility
 * - Hygiene: NearbyApi and PhotoListApi should be gateways
 * - Tooling: No need to run `bundle install` to make documentation
 * - Rename modules in resources
 * - Hide the back button label
 * - Remove obsolete CSS rules and files
 * - Promote max-width styles from beta to stable
 * - Fix this/self confusion in callback in SearchApi
 * - Revert &quot;Don't show close icon when max-width applying&quot;
 * - Hygiene: jscs follow up
 * - Revert &quot;Revert &quot;Migrate from SchemaMobileWebEditing to SchemaEdit&quot;&quot;
 * - Fix ResourceLoader module dependency issues
 * - Hygiene: Fix a jscs issue

MultimediaViewer

 * - Fix IE9 CSS hack

NavigationTiming

 * - Measure non-compliant Navigation Timing browsers
 * - Set mediaWikiLoadEnd directly in resourceloader.loadEnd
 * - Small clean-ups

ParsoidBatchAPI

 * - Normalize filenames in imageinfo

Score

 * - Add attribute-setting support to score inspector

SemanticForms

 * - Version 3.4
 * - Added check for null $title to getDefaultForm

SyntaxHighlight_GeSHi

 * - build: Update CSSLint from 0.4.0 to 0.5.0
 * - build: Update grunt-banana-checker from 0.2.0 to 0.3.0 and make pass
 * - build: Update JSCS from 1.8.0 to 2.1.0 and make pass
 * - Rename modules/VisualEditor to modules/ve-syntaxhighlight
 * - VisualEditor integration: Fix handling of (None) language

Thanks

 * - Permission file problem.
 * - Remove unused key &quot;notification-link-text-respond-to-user&quot;

TimedMediaHandler

 * - Remove reference to non-existent file in CSS
 * - Update ogv.js to 1.0 offical stable release

Translate

 * - Defer the ApiTranslateUser::trackGroup saveSettings call
 * - Updated watir-webdriver Ruby gem to the latest version

UniversalLanguageSelector

 * - Update grunt-contrib-jshint to 0.11.3
 * - Add jshint to npm

UploadWizard

 * - Use OOUI dialogs instead of jquery.ui
 * - Actually pass the blacklist page title and header text to mw.Feedback
 * - Consistently use NS_CATEGORY / NS_FILE for namespace numbers
 * - Remove some dead code related to jQuery UI buttons
 * - Remove lightbox image preview dialogs
 * - Remove unused mw.UploadWizardDeedPreview class
 * - Remove unused mw.UploadWizardDeleteDialog class
 * - Display duplicates inline rather than in a popup
 * - Do not redefine canonical English namespace aliases
 * - uw.ui.Details: Remove some dead code
 * - Remove prefixed border-radius properties from CSS
 * - Remove unused 'mw-coolcats' messages
 * - Add missing 'mwe-upwiz-calendar-date' message to module definition
 * - Remove legacy JSHint options

VisualEditor

 * - DesktopArticleTarget: Fix page title (first H1) font size in Vector
 * - Zero-width space to avoid empty annotation cursoring bug
 * - Update VE core submodule to master (171fe11)
 * - Allow pressing 'escape' from all pages of save dialog
 * - Make save dialog variable height
 * - Update VE core submodule to master (8012620)
 * - Skin specific fixes for external link cartouches
 * - MWReferenceResultWidget: Remove border from last item
 * - Make gallery icon slightly lighter and smaller by thinning borders
 * - Load mwgallery on mobile as well
 * - build: Update CSSLint from 0.4.0 to 0.5.0
 * - Actually get uploader details when querying media info
 * - Template placeholder: Don't show delete button if we're the only transclusion part
 * - MWInternalLinkAnnotation: Make protocol matching case-insensitive
 * - MWWelcomeDialog: .html, not .text, as we're inserting HTML
 * - MW*LinkAnnotation: Fix class names
 * - Update VE core submodule to master (5018704)
 * - MWWelcomeDialog: Split text, tweak styling
 * - Update VE core submodule to master (9dcfbdb)
 * - Server-side replace Edit=&gt;Edit Source on talk NS
 * - MWWelcomeDialog: Switch out graphic for new one

WikiLove

 * - Fixed Style/StringLiterals RuboCop offense
 * - Updated RuboCop to the latest released version

WikidataPageBanner

 * - Mark blacklistSkins propery as being protected
 * - Use Config object instead of globals
 * - Overriding the heading should be configurable
 * - Do not add banner inside #bodyContent

WikimediaEvents

 * - statsd: Don't allow indefinite post-poning of dispatch
 * - Add support for statsd gauge metrics

wikihiero

 * - VisualEditor: Make icon slight bolder for consistency
 * - build: Add grunt-banana-checker
 * - README: Move history out into its own file
 * - build: Add grunt linting tasks via npm