MediaWiki 1.29/wmf.4/Changelog

Core changes

 * - Bump PagesImages
 * - Updated git submodules
 * - Updated git submodules
 * - Updated git submodules
 * - OOjs UI: Backport I73f95965694ec7fb0fa9a474742286e1105e5c85
 * - Updated git submodules
 * - Updated git submodules
 * - Updated git submodules
 * - Updated git submodules
 * - Updated git submodules
 * - Updated git submodules
 * - Updated git submodules
 * - Updated git submodules
 * - SpecialUserrights: Make new fetchUser parameter optional
 * - Updated git submodules
 * - Updated git submodules
 * - Rewrite logstash key conflict warning from I6677dbf6
 * - Updated git submodules
 * - Updated git submodules
 * - Updated git submodules
 * - Release notes about Ukrainian fallback
 * - Upgrade QUnit from v1.22.0 to v1.23.1
 * - Revert "MessageCache invalidation improvements" (temporary)
 * - populateContentModel: Invalidate content model and revision cache
 * - Bring REL1_28 into HISTORY
 * - Fallback tarantino (roa-tara) to Italian (it)
 * - Prevent fatal error if $wgCookieSetOnAutoblock is changed to false
 * - Always preserve uselang in login form
 * - Add $linkTrail for Bengali (bn)
 * - Fallback Livvi-Karelian (olo) to Finnish (fi)
 * - Add a context to ChangeTags::buildTagFilterSelector
 * - OutputPage::getCategories: Add a possibility to distinguish "normal" and "hidden" categories
 * - SpecialUserrights: Remove incorrect comment
 * - Remove broken GENDER support for 'editusergroup'
 * - HTMLFormFieldCloner: Don't try to validate hidden fields
 * - HTMLDateTimeField: Fix 'placeholder' attribute handling
 * - parserTests: flag articles creation as internal
 * - Move MimeAnalyzer params to ServiceWiring
 * - Change 'rights' to 'groups' on MediaWiki:Savedrights
 * - Add exceptions in mw.Title where mb_strtoupper doesn't match String.toUpperCase
 * - Don't fallback from uk to ru
 * - Remove unused messages
 * - Allow all users to view Special:UserRights
 * - Replace $.parseJSON by JSON.parse
 * - actions: Fix typo in ViewAction.php doc comment
 * - Get ConfigFactory & MainConfig from MediaWikiServices
 * - Remove passwordreset capture feature
 * - build: Bump jsonlint devDependency to latest
 * - Fix case of getMimeAnalyzer in MimeMagic class
 * - Remove JSON polyfill, deprecate 'json' module
 * - Use MediaWikiServices::getMainWANObjectCache in ServiceWiring
 * - Get GenderCache from MediaWikiServices
 * - API: Expose $wgGalleryOptions in the meta=siteinfo
 * - mw.widgets.CategorySelector: Add placeholder text
 * - Make cache object mandatory for MessageCache
 * - Fix globbing for eslint
 * - Have phpcs skip local configuration files
 * - ApiSandbox: Support 'all' specifiers
 * - test: fix @covers to non existent methods
 * - Bypass login page if no user input is required.
 * - Include getPublicLogMessage in double-exception messages
 * - Add PARAM_ALL setting for multi-option API parameters
 * - Warn when a log context accidentally overrides a log processor
 * - qunit: Update tests to not assume animations use setTimeout
 * - Replace deprecated jQuery bind with on
 * - resourceloader: Combine UC Mini startup regex with others
 * - mw.Upload.BookletLayout: Improve error message when not all logged-in users can upload
 * - Replace wgShowExceptionDetails with wgShowDBErrorBacktrace on db errors
 * - Exception renderer: Remove useless check for isCommandLine
 * - Only apply wgDBschema to postgres/mssql
 * - SpecialActiveUsers: Allow excluding groups too
 * - updateCredits: Do not change working directory
 * - .mailmap, CREDITS: Correct Alexandre Emsenhuber's (IAlex) name
 * - .mailmap: Correct typos in introduction
 * - Remove unused MediaWikiTestCaseTest::GLOBAL_KEY_NONEXISTING
 * - registration: FileExtensions should be an array, not an object
 * - content: Use Language::factory( 'en' ) instead of wfGetLangObj( 'en' )
 * - mw.loader: Use for-loop instead of $.each
 * - Add 'tests' testsuite
 * - Make insertRedirectEntry use upsert to reduce contention
 * - resourceloader: Remove unused getPosition code
 * - Rename getSlaveDB FileRepo method to getReplicaDB
 * - Allow stashing of unset globals in MWTestCase
 * - Fix $wgUserEmailUseReplyTo documentation
 * - registration: Set "FileExtensions" to $GLOBALS
 * - registration: Support setting $wgPasswordPolicy in extension.json
 * - mw.loader: For using errors, reject Promise instead of throwing
 * - eslint: Re-enable valid-jsdoc and make a pass
 * - Add 'autocomplete' option to HTMLTextField
 * - resourceloader: Add tests to verify empty string works
 * - Fix UserTest case that was missing a cache purge
 * - Password list only has 10,000 passwords, not 50k
 * - Skin: Reduce database queries for footer links on every page
 * - Add var to User class to store block type for eventlogging purposes
 * - resourceloader: Remove top/bottom queue distinction
 * - Follow-up 1cc3a57: Move changes from RELEASE-NOTES-1.28 to 1.29
 * - LegacyLogger: Fix @return documentation for formatAsWfDebugLog
 * - Send a cookie with autoblocks to prevent vandalism.
 * - MessageCache invalidation improvements
 * - mw.ForeignStructuredUpload.BookletLayout: Remove incorrect comment
 * - Revert "objectcache: detect default getWithSetCallback set options"
 * - Reduce default cookie expiration time to 30 days
 * - mediawiki.user: Simplify mw.user.generateRandomSessionId
 * - objectcache: Remove broken cas method from WinCacheBagOStuff
 * - objectcache: detect default getWithSetCallback set options
 * - Rewrite runBatchedQuery.php
 * - Add first letter data for bn collation (Standard and Traditional)
 * - build: Bump eslint-config-wikimedia to v0.3.0 (already passes)
 * - build: Replace jscs+jshint with eslint
 * - Throttler: improve log message compatibility with Monolog logger
 * - Fix typo in #getDateFromExif
 * - Make /*jshint -W024*/ global to allow 'static' as property
 * - Add parser test for "Piped link with empty link text"
 * - Add $specialPageAliases for Bengali (bn)
 * - Use different varname for upgraded hash from original hash
 * - HTMLForm: Allow returning Message objects from HTMLFormField::validate
 * - Better handling of Message objects as Message parameters
 * - RC filter: hidebyothers
 * - Add GENDER support for "you are blocked" messages in ChangeTags
 * - Add hooks to Special:TrackingCategories
 * - Introduce separate log action for deleting pages on move
 * - Add --msleep option to purgeParserCache.php
 * - Make NumericUppercaseCollation use localized digit transforms
 * - parserTests: Use a mock parser during article insertion
 * - Remove last remnants of pre-1.16 live preview
 * - Add ParserFetchTemplate hook

