MediaWiki 1.28/wmf.4/Changelog

Core changes

 * - Update extensions/CentralNotice submodule
 * - Revert "Update CentralNotice submodule"
 * - Fix Special:PrefixIndex paging links
 * - LinkBatch: Cast array keys to string when constructing TitleValue
 * - Update VE-MW submodule to wmf/1.28.0-wmf.4 HEAD (78f8120)
 * - Avoid passing integers to mw.RegExp.escape
 * - Reset all tokens on login
 * - Fix encryption code in Session
 * - AuthManager fixups around the login→RESTART→create flow
 * - pngcrush -brute -reduce on mediawiki.skinning
 * - Return error message in users API cancreate field
 * - Fix rvtoken=rollback in ApiQueryRevisions
 * - mediawiki.debug: Use monospaced font for debug toolbar, really
 * - Add single quotes around monospaced in less
 * - API: Fixes for AuthManager
 * - Fix required field calculation in AuthenticationRequest
 * - Use monospaced font for the debug toolbar
 * - wikimedia/cdb: 1.4.0 => 1.4.1
 * - SpecialUpload: Separate style only module
 * - Typo fix for AuthPluginPrimaryAuthenticationProvider::providerAllowsAuthenticationDataChange
 * - EditPage: Do not resolve redirect on cancel button
 * - SpecialSearch: Use OOUI\ActionFieldLayout for search input and button
 * - LoginSignupSpecialPage: Load return and returnto params as early as possible
 * - Clean up updatedmarker styling mess
 * - Make number of PBKDF2 iterations used for deriving session secret configurable
 * - Update mediawiki/mediawiki-codesniffer to 0.7.2
 * - Improve @covers tags for LinkerTest
 * - WatchedItemStore: Use callable type hint instead of Assert library
 * - SpecialSearch: Remove obsolete styles
 * - OOUI HTMLForm: Allow specifying whether buttons are framed
 * - RollbackAction: Don't return true, causes '1' to be output
 * - Separate Special:Search styling info into separate module
 * - Fix @covers tags for LinkRenderer tests
 * - Avoid system styling issue of s in Firefox+Linux
 * - Revert "RollbackAction: Implement AJAX interface and require POST"
 * - Fix ConfirmLinkSecondaryAuthenticationProvider error message name
 * - Enable AuthManager by default
 * - Sync up with Parsoid parserTests.
 * - Add LinksUpdate::getRevision
 * - Parser: Make makeKnownLinkHolder protected, and remove $query handling
 * - LinkBatch: Use TitleValue instead of Title
 * - Have Linker::getLinkColour accept LinkTarget objects
 * - LinkCache: Don't try looking up NS_SPECIAL
 * - Add tests for Linker::getLinkColour
 * - ChangesList: Use LinkRenderer instead of Linker::link
 * - Parser: Replace Linker::link with LinkRenderer
 * - Send edit stash metrics for cache attempts
 * - Whenever possible, reuse User objects in unit tests
 * - TitleParser: In formatTitle, don't throw exceptions on bad namespaces
 * - Bail out in ApiStashEdit for bots for sanity
 * - Revert "build: Bump grunt-karma and related tools to 1.0.x"
 * - Document thumbinner's block formatting context
 * - Exclude bots from edit stash stats
 * - registration: Add --config-prefix to convertExtensionToRegistration.php
 * - mediawiki.special: Remove unused mediawiki.special.js
 * - mediawiki.special.apisandbox: Use module.exports instead of mw.special
 * - mediawiki.special.recentchanges: Use module.exports instead of mw.special
 * - collation: Remove suppressWarnings for getSortKey
 * - Follow-up 276c30e: Use the correct hex for the green we want
 * - Special:UserLogin: Consolidate create account buttons
 * - Use HTMLForm style sheets on mobile
 * - Change button text for *Credentials special pages
 * - LinkRenderer: Re-implement noclasses as makePreloadedLink function
 * - resourceloader: Merge 'user.groups' into 'user' module
 * - Avoid DBPerformance warnings on PURGE/TRACE requests
 * - Revert "Thumbnails: allow overflow inside thumbnails"
 * - Restore Userlogin error/warning URL parameter
 * - Do not use $wgUser in Linker/LinkRenderer when sessions are disabled
 * - Make the call match the function definition.
 * - Use correct module name for stats in executeActionWithErrorHandling
 * - Param &$html for the "LinkBegin" hook needs to be null if $text is null
 * - filerepo: Add missing quote back to LocalFileLockError message
 * - Fix regression: text color in `.mw-search-result-data`
 * - Update es5-shim to v4.5.8
 * - Add support for icu-ta collation
 * - Add LBFactory::closeAll method
 * - Tidy: Add mw-empty-elt class
 * - Update OOjs UI to v0.17.3
 * - Remove explicit tabindex from diff links
 * - Simplify code for updating tooltips with accesskey tips
 * - mw.ForeignStructuredUpload.BookletLayout: Make licensing links clickable again

