MediaWiki 1.27/wmf.20/Changelog

Core changes

 * - Revert "Hack IEUrlExtension::haveUndecodedRequestUri to always return true"
 * - Hack IEUrlExtension::haveUndecodedRequestUri to always return true
 * - Update CentralNotice
 * - Revert "Measure commitMasterChanges run time"
 * - Don't report image cache hits / misses
 * - Flag triggerOpportunisticLinksUpdate behind $wgMiserMode
 * - Cache first-letter data in APC, if available
 * - Update VE-MW submodule to wmf/1.27.0-wmf.21 HEAD (8ac0c43)
 * - Increase triggerOpportunisticLinksUpdate backoff TTL
 * - Bump SMW to fix fatal in production
 * - [1.27.0-wmf.15] MF cache pollution debug log
 * - Improve comment to localizers in MessagesEn.php
 * - Do not require login on Special:Confirmemail to confirm the email
 * - Simplify by using mw.util.getUrl instead of mw.util.wikiScript
 * - Convert Special:Redirect to OOUI
 * - mediawiki.util: Use wgScript in getUrl when setting query string
 * - Mention introduction of service locator in release notes.
 * - Remove Title::newFromRedirectRecurse
 * - Fix double $search in other place too
 * - Don't allow createAndPromote.php to add users to invalid groups
 * - Remove use of deprecated User::EDIT_TOKEN_SUFFIX
 * - Remove use of deprecated wfSuppress/RestoreWarnings
 * - Remove usages of CdbCompat class alises
 * - Move EventRelayerNull class to own file
 * - Remove used of deprecated MemCachedClientforWiki
 * - Move CookieJar class to own file
 * - Fix obvious typo - $search used for two variables
 * - Remove unused private SiteStats::$groupMemberCounts
 * - Add @since tags to Collation stuff
 * - Remove unused $miserMode in SpecialStatistics
 * - Split Collation.php
 * - Split ClassCollector class into own file
 * - Remove unused $fname in StubObject::_unstub
 * - Remove unused global $wgMaxInterlacingAreas in Bitmap.php
 * - Remove unused fields from SpecialBotPasswords
 * - resourceloader: Make action=purge affect ResourceLoaderWikiModule
 * - mediawiki.user: Use wgUserGroups for getGroups rather than AJAX
 * - Reword and clarify API messages
 * - Update IP address related message text
 * - Bump composer/semver to 1.4.0
 * - Remove deprecated calling style of UserMailer::send
 * - Use IP address range instead of IP range
 * - Improve blocked-mailpassword phrasing
 * - Don't construct SpecialPages twice
 * - Introduce top level service locator.
 * - Split Page interface into own file
 * - Generalize recentChangesFlags rollup
 * - Introduce StatsdAwareInterface
 * - Remove Title::newFromRedirectArray
 * - Move statsd files in libs to own directory
 * - Introduce NullStatsdDataFactory
 * - Show time left until block expiry in BlockListPager
 * - Fix typo in HtmlForm::setName phpdoc
 * - DifferenceEngine::setText was removed
 * - Add hint to /qqq about GENDER support
 * - Article::getUndoText and WikiPage::getUndoText were removed
 * - Add prefered magic words first
 * - page: Remove outdated comment in getRedirectHeaderHtml
 * - LoadBalancer::pickRandom was removed
 * - Skin::getUsableSkins was removed
 * - Support custom query in pt-heartbeat lag detection
 * - resourceloader: Avoid Title::newMainPage to support $wgForceUIMsgAsContentMsg
 * - resourceloader: Remove wfExpandUrl from ResourceLoaderImage
 * - Disable flaky UIDGeneratorTest::testTimestampedUID test
 * - Skin::newFromKey was removed
 * - Skin::getCommonStylePath was removed
 * - Skin::commonPrintStylesheet was removed
 * - Remove Title::newFromRedirect
 * - Move changes to the right section in RELEASE-NOTES
 * - Collapse superfluous isset call
 * - Follow up I63cdc0
 * - Remove (WikiPage|Article)::replaceSection
 * - Remove MediaWikiSite::newFromGlobalId (deprecated since 1.21)
 * - ApiPageSet::finishPageSetGeneration was removed
 * - Removed ApiMain::(getFormats|addFormat|addModule|getShowVersions).
 * - Remove $wgCopyrightIcon
 * - Remove Revision::getRawText
 * - Allow HTMLFormField placeholder to be a message
 * - Unify handling of *-message(s) settings in HTMLForm
 * - Allow SpecialPage::beforeExecute to prevent execution
 * - Fix Session::getToken phpdoc
 * - Fix StatusValue phpdoc
 * - Allow setting HTMLForm name
 * - Fix missing variable in HTMLFormField exceptions
 * - Add flag to HTMLTextField to not persist submitted data
 * - Use default value instead of submitted value in HTMLForm buttons
 * - Track the use of the WatchedItemStore Cache
 * - Add WatchedItemStoreUnitTest::newWatchedItemStore
 * - Allow SiteStatsInit to run on vslow hosts
 * - Add phpdoc and @since to SpecialUserrights::makeGroupNameList
 * - UserrightsPage::makeGroupNameListForLog was removed
 * - Remove skin mode of Special:JavaScriptTest
 * - Fix Undefined index: 0 in SearchExactMatchRescorer.php on line 44
 * - UploadBase: Replace 'emptyfile' warning code by 'empty-file'
 * - Don't emit 404 status code on Special:Redirect
 * - Time POST requests to API write modules
 * - filerepo: Mark some internal LocalFile methods private
 * - Swap the rest of array -> []
 * - Update grunt-banana-checker to 0.5.0
 * - refreshImageMetadata: Allow filtering by 'img_media_type' too
 * - ApiSandbox: Work around mw.Api treating an empty response as failure
 * - Preferences: Add autocomplete="off" to preferences form
 * - UploadBase: Remove debug logging for T64241
 * - Allow templates in ResourceModules to be array in extension registration
 * - mediawiki.requestIdleCallback: Remove unused jQuery parameter
 * - Whitespace cleanups
 * - jquery.ui.datepicker: Add translations in de-AT and de-CH
 * - Add 'Greek extended' group to special characters
 * - Rename Special:ListGroupRights in Czech
 * - Avoid double-rendering on late exceptions
 * - Fix accidential variable overriding in manualWordsTable
 * - Better punctuation in uploadstash-badtoken