Vendor

 * - OOjs UI: Backport I73f95965694ec7fb0fa9a474742286e1105e5c85

AbuseFilter

 * - Add Russian special page aliases for Ukrainian for backwards compatibility

Babel

 * - Fix 1.27 compatibility
 * - Update for API error i18n

BetaFeatures

 * - build: Remove jscs & jshint, introduce eslint & stylelint

CategoryTree

 * - Add Russian special page aliases and magic words for Ukrainian for backwards compatibility
 * - Add category count to Special:TrackingCategories

CentralAuth

 * - Skip all large wikis during the maintenance script run
 * - Rename 'type' field of authevents channel to 'eventType'
 * - Add Russian special page aliases for Ukrainian for backwards compatibility
 * - Fix incorrect Ukrainian special page alias
 * - Wait for slave lag to catch up on the correct database
 * - populateLocalAndGlobalIds: Bump batch size to 1000
 * - Batch lookup of user ids rather than select per update
 * - Skip enwiki while backfilling data
 * - Add Czech alias of special page

CharInsert

 * - Remove "$" and "mw" from globals in .jshintrc

CheckUser

 * - Add Russian special page aliases for Ukrainian for backwards compatibility

CirrusSearch

 * - Enable configuration for filetype aliases
 * - Declare SimpleKeywordFeature with an array instead of a regex
 * - Logging: do not use reserved keys in logger context
 * - Move the Escaper into the SeachContext
 * - Skip SiteMatrix tests if the extension is not loaded
 * - Remove unused imports and unused code
 * - Fix utf8 output of explain printer
 * - Add and implement InterwikiResolver
 * - Update for API error i18n