Vendor

 * - Bump wikimedia/cdb to 1.4.1
 * - Remove orphan PHP 5.6+ static file autoload file
 * - Update OOjs UI to v0.17.3
 * - Update default branch

AbuseFilter

 * - Add explicit GENDER to abusefilter-log-detailedentry-meta
 * - Update for AuthManager
 * - Add extension.json, empty php entry point

AntiSpoof

 * - Use $tablesUsed rather than manually deleting all rows from the 'user' table

CentralAuth

 * - Update for AuthManager
 * - Finish removing the centralauth-autoaccount right
 * - i18n: change "title blacklist" to "TitleBlacklist"
 * - Avoid master queries/writes in listUnattached
 * - Return a master instance from our implementation of AuthPlugin::getUserInstance
 * - Don't blindly create database tables in tests
 * - Update mediawiki_api gem to 1.7.1
 * - gitignore: Add composer.lock

CheckUser

 * - Update CheckUser for MediaWiki 1.27

CirrusSearch

 * - Resolve deprecated method usage
 * - Hack together a line-specific @suppress annotation for phan
 * - Simplify run-phan.sh by using cloudflare/docker-phan
 * - Fix a few problems identified by phan
 * - Drop phrase suggester tests re: laplace smoothing
 * - Properly filter non-core namespaces for interwiki searches
 * - Update Gemfile.lock to match Gemfile
 * - Update mediawiki_api gem to 1.7.1
 * - .7 document missing exception
 * - Update classifyError to comply with new error handling
 * - Fix chinese analyzer name when analysis-smartcn plugin is used
 * - Fix non-static call to extactFullError in ElasticsearchIntermediary
 * - Es2.x changed how exceptions are returned in results
 * - Drop support for common terms query
 * - Remove support for float fuzziness
 * - Remove phrase suggester tests based on term frequencies
 * - Fix OtherIndexes missing $boolQuery var and increase wait time
 * - Add support for max_ngram_clauses
 * - MoreLikeThis percent_terms_to_match -> minimum_should_match
 * - Fix prefix_search_api test to support both prefix search and completion suggester
 * - Fix relevancy_api test with/without boostlinks
 * - Minor optimization of generated query
 * - query_and_fetch removed in 2.x
 * - Collate query is now wrapped with inner
 * - Elastica\Script -> Elastica\Script\Script
 * - Remove support for safeifier
 * - Rename "experimental highlighter" to "experimental-highlighter"
 * - Replace AbstractFilters with AbstractQuerys
 * - replace Filtered query with BoolQuery
 * - ES 2.x removed index_analyzer field
 * - Rename position_offset_gap to position_increment_gap
 * - Change es version requirement to 2.x

Cite

 * - Use commandRegistry from current surface, not target
 * - Use cloneWithData
 * - build: Updating mediawiki/mediawiki-codesniffer to 0.7.2

ConfirmEdit

 * - build: Updating mediawiki/mediawiki-codesniffer to 0.7.2

ContentTranslation

 * - Use getLanguageCodeForWikiDomain in MT tool
 * - Use getLanguageCodeForWikiDomain in interlanguage entrypoint
 * - Introduce getLanguageCodeForWikiDomain to SiteMapper
 * - Never allow unsupported source or target languages in the page selector
 * - build: Updating mediawiki/mediawiki-codesniffer to 0.7.2
 * - Update mediawiki_api gem to 1.7.1
 * - Use mw.uls.addPreviousLanguage
 * - Use csrf token instead of edit token to avoid deprecation warnings

DonationInterface

 * - Comment and DRY for functions filter
 * - Rename hook functions
 * - Quit flooding antifraud queue
 * - Make locale staging generic
 * - PayPal Express Checkout: support locale well enough to get ja_JP
 * - Fire IP velocity filter early
 * - Adyen: fill & hide cc name field for all but Hebrew
 * - Add order ID to pending queue messages
 * - Persist risk score array in session
 * - Add GatewayInitialFilter hook
 * - remove query string from referrer
 * - Undo l10n adding blank values, breaking tests

