MediaWiki 1.29/wmf.7/Changelog

Core changes

 * - Revert "Protect language converter markup in the preprocessor."
 * - Update git submodules
 * - Update git submodules
 * - Proper instantiating of QueryPage special pages in QueryAllSpecialPagesTest
 * - Disable statistics update on import with maintenance/importDump.php
 * - tests: speed up fetchTextTest
 * - Add reciprocal language fallback for nn and nb (Norwegian)
 * - Remove unused static methods in LanguageConverter subclasses
 * - Do not try to change directory when running Phan tests with no params
 * - Added $wgHTTPImportTimeout setting
 * - Fully deprecate 'ContentAction' hook
 * - Add tags support to userrights
 * - Converted Special:Tags to OOUI
 * - Avoid passing $this by reference in hooks
 * - jquery.tablesorter: Sort invalid elements as -Infinity
 * - Removed deprecated Title::moveNoAuth function
 * - Removed deprecated class ImageGallery
 * - Remove WebRequest::checkSessionCookie method as being deprecated
 * - Fix wrong class name for ImageGalleryBase in comments
 * - Replace mocks of DatabaseMysql by DatabaseMysqli
 * - Remove doubled title on Special:MIMESearch
 * - TitleValue: Include the invalid DB key in the message when throwing
 * - Improve strings for the contentmodel log
 * - Add a 'ChangeUserGroups' hook in Special:Userrights
 * - Add 'UnblockUser' and 'UnblockUserComplete' hooks to Special:Unblock
 * - Replaced &$this with $this
 * - Add ->text to prevent double HTML escaping
 * - Change the punctuation of apierror-baddiff
 * - Replace some usages of &$this in hook parameters
 * - Add release notes for recent language fallback additions
 * - EditPage: Avoid use of &$this in hooks
 * - Fallback io (Ido) to eo (Esperanto)
 * - Language fallback from Pontic (pnt) to Greek (el)
 * - Reciprocal language fallback for Upper/Lower Sorbian (hsb, dsb)
 * - RaggettWrapper: Don't use ReplacementArray
 * - Database: Avoid internal use of ignoreErrors
 * - Remove incorrect deprecated notice from function WikiRevision::getText
 * - mediawiki.ui: Explicitly define input text color
 * - moved Exception classes from ContentHandler.php
 * - Replace &$this with $this in MediaWiki/core hook system
 * - Edit stash: Simplify with postWithToken
 * - Add populateInterwiki maintenance script
 * - Add id attribute to error message "mw-error-cannotundelete"
 * - Fix rendering issues on RecentChanges Special page
 * - Adding white background color to thumbimages (i.e. framed images)
 * - Make SpecialPage::getLinkRenderer public
 * - Add missing properties to MailAddress class
 * - Allow PHAN location to be read from PATH
 * - Remove &$this usage
 * - Remove duplicate message movepage-max-pages
 * - build: Karma proxy should convert Host header
 * - Sync up with Parsoid parserTests.
 * - Don't parse language converter markup as a cell parameter in tables.
 * - Align mw.widgets.DateInputWidget to OOjs UI's MediaWiki theme widgets
 * - Fix tests that don't check composer's autoloader
 * - Add a caught_by context field to exceptions
 * - Avoid pointless use of isset in LBFactoryMulti
 * - Default block-cookies to 24 hours only
 * - Allow HTML tags in LanguageConverter output.
 * - Remove FSRepo
 * - Remove FileRepoStatus references
 * - Special:RC filter: userExpLevel
 * - CoreParserFunctions: Use Title::inNamespace instead of manual comparison
 * - mediawiki.api.watch: Remove the uselang parameter in POST
 * - mediawiki.requestIdleCallback: Improve documentation
 * - Check for expiry dates in a 10-second window
 * - Pin eslint version
 * - Work around &$this usage in SkinTemplate
 * - Do not lose message parameters in UploadFromChunks::verifyChunk
 * - upload: Avoid &$this in hooks
 * - Protect -{...}- variant constructs in galleries
 * - Protect -{...}- variant constructs in images.
 * - Use FileBaseSiteLookup if $wgSitesCacheFile is set.
 * - Add `showThumbnails` option to slideshow galleries
 * - ApiQueryWatchlist: Handle empty wltypes
 * - ApiWatch: Set 'missing' to true, not 1
 * - Fixes and tests for ApiErrorFormatter ILocalizedException handling
 * - wfMessage: use Message::params to handle all the message parameters
 * - ApiTag: Return 'noop' as a boolean in formatversion=2
 * - Title: Fix subpage move error reporting
 * - Update date format for Wu language
 * - API: Add action=validatepassword
 * - ApiMove: Fix fatal when attempting to move to a namespace with no talkpages
 * - Do not exit the run method in case of a missing rev
 * - Fix RevDel API output for formatversion=2
 * - Pass undone revision id to PageContentSaveComplete hook
 * - ApiEditPage: Avoid PHP warning
 * - Parser functions now format numbers according to page language (2nd attempt)
 * - build: Update phpunit to 4.8.31
 * - HTMLForm: Use 'mw-htmlform' CSS class
 * - HTMLFormFieldCloner: Set 'formnovalidate' on add/remove field buttons
 * - Remove unused Phan exception
 * - Rewrite importImages.php to use Maintenance infrastructure
 * - Turn $wgRunJobsAsync off by default
 * - Move the Ukrainian grammar rules from PHP and JS to JSON
 * - Move TempFileRepo to a separate file
 * - Fix deprecation message - use correct method name (defaultPrefixSearch)
 * - user: Minor clean up of User::isLocallyBlockedProxy
 * - mediawiki.special.watchlist: Fix render stampede after "Mark all pages visited"
 * - mediawiki.api: Add test for api deferred rejection of errorformat!=bc
 * - jquery.tipsy: Remove support for 'live' option
 * - mediawiki.searchSuggest: Remove inline browser compat check
 * - Adjust phan script to run sub-projects
 * - SearchInputWidget: Support searching a namespaces besides 0
 * - Fix type annotation
 * - tests: Fix broken setup/teardown in mediawiki.language.test.js
 * - Remove deprecated function User::isPasswordReminderThrottled
 * - Remove 2 deprecated functions from class User
 * - Change linking Special:PageLanguage on action=info
 * - registration: Always specify version number in extension.schema.json file
 * - WatchedItemStore::setNotificationTimestampsForUser: Allow clearing timestamp
 * - Fixing mediawiki's য় problem
 * - TitleWidget: Cache siteinfo API response
 * - Add the concept of "system blocks"
 * - More properly fix error message
 * - Make the code for grammar data processing common
 * - Don't show dialog to confirm whether to reset watchlist
 * - Remove un-necessary stdClass use
 * - Fix various minor IDEA warnings in LoadBalancer
 * - Add NS_TEMPLATE to wgNamespacesWithSubpages in DefaultSettings.php
 * - resourceloader: Include backtrace in formatted errors (if enabled)
 * - Decrease the number of 'function says it should return something' errors
 * - Protect language converter markup in the preprocessor.
 * - resourceloader: Don't let module exception break startup
 * - registration: Improve dependency checking
 * - Fix undefined $param
 * - Fix type annotations
 * - Minor adjustments to align with WikimediaUI color palette
 * - Fix two instances of calling function with too few args
 * - mediawiki.special.watchlist: Optimize JavaScript code
 * - Correct DatabaseSqlite::unionQueries annotation
 * - IcuCollation: Add the current class name to 'first-letters' cache key
 * - Add CollationFa
 * - Set $linktrail for MessagesKu_latn.php
 * - SpecialRunJobs: Use wfHttpError to generate error messages
 * - RELEASE-NOTES: Fixup for dfb50ab9f3
 * - Make DifferenceEngine's markPatrolledLink and getRevisionHeader public so that hooked functions can use them where needed
 * - A few more hooks in DifferenceEngine
 * - Sync up with Parsoid parserTests.
 * - registration: Allow specifying extension dependencies
 * - registration: Generalize CoreVersionChecker to VersionChecker
 * - Fix parameter type docs
 * - Document type of LogEntry::isPatrollable property
 * - mediawiki.special.apisandbox: Avoid bitwise tricks when checking for integers
 * - mediawiki.page.watch: Avoid dynamic message keys
 * - Fix assigning void return value to a variable
 * - Fix small typos in includes/lib/lockManager/LockManager.php
 * - API: Expose wfIsBadImage in prop=imageinfo
 * - Apply color palette change also to wikitable cell border
 * - Add googleweblight to JS blacklist
 * - Fix PhanTypeInvalidLeftOperand in Language.php
 * - Add script to support per-line @suppress annotations in Phan
 * - Export: Use BCP 47 language code for attribute xml:lang
 * - Adjust phan to allow for making progress strengthening analysis
 * - Convert legacy bugs ID to Phabricator tasks ID for Parser class
 * - Always show exceptions of type 'error' in LTR
 * - Cleanup some incorrect return annotations
 * - "Image size limit" text should always read left-to-right
 * - The automatic test in MediaWikiTestCase was marked as risky
 * - Add LoadBalancer::getMaintenanceConnectionRef method
 * - Escape return path extra params to php mail
 * - Back off from job types longer for DB read-only errors
 * - Add ILocalizedException interface
 * - Message: Fix buggy parameter handling in Message::params
 * - A full word instead of an acronym for the revid message
 * - Enable supplying inline interwiki results
 * - mw.htmlform: Fields hidden with 'hide-if' should be disabled
 * - MessageCache invalidation improvements
 * - SpecialUserrights: Use session data instead of URL parameter for success
 * - Add maintenance/view.php for viewing page contents
 * - Add externallinks.el_index_60 column and indexes
 * - Fix linking Special:ChangeContentModel from action=info
 * - Optionally collect context in TestLogger
 * - mediawiki.api.watch: Use formatversion=2 for API requests
 * - Add dotall modifier to EDITSECTION_REGEX
 * - Add <!DOCTYPE html> to HTML responses

