MediaWiki 1.28/wmf.17/Changelog

Core changes

 * - Updated git submodules
 * - mw.Upload.BookletLayout: Use 'amenableparser' to handle templates in error messages
 * - mw.api.messages: Allow passing extra parameters for the API call
 * - Fix deletion handling of rev_deleted
 * - Updated git submodules
 * - Updated git submodules
 * - Updated git submodules
 * - Updated git submodules
 * - Updated git submodules
 * - Updated git submodules
 * - Updated git submodules
 * - Updated git submodules
 * - Updated git submodules
 * - mw.loader: Use requestAnimationFrame for addEmbeddedCSS
 * - mw.loader: Make 'mwLoadEnd' less expensive with a single using
 * - Updated git submodules
 * - Updated git submodules
 * - Revert "EditPage: Use context instead of globals (1/4)"
 * - Revert "EditPage: Use context instead of globals (2/4)"
 * - Revert "EditPage: Use context instead of globals (3/4)"
 * - Revert "EditPage: Use context instead of globals (4/4)"
 * - mw.widgets.CategoryCapsuleItemWidget: Handle titles not normalized in JS code
 * - resourceloader: Create unit tests for ResourceLoaderContext
 * - LinksUpdate: Add functions returning changed page properties
 * - Fixing dry-run logic in updateCollation.php
 * - Move some DB error classes with the rest as type DBUnexpectedError
 * - Make WikiPage::doDeleteArticle more robust
 * - database: Clean up profiling code in DatabaseBase
 * - resourceloader: Add test coverage for DerivativeResourceLoaderContext
 * - Move HTTP 304 check from performRequest to ViewAction
 * - mediawiki.api.messages: Fix typo in comments
 * - Rename EditButtonPublishNotSave to EditSubmitButtonLabelPublish
 * - Remove Block::purgeExpired call from block query API
 * - Fix shutdown code duplication in LBFactory
 * - Use DB_SLAVE in TemporaryPasswordPrimaryAuthenticationProvider
 * - API: Warn when input parameters are normalized
 * - API: Use U+001F (Unit Separator) for separating multi-valued parameters
 * - ApiResult: Remove double space in error message
 * - Add notes in release notes for supporting xiz and xit in time parser function
 * - Directly use getSession for specialPreferencesSaveSuccess
 * - Include PRESEND updates in ChronologyProtector positions
 * - Set the WRITE_SYNC flag for SessionBackend writes
 * - Fix database class doc typos
 * - Invalidate cache when page language is changed
 * - Do not localize content model name inside of english exception messages
 * - Rollback: Catch error when unable to load latest revision data
 * - mw.loader: Minor clean up and optimisations
 * - Make database ping method avoid starting transactions
 * - Fix docs for the HtmlPageLinkRenderer hooks
 * - ApiUpload: Better handle unreasonably large metadata in 'imageinfo'
 * - introduce for days passed in the year
 * - Clean up array syntax in docs, part IV
 * - Remove patch-pl-tl-il-unique.sql
 * - resources: Deprecate module "jquery.appear"
 * - jquery.ui.position: Mark as deprecated
 * - SQLite syntax checker: Fix support for multiple files
 * - Update and broaden @covers for PreprocessorTest
 * - NewParserTest: tear down globals before returning early
 * - Add urls from various adware to the CSP false positive list
 * - resourceloader: Make 'site.styles' actually in group 'site'
 * - LoginSignupSpecialPage: Restore old display of 'createacct-helpusername'
 * - Add new UsersPagerDoBatchLookups hook to allow for extensions to modify UsersPager::doBatchLookup's rigid behavior
 * - mediawiki.inspect: Output size in bytes used in local storage
 * - mw.htmlform.ooui.styles: Remove vertical margin from OOjs UI HTMLForms
 * - Linker: Get rid of "shortcuts" in image linking functions
 * - Linker: Avoid Title in normaliseSpecialPage
 * - Remove redundant UNIQUE from rev_page_id
 * - mw.htmlform: Don't refer to OO.ui if it might not be loaded
 * - PreprocessorTest: test both implementations
 * - Fix AuthManagerSpecialPage submit button logic
 * - Cleanups to SqlBagOStuff
 * - resourceloader: Improve coverage in ResourceLoaderTest.php
 * - Clear SiteStats process cache after DB update
 * - EditPage: Don't show create label for the button on new sections
 * - debug: Interpolate log messages
 * - debug: Merge mediawiki.debug.init module into mediawiki.debug
 * - debug: Don't show git branch if on a detached HEAD
 * - Optimize ChronologyProtector writes for multi-DC case
 * - Memcached PECL: Allow using binary protocol
 * - Make Special:CreateAccount respect ?returnto parameter
 * - API: Some raw message cleanup
 * - Sync up with Parsoid parserTests.
 * - Enable $wgResourceLoaderStorageEnabled by default
 * - API: Log when too many values are passed for a multi-valued parameter
 * - HTMLFormField: Don't display empty popup in OOUI mode if empty 'help' is given
 * - HTMLFormField: Move 'flatlist' handling to fields that use it and document
 * - Move Article checkLastModified up to MediaWiki::performRequest
 * - VirtualRESTServiceClient management cleanups
 * - Remove some unused hooks from hooks.txt
 * - EditPage: Use context instead of globals (4/4)
 * - EditPage: Use context instead of globals (3/4)
 * - EditPage: Use context instead of globals (2/4)
 * - EditPage: Use context instead of globals (1/4)
 * - EditPage: Fix some doc blocks
 * - EditPage: Add getContext function
 * - Add LBFactory::beginMasterChanges for doing DBO_TRX rounds
 * - RELEASE-NOTES: Add release note for 74fa607
 * - Upgrade justinrainbow/json-schema to ~3.0
 * - CloneDatabase: Simplify callback structure
 * - Implement NumericUppercaseCollation
 * - content: Refactor normalization of line endings code
 * - Remove commit calls from JobQueueDB
 * - Avoid INSERT..SELECT in LocalFileDeleteBatch
 * - Avoid INSERT..SELECT in doArticleDeleteReal
 * - Fix broken lockmanager-fail-releaselock status messages
 * - mw.widgets.CategoryCapsuleItemWidget: Debug logging for "queue[title] is undefined"
 * - SpecialMyLanguage: Use page language instead of wiki language for redirect target check
 * - Reduce problems caused by $wgRunJobsAsync
 * - A few more DBLockManager fixes and cleanups
 * - Improve default behavior for HTMLForm::canDisplayErrors
 * - Expose form field objects in HTMLForm
 * - Make login/signup footer available to AuthChangeFormFields hook
 * - HTMLMultiSelectField: Add 'dropdown' option for 'mw-chosen' behavior and document
 * - Call ssl_set in DatabaseMysqli if DBO_SSL is set
 * - Floor slave lag before display
 * - User namespace localisation update for Slovak
 * - Tell users that js/css subpages are public
 * - Introduce for days in the month in Iranian calendar
 * - RestbaseVirtualRESTService: Support production URL layout
 * - EditPage: Allow the 'save' button's label to be 'publish' for public wikis
 * - EditPage: Show a different label for the button on create vs. modify