Echo

 * - Fix notification pager
 * - Adjust styling for Special:Notification items
 * - Styling changes to Special:Notifications headers and toolbar
 * - Make the notifications list the pending element
 * - Display error message on API failure or empty result
 * - Fix JS error when API request fails
 * - Don't fetch duplication notifications
 * - Stop outputting $nextContinue in Special:Notifications
 * - Filter notifications by read state in Special:Notifications
 * - Initial version of Special:Notifications Javascript page
 * - Use native MediaWiki linking to help pages
 * - Avoid calc in CSS
 * - Rip general cross-wiki API request helpers out of ApiEchoNotifications
 * - Remove technical error from echo-api-failure
 * - Adjust styling for "Mark group as read"
 * - Update for AuthManager
 * - Generalize the SubGroupListWidget
 * - Allow for overriding parameters in fetch notifications API request
 * - Update mediawiki_api gem to 1.7.1
 * - Set doesWrites for SpecialNotificationsMarkRead
 * - Use Revision::RAW when checking whether the author of a revision mentioned themselves
 * - Track why mentions didn't happen
 * - Pagination on no-js Special:Notifications
 * - Add diff link to page-linked notification

EducationProgram

 * - Don't abuse Parser::makeKnownLinkHolder

Elastica

 * - Fix license header

EventBus

 * - Replace wfUrlEncode with rawurlencode
 * - build: Updating mediawiki/mediawiki-codesniffer to 0.7.2
 * - Revision event URIs
 * - Add EventRelayer adapter

FlaggedRevs

 * - Do not resolve redirects on reject
 * - Don't use $wgContentNamespaces directly
 * - Avoid master queries on HTTP GET in getVisibilitySettingsFromRow

Flow

 * - HACK: Hide reply form for locked topics
 * - Fix debug bar encapsulation
 * - Fix layout on setSurface instead of attachToolbar
 * - Update mediawiki_api gem to 1.7.1
 * - Stop trying to log to schema.Undefined
 * - Refactor BoardMover so there is one transaction for all undeleted revs
 * - When a topic is resolved/reopened, notify topic watchers, not board watchers
 * - Don't assume workflows/revisions are inserted in chronological order
 * - Introduce stylelint and make a pass

GWToolset

 * - build: Updating mediawiki/mediawiki-codesniffer to 0.7.2

GeoData

 * - Don't index non-Earth coordinates

GlobalBlocking

 * - fixGlobalBlockWhitelist: Don't fatal if there are no whitelist entries

JsonConfig

 * - Added caching and removed obsolete jsontext param

Kartographer

 * - Revert "Flip controls when the page is partially in RTL"
 * - Flip controls when the page is partially in RTL

LocalisationUpdate

 * - build: Updating mediawiki/mediawiki-codesniffer to 0.7.2

MassMessage

 * - build: Updating mediawiki/mediawiki-codesniffer to 0.7.2

Math

 * - Use img instead of meta tags for SVGs
 * - Fix iterator in batchGetMathML
 * - build: Updating mediawiki/mediawiki-codesniffer to 0.7.2
 * - Load math styles with VE
 * - Follow-up 3f456b1: Fix typo in function call
 * - Update Gemfile.lock to match Gemfile

MobileFrontend

 * - Remove the `mobile.buttonWithSpinner` module
 * - Beta: Submit the search form when the 'enter' key is hit
 * - build: Updating mediawiki/mediawiki-codesniffer to 0.7.2
 * - Remove the 'is_js_only' attribute from page actions links HTML
 * - Hygiene: Move page issues initialisation code to skins.minerva.scripts
 * - Hygiene: Pass Router instance to SearchOverlay
 * - Hygiene: EditorOverlays take OverlayManager parameter
 * - Wrap heading around actions at tablet widths
 * - Update mediawiki_api gem to 1.7.1
 * - Add a gutter for header to avoid page action overlap
 * - Hygiene: Less variable cleanup
 * - Whitelist rasterized SVG images for srcset density-responsive output
 * - Fix various AuthManager style regressions
 * - Collapse references sections by default
 * - Stylelint: Switch to Wikimedia preset with exceptions
 * - Load images earlier in scroll

MoodBar

 * - Update MoodBar for AuthManager

MultimediaViewer

 * - Update mediawiki_api gem to 1.7.1

NewUserMessage

 * - Support LocalUserCreated hook

Nuke

 * - build: Updating mediawiki/mediawiki-codesniffer to 0.7.2
 * - Cleanup SpecialNuke::execute
 * - SpecialNuke: Use msg instead of wfMessage

OATHAuth

 * - Update for AuthManager
 * - Add URL encoding to TOTP QR code URL

PageTriage

 * - build: Updating mediawiki/mediawiki-codesniffer to 0.7.2
 * - Use LocalUserCreated hook instead of AddNewAccount

Popups

 * - Replace use of jStorage with mw.storage
 * - Render settings via template
 * - Disable Popups when the Navigation Popups gadget is enabled
 * - Use exchars instead of exsentences for the extract
 * - Send `dwelledButAbandoned` action for links when popups are not enabled
 * - Update mediawiki_api gem to 1.7.1
 * - Fix float on wikis with long settings messages