Cite

 * - build: Bump eslint-config-wikimedia to v0.3.0 (already passes)
 * - Skip registering RL modules depending on VisualEditor

CiteThisPage

 * - Don't require write access for Special:CiteThisPage
 * - Allow blocked users to use Special:CiteThisPage

Citoid

 * - Remove use of deprecated "json" module
 * - build: Bump eslint-config-wikimedia to v0.3.0 and make pass

Collection

 * - Add Russian special page aliases for Ukrainian for backwards compatibility

ConfirmEdit

 * - Rename 'type' field of authevents channel to 'eventType'
 * - Add --delete to GenerateFancyCaptchas
 * - Mark ReCaptcha as deprecated

ContentTranslation

 * - Allow template editor even if parameter mapping fails completely
 * - Add a clarifying comment to TemplateTool.adapt
 * - Fix a spelling mistake in a log message
 * - Align colors to overhauled color palette
 * - Check for null value of template params to avoid js error
 * - Use the id of a visible template fragment for alignment and restore
 * - Alignment and editor positioning corrections for multipart templates
 * - Don't show edit indicator when template cannot be adapted
 * - When target template not available use UI language for template card
 * - Update for API error i18n
 * - Avoid leaking template editor code to published article
 * - Some whitespace fixes in TemplateParamOptionWidget
 * - Do not show placeholders for additional fields
 * - Optimize png images with optipng -o7
 * - Remove duplicated entry in .jshintrc
 * - Do not show 'use equivalent' action if not equivalent template present
 * - Manual template param adaptation using placeholder
 * - Try to fix broken plurals on Special:CXStats
 * - Templates: Editing support and adaptation controls

DonationInterface

 * - Make minfraud weighting more readable
 * - Allow weighting Minfraud response
 * - Make sure tests fail on missing response file
 * - Crappy workaround for zip / postal_code mismatch
 * - More CSS fixes
 * - s/max-width/max-device-width/g
 * - s/max-device-width/max-width/
 * - More unused CSS cleanup
 * - Nirzar's mobile css fixes
 * - Set viewport meta tag on forms
 * - Update inline error reference to use order_id
 * - Show reference # for inline errors
 * - Add a dismiss button to mailcheck suggestion
 * - Default errors links to donate@
 * - Get rid of some unused CSS
 * - Remove unused MinfraudActionRanges global

Echo

 * - Align Email format with Wikimedia color palette
 * - Add Russian special page aliases for Ukrainian for backwards compatibility
 * - Fix missing doublecheck icon on Special:Notifications on mobile
 * - build: Replace jscs/jshint with eslint
 * - Remove mention of EchoBasicFormatter
 * - Add a primary key to the echo_notification table

EducationProgram

 * - Add Russian special page aliases for Ukrainian for backwards compatibility

ElectronPdfService

 * Newly deployed extension

EventBus

 * - Don't try to get revision ID for a link update if no revision triggered it

EventLogging

 * - Remove use of deprecated "json" module

FlaggedRevs

 * - Align colors with Wikimedia color palette
 * - Add Russian special page aliases for Ukrainian for backwards compatibility
 * - Add grants for FlaggedRevs permissions

Flow

 * - Stop assigning rights to the nonexistent 'suppress' group
 * - Flow.alias.php translations for bengali
 * - Flow.namespaces.php translation for বাংলা (bn)
 * - Follow-up 21a2cdb550: Stop passing config parameter to dm.List
 * - build: Replace jshint/jscs with eslint
 * - Delete unused flow_subscription table
 * - Stop logging when rows can't be formatted because of permission exception
 * - Adjust to breaking change Icca471541173 in VisualEditor
 * - Remove wgResourceLoaderLESSImportPaths
 * - Clean up end markers of /* comment blocks */
 * - Simplify 'vendor' in .gitignore
 * - Fix editing the titles of topics with summaries
 * - Use rollbackMasterChanges instead of rollback in SubmissionHandler
 * - Add primary keys to the remaining Flow tables

