MediaWiki 1.28/wmf.2/Changelog

Core changes

 * - Updated git submodules
 * - Updated git submodules
 * - Bail out in ApiStashEdit for bots for sanity
 * - Revert "Convert Special:WhatLinksHere from XML form to OOUI form"
 * - Update VisualEditor for Ie127cfbd515cd217abd272cb7a81566b91e13f4d
 * - Make LinksUpdate only wait on the DB with the link tables
 * - Increase BotPasswordSessionProvider's default priority
 * - Improve edit stash hit rate for logged-out users
 * - Fix installer issues introduces by MediaWikiServices
 * - Don't override all Moment locales to English
 * - Fix AuthManager login page breakage
 * - Fix Special:Userlogout for $wgAutoloadAttemptLowercase = false
 * - Convert CdnCacheUpdate to event per URL
 * - Refactor upload dialog to make it configurable
 * - Avoid unstubbing $wgLang in Title::getLocalURL
 * - AuthManager release notes
 * - API changes for AuthManager
 * - Use AuthManager on special pages
 * - Add AuthManager
 * - Remove unnecessary annotation
 * - Add Status::getStatusValue
 * - Call $job->teardown even if Job throws an exception.
 * - Add SessionProvider::getRememberUserDuration, fix some durations
 * - Fix GUI for Special:Tags if a user has deletechangetags permission only
 * - Add "mVersion" sanity check to User::loadFromCache
 * - @since for User::newSystemUser
 * - Follow-up 6ce974f: also update the hook call in ApiMain
 * - Make "presumed-fresh" edit stash case cover when users make intervening edits
 * - Sync up with Parsoid parserTests.
 * - OOUIHTMLForm: Don't output an empty hidden LabelWidget if not needed
 * - Batch links updates performed by refreshLinks jobs
 * - mediawiki.jqueryMsg: Allow logging errors through mw.track
 * - Add LinkCache::getSelectFields and use it in a few places
 * - LinkHolderArray: Title::makeTitle does not return null
 * - LinkHolderArray: Use LinkBatch for generating WHERE in query
 * - mediawiki.util: Use RegExp.test instead of String.search
 * - Remove now-unused LinkCache::$instance
 * - Make User::isBot also check the "bot" right for sanity
 * - Increase LocalFile lock timeout and improve error message
 * - Add LinkCache to MediaWikiServices
 * - Follow-up cdc93a62bf: add serialize/unserialize tests for RedisBagOStuff
 * - Decouple Xhprof profiling from profiling data processing
 * - Revert "Split editcascadeprotected permission from protect permission"
 * - Remove support for $wgWellFormedXml=false
 * - Split off permission to delete tags from managechangetags permission
 * - mediawiki.jqueryMsg: Fix 'asciiAlphabetLiteral' definition
 * - Allow the signature button wikitext to be overridden locally
 * - registration: Handle $wgSessionProviders in ExtensionProcessor
 * - objectcache: Inject current time into WANObjectCache::wrap
 * - Parser tests: Also register namespace 101 to accompany 100
 * - LinkCache: Use LinkTarget instead of Title
 * - TitleFormatter: Match Title behavior for non-existent namespaces
 * - Add tests for Title::getPrefixedText
 * - mediawiki.jqueryMsg: Implement ` ` support
 * - Make updateCollation wait for slaves every 500 (instead of 2000)
 * - Add LinkTarget::inNamespace helper function
 * - RedisBagOStuff: Fix unserialization of negative numbers
 * - Document WAN cache FLD_* constants
 * - shared.css: Don't center text in .mw_metadata (file metadata table)
 * - Better JavaScript handling for return method
 * - Add tests for 'LinkBegin' hook
 * - Let BagOStuff::merge callbacks override the TTL
 * - Fix ApiBase::getErrorFromStatus and ApiMessages
 * - Add TitleFormatter::getPrefixedDBkey and implementation
 * - Add tests for 'LinkEnd' hook functionality
 * - Add TitleParser and TitleFormatter to MediaWikiServices
 * - Pass the OutputPage object to the OutputPageCheckLastModified hook
 * - Add User::isBot method
 * - Update OOjs UI to v0.17.2
 * - Add SessionManager::invalidateSessionsForUser
 * - Add SessionInfo force-use flag
 * - Convert Special:WhatLinksHere from XML form to OOUI form
 * - Convert Special:MergeHistory to use OOUI.
 * - resourceloader: Remove false return from Context::getUserObj
 * - use slave for row estimate in updateCollation.php
 * - Use STRAIGHT_JOIN on updateCollation.php per jcrespo
 * - Add WebRequest methods for determining "safe" requests
 * - resourceloader: Remove unused Module::setOrigin method
 * - Add wfDeprecated calls to WatchedItem
 * - mw.widgets.CategoryCapsuleItemWidget: Handle non-English foreign wikis
 * - collation: Refactor getFirstLetterData cache handling
 * - Warn when a restricted displaytitle is ignored
 * - Make GenderCache use MediaWikiServices
 * - Re add @access protected on Title::__construct
 * - wfTempDir try harder to get a tmp dir on Windows
 * - Split editcascadeprotected permission from protect permission
 * - Require strip marker names to not have & ' " in them
 * - Update default hash storage settings