Vendor
No vendor changes

AbuseFilter

 * - Cast stashed values to integer
 * - Fix typo in abusefilter-edit-builder-vars-user-age
 * - Add GENDER to the message logentry-abusefilter-hit
 * - Allow users with abusefilter-view-private to read private filters via API.
 * - Activate grunt-banana-checker
 * - Properly use "the" article in AbuseFilter messages
 * - Move AbuseFilterVariableHolder up to /includes
 * - Don't show red diff link
 * - Move various classes to their own files
 * - Don't show link to testing interface when the user cannot test filters
 * - GENDER should be used for "triggered" in AbuseFilter log messages

AntiSpoof

 * - Adding Ø -> O to equivset for AntiSpoof

ApiFeatureUsage

 * - extension.json: Add dependency upon Elastica
 * - Drop pre-1.29 backwards-compatibility

Babel

 * - Use content language for Babel AutoCreate's edit summaries
 * - Correct categorization of 'pt-br' and similar language codes

CentralAuth

 * - Fix case of OutputPage::setPageTitle
 * - Fix failing tests after adding tags parameter to core ApiUserrights
 * - Update Maintenance scripts to use requireExtension
 * - Handle invalid names in CentralAuthGroupMembershipProxy::newFromName
 * - Adding $writing param to match param signature of parent function
 * - Add Czech aliases
 * - Remove non-helpful @param documentation from CentralAuthPlugin
 * - Fixing mediawiki's য় problem
 * - Fix tons of incomplete PHPDoc blocks
 * - Convert Special:GlobalRenameRequest to OOUI

