MediaWiki 1.28/wmf.12/Changelog

Core changes

 * - Mark Linker::link as @deprecated
 * - Don't magically make MediaWiki\Widget classes infusable
 * - Remove unused deprecated WatchedItem methods
 * - Renamed MWCallableUpdate class file to match the class
 * - Add MWTidy::factory
 * - MediaHandler: Fix @return for getHandler
 * - Convert onTransactionIdle callers to DeferredUpdate subclasses
 * - Remove modulemessages from ApiParse and Output (deprecated in 1.26)
 * - registration: Fix "config" schema validation
 * - Avoid use of DB rollback in LocalFileMoveBatch
 * - Count edit conflicts for each namespace separately
 * - Add addition of 'maxarticlesize' in ApiQuerySiteinfo to RELEASE-NOTES
 * - Make onTransactionPreCommitOrIdle atomic when immediate
 * - objectcache: Add callable doc comments for WANObjectCache
 * - MW_DIFF_VERSION is globally defined, drop MW_ prefix when used as
 * - objectcache: Disable RedisBagOStuff constructor in unit test
 * - syncFileBackend.php: ellapsed => elapsed
 * - Revert "mediawiki.special.userlogin.signup: Remove unnecessary field hiding code"
 * - SectionProfiler: Remove $profileOutCallback
 * - mediawiki.htmlform: Remove deprecated $.fn.liveAndTestAtStart
 * - mediawiki.special.userlogin.signup: Remove unnecessary field hiding code
 * - Minor transaction callback cleanups
 * - Update justinrainbow/json-schema in require-dev to ~1.6
 * - registration: Support config setings that are relative paths
 * - registration: Fix merge_strategy in manifest_version 2
 * - registration: Update conversion script for manifest_version 2
 * - filebackend: Fix DBLockManager IDEA warnings
 * - objectcache: Add "busyValue" option to WANObjectCache::getWithSetCallback
 * - Pingback: Show exactly what data is being sent during the installer
 * - HTMLForm: Allow distinguishing between form views and submission attempts
 * - DifferenceEngine: Move MW_DIFF_VERSION to class constant DIFF_VERSION
 * - Make statsd counts for MWCallableUpdate actually useful
 * - Preprocessor_Hash: use child arrays instead of linked lists
 * - Avoid the use of DB rollback in LocalFileDeleteBatch
 * - Allow 'data-*' attributes in personal tools links
 * - Avoid calling rollback in setVisibility when nothing changed
 * - mediawiki.page.startup: Remove back-compat for MediaWiki 1.25 and earlier
 * - Use current content model for blank page content (not title default)
 * - Add option for sharing info about this MediaWiki install via pingback
 * - OutputPage: Fix blank line between and
 * - Make non-exception rollback calls safer
 * - Improve database endAtomic error messages
 * - WebRequest::getText: Update more of the doc comment
 * - Fix @covers tag in BalancerTest
 * - Add AutoCommitUpdate class and replace some onTransactionIdle callers
 * - Add missing file locks to deleteArchivedFiles.php
 * - Enable additional balancer tests (those starting with `<!DOCTYPE html>`)
 * - Support tags in Balancer.
 * - Support tokenizing simple HTML comments in the Balancer.
 * - Support tags in Balancer.
 * - Support tags in Balancer.
 * - Provide onTransaction* callbacks with the transaction result
 * - Update wikimedia/wrappedstring to v2.2.0
 * - resourceloader: Make createLoaderQuery protected
 * - resourceloader: Remove deprecated ResourceLoader::makeLoaderURL
 * - ProfileStub: Remove getCurrentSection, unused
 * - Add Unicode to ICU mappings for versions 51-57
 * - Update and reformat docs/distributors.txt
 * - objectcache: Fix RESTBagOStuff class doc
 * - Do not collate "ا" and "و" in Persian language for category sort
 * - Add $direct parameter to UserLoginComplete hook
 * - ApiPurge: Do not die on non content pages
 * - Exclude duplicate srcset urls
 * - Fix coverage annotations
 * - SiteConfiguration: Remove isLocalVHost, deprecated since 1.25
 * - Move updateNotificationTimestamp callback to DeferredUpdates
 * - Convert SiteStatsUpdate to using newer addCallableUpdate method
 * - Remove redundant onTransactionIdle call from WikiPage::doPurge
 * - Improvements to RefreshLinksJob/DeleteLinksJob locking
 * - Simplify lock release in LinksDeletionUpdate
 * - Resources: Convert mediawiki.content.json.css to less file
 * - resourceloader: Release saveFileDependencies lock on rollback
 * - HttpFunctions: Move isLocalUrl into MWHttpRequest and make it private
 * - Minor bug fixes to Balancer.
 * - Only store currently-existing categories in the categories table
 * - Do not override content format in EditPage when loading rev.
 * - Make importTextFiles.php work with wildcards on the Windows shell
 * - API: Use rev_user when possible for list=usercontribs
 * - Unbreak the DB updater by removing transaction from doUpdates
 * - Add a test for entity expansion OOM in XmlTypeCheck
 * - Title::getLinkURL: Allow expanding PROTO_RELATIVE too
 * - Session: Improvements to encryption functionality
 * - Apply $wgMaxArticleSize more exactly
 * - Added Range support to FileBackend::streamFile
 * - Allow providing 'notices' for OOUI HTMLForm fields

