MediaWiki 1.25/wmf18/Changelog

Core changes

 * - Parse &quot;retrievedfrom&quot; and &quot;lastmodifiedat&quot;
 * - Flush any implicit transactions in RecentChangesUpdateJob
 * - PostgreSQL: Improve dropping of foreign key constraint
 * - Fixed backwards $group check in LoadBalancer
 * - skin: Use Title::isKnown / Title::exists instead of Title::getArticleID
 * - Fix TOC anchor name collisions in edge cases
 * - mediawiki.skinning: Merge toccolours into css rule for toc and mw-warning
 * - [schema] Make column user_newtalk.user_id an unsigned int
 * - mediawiki.ui: button: Use the correct background color for disabled buttons
 * - Document mw.libs better
 * - registration: Improve merging of arrays
 * - Made EditPage avoid querying the master block table on form view
 * - Fix URL comparison used for cacheability decision
 * - test: Remove several jscs over-rides and make the code pass
 * - Improve title text in jquery.confirmable
 * - mediawiki.user: Clean up crypto version of generateRandomSessionId
 * - mediawiki.mixins.less: Do not serve SVG to Opera 12 when fallback available
 * - Make HTMLTagFilter disappear totally when $wgUseTagFilter = false
 * - Use both Latin and Cyrillic for Uzbek in Names.php
 * - jquery.makeCollapsible: Align toggle based on content language
 * - Check use of RC patrol for watchlists
 * - Pass the right variable to recordQueryCompletion
 * - test: Don't run the npm pipeline for the now-empty skins directory
 * - Replace dev.w3.org with more permanent or stable urls
 * - mediawiki.ui: Fix .mw-ui-input padding to be centered vertically
 * - htmlform: Simplify implementation of loadDataFromRequest
 * - Update MWLoggerMonologHandler for Monolog 1.12.0
 * - mediawiki.cookie: Implement expiry option as time from now
 * - Add File::getDescriptionTouched method
 * - Fix magic getter for $status-&gt;ok
 * - Using cryptoAPI if available in generateRandomSessionId
 * - UnregisteredLocalFile.php: Override File::getBitDepth stub
 * - SpecialMediaStatistics: Protect against invalid indexes
 * - Fix spammy &quot;Writes done&quot; debug message
 * - Define the context field in LogFormatter
 * - Slightly increase wikitable padding
 * - Improve namespaceDupes.php
 * - Expose installed libraries in action=query&amp;meta=siteinfo
 * - Add .list-style-image-svg
 * - Removed deprecated RefreshLinksJob2 class
 * - Make Profiler::$instance private and drop double underscores
 * - Chunked upload: Return expected offset on offset error
 * - backupTextPassTest: Disable checkpointHelper test
 * - Make eval.php try to handle newlines in code
 * - mediawiki.jqueryMsg: Refactor &quot;Match PHP parser&quot; test suite
 * - SpecialWhatlinkshere: Mark redirects containing templates
 * - Update OOjs UI to v0.7.0
 * - Fixed FileRepo::newGood handling of $value
 * - Made BagOStuff::merge take any callable
 * - Added query/connection expectation support to TransactionProfiler
 * - mediawiki.api.login: Include second HTTP request in abort
 * - Use MediaWikiTestCase methods for tempdir in unit tests
 * - filerepo: Use standard method for creating temp dir in unit test
 * - Add Monolog handler for syslog UDP transport
 * - Make ImageGalleryBase member variables protected
 * - Cache countable statistics to prevent multiple counting on import
 * - Made BagOStuff::debug protected
 * - update.php: Add option to not check if external dependencies are up to date
 * - jquery.tablesorter: testcases for the parsers
 * - Handle invalid grouppage on Special:Statistics
 * - Avoid undefined index when query old block logs with api

Vendor

 * - Upgrade monolog to 1.12.0

AbuseFilter

 * - add filter option for local rules only on central wiki
 * - Add license name to credits and add minor config code comment

CentralAuth

 * - Call saveSettings after setting the authentication timestamp
 * - sendConfirmAndMigrateEmail: Add wfWikiId to report output
 * - sendConfirmAndMigrateEmail: Add --resume option
 * - sendConfirmAndMigrateEmail: Add --dryrun option, improve output
 * - sendConfirmAndMigrateEmail: Add --sleep option

CirrusSearch

 * - Remove calls to obsolete recyclePruneAndUndelayJobs function
 * - Make Jenkins helper work with MediaWiki-Vagrant
 * - Add daemonized parameter

Collection

 * - Enable Save button in collection on changing its content

CommonsMetadata

 * - Invalidate the metadata when the file page of a remote file changes