Vendor

 * - Upgrade justinrainbow/json-schema to 3.0.0

AbuseFilter

 * - Fix bogus stats where stashes counted as misses
 * - Update mediawiki/mediawiki-codesniffer to 0.5.1
 * - Make Special:AbuseLog pager more efficient

Campaigns

 * - Restore 'loginCTA' campaign name for the signup link at the bottom of login

CentralAuth

 * - Convert CentralAuthUser to using getWithSetCallback
 * - New attachAccount maintenance script

CirrusSearch

 * - Do not use the suggest reverse field if it's a non local search
 * - Add some more info to failed incoming link count jobs
 * - Fallback to QueryString if we detect acronyms
 * - Temporarilly redirect RedirectsAndIncomingLinks job to a single db
 * - Suggest database to use pl_namespace index for link counting
 * - Initialize the UserTesting framework before creating a Connection
 * - Fix a typo in BC code that handles toId => toPageId
 * - fromId was renamed to fromPageId
 * - Add flag for disabling phrase suggester
 * - Ensure timeouts are always used
 * - Add boost-templates setup for relforge and enwiki
 * - Use the UserTesting framework in maint scripts
 * - Finish converting to wgCirrusSearchIndexBaseName

Cite

 * - Move originalDomElements to IV store and use new hash

CodeReview

 * - Delete old & unused PHP i18n file

ConfirmEdit

 * - extension.json: 1st dimension is namespace ID, so avoid re-numbering
 * - Replace the edit preview with a validation of whitelisted IP addresses