Vendor

 * - Update wikimedia/wrappedstring to v2.2.0

AbuseFilter

 * - Convert deferred update to using AutoCommitUpdate
 * - AFPUserVisibleException should log in English, not the user's language

CentralAuth

 * - Fix FormatJson capitalization
 * - Do not schedule local account creation jobs until central transaction is committed
 * - Use UserLoginComplete parameter instead of request method for central login

CirrusSearch

 * - Remove optional ns filter optimization
 * - Repair default prefer-recent for wikisource
 * - Refactor forceSearchIndex.php to use iterators
 * - saneitize.php: Only fix against the cluster being checked
 * - Speed up saneitizeJobs.php
 * - Consider retrying a checker job success
 * - Fix incorrect index suffix detection in Sanitizer
 * - Fix Searcher::$searchContext visibility
 * - Pull some distinct functions out of ForceSearchIndex::execute

CiteThisPage

 * - Use BaseTemplateToolbox hook so link appears in the right place

Citoid

 * - Fix reference preview to use a valid document

Collection

 * - Remove mediawiki/mediawiki from require

ContentTranslation

 * - CXSourceSelector: remove unused languagePairs
 * - Cleanup old notification config
 * - Add template mapping for Cite web(en) to Lien web(fr)
 * - Support Cite web to Dyf gwe template adaptation for en->cy
 * - Add fail handlers for link card data fetching
 * - Support ISBN link adaptation
 * - Do not fire mw.cx.source.ready twice

DonationInterface

 * - Put LogPrefixProvider in its own file
 * - Depend on SmashPig; use looser caret versioning
 * - Write all limbo queues to new pending queue
 * - REALLY add order_id to queue messages
 * - Add installer info to composer.json
 * - Disable Adyen JCB
 * - Get rid of a js global