ProofreadPage

 * - build: Updating mediawiki/mediawiki-codesniffer to 0.7.2
 * - Fixes fail in PHP unit tests runned by CI
 * - Add jsdoc rules to jscs
 * - Introduce stylelint and make a pass

QuickSurveys

 * - build: Updating mediawiki/mediawiki-codesniffer to 0.7.2

RelatedArticles

 * - build: Updating mediawiki/mediawiki-codesniffer to 0.7.2

SandboxLink

 * - build: Updating mediawiki/mediawiki-codesniffer to 0.7.2

Scribunto

 * - Only use mw.ustring when necessary

SemanticForms

 * - Added "display=table" option for templates

Thanks

 * - build: Updating mediawiki/mediawiki-codesniffer to 0.7.2
 * - Use "csrf" tokens instead of "edit" ones

TimedMediaHandler

 * - build: Updating mediawiki/mediawiki-codesniffer to 0.7.2
 * - Allow video.js to overflow thumbinner

TitleBlacklist

 * - ApiQueryTitleBlacklistTest needs to restore globals
 * - Use caching in TitleBlacklist::matches for existing pages

Translate

 * - Cache MessageIndex key values
 * - Fix count of total pages to be deleted for translation pages
 * - Upgrade to elastic 2.x
 * - Update mediawiki_api gem to 1.7.1
 * - Make deletions of translation units more performant
 * - Allow providing edit summary for translations through tux

UniversalLanguageSelector

 * - Update jquery.webfonts to 17e61547
 * - Simplify code using .one
 * - Remove redundant mw.loader.using
 * - build: Updating mediawiki/mediawiki-codesniffer to 0.7.2
 * - Remove styles now in jquery.uls core
 * - Remove cursor: pointer for links.
 * - Update jquery.uls to ab3cd92
 * - Update mediawiki_api gem to 1.7.1
 * - Fix the border of font selectors
 * - Remove useless style rule
 * - Set base font size for ULS dialogs to ensure consistent size
 * - Remove border-radius: no border on this element
 * - Remove excessive 5% left-padding and replace with consistent padding
 * - Remove unnecessary div specification from style rule
 * - Introduce stylelint and make pass
 * - Bump package versions and sort
 * - Remove jquery.uls.compact resource loader module

UploadWizard

 * - build: Updating mediawiki/mediawiki-codesniffer to 0.7.2
 * - build: Bump devDependencies to latest
 * - build: Replace csslint with stylelint

UploadsLink

 * - build: Updating mediawiki/mediawiki-codesniffer to 0.7.2

VisualEditor

 * - Simplify teardown of toolbar save button
 * - ve.init.MWWelcomeDialog: Fix keyboard focus on dialog actions
 * - Un-blacklist Firefox versions 12,13,14
 * - Add fallback selectors if image page has no existing local content
 * - Use cloneWithData
 * - Update VE core submodule to master (a4a5afa)
 * - Fix font size in target widget debug bar
 * - Remove unused namespace class
 * - Fix z-index of surface for debug bar
 * - build: Updating mediawiki/mediawiki-codesniffer to 0.7.2
 * - DesktopArticleTarget.init: Make surface hiding hack work with padding
 * - Track ETag header responses in special event logging schema
 * - Send edit stash metrics for cache attempts
 * - Followup I9280fe4d: Merge main case with default, they are identical
 * - Hooks: Replace AddNewAccount, AuthPluginAutoCreate with LocalUserCreated
 * - Use insertContent with templates when range is collapsed
 * - Follow-up 1dc933be: Don't fatal when editing non-NS0/6/14 pages
 * - Clear save caches when toolbar is re-attached
 * - Append surface & toolbar components in the correct places
 * - Update mediawiki_api gem to 1.7.1
 * - Genericise target initialisation across namespaces

WikiEditor

 * - build: Updating mediawiki/mediawiki-codesniffer to 0.7.2
 * - Avoid flash of content when hiding editHelp and the pipe separator

WikiLove

 * - Update mediawiki_api gem to 1.7.1

WikidataPageBanner

 * - Recurse into sub folders for jshint and jscs

WikimediaEvents

 * - Turn off textcat subtest of search satisfaction
 * - Improve extension.json

WikimediaIncubator

 * - Update WikimediaIncubator for AuthManager
 * - Convert to extension registration

WikimediaMessages

 * - Add i18n messages for new Support and Safety group

ZeroPortal

 * - Switched to JCSingleton::parseContent

Modern

 * - Remove updatedmarker styling override

MonoBook

 * - Remove updatedmarker styling override