Vendor

 * - Update OOjs UI to v0.17.2

AbuseFilter

 * - Make negative process caching in onGetAutoPromoteGroups work
 * - Remove bogus AbuseFilter::contentToString param
 * - Set doesWrites for SpecialAbuseFilter

AntiSpoof

 * - Update for AuthManager
 * - Add extension.json file, empty php entry point

Babel

 * - Put BabelBox interface and implementations into a namespace
 * - build: Bump devDependencies to latest
 * - Use User::newSystemUser when available
 * - Refactor babel boxes into classes with common interface

BetaFeatures

 * - Fix HTMLFeatureFieldTest test cases

CentralAuth

 * - Fix central logout
 * - Avoid DBPerformance log warnings in onUserLogout
 * - Use CookieSessionProvider::getLoginCookieExpiration
 * - Convert to extension registration
 * - Avoid using the master DB for non-write POST requests
 * - Handle the UserIsBot hook for bot detection
 * - Drop some backwards-compatibility code
 * - Implement invalidateSessionsForUser
 * - Set force-use flag from CentralAuthTokenSessionProvider

CirrusSearch

 * - .x document missing exception
 * - Move some util methods to Elastica
 * - Rename / remove mention of "wikidata" in PageDataBuilder
 * - query_and_fetch -> query_then_fetch
 * - Simple hack to allow es2.x failures to be logged by master
 * - Fix mistake and documentations in CirrusSearch Hooks handlers
 * - RequestContext::getStats was deprecated
 * - Adjust textcat data collection for AB test

Cite

 * - Explicitly insert transclusion as inline

Citoid

 * - Explicitly insert transclusion as inline
 * - Always switch to 'auto' panel when converting references

ConfirmEdit

 * - Add AuthManager support for ReCaptcha, ReCaptchaNoCaptcha
 * - Add AuthManager support to SimpleCaptcha, QuestyCaptcha, FancyCaptcha, MathCaptcha

ContentTranslation

 * - Implement outputdir and compression params for dump-corpora.php
 * - MT: Use custom labels instead of provider id

DonationInterface

 * - Remove soft transition for old "token" parameter
 * - Move legacy PayPal stuff into a subdirectory
 * - Formatting, comments, robustness
 * - Give token param a WMF namespace
 * - Fix AstroPay case
 * - Move chunk of Worldpay logic into a staging class
 * - Language query params shouldn't be case sensitive
 * - Carte Bleu for Adyen
 * - Whitespace fixes
 * - Encode query string values properly
 * - Adyen in France
 * - Inline errors instead of alerts for API calls
 * - Fix indentation
 * - Adyen form for Israel
 * - Document $wgDonationInterfaceDebugLog global
 * - Remove unused css resources
 * - Remove unused astropay js