Echo

 * - Paginate even if some events are filtered out
 * - Browser tests: update local url
 * - Adjust mobile view for the new settings cog menu
 * - Special:Notifications (no-js): filter out deleted events
 * - Use body color (gray) for s in bundle headers
 * - Follow-up d47f0bd3: only capitalize the first letter of date titles on Special:Notifications
 * - Add mediawiki.Uri to Special:Notifications dependencies
 * - Hide the 'preferences' link from Special:Notifications JS
 * - Add a down indicator to the cog menu
 * - Convert deferred update to using AtomicSectionUpdate
 * - Check for local unread talk notifications in alert popup too
 * - Change 'pt-notification-message' to 'pt-notification-notice'
 * - Documentation for EventPresentationModel
 * - Exclude deleted events from UnreadNotificationPages API
 * - Add a mark-all-read button and a settings menu to Special:Notifications
 * - Allow requesting TS_ISO_8601 for ApiEchoMarkSeen, and deprecate TS_MW
 * - Add .idea/ folder to gitignore
 * - Add seen time to output of API, in ISO 8601 format
 * - Remove deprecated formatter
 * - Make Special:Notifications responsive
 * - Show placeholder widget when there are no notifications
 * - Use StatsdDataFactory service instead of deprecated RequestContext method
 * - Optimize DiscussionParser.php
 * - Generate notifications: fix rollback session failure
 * - Cleanup old notification formatting system
 * - i18n: Native digits on PageNotificationsOptionWidget and PaginationWidget
 * - Check for empty array before calling max
 * - Followup to I95dc3d70c8: Get rid of job queue entry for email bundling

EventBus

 * - Bug fix: determine correctly if a revision was made by a bot

EventLogging

 * - Use correct string concat operator
 * - Fix mixed leading whitespace
 * - Move efStripKeyRecursive from global scope
 * - Move efStripKeyRecursive from global scope

ExtensionDistributor

 * - Add __METHOD__ to Http::get call

Flow

 * - Follow-up 782bbdf: unbind beforeunload handler on save
 * - Follow-up 782bbdf: don't show "are you sure you want to leave?" dialogs with "false"
 * - Delete 'flow-thank' on moderated topic/post
 * - Italicize post excerpts inside bundles
 * - Show a warning when leaving a page with unsaved text in an editor
 * - Cleanup old notifications config
 * - SECURITY: Fix topic title visibility
 * - Fix deletelogentry
 * - Remove use of deprecated WatchedItem::duplicateEntries
 * - Moderate notifications

GeoCrumbs

 * - Only do automatic breadcrumbs for subpages in content namespaces
 * - Add extension.json, empty PHP entry point
 * - Update breadcrumb properly on preview
 * - Drop CustomData dependency
 * - Clean up return signature of GeoCrumbs::getParserCache
 * - Avoid extra database lookup when comparing titles
 * - Make hook functions static
 * - Remove GeoCrumbsBeforeOutput hook

GlobalCssJs

 * - tests: Remove unused params to ResourceLoader::makeLoaderQuery

Graph

 * - Use opt.addCorsOrigin instead of opt.isApiCall

ImageMetrics

 * - Convert ImageMetrics to extension registration

Insider

 * - Specify license as GPL-2.0
 * - Overhaul extension

MobileFrontend

 * - Remove 'number-leading-zero' blacklist from stylelintrc
 * - Always show Wikidata descriptions in beta mode
 * - [Hygiene] Extend SkinMinerva#isAllowedPageAction
 * - [Hygiene] Test SkinMinerva#isAllowedPageAction
 * - Extract page action creators
 * - Feature flag language button in secondary actions
 * - The README.md is the canonical place for documentation of config vars
 * - Rename overlay close button to avoid OOjs UI overriding
 * - Use named constants to clarify CSS values
 * - Reset distance between search icon and placeholder
 * - Vertically center the search icon
 * - Reset distance between search icon and placeholder
 * - PointerOverlay should be more flexible
 * - Allow both language buttons to be shown at same time
 * - Remove outdated release process information (readme)
 * - Fix Configuration section (duplicated) in README
 * - Properly end all sentences in README
 * - Consistently wrap README at 80 and linkify URLS
 * - Improve formatting and fix markdown errors in README

MultimediaViewer

 * - build: Introduce stylelint and make pass
 * - build: Introduce jshint & jscs and make a pass

OAuth

 * - Fix FormatJson capitalization
 * - Convert deferred update to using AutoCommitUpdate