Vendor

 * - Update symfony/process to 3.0.4
 * - Update pear/mail 1.2.0 -> 1.3.0
 * - Update composer/semver to 1.4.0

AbuseFilter

 * - Save upload related title vars in ARTICLE prefix not FILE
 * - AbuseFilterViewEdit: Correctly reject non-existent historical versions
 * - Remove usage of DifferenceEngine::generateDiffBody

CentralAuth

 * - Don't fatal on invalid usernames in Special:GlobalRenameUser
 * - Consistently normalize user names in Special:GlobalRenameUser

CharInsert

 * - Use single quotes where possible

CheckUser

 * - Use IP address range instead of IP range

CirrusSearch

 * - Ignore ResultSets that do not return pages
 * - Fix undefined index warnings in prod

Cite

 * - Remove icon properties from windows

Collection

 * - Remove usage of Title::newFromRedirectRecurse

ConfirmEdit

 * - Use IP address range instead of IP range

ContentTranslation

 * - Gender support addded to conflict messages
 * - Send Accept: header to RESTbase
 * - Set User-Agent in server-side VRS requests to RESTBase/Parsoid
 * - Log error if the translation not restored against the old source revision
 * - Do not attempt adding orphan section unless source article is old revision

DonationInterface

 * - Actually random dummy fiscal number for MX
 * - remove protocol string from referrer param
 * - Trim email during normalization
 * - Tiny cleanups
 * - Use generalized lookup table builder for WP
 * - Move most error mapping into config
 * - Move data transformers to config
 * - Default function defines data transformers from config
 * - Quit letting a submethod be in multiple groups
 * - Update package pointers, Amazon class names
 * - Change MX dummy fiscal number to 13 digits
 * - Add another method to GatewayType interface
 * - Move data constraints to config
 * - Move var_map to config
 * - Random cleanups
 * - Move Worldpay currencies to config
 * - Encapsulate Worldpay staging logic
 * - Astropay: WebPay as main processor for credit cards CL
 * - Astropay: remove Banco de Chile from CL/BT
 * - Compress PNGs using zopflipng
 * - Move currencies to config
 * - Shorter selector for .hidden
 * - gateway_adapter&loadConfig
 * - Remove deprecated parameters
 * - move worldpay payment methods