Echo

 * - Expand URLs of icon and actions in HTML email formatter
 * - Bring back messages used by old email formatter system
 * - HTML email footer shows raw HTML
 * - Attempt to fix unsubstituted message in Echo emails
 * - Ignore docs folder in all grunt tasks
 * - Link project labels in xwiki bundle to their Special:Notifications page
 * - New error message for failed to fetch notifications
 * - Handle section-text being null
 * - Avoid exceptions when event_extra can't be unserialized
 * - Use JSON instead of PHP-serialized for internal cross-wiki API requests
 * - Don't reuse CentralAuth tokens for multiple requests
 * - Follow-up f5e9d4e: log parsing failures and API errors too
 * - Add $wgEchoCrossWikiNotifications flag to disable cross-wiki notifications
 * - Log warning on failure to fetch foreign notifications
 * - Bump cache version for cache pollution (cross-wiki on non-SUL wikis)
 * - Handle empty foreign notification sources
 * - Pass source url when creating API handler
 * - Get rid of addApiHandler factory
 * - Make sure APIHandler has this.api
 * - Protect against some errors that apparently happen in production
 * - Correctly update locally cached seenTime
 * - Respect editmyprivateinfo for email
 * - Add tmp emacs file to gitignore
 * - HTML email formatter using presentation model
 * - Add JSDuck support and fix errors
 * - Add 'mark section as read' to Special:Notifications
 * - Use new OutputPage parameter in OutputPageCheckLastModified hook
 * - Don't cache pages with outdated global notification counts
 * - Add mark-as-read button to notifications in Special:Notifications
 * - Reset the TitleParser service without messing up the database
 * - Reset TitleParser service after modifying $wgContLang

Elastica

 * - Move iterateOverScroll from Cirrus to Elastica

FlaggedRevs

 * - Avoid master queries in GET in onProtectionForm
 * - Convert the top X reviewers cache to the main stash
 * - Avoid DB contention in incrementRollbacks

Flow

 * - Don't assume workflows/revisions are inserted in chronological order
 * - More reliable post sorting
 * - Fix Flow for AuthManager-changes in ConfirmEdit
 * - MentionInspector: Explicitly insert transclusion as inline
 * - Update Parsoid version string
 * - Go to first unread post if no post specified
 * - Add CONTRIBUTING doc to help new contributors
 * - Hide editor switcher button on VE when switching is disabled
 * - Add missing dependency on jquery.throttle-debounce
 * - Disable submit buttons if we know the user can't edit
 * - Make FlowReplies slightly work
 * - Set doesWrites for EditAction

Kartographer

 * - Add full GeoJSON validation
 * - Avoid calling Parser::getOutput twice unnecessarily

LdapAuthentication

 * - Fix LdapAuthenticationPlugin::userExists
 * - Refactor code

LiquidThreads

 * - Defer DB update in NewUserMessagesView

Math

 * - Fix Cucumber scenario that is broken in daily Jenkins jobs
 * - Catch exceptions thrown by restbase

MobileApp

 * - Create mobile.app.preview.android style module
 * - Add style directives for images in Parsoid HTML

MobileFrontend

 * - Use 1 XPath query rather than N+1 queries
 * - Avoid fatals in reference edge cases
 * - Special Mobile Cite page and PHPUnit tests
 * - Regression: Do not show chrome color in stable
 * - Hygiene: Use a more descriptive variable name
 * - Improve the print styles
 * - Update for AuthManager
 * - Search boxes fixes
 * - Make API mobileview return empty 'protection' result as a JSON-style object
 * - Remove commonsCategory beta feature
 * - Beta: Enhanced search bar
 * - Do not reserve space for the secondary button if it's not available
 * - Hygiene: Split the SearchOverlay template into two

MultimediaViewer

 * - Disable Cucumber feature that is broken in daily Jenkins jobs

NavigationTiming

 * - Expand coverage of conformance test

OAuth

 * - Set force-use flag when not using cookies to store the session ID
 * - Set doesWrites for SpecialMWOAuth

OpenStackManager

 * - Adjust to changes to LdapAuthentication in preparation for AuthManager

Popups

 * - Use mw.eventLog.Schema to log EventLogging events
 * - Use correct selector for div's that hold PNGs when SVGs aren't supported
 * - Describe init method behaviour via QUnit tests
 * - Rewrite createPopup with template for better readability
 * - Add tests for createPopup
 * - Add client-side validation of PopupsSurveyLink
 * - Annotate survey link with rel=noreferrer
 * - Document PopupsSurveyLink with cautionary note
 * - Allow brackets in createImgThumbnail
 * - article: Remove bracketed text from the title before looking to bold it in the extract
 * - Minor refactor