ContentTranslation

 * - Fix broken personal translation stats graph at CX dashboard
 * - Upgrade Chart.js to version 2.2.1
 * - Show ULS trigger at personal toolbar in Special:CX
 * - Templates: Fixes for inline template adaptation
 * - Remove unused method adaptTitle

DonationInterface

 * - Another autoload directory
 * - Enablement switch for BannerHistoryLog
 * - Add more dirs to composer classmap
 * - Remove unnecessary hooks

Echo

 * - Follow-up 191a3309eb: merge duplicate skinStyles for monobook
 * - Fix autoloader for I3a426b92892f4c00cab33a13f6a717751120367c
 * - Fix font size for notifications dotdotdot menu in Monobook
 * - Override white background on hover for links in Monobook
 * - Display a message when API fail due to session end
 * - Style changes for unwatch actions
 * - Loading notifications starting with one big local bundle
 * - Dynamic actions: Reuse label/description for those fields
 * - Add index on event_page_id
 * - Fix call to irrelevant function in testFetchByUserOffset
 * - Revert "Get the overfetched before bundling to avoid removing the base"
 * - Get the overfetched before bundling to avoid removing the base
 * - Don't select echo_event.*
 * - Remove unused method EchoEventMapper::fetchByUserBundleHash
 * - Add dynamic secondary actions to notification items

EventBus

 * - Send EventBus events matching new schemas.

EventLogging

 * - Adapt code sample to provide the extension.json version instead of PHP
 * - Have RemoteSchema actually implement JsonSerializable

Flow

 * - Protect against target.getSurface returning null
 * - Pass full HTML documents into VE, not fragments
 * - Followup I7ad9dd5b436: Truncate title in item label
 * - Fix autoloader for I3a426b92892f4c00cab33a13f6a717751120367c
 * - Notification title fixes
 * - Update for new secondary link format
 * - Followup on I75d0098e: Use getTopicTitleObj properly
 * - Add unwatch topic/board dynamic action for Flow notifications

GeoData

 * - Remove old b/c stuff
 * - Namespace tests

Graph

 * - Fixing incorrect colon removal
 * - Updated to graph-shared 0.2.2
 * - Remove unused graphID property

JsonConfig

 * - Ensure line endings are normalized in PST

Kartographer

 * - Redo mapframe disabling
 * - Fix maplink and mapframe when lat/lon/zoom are undefined
 * - Map should be destroyed as soon as the dialog closes.
 * - Static map page for non-JS support of maplinks
 * - VE: Set 'align' attribute on mapframes
 * - WV: Clicking "nearby articles" toggles data layers
 * - Upgrading leaflet.sleep fixes mapframes in IE11
 * - VE: map should always be interactive within the dialog
 * - Load ext.kartographer.site as part of ext.kartographer.box (fixes wikivoyage)
 * - Use Extension:GeoData coordinates as default if available
 * - Synchronize JsonSchema with mediawiki/core
 * - Wait for transitions before resetting start map position

LiquidThreads

 * - Truncate change comments to avoid database errors

MobileApp

 * - Keep local copies of globe icon images

MobileFrontend

 * - Ensure lazy image placeholders without height can be loaded
 * - Don't treat certain image placeholders as block
 * - Revert "Introduce MediaWikiServices"
 * - Special:Nearby uses mediawiki.Uri, so add it as a dependency
 * - Search Overlay: Reduce clear icon's right gutter
 * - Hide chevron in last modified bar for non-js users
 * - Fix the primary navigation background
 * - Use more widely supported 2d transform for chevron rotate
 * - Beta: show the search overlay spinner at 10% from top
 * - Revert "Copy style attribute to lazy placeholder"
 * - Re-use newsectionsummary from core, not mobile-frontend-talk-edit-summary
 * - Media viewer design tweaks
 * - Show user icon on Diff and Contributions special pages
 * - Fix padding on language overlay search input
 * - Clear icon should be small
 * - Use InfiniteScroll for the CategoryOverlay
 * - Remove irrelevant browser test for Watchlist
 * - Final design tweaks to footer
 * - Hygiene: Tidy up page background css rules in beta
 * - Add separators between footer links in beta
 * - Fix bad markup in footer
 * - Beta: vertically center-align the spinner of the search results
 * - Hide empty li elements according to tidy rules (like in mediawiki/core)
 * - Remove LinksUpdate hook handler
 * - Fix VE debug bar margins
 * - Copy style attribute to lazy placeholder
 * - Beta: clear the loading icon when a new search is started
 * - Footer / chrome color changes
 * - Hygiene: functionalize code in pre-commit hook
 * - Hygiene: allow for many files in pre-commit hook
 * - Hygiene: dry up code in pre-commit hook
 * - Update the footer in beta
 * - Hygiene: fail on surprise error in pre-commit hook
 * - Remove dynamic M.require
 * - Introduce MediaWikiServices
 * - Beta: Improve `search` experience
 * - Hygiene: Generate footer via template