Echo

 * - Also show the survey tooltip on click
 * - FooterNoticeWidget: Set image height explicitly
 * - Revert "Add GENDER support to tooltip messages"
 * - Make foreign NotificationGroupItems aware of their section
 * - Add GENDER support to tooltip messages
 * - Remove legacy qunit handling from Echo
 * - jscs: Enable checkRedundantParams and make pass
 * - RevertedPresentationModel: Don't double-parse summary
 * - Change threshold for survey invitation from 2 unread notifs to 1
 * - jscs: Enable checkRedundantReturns and make pass

EducationProgram

 * - Use ID consistently

FlaggedRevs

 * - Remove usage of DiffEngine::generateDiffBody
 * - Remove usage of Title::newFromRedirectRecurse
 * - Replace getUndoText call

Flow

 * - Fix new topic notifications
 * - Don't hide collapsed topics in no-JS mode
 * - Use ID consistently
 * - Add User Agent for Parsoid requests
 * - Remove legacy qunit handling from Flow
 * - Remove Wikimedia-specific MessageCache::get hook handler

GlobalBlocking

 * - Use IP address range instead of IP range

Graph

 * - Fix the scrollbar issue on the GraphSandbox + a couple more UI improvements (adjust the sandbox to the viewport, and some styling)

Kartographer

 * - Trim parse results
 * - Add `wikipage.maps` JS hook to allow community to
 * - now shows geojson data
 * - Fix

LiquidThreads

 * - Remove usage of Title::newFromRedirect

MobileApp

 * - Roll out RESTBase usage to Android production app: 100%

MobileFrontend

 * - Have npm doc to install jsduck with bundler
 * - Hygiene: use mw.eventLog.Schema for logging MobileWebLanguageSwitcher schema events
 * - Delete unused/bad qunit tests
 * - Hygiene: use mw.eventLog.Schema for logging MobileWebSearch schema events
 * - Use ID consistently
 * - Beta: Vertically align the page actions with the title
 * - Do not load mobile JS in desktop
 * - Remove unused $inTestMode variable
 * - Simplify the API request to retrieve page languages
 * - Hygiene: MobileWebWatching schema is no longer in use
 * - Disable scenarios that fail at en.wikipedia.beta.wmflabs.org from running daily
 * - Allow hiding the language button
 * - Hygiene: remove MobileWebUIClickTracking schema
 * - Remove flashes of unstyled content on page load
 * - Hygiene: Remove unnecessary local variable usage
 * - Allow opt in to lazy loaded images via cookie
 * - Hygiene: Add some @cover tags

OATHAuth

 * - Reintroduce TwoFactorIsEnabled hook
 * - Fix i18n merge errors
 * - Encrypt password when stored in user session
 * - Move token login to separate page

ORES

 * - Relicense as GPL-3.0+

OpenStackManager

 * - Use ID consistently
 * - Add novaadmin as projectadmin to all new projects.

ParserFunctions

 * - Use single quotes where possible
 * - Remove PHP4-isms in type casting
 * - Use identical comparison instead of equal where possible

ProofreadPage

 * - Isolate in a method UnitTestsList hook
 * - Uses mw.toolbar to create old toolbar buttons for page pages
 * - First implementation of the support of the tag in the VisualEditor
 * - build: Fix Gruntfile to actually parse JS files
 * - build: Bump various devDependencies to latest

Scribunto

 * - Add toNFKC and toNFKD to mw.ustring
 * - Change the translation of th namespace

SecurePoll

 * - Fix logout hook in SecurePoll
 * - Convert SecurePoll to extension registration
 * - Follow up I87125a67de4