Gadgets

 * - Add Russian special page aliases for Ukrainian for backwards compatibility
 * - Implement support for 'hidden' feature in MediaWikiGadgetsDefinitionRepo
 * - Remove redundant 'position', 'top', and getPosition code
 * - Default to type=general for styles-only gadgets having dependencies

GettingStarted

 * - Remove use of deprecated "json" module
 * - Fix qqq parameter

GlobalBlocking

 * - Add Russian special page aliases for Ukrainian for backwards compatibility

GlobalCssJs

 * - Remove redundant getPosition code for ResourceLoader

GlobalUsage

 * - Add Russian special page aliases for Ukrainian for backwards compatibility

Graph

 * - build: Bump eslint-config-wikimedia to v0.3.0 (already passes)

Interwiki

 * - Add Russian special page aliases for Ukrainian for backwards compatibility

JsonConfig

 * - Added "sources" field to tabular & map data

Kartographer

 * - Import wmui-base.less and override leaflet style to match wikimedia style.
 * - Implement second phase of event logging
 * - Track mapframes and maplinks separately
 * - Maplink icon with a hole of smaller size
 * - build: Bump eslint-config-wikimedia to v0.3.0 and make pass
 * - Get mapdata from Gerrit

Math

 * - build: Bump eslint-config-wikimedia to v0.3.0 (already passes)

MobileFrontend

 * - Fix empty watchlist views
 * - EditWatchlist should always show 'List' as active
 * - Always declare dependencies
 * - Overlay should have white background
 * - Add Russian special page aliases for Ukrainian for backwards compatibility
 * - Remove MinervaTemplateBeta.php
 * - Don't show the notifications bell button/badge on Special:Notifications
 * - qunit: Don't assume synchronous Deferred.resolve
 * - Feature flag categories
 * - eslint: Enable wrap-iife
 * - eslint: Enable valid-jsdoc
 * - build: Replace jshint+jscs with eslint
 * - Hygiene: use constants
 * - Hygiene: Generate user page talk icon via ResourceLoaderImage module
 * - Fix for ios talk overlay when virtual keyboard open
 * - Scope talk styles to talk overlay
 * - Hygiene: Fix code coverage execution
 * - Don't show icon on talk button
 * - Fix MobileContext::getBaseDomain method
 * - Fix onOutputPageBeforeHTML hook when getTitle returns null
 * - Avoid a flash of unstyled content on most tablet devices
 * - Remove unused imports
 * - Tests: Add test coverage for Page:getThumbnails
 * - Fix PHPDoc and JSDoc tags
 * - Correct flex display for thumbnail contents on mobile
 * - Update for API error i18n

MultimediaViewer

 * - Support opening MultimediaViewer when clicking on a thumbnail in a list of media search results
 * - Change mw.Map( false ) to mw.Map
 * - Make performance statsv call sampled
 * - Replace colors with overhauled WCAG 2.0 compliant palette
 * - Remove double spaces
 * - Fix broken tests

NavigationTiming

 * - Remove use of deprecated "json" module
 * - Don't report stats when page visibility changes during page load

Nuke

 * - Add Russian special page aliases for Ukrainian for backwards compatibility

OATHAuth

 * - Disable page was using the OAuth throttler instead of OATH
 * - Improve legibility of secret and tokens
 * - Disable autocompletion of one-time tokens
 * - Trim surrounding whitespace and seperators from tokens
 * - Make OATHAuth messages use consistent "two-factor authentication" wording
 * - Rename openstackmanager- to oathauth-
 * - Put initial focus on token field
 * - Rename Special:OATH to Special:Two-factor authentication
 * - Provide a stable method for checking whether a user has enabled OATH
 * - Hide empty square for QR code with CSS for no-JS users
 * - Get rid of separate ext.oathauth module

OAuth

 * - Update firebase/php-jwt from v3.0.0 to v4.0.0