ConfirmEdit

 * - Blacklist &quot;judea&quot;

ContentTranslation

 * - Fix JS errors in CX dashboard
 * - Configuration API to read configuration for language pairs
 * - When cxserver is not reachable show error message in dashboard
 * - Increase the z-index for the CAPTCHA form
 * - Column content style change: make it position: relative
 * - Refactor the feedback link into a plugin
 * - Cleanup ext.cx.translationlist.js code
 * - Fix misspelled variable name
 * - Make condition positive
 * - Log unhandled publishing error to the console
 * - Do not trigger unnecessary input event after publishing
 * - Replace empty target title with original input
 * - Fix CSS class spelling
 * - Fix feedback link icon for RTL
 * - Support new language configuration format
 * - Add middle click handler to links in source column
 * - Do not output empty rows or columns in stats table
 * - Make stats table target languages as links to translations using cx
 * - Fix incorrect numbers on Special:CXStats
 * - Source and target languages should not fallback to user or content language
 * - Reduce the font size of stats table to accommodate more data
 * - Show a confirmation dialog when translator tries to delete translation

Echo

 * - Fixed CPB flyout notification count
 * - More gracefully handle unavailability of ParserFunctions in phpunit
 * - Pass title along to signature parser

EventLogging

 * - Remove obvious function-level profiling
 * - Insertion of duplicate records does not trigger an error if replace=True
 * - Don't create unnecessary engine object
 * - Ping server before inserting rows and reconnect if connection lost
 * - If the DB worker's queue exceeds 100 items, flush immediately

ExtensionDistributor

 * - Remove i18n shim and deprecated API methods

Flow

 * - Give TOC some breathing room
 * - Record topic imports to Special:Log
 * - Add backwards-compat metadata so booleans keep working right
 * - Give TOC some breathing room
 * - Increase editcount for existing Flow revisions
 * - Fix typos
 * - Refactor import postprocessor interface
 * - Gracefully recover from bad references
 * - Option to cache remote api calls on import
 * - Handle LQT moved thread stubs
 * - Fix TOC error caused by there being no TOC on Topic pages
 * - Always log for mw.flow.debug
 * - Import: Fix loop off-by-one error, doc, and make readable
 * - Revert &quot;Get rid of complex unused code&quot;
 * - Get rid of complex unused code
 * - Hygiene: fetch usernames directly in RevisionFormatter
 * - Hygiene: Remove unreachable code
 * - Hygiene: Remove templating class usage from Block implementations
 * - Fix undo-related messages
 * - Always allow creation of flow boards through import
 * - Hygiene: Remove unused $templating class member
 * - Hygiene: urlGenerator is already a class memeber
 * - Don't use DeferredUpdates for the workflow after-load event, plus bot change
 * - Header storage requires workflow as part of metadata
 * - Only generate recentchanges for new revisions, not imports
 * - DeferredUpdates need to be run during import
 * - Increase debug verbosity in import code
 * - Allow toggling debug message from maintenance loggers
 * - Remove obvious function-level profiling
 * - Hygiene: remove unused global
 * - Correctly align timestamps
 * - Remove reply link from topic titlebar
 * - Fix scrunching of TOS on low-width windows
 * - Hygiene: get rid of unused global
 * - Consistently use the same test container
 * - Increase editcount for Flow contributions
 * - Hygiene: Split reference classes for one class per file
 * - Use isKnown instead of exists for user/user talk links in API
 * - Hygiene: add missing phpdoc, remove unused var

GeoData

 * - Remove /* static */ comment before class name

GettingStarted

 * - Update Gemfile.lock

GlobalUserPage

 * - Don't nest &lt;p&gt; inside &lt;strong&gt; in onTitleGetEditNotices
 * - Hook into TitleIsAlwaysKnown instead of LinkBegin
 * - Show an editnotice on local page if a global userpage is currently shown
 * - Don't include &amp;action=edit&amp;redlink=1 in links to global user pages
 * - Add missing $wgAutoloadClasses entry for GlobalUserPageCacheInvalidator
 * - Check $wgUseFileCache
 * - Purge caches after edits to the global user page

LiquidThreads

 * - Remove obvious function-level profiling

Math

 * - Remove obvious function-level profiling