OAuth

 * - Use getLazyConnectionRef to avoid master queries for no reason
 * - Use informative messages on form errors

ORES

 * - Improvements to purging cache:
 * - Change ORES header to "Revision scoring" in preferences
 * - Remove deprecated config
 * - Fix for purging scores
 * - Fix CheckModelVersions by changing order of actions

OpenStackManager

 * - Ensure line endings are normalized in PST

PageAssessments

 * - Refactoring/simplifying update logic for PageAssessments

ProofreadPage

 * - Fix ProofreadPage::updatePrIndex signature
 * - Fix hooks signatures
 * - Fix whitespace issues in ProofreadPages

RelatedArticles

 * - Add documentation
 * - Cache `morelike` requrests
 * - Use 'classic_noboostlinks' search profile
 * - Disable related articles on disambiguation pages
 * - Allow skins a mechanism to decide on placement of related pages

RevisionSlider

 * - Reload category links when reloading the diff after revisions change

Scribunto

 * - Localisation in Tajik language

SemanticForms

 * - Added support for "tooltip" for autoedit/formlink/formredlink buttons

TemplateData

 * - Make the help button a help link again

TemplateSandbox

 * - Fix phpcs errors
 * - Allow forcing display of the form with a URL parameter
 * - Fix usage of $this in a static context

TextExtracts

 * - Remove 'UnitTestList' hook

Thanks

 * - Re-add actions to Thanks links when Revision Slider reloads a diff

TimedMediaHandler

 * - iframe embed: Allow videojs inside iframe mode

Translate

 * - Update Microsoft Translationservice to accesstoken model
 * - MessageGroups: default labels and names to English when no context
 * - Avoid early master connection in MessageGroupStats
 * - Sandbox: Quick workaround for emails not being saved
 * - Use getUserPermissionsErrorsExpensive hook for preventing translations to non-translatable languages
 * - Refactor some PageTranslation getUserPermissionsErrorExpensive hook handlers
 * - Typofix in $wgTranslateEC history
 * - ext.translate.recentgroups: use mediawiki.storage
 * - TranslateSandboxEmailJob: remove BC for MW 1.25
 * - Use csrf token instead of edit token
 * - ext.translate.proofread: remove BC code for MW 1.24

UniversalLanguageSelector

 * - ext.uls.compactlinks: consistently normalize language codes
 * - Switch default ULS geoip provider
 * - Use getDefinitionSummary in ResourceLoaderULSJsonMessageModule
 * - Simplify ResourceLoaderULSModule with content-based versioning

UploadWizard

 * - mw.UploadWizardDetails, mw.UploadWizardUpload: Use 'amenableparser' to handle templates in error messages
 * - More debug logging for Firefox's 'NS_ERROR_NOT_AVAILABLE' exceptions

VisualEditor

 * - Update lib/ve submodule for Ib9bbaccfff9
 * - Update VE core submodule to master (599c6e1)
 * - Rename EditButtonPublishNotSave to EditSubmitButtonLabelPublish
 * - Avoid master queries from getUserPermissionsErrors
 * - Vary the 'save' labels to 'publish' for public wikis
 * - init: Discard attempts to activate while we're already activating
 * - Show a different label for buttons on create vs. modify
 * - Update VE core submodule to master (632f0a9)
 * - Fix failing Selenium tests
 * - The latest version of commons_upload Ruby gem is needed for language screenshots
 * - Upload language screenshot files using commons_upload Ruby gem
 * - Run language screenshots on Windows
 * - Fix insertion annotation for wikitext link inspector

WikimediaEvents

 * - Turn on CirrusSearch bm25 A/B test

WikimediaMessages

 * - Add new default value for search-helppage
 * - Removing 'global-gather-admins' messages.

ZeroBanner

 * - Update router code

intersection

 * - Pass actual title to Parser::transformMsg rather than relying on $wgTitle

Vector

 * - vector.js: Calculate initial #p-cactions width lazily