Renameuser

 * - Load User with READ_LATEST before invalidating sessions
 * - Augment call to $wgAuth->updateExternalDB with forward-compatible code
 * - Call SessionManager::invalidateSessionsForUser when available

Scribunto

 * - Provide a standard way to get the target of a redirect page

SemanticForms

 * - "values from property/concept" params only displayed if SMW is used
 * - Added "namespace" param for combobox, tokens inputs
 * - Removed 'remote autocompletion' field param - unnecessary
 * - Removed deprecated input type 'datetime with timezone'
 * - Removed 'remote autocompletion' param for #forminput
 * - Removed support for long-deprecated "autocomplete on ..." params
 * - Removed support for long-deprecated "no autocomplete" param

SpamBlacklist

 * - Use User::newSystemUser when available
 * - Update for AuthManager

SyntaxHighlight_GeSHi

 * - Fix parser tests for core commit ee4d5c6eed (removal $wgWellFormedXML)

TimedMediaHandler

 * - Fix fatal for TimedMediaHandler previews without files.
 * - Add a timedtext param to videoinfo API
 * - Only hide the native controls panel.
 * - Remove fallback content of video/audio tag
 * - Update ogv.js to 1.1.0 release
 * - Move activation of replaybutton into the config
 * - Add replay button to video.js player
 * - Add TMH modules to the upload page.

TitleBlacklist

 * - Update for AuthManager

Translate

 * - Use mediawiki.ui.button in tux editor over ext.uls.buttons
 * - Use DeferredUpdates in queueUpdates
 * - Add log action filter for pagetranslation logs
 * - Do not add ext.translate to all pages
 * - Do not add ext.translate to translation pages twice
 * - Improve exception message on TranslateRenderJob
 * - On documentation unit deletion, don't attempt to re-render translation page
 * - braceBalanceCheck/XhtmlCheck: do not add warning if same as definition
 * - Do not rely on core preferences
 * - Move all TTMServer updates to the JobQueue

UniversalLanguageSelector

 * - Add jquery.uls.data as depedendency to ext.uls.init
 * - Add config to enable compact language links for anonymous users
 * - Add config to enable compact links for new accounts
 * - Introduce a preference to disable compact language links
 * - Add WOFF2 version of fonts
 * - Fixes for 6b8c33e
 * - First attempt at font test page generation

UploadWizard

 * - uw.CopyMetadataWidget: Correct sequential numbering
 * - Normalize file extension for uploaded files
 * - Log errors from mediawiki.jqueryMsg
 * - uw.controller.Details: Fix 'Uncaught TypeError: Cannot read property '$element' of undefined'
 * - Revert "Remove superfluous ExceptionFlow event class"
 * - uw.controller.Details: Fix 'Uncaught TypeError: this.copyMetadataWidget.remove is not a function'
 * - uw.DescriptionsDetailsWidget: Remove any "Remove" buttons when clearing items
 * - mw.UploadWizardUpload: Remove unused function #acceptDeed

VisualEditor

 * - Debug log strange-looking ETags being sent to RB
 * - build: Use grunt-stylelint from npm
 * - stylelint: Comment uses of 'unsupported' browser CSS features
 * - Remove remaining references to csslint
 * - build: Replace csslint with stylelint
 * - Update VE core submodule to master (12ad256)
 * - [BREAKING CHANGE] Evalute block/inline state when inserting a transclusion node
 * - Use new action test runner
 * - Update VE core submodule to master (598aa93)
 * - Add WTE welcome dialog
 * - Fix deactivating VE after user explicitly decideas to discard changes
 * - ve.ui.MWParameterPage: Remove non-working 'focus' handler

WikimediaEvents

 * - Add textcat subtest
 * - Fix wrong variable used when triggering resends of unload events

WikimediaMaintenance

 * - Use User::newSystemUser

WikimediaMessages

 * - Add missing translations for upload dialog messages
 * - Re-add interwiki search result messages
 * - Move Commons-specific localisation messages for upload dialog from core
 * - Remove unused messages about forced password resets

ZeroBanner

 * - Use gd instead of imagemagick for legaly img banners
 * - Added stil/gd-text lib