CheckUser

 * - CIDR finder should allow spaces around the minus character

CirrusSearch

 * - Allow extensions to hook features
 * - Report all syntax in stats, also add syntax to the log
 * - Refactor search context - get rid of search type
 * - Some relforge global settings
 * - Enable ICU folding for hebrew
 * - Do not return the current wikis when detecting query languages
 * - Add text description of config vars

Cite

 * - Make properties/methods in Cite private

CiteThisPage

 * - Add a possibility to add a "cite this page" link without adding the NS as a content namespace

CodeEditor

 * - Use OOUI for confirm dialog
 * - CodeEditor depends on WikiEditor
 * - Function docs for Hooks

CodeReview

 * - Replaced deprecated Linker::link usages

Collection

 * - Add grunt-banana-checker
 * - Remove empty message key from i18n file

ConfirmEdit

 * - Update Maintenance scripts to use $this->requireExtension

ContentTranslation

 * - Spanish alias to ContentTranslation.alias.php
 * - Stylelint: Fix Unexpected value "none" for property "border"
 * - Update list of supported browsers
 * - Use new recommendation tool API
 * - Remove duplicate and unused message keys from api/en.json
 * - Fix stylelint errors: Part 1
 * - Fix eslint error
 * - Revert "Temporarily disable template, category related tests"
 * - Fix header on Special:CX when translating
 * - Exit the template editing mode when the user moves to a different paragraph