ORES

 * - Use getThreshold instead of getDamagingThreshold
 * - Use darker shade of yellow
 * - Use darker shade of yellow
 * - Visually report damaging confidence
 * - Follow-up c3ee00bc: fix "Invalid option hidenondamaging" error
 * - Add some more PHPCS sniffs
 * - Documentation, deprecation and code style fixes
 * - Clean up end markers of /* comment blocks */
 * - Introduce stylelint
 * - Update dependencies and add missing license/repo information
 * - Only pull in damaging scores when damaging model is enabled
 * - Update for API error i18n
 * - Add "Lowest" ORES sensitivity

PageAssessments

 * - Make sure project name is set and not an empty string
 * - Add a maintenance script for purging unused projects

PageForms

 * - Added tab index for map inputs
 * - Removed call to OutputPage::getHeadScripts - removed in MW 1.28
 * - Cosmetic fixes to PF_AutoeditAPI.php
 * - Fix for e3f2972d7fe7
 * - e3f2972d7fe7

PageImages

 * - Wrap waitForReplication in try/catch
 * - Add job queue option for initImageData maintenance script
 * - Choose the best image
 * - Return any image, not just the non-free image
 * - Cleanup InitImageData
 * - Page images return non-free images by default
 * - Fix phpcs warnings and errors
 * - Allow querying non-free images too
 * - Add phpunit tests
 * - Add phpunit tests

PageTriage

 * - Display sidebar in RTL/LTR correctly

PagedTiffHandler

 * - Move FileExtensions out of Config section

ParserFunctions

 * - Add Russian magic word aliases for Ukrainian for backwards compatibility

ParsoidBatchAPI

 * - Use namespaced version of IPSet

ProofreadPage

 * - Make Special:IndexPages transcludable and with parameters

Renameuser

 * - Add Russian special page aliases for Ukrainian for backwards compatibility

RevisionSlider

 * - Add missing dependency on mw.Uri
 * - Don't show opt-out preference for betafeature
 * - Fix typos in README
 * - User preference to disable the Extension
 * - Don't replace all tabs on update
 * - Fix HelpDialog.js creates a window without a static name
 * - Use mw.Map#get instead of mw.Map#values
 * - Fix line height in help dialog
 * - Adjust colors to color palette
 * - Fix word-break CSS
 * - eslint: Remove old jshint/jscs refs, fix exceptions
 * - Fix padding for toggle button element
 * - Fix / Change autoexpand metric name
 * - Flip toggle button in 2 missing cases
 * - Clean up logging in code
 * - build: Bump eslint-config-wikimedia to v0.3.0 and make pass

Score

 * - build: Replace jshint/jscs with eslint

Scribunto

 * - Add Russian magic word as backwards compatibility for Ukrainian

SecurePoll

 * - Add Russian special page aliases for Ukrainian for backwards compatibility
 * - Document all messages for SecurePoll
 * - Update deprecated form attribute name
 * - Don't use jquery.ui.datepicker in SecurePoll

SiteMatrix

 * - Add Russian special page aliases for Ukrainian for backwards compatibility

SyntaxHighlight_GeSHi

 * - build: Replace jshint/jscs with eslint

TemplateSandbox

 * - Add Russian special page aliases for Ukrainian for backwards compatibility

Thanks

 * - Prepare for API error i18n

TimedMediaHandler

 * - Add magic words localization for Ukrainian and Russian
 * - Fix comment blocks
 * - Remove minified videojs-responsive-layout.js
 * - Check if a property exist, before accessing it
 * - Remove excessive indenting

TitleBlacklist

 * - API: Fix tbnooverride parameter type

Translate

 * - Escape messages in Special:PagePreparation
 * - Escape messages in TranslationHelpers:
 * - Move SpecialPage(Preparation|Migration) to tag
 * - Reset page protection after PageTranslationTaggingText finished
 * - Remove empty inline documentation blocks and lines
 * - Add Russian special page aliases for Ukrainian for backwards compatibility
 * - PageTranslation: do not add line breaks to inline usage of tags
 * - Also remove recentchanges entry for deleted sandbox users
 * - build: Replace jscs+jshint with eslint
 * - Update for API error i18n
 * - Prepare for API error i18n
 * - Rewrite ext.translate.selecttoinput.js
 * - Fix a pagetranslation parser tests

TranslationNotifications

 * - Add Russian special page aliases for Ukrainian for backwards compatibility

TrustedXFF

 * - Update forcepoint/websense trusted xff per email