SemanticForms

 * - Fix for delimiter when 'tokens' and 'mapping' are used
 * - Fix branch alias
 * - Remove usage of Title::newFromRedirect

SyntaxHighlight_GeSHi

 * - Update symfony/process to ~3.0

TextExtracts

 * - The last sentence of the paragraph was lost.

Thanks

 * - Make sure error code is always passed to 'thanks-error-undefined'
 * - Fix ApiRevThankTest::testValidRequest

TimedMediaHandler

 * - Add the videojs-ogvjs Tech module
 * - Allow audio player to be larger than 220px

Translate

 * - Revert close.png to correct image
 * - Fix message group description not updating in Special:Translate
 * - Update tm sql: blobs cannot have default value
 * - Use ID consistently
 * - Pass replyTo parameter correctly to UserMailer::send
 * - Check identical instead of equal where possible
 * - Clarify state in groupreview message
 * - Make sure MessageUpdateJobs are run before TranslateRenderJobs when marking
 * - Fix regressions in insertables placement
 * - Use localstorage for recent groups on Special:Translate
 * - Remove BC from onAbortEmailNotificationReview
 * - Remove reference from hooks for params which are not changed
 * - Add type hints to hooks when it looks safe

UniversalLanguageSelector

 * - Compact links: Add margin to the bottom of n more button
 * - Call static Language::fetchLanguageName statically
 * - Revert wrong image update in I7f0ef09941
 * - Compress PNGs with zopflipng

UploadWizard

 * - Move all module definitions to UploadWizard.php
 * - Decouple UploadWizard from EventLogging
 * - Rework TitleBlacklist integration
 * - Tweak styles of metadata copier
 * - mw.UploadWizardDeedOwnWork: Fix animation when showing all licenses
 * - Remove unused CSS rule for .mwe-loc-link
 * - Remove old code for Firefox < 7.0
 * - Remove old code for old browsers
 * - Bump version number to 1.5.0
 * - Treat browsers without HTML5 File API and FormData support like Grade C browsers

VisualEditor

 * - Check wpSection before converting textbox contents for use in VE
 * - Ensure veswitched is not set when we set wteswitched in the URI
 * - Fix up mw.libs.ve.EditingTabDialog.prototype.getActionProcess
 * - ArticleTarget: Correct comment explaining where setAssumeExistence( false ); is called
 * - MWExternalLinkAnnotation: Only match plain external s with hrefs
 * - Update VE core submodule to master (c2561bb)
 * - MWExtensionNode#generateContents: Fix renderEmpty logic
 * - After saving and setting HTML, set single-editor edit section handlers again
 * - Hooks#onAuthPluginAutoCreate: Only act if not default
 * - Fix asynchronous loading of MWAlienExtensionNode renderings
 * - Use veaction=edit in URL instead of action=edit when we're using multiple tabs
 * - Set User-Agent in server-side VRS requests to RESTBase/Parsoid
 * - MWWikitextStringTransferHandler: Add test for autoGenerated=true
 * - MWWikitextStringTransferHandler: Factor out body tag from response
 * - MWWikitextStringTransferHandler: Remove data-parsoid from tests

WikiEditor

 * - Stop any other tab animations when clicking on the tab button

WikidataPageBanner

 * - Attempt at fixing table of contents problem

WikimediaEvents

 * - Collect impact of proposed ResourceLoader feature-test in statsd
 * - Add "user_wpzero" AbuseFilter variable

WikimediaIncubator

 * - Convert Special:SearchWiki and Special:ViewUserLang to OOUI
 * - Use HTMLForm on Special:SearchWiki

WikimediaMaintenance

 * - Remove usage of Title::newFromRedirect

WikimediaMessages

 * - Add "Wikidata" grammar cases for Bosnian
 * - Add messages for 'editextendedsemiprotected' protection level
 * - "Established editor" → "Extended confirmed user"
 * - Add Flow terms of use messages to onMessageCacheGet hook handler

ZeroPortal

 * - Debug SpecialPage / Scribunto requirement
 * - Spaces and formatting
 * - Remove unused includes
 * - Split ConfigMerger class into own file

wikihiero

 * - Follow-up I85a5a59fd: Remove space from self-closing tags in tests