MobileFrontend

 * - Allow other extensions to add or override discovery tools
 * - Editor: Don't ask for confirm leave, if nothing changed
 * - Fix padding left of the menu items in stable
 * - Promote the BannerImage module to beta
 * - Hygiene: Render drawers only when needed
 * - Don't warn about losing input after save
 * - Ask the user if he want to leave the editor
 * - Add clear:both before the page-secondary-actions
 * - Don't add height to watchstar button
 * - Hygiene: Fix false composer phpunit dependency
 * - Don't show edit pencils on main page
 * - Update WikiGrok user token handling for change I71b5ccc588
 * - Prevent search from throwing error for redirects to non-existant articles
 * - Revert some style changes from I7cad9546ca9c932b071b920ba85e0f560f5d7eb2
 * - Reset clicked state of VE editor switcher when loading fails
 * - Refactor the BannerImage module
 * - Restyle banner image and page title on tablet
 * - Remove unused style file
 * - Do not highlight editor switcher buttons
 * - Remove obvious function-level profiling
 * - Hygiene: Move SpecialNearby registration out of extension function
 * - Send WikiGrok responses to wikidata.org
 * - Fix overlapping (sub-) section heading edit links
 * - More sign off comments for I00ee00
 * - Add personal tools hook
 * - Always run the mobileview API image tranform tests

MoodBar

 * - Remove obvious function-level profiling

MultimediaViewer

 * - Fix share tabs
 * - Adapt to OOUI change in dropdown widget
 * - Click in the top-left corner of the image when trying to close the download dialog

Popups

 * - core: Better article link detection
 * - Access native a.href property instead of attribute
 * - core: Add missing leading '.' to oo-ui-buttonedElement-button in IGNORE_CLASSES

Scribunto

 * - Remove obvious function-level profiling

SecurePoll

 * - Call parent::__construct from SecurePoll_BallotStatus
 * - Add missing classes to autoload

SemanticForms

 * - Remove obvious function-level profiling
 * - PHP fix - fix for f200967
 * - Function used for tooltip (#info, etc.) now depends on extensions installed

TimedMediaHandler

 * - ID3: Protect against playtime_seconds and bitrate being undefined
 * - Remove obvious function-level profiling

Translate

 * - Validate and normalize file contents in FFS
 * - Split language details to subpage on Special:SupportedLanguages
 * - Further speed up language cloud query
 * - Fix timestamp filtering for language cloud
 * - Remove unnecessary link batch query
 * - Remove about 700 unnecessary queries
 * - Make purge action behave better
 * - Skip unknown languages in language cloud
 * - Simplify language names fetching
 * - [PagePreparation] Categories kept as a part of page template

UniversalLanguageSelector

 * - Prevent predefined object methods to be interpreted as valid language

UploadWizard

 * - QA: wait for second upload control to appear
 * - QA: update Ruby gems
 * - Add browser test for &quot;upload more files&quot;
 * - Bring back needed getJsonData functionality into Campaign class

VisualEditor

 * - Remove the sanity check
 * - mw.Target: Hopefully fix plugin garbage removal code
 * - Normalize external links from the API
 * - Update VE core submodule to master (4d6cd42)
 * - ve.dm.MWImageNode: Fix indentation
 * - Add tests for MW node variants (heading/table/pre)
 * - [BrowserTest] Add parentheses to regexp parameters
 * - [BrowserTest] Fix ParenthesesAsGroupedExpression Rubocop failures
 * - [BrowserTest] Remove an empty line to make Rubocop pass
 * - [BrowserTest] Move screenshot taking functionality to a gem
 * - ce.MWTransclusionNode: Protect against race condition in GCN rendering
 * - Update VE core submodule to master (e56418a)
 * - Correct the license URL in the media dialog
 * - Update VE core submodule to master (f86c97c)
 * - Fix clipboard DM for transclusion nodes starting with invisible tags
 * - Correctly tag clipboard DM from MWTransclusionNodes
 * - Don't try to get X-Cache header if it's not set
 * - Update VE core submodule to master (331116b)
 * - Rename test modules to stop confusing QUnit
 * - Make sure category widget methods call parent class methods
 * - Move svgMaxSize and namespacesWithSubpages to site config
 * - [BrowserTest] Remove unused steps and locators
 * - [BrowserTest] Update transclusion test for better locator
 * - [BrowserTest] Cite message no longer in iframe
 * - Update VE core submodule to master (9240a51)
 * - Defend against empty file pages in media dialog search
 * - Display image uploader and artist correctly in the media dialog
 * - [BrowserTest] Remove most exceptions from .rubocop_todo.yml

WikiGrok

 * - Test invalid request parameters
 * - Reduce database locking
 * - Add support for logging responses from remote wikis

ZeroBanner

 * - Changed https warning banner

Vector

 * - Support &quot;rel&quot; attributes on content action links (e.g. rel=archives)
 * - Don't use JavaScript to style first sidebar portlet
 * - test: Make code pass jscs 1.5.0 with Wikimedia code style preset
 * - Add SVG version of bullet-icon and use .list-style-image-svg