ORES

 * - Better way to handle errors in Cache.php
 * - Remove trailing space
 * - Drop oresc_rev index in favor of oresc_winner
 * - Let ORES extension score for some namespaces instead of all

PageAssessments

 * - Don't need to return true in a hook anymore

PageTriage

 * - Cleanup old notification config

PagedTiffHandler

 * - docs: Explain the different between formats 1.3 and 1.4
 * - Swap $actual and $expected so that phpunit error messages make sense
 * - Move hooks to class. Move define to class constant
 * - Wrap some long lines
 * - Fix calculations in PagedTiffHandler::getIntermediaryStep

PoolCounter

 * - Split PoolCounter_ConnectionManager into seperate file
 * - Update arrays, calls to deprecated functions

Popups

 * - Use Schema revision 15777589 for logging events

RelatedArticles

 * - Remove 70px margin-bottom in mobile view

RelatedSites

 * - Set license-name and add GPL file header
 * - Convert to use extension.json, remove PHP entry point
 * - Stop using SkinTemplateToolboxEnd hook
 * - Fix extension credits, use HTTPS URL
 * - Drop CustomData dependency

RevisionSlider

 * - Use Title::inNamespace in Hooks
 * - Add support for GENDER to the username label in the tooltip
 * - Do not escape quotes and double quotes in user names
 * - Don't load on Special pages
 * - Fix naming issues in some messages
 * - Update a link to Meta page on the Technical Wishlist
 * - Open links in the "tutorial" in the new window
 * - Fix spelling of RevisionSlider

Scribunto

 * - Have ScribuntoContentHandler extend CodeContentHandler
 * - Add tcy translations for Scribunto namespaces

SiteMatrix

 * - Bump version 1.4.0
 * - Add variable to SiteMatrix
 * - Add myself to authors, seems I've made a lot of changes to it...
 * - Remove default WMF sites from SiteMatrix

Thanks

 * - Cleanup old notification config
 * - Use OO.ui.alert instead of plain alert
 * - Make sure bundleString is event-specific

TorBlock

 * - Update Http::get calling signature
 * - Actually conform to manifest_version 2
 * - Convert to extension registration

Translate

 * - refresh-translatable-pages: create missing source language translation pages

TrustedXFF

 * - IPv6 addresses are in TrustedXFF.body.php
 * - Support reading/writing data to/from a static PHP array
 * - Add version to TrustedXFF
 * - Convert TrustedXFF to use extension registration

UniversalLanguageSelector

 * - Update jquery.uls from upstream
 * - Compact language links: Use smaller callout arrow

UploadWizard

 * - Allow empty coordinates
 * - uw.EventFlowLogger: Unbreak UploadWizardTutorialActions
 * - Fix indentation
 * - Normalize all coordinate input to decimal degrees
 * - mw.UploadWizardUpload: Improve error handling in #makePreview
 * - Various small code cleanups
 * - Consistently pass api in uw.controller.Step subclasses
 * - uw.FieldLayout: Remove debugging code
 * - mw.UploadWizardUpload: Improve error handling in #extractMetadataFromJpegMeta

UrlShortener

 * - Remove 0 and O from the list of characters
 * - Remove ! and . and - from the list of allowed characters

VisualEditor

 * - Fix preview to use a valid document slice
 * - Reduce mayhem caused by ?oldid=currentRevId
 * - Update VE core submodule to master (2939527)
 * - Only apply font fix to global overlay
 * - Run language screenshots from Jenkins
 * - Update VE core submodule to master (c2c1695)
 * - MWSaveDialog: Give checkboxes a class based on their origin's name
 * - MWGalleryDialog: Add new 'slideshow' mode

WikimediaEvents

 * - dewiki_diffstats add rev timestamps & feature state
 * - Make wikimedia.events an alias for events for mw.track

Vector

 * - Make `role=search` heading and label accessible