UniversalLanguageSelector

 * - Update jquery.uls from upstream
 * - Remove use of deprecated "json" module
 * - eslint: Re-enable wrap-iife and dot-notation
 * - build: Bump eslint-config-wikimedia to v0.3.0 (already passes)

UploadWizard

 * - Add Russian special page aliases for Ukrainian for backwards compatibility
 * - mw.UploadWizardLicenseInput: Use OOjs UI event handling for custom textarea
 * - mw.UploadWizardLicenseInput: Tweak custom textarea styling
 * - Replace $.parseJSON by JSON.parse
 * - Remove use of deprecated "json" module
 * - .jshintrc: Disallow unguarded for...in
 * - mw.UploadWizardLicenseInput: Correct unguarded for...in
 * - Update authorship information
 * - mw.GroupProgressBar: Don't display "0 of 0 files uploaded" when starting
 * - Refactor some more dead code
 * - Move flickr interface to upload step
 * - Remove useless empty methods
 * - Have clear load/unload methods
 * - mw.DestinationChecker: Use mw.loader directly when loading titleblacklist
 * - Skip when there are no more uploads
 * - Fix remove-upload callback removal
 * - uw.controller.Step: 'recoverable-error' is still an error
 * - mw.UploadWizardDetails: Centralize publishing error handling and recovery
 * - Add "copy all fields" feature again after having failed to submit
 * - Make failed uploads resumable (after having gone back to tutorial)
 * - Move & improve iOS 5 Safari's lack of upload fix
 * - Get rid of some event handlers in mw.UploadWizard
 * - Comment-out unreliable uw.ConcurrentQueue tests
 * - Move this.uploads, addUpload & removeUpload to controllers
 * - Move logic to display uploads to uw.ui.Upload

VisualEditor

 * - Separate out ArticleTarget as a module
 * - Missing i18n in gallery dialog
 * - Update VE core submodule to master (f4d2cd2)
 * - Allow the gallery dialog to insert duplicate images initially
 * - Respect oldid parameter in NWE
 * - Follow-up I63ab27cb: Get rid of notices tool when there are no notices
 * - Let gallery dialog handle unprefixed filenames
 * - Move around code that sets up edit notices to ensure it runs after we receive the notices to display
 * - init: Initialise 'active' property in mw.Target instead of subclass
 * - Don't re-bind edit tab in DAT when using SET
 * - Update VE core submodule to master (0ef16f0)
 * - Unbreak education popup
 * - Migrate DesktopWikitextArticleTarget code upstream
 * - Allow 'wikitext' to be an empty string in save API
 * - build: Change pathPrefix for eg-iframe back from '../lib' to 'lib'
 * - build: Bring over eg-iframe fixes from core
 * - Update VE core submodule to master (83ea152)
 * - Follow-up I7f1d9fe: Add mwcore dependency
 * - Separate out resources for media search widget
 * - build: Bump eslint-config-wikimedia to v0.3.0 and make pass
 * - Setup htmlBlacklist and add rule for read-mode MW references
 * - Update VE core submodule to master (c8389bd)
 * - Fix handling of failure to load visual mode
 * - Fix attribute.style typo in gallery dialog
 * - Remove max-width from save summary

WikiEditor

 * - Replace deprecated jQuery bind and size
 * - Replace jshint/jscs with eslint/stylelint

WikimediaEvents

 * - Implement second phase of event logging
 * - Rename 'type' field of authevents channel to 'eventType'
 * - visibilitychange: Remove tracking
 * - Add eventlogging for checking how often users are blocked from editing
 * - visibilitychange: Consider all changes to imply hidden

WikimediaMaintenance

 * - Commit passwordAudit.php maintenance script
 * - Handle $wgCirrusSearchWriteClusters being null, add missing global
 * - Take into account that Echo is not always on extension1
 * - Add Flow External Store to addWiki.php

WikimediaMessages

 * - WikimediaMessages configuration for the new fi.wikivoyage.org
 * - Fix a GettingStarted message for a change in that extension

timeline

 * - Remove unused i18n shim
 * - Add mediawiki-codesniffer

wikihiero

 * - Revert "Remove obsolete hiphop code"

Vector

 * - vector.js: Replace deprecated jQuery bind with on