DonationInterface

 * - Update (only) phpmailer in composer.lock
 * - Revert "update composer.lock"
 * - update composer.lock
 * - Add 'maxlength' attributes to personal info fields
 * - Adyen iframe form fields should be white on mobile

Echo

 * - Fixed variable interpolation in DataOutputFormatter.php
 * - Add GENDER support to a few Echo messages
 * - Fix typos and incomplete PHPDoc tags
 * - Use the right counter for the right badge
 * - Fix generation of sample 'reverted' notifications
 * - Adjust unread counter position based on length
 * - Get undone revision id from hook param instead of request
 * - Make mw.echo.alert text darker to pass WCAG test
 * - Split API messages to a separate file
 * - Follow-up d66771523c2: unbreak ext.echo.emailicons module

ElectronPdfService

 * - Load main CSS quicker

EventBus

 * - Fix for missing rev_id in page properties change event

ExtensionDistributor

 * - Use lowercase letters for query string params
 * - php: Use new array syntax
 * - Replace IDs with classes
 * - Use ActionFieldLayout for dropdown+button
 * - build: Replace jshint/jscs with eslint & stylelint

FlaggedRevs

 * - Use strlen to get length of string
 * - Replace deprecated attribute "width" with CSS "width" property
 * - Autopromote: Remove superflous condition in APCOND_EDITCOUNT

Flow

 * - Always use plaintextParams with getContentSnippet to prevent double-parsing
 * - FlowFixInconsistentBoards: Run in update.php, fix updatelog
 * - ApiFlow: Determine write mode on a per-submodule basis
 * - ApiFlow: Clean up submodule handling
 * - Make 'flow-skip-summary' clearer

FundraiserLandingPage

 * - Fix case of OutputPage::setPageTitle

GWToolset

 * - Replaced deprecated Linker::link usages

Gadgets

 * - Explicit convert the Message object to string
 * - Convert PHP syntax from array to []
 * - Use setPageTitle instead of setPagetitle
 * - Use wfLoadExtension in README.md
 * - Change documentation and comments from HTTP to HTTPS

GeoData

 * - Move geosearch features to GeoData extension.

GlobalBlocking

 * - Add Czech aliases for special pages
 * - Fix T153153 - method_exists takes to args, not an array.

GlobalCssJs

 * - Remove duplicate message keys from core/en.json

GlobalUsage

 * - Avoid duplicate @doc in extension.json

GlobalUserPage

 * - Use canonical URL as source URL

Graph

 * - Bumped shared lib - map: protocol support
 * - Use renamed TransactionBuilder

JsonConfig

 * - Add missig lat/lon/zoom for action=jsondata api
 * - Improve tabular data styling and bring consistency with M82
 * - Reindex tabular data array for easier lua access

Kartographer

 * - Upgrade mapdata lib to fix a bug on rowiki
 * - Replace deprecated mediawiki.UI Less variables with current ones
 * - Remove /* @noflip */ Leaflet's CSS fixes
 * - Fix projection [not used anywhere though]
 * - Add Terms of Use link on static and dynamic maps
 * - Fix fullscreen map not closing properly
 * - Implement third phase of event logging (Wikivoyage specific)

LiquidThreads

 * - Activate grunt-banana-checker
 * - Replaced deprecated Article::doEdit(
 * - Replaced Linker::link & Linker::linkKnown with LinkRenderer

LocalisationUpdate

 * - Start showing warnings for deprecated PHP entry point

Math

 * - Do not ignore all .mli files in texvccheck
 * - Remove unused Makefile variable "DIRS"
 * - Remove broken test script texvccheck/test.pl
 * - Fix "make texvccheck" in top-level Makefile
 * - Do not ignore .mli files
 * - Add class `mwe-math-element` to math elements
 * - Updated maintenance scripts to use $this->requireExtension

MobileFrontend

 * - Replace deprecated mediawiki.UI Less variables with current ones
 * - Use NS_* constants instead of hardcoding
 * - Replaced Linker deprecated functions with LinkRenderer
 * - Remove unneeded padding from Special:Mobiledif
 * - Hygiene: rename a variable
 * - Hygiene: Tidy SpecialMobileOptions module listing
 * - Incorrect thumbnail file URLs bug fix
 * - Special:MobileOptions: don't load font changer module unconditionally
 * - Add Czech aliases
 * - Feature flag "BackToTop"
 * - Do not disable CentralNotice in beta
 * - Feature flag FontChanger
 * - Test and correct behaviour of getSectionId
 * - Use getimagesizefromstring instead of getimagesize
 * - Show the user icon on watchlist page
 * - Fix linting issues due to upgrade on eslint-config-wikimedia

MultimediaViewer

 * - Copy button for attribution text in download dialog
 * - Add button to select and copy share/embed text to clipboard
 * - Add alt text attributes to all of the lightbox buttons
 * - Use [] instead of array syntax for PHP

MwEmbedSupport

 * - Remove eclipse project file

Nuke

 * - Change "Go" to "List pages"

OATHAuth

 * - Rename api example message of oathvalidate
 * - Add Czech aliases

OAuth

 * - Update Maintenance scripts to use $this->requireExtension
 * - When authorizing, differentiate mwoauth-authonlyprivate from mwoauth-authonly or basic
 * - Fix typo in function name

ORES

 * - Split simple and js-based styles

OpenStackManager

 * - Fix case of OutputPage::setPageTitle

PageAssessments

 * - Add check for extension installation to maintenance script
 * - Add autocompletion to search fields
 * - Re-index the array of excluded namespace IDs
 * - Adding IGNORE in case 2 records for the same project are added at once
 * - Updating version and authors for PageAssessments extension
 * - Switch projects API from property query to list query

PageForms

 * - Typo fixes
 * - Superfluous \n in PageForms changes how checkboxes render in a table
 * - Fix E_NOTICE
 * - Activate grunt-banana-checker
 * - Support disabling rating input.

PageImages

 * - Provide test case for getPageImageCandidates

PageTriage

 * - Fix case of OutputPage::setPageTitle
 * - Add MessagePoster/Flow support to PageTriage, fix related issues
 * - speedy deletion-previously deleted takes a page name, not a URL
 * - Fix check for content text

ParserFunctions

 * - Stop using deprecated core UtfNormal

ParsoidBatchAPI

 * - Add grunt-jsonlint
 * - Expose wfIsBadImage for images

Popups

 * - Use Array.prototype.indexOf instead of $.inArray

ProofreadPage

 * - Fixes ProofreadPage parser tests
 * - Makes sure that "Proofread tools" toolbar is always loaded after Page: pages edit interface setup

Quiz

 * - Added valid composer.json

RevisionSlider

 * - Pin eslint version
 * - Check if QUnit tests are language-setting-proof
 * - Revert "Reset custom separator transform tables in number formatting tests"
 * - RevisionSlider should always be on top of the page
 * - Load bar arrow on left for RTL languages
 * - Reset custom separator transform tables in number formatting tests

Scribunto

 * - Adding i18n for the Module tab
 * - Changing jshint configuation
 * - Ustring: Let gcodepoint work with moderately long strings

SecurePoll

 * - Add grunt-jsonlint

SiteMatrix

 * - Fixing mediawiki's য় problem

TemplateData

 * - Extend 'format' spec to include custom format strings.

TemplateSandbox

 * - Introduce eslint and bump dependencies
 * - Fix language attributes for the embedded content

Thanks

 * - Remove unneeded devDependencies "jshint"
 * - Replaced thanks-ltr/rtl (secondary) icons with larger thanks-green-ltr/rtl (main) icons
 * - Replaced PNG icon with SVG icons for Thanks notifications

TimedMediaHandler

 * - Sync video.js version in package.json to what's in the repo

TorBlock

 * - Update Maintenance scripts to use $this->requireExtension

Translate

 * - Use HTML tags as insertables for MediaWiki messages
 * - Remove no longer needed method_exists guards
 * - Implement plural aware message content comparison
 * - ApiQueryMessageGroups: pass context to get descriptions in user language
 * - TPSection: remove bogus parameter to isInline
 * - SpecialPageTranslationDeletePage: Use 'wpReason' for consistency
 * - Display outdated page translations as such, without removing them
 * - Introduce includeMetadata option to JsonFFS
 * - Fixing mediawiki's য় problem
 * - Align language bar with Wikimedia UI color palette

UniversalLanguageSelector

 * - Update jquery.uls from upstream
 * - Start showing warnings for deprecated PHP entry point
 * - Update jquery.uls from upstream
 * - Update jquery.uls from upstream

UploadWizard

 * - uw.DescriptionsDetailsWidget: Update styles for spacing between multiple descriptions
 * - Fixups for API error reporting refactoring
 * - Use parsed error messages straight from API
 * - Standardize on `code, result` params for deferred rejections
 * - Use mw.Api instead of XMLHttpRequest
 * - eslint: Enable valid-jsdoc
 * - Replace jshint/jscs with eslint
 * - mw.UploadWizardUpload: Actually allow overriding AbuseFilter warnings
 * - mw.FormDataTransport: Update check for already completed chunked uploads
 * - Use normalised contraints
 * - Remove mw.confirmCloseWindow from mw.UploadWizard.js

VisualEditor

 * - build: Bump file copyright notices for 2017
 * - Update VE core submodule to master (da4a0b5)
 * - Replace all usages of Linker::link with LinkRenderer
 * - Fix NWE-only edit tab
 * - Use preferred number casting method
 * - Allow switching between 'edit source' and 'add topic'
 * - Use mw.Message#parseDom where appropriate
 * - Move translate extension hack up to 'isAvailable'
 * - Preserve checkbox data when switching from VE to NWE
 * - Add comments in some places where we really want to treat messages as HTML
 * - ve.init.MWWelcomeDialog: Don't treat text messages as HTML
 * - Ensure document base is always correct, even in source mode
 * - Change wikitext link inspector name to avoid conflict
 * - MWTemplatePage: Show a link to the template even when there's a description
 * - Updated VisualEditor maintenance scripts to use $this->requireExtension
 * - Update VE core submodule to master (f8fc228)
 * - Add shortcut for show preview and resolve access key conflicts
 * - Show HTTP status alongside 'Unknown error' when it's not 200
 * - Fix I0e802a47: Don't try to send dieWithError error codes as integers
 * - Wrap localStorage.getItem calls in try { ... } catch {}
 * - Resolve URLs in show preview against correct base
 * - Properly clear this.section when switching from VE
 * - Fix wikitext handling of DataTransferHandlers when IVStore is used
 * - Fix DataTransferHandlers when loading source editor directly (no etag)
 * - Use deep clone for empty convertFromSource
 * - Extra section title for edit summary in source mode
 * - i18n: Point to a better page for NWE feedback
 * - Follow-up Ic1f1de26: Fix typo in edit tab selector
 * - DesktopArticleTarget: Generate the original page title if needed
 * - SaveDialog: Align colour palette and ensure sufficient contrast
 * - Show save button on show preview page
 * - Fix logic for create accesskey=v, and bind to onEditTabClick
 * - Get content format from EditPage, instead of guessing 'text/x-wiki'
 * - getlanglinks: Get rid of backwards-compat stuff

WikiLove

 * - Add grunt-jsonlint
 * - Add npm entry point and banana i18n linter
 * - Remove duplicate license-name in extension.json

WikimediaEvents

 * - Add php-parallel-lint
 * - geoFeatures: Remove dead code and minor optimisations

WikimediaMessages

 * - Add grunt-jsonlint
 * - Remove links to main page from interlanguage search messages
 * - Add npm entry point and banana i18n linter
 * - Add empty metadata block to i18n files for banana check
 * - Fix spelling of accusative and locative in comments

intersection

 * - Remove deprecated usages of ImageGallery

MonoBook

 * - Remove empty message key from i18n file

Vector

 * - Specify height of tabs
 * - Use global variable for tablet media query in responsive.less