lhc/web/wiklou.git
5 years agoBotPasswords: Indicate when a password needs reset
Brad Jorsch [Fri, 4 May 2018 13:35:55 +0000 (09:35 -0400)]
BotPasswords: Indicate when a password needs reset

Certain things, such as changing the account's main login credentials,
causes all bot passwords to be invalidated. This state should be
indicated in Special:BotPasswords, and the API when login fails.

Bug: T193829
Change-Id: Ib12929fed861742c9f2f76702c9ac3254e8a5d97

5 years agoMerge "Add 'logid' parameter to Special:Log"
jenkins-bot [Fri, 4 May 2018 02:56:08 +0000 (02:56 +0000)]
Merge "Add 'logid' parameter to Special:Log"

5 years agoAdd 'logid' parameter to Special:Log
Sam Wilson [Mon, 23 Apr 2018 03:55:24 +0000 (11:55 +0800)]
Add 'logid' parameter to Special:Log

Make it possible to get a URL for a single log entry,
as an alternative to using Special:Redirect/logid/123.

The existing single-log-entry link of Special:Redirect/logid/123
is also simplified to be a redirect to this new parameter.

Bug: T191608
Bug: T187638
Change-Id: I5f2e52531cd2ba617a25570e40aa8c5168e284d9

5 years agoMerge "resourceloader: Improve test coverage of ResourceLoader::register()"
jenkins-bot [Fri, 4 May 2018 01:52:36 +0000 (01:52 +0000)]
Merge "resourceloader: Improve test coverage of ResourceLoader::register()"

5 years agoresourceloader: Improve test coverage of ResourceLoader::register()
Timo Tijhof [Fri, 4 May 2018 01:15:24 +0000 (02:15 +0100)]
resourceloader: Improve test coverage of ResourceLoader::register()

Verify that calling register() twice does not throw, but warns,
and that the last registration wins.

This behaviour was actually surprising to me because it used to
throw, and I'd assume that when we added the warning, the behaviour
would go from fatal to non-fatal, but keep that the last one is
at fault/unsupported.

Perhaps b1ea0612 / d3e3bcfd6 (T116628) should've added a return
statement. Oh well, we can consider changing that later, but at
least test for it.

Change-Id: I955132868146ea5bf88c9b9e648c84d8196cb1f9

5 years agoMerge "Use AutoCommitUpdate in LinksUpdate::doUpdate"
jenkins-bot [Fri, 4 May 2018 00:40:06 +0000 (00:40 +0000)]
Merge "Use AutoCommitUpdate in LinksUpdate::doUpdate"

5 years agoUse AutoCommitUpdate in LinksUpdate::doUpdate
Aaron Schulz [Wed, 2 May 2018 00:22:33 +0000 (17:22 -0700)]
Use AutoCommitUpdate in LinksUpdate::doUpdate

The hook handlers are likely to write to secondary databases, in which
case it is better to wrap the callback in its own transaction round.

This lowers the chance of pending write warnings happening in
runMasterTransactionIdleCallbacks() as well as DBTransactionError
exceptions in LBFactory due to recursion during commit.

Bug: T191282
Bug: T193668
Change-Id: Ie207ca312888b6bb076f783d41f05b701f70a52e

5 years agoSkin: Remove the cache-compat remainings of mediawiki.sectionAnchor
Timo Tijhof [Thu, 3 May 2018 23:32:58 +0000 (00:32 +0100)]
Skin: Remove the cache-compat remainings of mediawiki.sectionAnchor

Follows-up 5205405385397782b5. Two 2 years seems long enough :)

Bug: T18691
Change-Id: Id2f17312cbfe3ee9dda68bf8f9bcf94e18b003c6

5 years agoMerge "Silence TransactionProfiler in MediaWiki::triggerSyncJobs"
jenkins-bot [Thu, 3 May 2018 22:48:39 +0000 (22:48 +0000)]
Merge "Silence TransactionProfiler in MediaWiki::triggerSyncJobs"

5 years agoMerge "Make DeferredUpdates avoid running during LBFactory::commitMasterChanges"
jenkins-bot [Thu, 3 May 2018 22:37:52 +0000 (22:37 +0000)]
Merge "Make DeferredUpdates avoid running during LBFactory::commitMasterChanges"

5 years agoMerge "resourceloader: Remove remnants of "dependencies as a function""
jenkins-bot [Thu, 3 May 2018 22:32:34 +0000 (22:32 +0000)]
Merge "resourceloader: Remove remnants of "dependencies as a function""

5 years agoMerge "resourceloader: Remove creation of dynamic-styles marker"
jenkins-bot [Thu, 3 May 2018 22:32:10 +0000 (22:32 +0000)]
Merge "resourceloader: Remove creation of dynamic-styles marker"

5 years agoresourceloader: Remove remnants of "dependencies as a function"
Timo Tijhof [Mon, 23 Apr 2018 18:47:59 +0000 (19:47 +0100)]
resourceloader: Remove remnants of "dependencies as a function"

This hasn't been used in a while, at least two years from what
I could find. It also doesn't have tests, and numerous paths
that possibly should handle it, don't.

This was originally implemented for TMH as a way to dynamically
change what it loads based on the browser environment.

However, this has been addressed by two other aspects already:

* mw.loader.using() - During development of ResourceLoader, this
  method was unstable for a short while. During that pre-release
  time, dynamic dependencies was added as workaround for TMH.
  It being stable addresses TMH's use case of loading *different*
  modules (with callback) based on environment factors.
  This allows complete mutation of the array passed: remove,
  replace, and add operations. This can be used to completely
  change was a module does based on browser environment,
  e.g. load a decoder for X instead of Y, but places the logic
  in the startup module, which is inefficient.
  TMH has switched long ago to using using() instead.

* 'skipFunction' - Introduced in more recent years, this was
  added to more efficiently address the 'remove' use case.
  E.g. where the 'needs' are consistent between browsers, but
  a subset of the needs may be available natively without
  needing a polyfil. The skipFunction allows once to mark
  a module as "ready" without actually loading anything.
  This has been used for efficient and conditional loading of
  DOM2, JSON and ES5 polyfills. (All of which have been removed
  since, but that's a separate story.)

Bug: T192623
Change-Id: Ia97df72a0c3f0fc0dc917fce0a94213b23db4daa

5 years agoMake DeferredUpdates avoid running during LBFactory::commitMasterChanges
Aaron Schulz [Wed, 2 May 2018 23:56:07 +0000 (16:56 -0700)]
Make DeferredUpdates avoid running during LBFactory::commitMasterChanges

Bug: T193668
Change-Id: I50890ef17ea72481a14c4abcd93ae58b93f15d28

5 years agoRELEASE-NOTES-1.31: More cleanup
James D. Forrester [Thu, 3 May 2018 20:30:05 +0000 (13:30 -0700)]
RELEASE-NOTES-1.31: More cleanup

Change-Id: I645d6591424fb116439e85c28eaf52142583ba0b

5 years agoMerge "RELEASE-NOTES-1.31: Add notes for I94377faa51"
jenkins-bot [Thu, 3 May 2018 20:01:35 +0000 (20:01 +0000)]
Merge "RELEASE-NOTES-1.31: Add notes for I94377faa51"

5 years agoMerge "Localisation updates from https://translatewiki.net."
L10n-bot [Thu, 3 May 2018 19:59:01 +0000 (19:59 +0000)]
Merge "Localisation updates from https://translatewiki.net."

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Thu, 3 May 2018 19:58:52 +0000 (21:58 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: Ie50ed1c556acb37d00c94b55877196df3b30e9d5

5 years agoMerge "RELEASE-NOTES-1.31: Add notes for I8228cdd3b"
jenkins-bot [Thu, 3 May 2018 19:56:37 +0000 (19:56 +0000)]
Merge "RELEASE-NOTES-1.31: Add notes for I8228cdd3b"

5 years agoMerge "RELEASE-NOTES-1.31: Add notes for Ia76dd6db363"
jenkins-bot [Thu, 3 May 2018 19:56:34 +0000 (19:56 +0000)]
Merge "RELEASE-NOTES-1.31: Add notes for Ia76dd6db363"

5 years agomediawiki.jqueryMsg: Remove deprecated window.gM() method
Timo Tijhof [Mon, 30 Apr 2018 22:58:00 +0000 (23:58 +0100)]
mediawiki.jqueryMsg: Remove deprecated window.gM() method

* Deprecated with warnings since MediaWiki 1.23 (released 2013).
* Zero results for 'gM(' in mwgrep (sitewide scripts on public WMF wikis).

Bug: T135148
Change-Id: I3b97355012fc8741c7f4953f4b249d70beb96b01

5 years agoMerge "CRH Transliteration Pattern Matching Fixes"
jenkins-bot [Thu, 3 May 2018 16:01:25 +0000 (16:01 +0000)]
Merge "CRH Transliteration Pattern Matching Fixes"

5 years agoMerge "Use OOUI form for edit watchlist"
jenkins-bot [Thu, 3 May 2018 15:22:42 +0000 (15:22 +0000)]
Merge "Use OOUI form for edit watchlist"

5 years agoMerge "selenium: Run wdio directly without grunt"
jenkins-bot [Thu, 3 May 2018 07:29:40 +0000 (07:29 +0000)]
Merge "selenium: Run wdio directly without grunt"

5 years agoMerge "sortable tables/mw-collapsible no longer causes page jump"
jenkins-bot [Thu, 3 May 2018 01:09:42 +0000 (01:09 +0000)]
Merge "sortable tables/mw-collapsible no longer causes page jump"

5 years agoRELEASE-NOTES-1.31: Add notes for I94377faa51
James D. Forrester [Wed, 2 May 2018 22:43:40 +0000 (15:43 -0700)]
RELEASE-NOTES-1.31: Add notes for I94377faa51

Change-Id: Icb7223864fd2bb3c5f2c961f3526d4f70e34bf7f

5 years agoRELEASE-NOTES-1.31: Add notes for I8228cdd3b
James D. Forrester [Wed, 2 May 2018 22:42:06 +0000 (15:42 -0700)]
RELEASE-NOTES-1.31: Add notes for I8228cdd3b

Change-Id: I8a7faa3486055c137c6918aa75481aa64a02b856

5 years agoRELEASE-NOTES-1.31: Add notes for Ia76dd6db363
James D. Forrester [Wed, 2 May 2018 22:38:04 +0000 (15:38 -0700)]
RELEASE-NOTES-1.31: Add notes for Ia76dd6db363

Change-Id: Id661a75205b2c799afb02485ac2e408869eab093

5 years agoRELEASE-NOTES-1.31: Wrap to 80 chars and fix up
James D. Forrester [Wed, 2 May 2018 22:00:16 +0000 (15:00 -0700)]
RELEASE-NOTES-1.31: Wrap to 80 chars and fix up

Change-Id: I0a090a3ac057021ac2e3544f5e05b2fadd0b9155
(cherry picked from commit ccc3d1fc0570c6e3057562b1583bd743aef5d9fb)

5 years agoMerge "Make DeferredUpdates re-throw exceptions during testing."
jenkins-bot [Wed, 2 May 2018 21:44:26 +0000 (21:44 +0000)]
Merge "Make DeferredUpdates re-throw exceptions during testing."

5 years agoMake DeferredUpdates re-throw exceptions during testing.
daniel [Thu, 29 Mar 2018 20:14:55 +0000 (22:14 +0200)]
Make DeferredUpdates re-throw exceptions during testing.

This is a stop-gap solution for the problem described in T190178.
A better solution would probably include changing the behavior
of LegacyLogger.

Bug: T190178
Change-Id: I433be04b8ee725becd174e567270aa674d2661df

5 years agoMerge "Remove $wgExperimentalHtmlIds and related code, deprecated in 1.30"
jenkins-bot [Wed, 2 May 2018 20:55:40 +0000 (20:55 +0000)]
Merge "Remove $wgExperimentalHtmlIds and related code, deprecated in 1.30"

5 years agoUse OOUI form for edit watchlist
Ed Sanders [Tue, 24 Apr 2018 11:09:12 +0000 (12:09 +0100)]
Use OOUI form for edit watchlist

Change-Id: I2e2aa099e7941e1685dcaca37842b12a3469d5f3

5 years agoMerge "Remove three deprecated functions from the Revision class."
jenkins-bot [Wed, 2 May 2018 20:03:40 +0000 (20:03 +0000)]
Merge "Remove three deprecated functions from the Revision class."

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Wed, 2 May 2018 19:57:47 +0000 (21:57 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: Ib865977cd3bd5c326b9005397a165bc250c24ea5

5 years agoRemove three deprecated functions from the Revision class.
Matthew Bowker [Wed, 2 May 2018 19:32:38 +0000 (13:32 -0600)]
Remove three deprecated functions from the Revision class.

This commit removes Revision::getRawUser(), Revision::getRawUserText(), and Revision::getRawComment(). All three were deprecated in 1.25 and are only used in unmaintained extensions.

Bug: T61113
Change-Id: I729985b791df89bc7e577fb823e647c48549e637

5 years agosortable tables/mw-collapsible no longer causes page jump
jdlrobson [Wed, 4 Apr 2018 23:19:51 +0000 (16:19 -0700)]
sortable tables/mw-collapsible no longer causes page jump

Relatively straightforwardly - we move padding-right definition into
top styles to avoid a reflow

This turned out to be a little tricker than first imagined.
The code in jquery.makeCollapsible.js finds elements marked up
as collapsible and then 1) collapses them 2) inserts a toggle button.

To avoid a reflow on the page, we have to make sure the collapsed content
is collapsed prior to the code running and reserve space for the toggle
button.

The toggle button is tricky as it is subject to i18n. However we can
access this label via a LESS variable and use a pseudo element (which
is supported by the majority of modern browsers) to preserve the space
we need. When the JavaScript has loaded there is no need for that CSS
any more.

Note on slow connections, collapsed content will not be accessible until
the JavaScript has fully loaded, however this is arguably less of a problem
then the existing reflows.

Note, there are many many many usages of mw-collapsible, because of this
this does not claim to address all reflows in all usages - but it does provide
support for the more widespread usages.

Follow up patches can be added for specific situations - for example table
of contents toggle.

Bug: T42792
Bug: T42812
Depends-On:  I3388c3c4f91cdbab11e89cdc95973b688d3f1ce7
Change-Id: If9c8f0974e3a4b08e4a66d37f7f5adf67d73054e

5 years agoSilence TransactionProfiler in MediaWiki::triggerSyncJobs
Aaron Schulz [Wed, 2 May 2018 19:01:40 +0000 (12:01 -0700)]
Silence TransactionProfiler in MediaWiki::triggerSyncJobs

Change-Id: Id04e7d25cbf7a4d05dfd80c7a32965312978ef39

5 years agoMerge "CSSMin: Add more edge cases with spaces to CSSMinTest"
jenkins-bot [Wed, 2 May 2018 17:18:22 +0000 (17:18 +0000)]
Merge "CSSMin: Add more edge cases with spaces to CSSMinTest"

5 years agoCSSMin: Add more edge cases with spaces to CSSMinTest
Thiemo Kreuz [Wed, 2 May 2018 10:30:01 +0000 (12:30 +0200)]
CSSMin: Add more edge cases with spaces to CSSMinTest

Change-Id: Id5e884711ab69615273dd050d83c65a385aaa817

5 years agoselenium: Apply relPath() to the exclude option for CirrusSearch
Timo Tijhof [Wed, 2 May 2018 03:42:05 +0000 (04:42 +0100)]
selenium: Apply relPath() to the exclude option for CirrusSearch

It seems relPath() is used for all other paths here. When I was
running a single test from the /tests/selenium, I noticed wdio
was logging to the console that it excluded ./extensions/CirrusSearch,
which doesn't make sense from that directory. The other paths
are fine.

Change-Id: Ic89ae0a91cdb6590b7190ea44969e653e9e2d6ea

5 years agoMerge "Upgrade QUnit from 2.4.0 to 2.6.0"
jenkins-bot [Wed, 2 May 2018 16:18:22 +0000 (16:18 +0000)]
Merge "Upgrade QUnit from 2.4.0 to 2.6.0"

5 years agoMerge "selenium: Increase mochaOpts.timeout from 20s to 60s"
jenkins-bot [Wed, 2 May 2018 15:02:26 +0000 (15:02 +0000)]
Merge "selenium: Increase mochaOpts.timeout from 20s to 60s"

5 years agoselenium: Increase mochaOpts.timeout from 20s to 60s
Timo Tijhof [Wed, 2 May 2018 03:40:10 +0000 (04:40 +0100)]
selenium: Increase mochaOpts.timeout from 20s to 60s

I was unable to get the tests passing locally in MediaWiki-Vagrant.
The main slowdown appears to be from MWBot logging-in for each
command anew. Which works fine, but just seems to be quite slow.

Change-Id: I3c0abc79cac48c26d952b0bbe73574aa48b2d70e

5 years agoDeclare LogFormatter::$parsedParameters property
Kunal Mehta [Tue, 6 Feb 2018 22:25:07 +0000 (14:25 -0800)]
Declare LogFormatter::$parsedParameters property

And rework LogFormatterTest so it doesn't need to access that property.

Change-Id: I4d429430efe74dc083019a1a8bb07257785484b9

5 years agoMerge "Cleanup the element matches in doBlockLevels a bit"
jenkins-bot [Tue, 1 May 2018 21:50:54 +0000 (21:50 +0000)]
Merge "Cleanup the element matches in doBlockLevels a bit"

5 years agoRemove $wgExperimentalHtmlIds and related code, deprecated in 1.30
James D. Forrester [Wed, 18 Apr 2018 01:22:13 +0000 (18:22 -0700)]
Remove $wgExperimentalHtmlIds and related code, deprecated in 1.30

Bug: T139744
Change-Id: Ia15d5ab6e7637fd40d5c3399822a3dbeb7b383b5

5 years agoMerge "mediawiki.api: Check that query exists in api.getToken() response"
jenkins-bot [Tue, 1 May 2018 20:50:56 +0000 (20:50 +0000)]
Merge "mediawiki.api: Check that query exists in api.getToken() response"

5 years agoMerge "rdbms: improve log warnings in runMasterPostTrxCallbacks()"
jenkins-bot [Tue, 1 May 2018 20:45:00 +0000 (20:45 +0000)]
Merge "rdbms: improve log warnings in runMasterPostTrxCallbacks()"

5 years agomediawiki.api: Check that query exists in api.getToken() response
Stephen Niedzielski [Fri, 9 Mar 2018 15:30:52 +0000 (09:30 -0600)]
mediawiki.api: Check that query exists in api.getToken() response

It's possible that response.query does not exist when requesting a
token. This patch removes the assumption and handles the scenario in the
same way as a missing token.

Additionally, responses with a queryless response are now deleted from the cache.

Corresponding console warning:

> jQuery.Deferred exception: Cannot read property 'tokens' of undefined
>   at apiPromise.then.promise.abort (/w/resources/src/mediawiki/api.js)

Change-Id: Ia29e0c0d657bf4b3d94f1d463b942451eebd68b4

5 years agoMerge "Use OOUI form for 'clear' and 'raw edit' of watchlist"
jenkins-bot [Tue, 1 May 2018 20:26:41 +0000 (20:26 +0000)]
Merge "Use OOUI form for 'clear' and 'raw edit' of watchlist"

5 years agordbms: improve log warnings in runMasterPostTrxCallbacks()
Aaron Schulz [Tue, 1 May 2018 17:57:18 +0000 (10:57 -0700)]
rdbms: improve log warnings in runMasterPostTrxCallbacks()

Bug: T191282
Change-Id: Iba663c58224af920f90d7b401aab2eb21f921941

5 years agoUpgrade QUnit from 2.4.0 to 2.6.0
Timo Tijhof [Tue, 1 May 2018 20:04:21 +0000 (21:04 +0100)]
Upgrade QUnit from 2.4.0 to 2.6.0

Source
 https://code.jquery.com/qunit/qunit-2.6.0.js
 https://code.jquery.com/qunit/qunit-2.6.0.css

Changelog
 https://github.com/qunitjs/qunit/blob/2.6.0/History.md

Highlights:
* 2.4.1: Fixed various bugs in HTML interface.
* 2.5.0: Added assert.rejects.
* 2.5.1: Fixed HTML reporter to reset attributes on qunit-fixture.
* 2.6.0: Changed behaviour to fail if no test suites exist.

Change-Id: I24120a74094db358f02f9fc1935920c43a0a7ced

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Tue, 1 May 2018 19:53:14 +0000 (21:53 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: Ib363fb3f98d2272ffca8954758ee4d22db0c7e14

5 years agoMerge "Fix typo in postgres patch-drop-ar_text.sql"
jenkins-bot [Tue, 1 May 2018 19:46:45 +0000 (19:46 +0000)]
Merge "Fix typo in postgres patch-drop-ar_text.sql"

5 years agoMerge "Have ClassCollector ignore PHP 7 anonymous classes"
jenkins-bot [Tue, 1 May 2018 19:44:01 +0000 (19:44 +0000)]
Merge "Have ClassCollector ignore PHP 7 anonymous classes"

5 years agoMerge "rdbms: enforce and improve LBFactory/LoadBalancer callback handling"
jenkins-bot [Tue, 1 May 2018 19:11:14 +0000 (19:11 +0000)]
Merge "rdbms: enforce and improve LBFactory/LoadBalancer callback handling"

5 years agoHave ClassCollector ignore PHP 7 anonymous classes
Brad Jorsch [Tue, 1 May 2018 17:13:37 +0000 (13:13 -0400)]
Have ClassCollector ignore PHP 7 anonymous classes

PHP 7 introduces anonymous classes with a syntax like

 $instance = new class() extends Foo { ... };

ClassCollector is incorrectly detecting this as a class named
"() extends Foo". This patch fixes that by having it ignore "new class"
in much the same way it currently ignores "::class".

Change-Id: I4d1985a9c04be71f7bea6cb7b61dcea74f44a6e2

5 years agoMerge "Make password reset & reset token buttons destructive"
jenkins-bot [Tue, 1 May 2018 14:58:50 +0000 (14:58 +0000)]
Merge "Make password reset & reset token buttons destructive"

5 years agoMerge "Revert "Remove cssclass in the favor of 'type' => 'user'""
jenkins-bot [Tue, 1 May 2018 14:44:07 +0000 (14:44 +0000)]
Merge "Revert "Remove cssclass in the favor of 'type' => 'user'""

5 years agoMerge "Fix selector to align all button types"
jenkins-bot [Tue, 1 May 2018 14:19:56 +0000 (14:19 +0000)]
Merge "Fix selector to align all button types"

5 years agoFix MySQLism in populateRevisionLength.php
Brad Jorsch [Tue, 1 May 2018 13:24:36 +0000 (09:24 -0400)]
Fix MySQLism in populateRevisionLength.php

Use addQuotes() to make a quoted string instead of MySQL's nonstandard
use of double-quotes.

Change-Id: Ie2d017a33b694417a3db140b2798a8d55f911985

5 years agoMake password reset & reset token buttons destructive
Ed Sanders [Tue, 1 May 2018 12:51:20 +0000 (13:51 +0100)]
Make password reset & reset token buttons destructive

Change-Id: I068d5bf7a8882348866c9beae7d109c28ea17b4e

5 years agoFix selector to align all button types
Ed Sanders [Tue, 1 May 2018 10:13:34 +0000 (11:13 +0100)]
Fix selector to align all button types

Bug: T193474
Change-Id: I02dbe5d880567c6e7e59c867c3ab910600c667d0

5 years agoRevert "Remove cssclass in the favor of 'type' => 'user'"
Jayprakash12345 [Tue, 1 May 2018 07:32:34 +0000 (07:32 +0000)]
Revert "Remove cssclass in the favor of 'type' => 'user'"

This reverts commit ba08a9146898a1904101209551fa7ef67a7b64e8.

Bug: T193378
Change-Id: I3ceec6d70cf12515985ee6b56458ae7132ef3d8b

5 years agomediawiki.util: Remove deprecated wikiGetlink()
Timo Tijhof [Mon, 30 Apr 2018 21:40:09 +0000 (22:40 +0100)]
mediawiki.util: Remove deprecated wikiGetlink()

* Deprecated since MediaWiki 1.22, with console warnings
  since 1.23 (released 5 years ago).
* All uses in core, tarball components, and wmf-deployed components
  have been fixed.
* All uses in sitewide and user scripts on public WMF wikis
  have been fixed (Wow!).

Bug: T57764
Change-Id: I926966a83daadfee3adbb9a32acbb5b710a29686

5 years agordbms: enforce and improve LBFactory/LoadBalancer callback handling
Aaron Schulz [Wed, 28 Mar 2018 20:01:32 +0000 (13:01 -0700)]
rdbms: enforce and improve LBFactory/LoadBalancer callback handling

* Handle the case where an onTransaction* callback for one handle
  adds more onTransaction* callbacks to a different handle. Instead
  of supporting only a short chain of such callbacks, try to resolve
  the whole chain by using a loop in LoadBalancer and LBFactory.
* Add sanity checks to enforce the proper call order of LoadBalancer
  transaction methods, such as those that execute callbacks. This is
  the order that LBFactory already uses. Use ROUND_ERROR for problems
  that can ruin the instance state. Such problems require rollback.
* Correct setTrxEndCallbackSuppression() calls in beginMasterChanges()
  that were making tests fail.
* Make Database handle callback suppression for FLUSHING_ALL_PEERS
  instead of making LoadBalancer/LBFactory have to manage it.
* Simplify finalizeMasterChanges() given that suppression does not
  actually effect runOnTransactionPreCommitCallbacks().
* Make dangling callback warning in Database::close work properly.
* Actually use $fname in flushReplicaSnapshots().
* Use DBTransactionError instead of DBExpectedError in some places
  where stages fail.
* Fix failing testGetScopedLock() unit tests so everything passes.

Add more comments to setTransactionListener and onTransactionIdle.

Change-Id: I6a25a6e4e5ba666e0da065a24846cbab7e786c7b

5 years agoselenium: Run wdio directly without grunt
Timo Tijhof [Sat, 21 Apr 2018 01:10:56 +0000 (02:10 +0100)]
selenium: Run wdio directly without grunt

Doesn't seem to add anything, except complexity.

This has the benefit of matching more closely the way the README
recommends running individual tests.

Also add a check for 'chromedriver' before running it.
Normally the -e and pipefail would suffice, but because
it runs in the background, the error can be buried,
hard to find, or even not cause exit code to be set
properly. Thus, do a simple 'hash' check that will
print a useful command and exit cleanly.

Before:
> $ something &
> [1] 57922
> -bash: something: command not found
> [1]+  Exit 127                something
> $ echo $?
> 0

After:
> $ hash something
> -bash: hash: something: not found
> (exit: 1) $ echo $?
> 1

Change-Id: Id95f18927b5443defe679a77a82c5cbdd127c716

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Mon, 30 Apr 2018 19:56:48 +0000 (21:56 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I4c835c6dea1acf1fcd455d5ec21db551d4ebbe28

5 years agoMerge "RecentChange: Use constants for the $noudp parameter of save()"
jenkins-bot [Mon, 30 Apr 2018 19:47:24 +0000 (19:47 +0000)]
Merge "RecentChange: Use constants for the $noudp parameter of save()"

5 years agoUse OOUI form for 'clear' and 'raw edit' of watchlist
Ed Sanders [Tue, 24 Apr 2018 11:08:45 +0000 (12:08 +0100)]
Use OOUI form for 'clear' and 'raw edit' of watchlist

Change-Id: I2c53f66bc36b33d42d453b79056822b30796ea4e

5 years agoMerge "Fix PHP Notice in Special:Statistics"
jenkins-bot [Mon, 30 Apr 2018 17:37:22 +0000 (17:37 +0000)]
Merge "Fix PHP Notice in Special:Statistics"

5 years agoMerge "Fix alignment of checkbox label in feedback dialog"
jenkins-bot [Mon, 30 Apr 2018 15:06:29 +0000 (15:06 +0000)]
Merge "Fix alignment of checkbox label in feedback dialog"

5 years agoMerge "Better class documentation"
jenkins-bot [Mon, 30 Apr 2018 15:05:36 +0000 (15:05 +0000)]
Merge "Better class documentation"

5 years agoFix PHP Notice in Special:Statistics
Niklas Laxström [Mon, 30 Apr 2018 07:46:40 +0000 (09:46 +0200)]
Fix PHP Notice in Special:Statistics

Change-Id: I7a8a15537fce4b7c15e4e452fda268c395ad4d2e
Follow-up: I7736c5fb6032f1b7e8a60b49d422435a8c8e4962

5 years agoMerge "jquery.ui: Use on() instead of deprecated bind() in jquery.ui.mouse"
jenkins-bot [Mon, 30 Apr 2018 05:12:17 +0000 (05:12 +0000)]
Merge "jquery.ui: Use on() instead of deprecated bind() in jquery.ui.mouse"

5 years agoMerge "media: Rename files to match the name of the class they define"
jenkins-bot [Mon, 30 Apr 2018 04:58:41 +0000 (04:58 +0000)]
Merge "media: Rename files to match the name of the class they define"

5 years agoFix alignment of checkbox label in feedback dialog
Ed Sanders [Sun, 29 Apr 2018 21:06:16 +0000 (22:06 +0100)]
Fix alignment of checkbox label in feedback dialog

Change-Id: I2af1fc716b1921928fa210f82d1b290be64142fd

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Sun, 29 Apr 2018 19:58:14 +0000 (21:58 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I13de2b5cedae52d2b709e8a6a3e1764ce47412ac

5 years agoBetter class documentation
Kaldari [Sun, 29 Apr 2018 18:54:24 +0000 (11:54 -0700)]
Better class documentation

Change-Id: I25912f38bb483cd4636bff4ce219dc878a1046f3

5 years agoMerge "resourceloader: Use plain arrays instead of $.Callbacks() in addEmbeddedCSS"
jenkins-bot [Sun, 29 Apr 2018 17:22:15 +0000 (17:22 +0000)]
Merge "resourceloader: Use plain arrays instead of $.Callbacks() in addEmbeddedCSS"

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Sat, 28 Apr 2018 19:59:14 +0000 (21:59 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I45de1a7e52aa2b6531442a9e5deeaa359c6c9efd

5 years agoMerge "mail: Refactor checks looking for PEAR libraries to be clearer"
jenkins-bot [Sat, 28 Apr 2018 19:51:10 +0000 (19:51 +0000)]
Merge "mail: Refactor checks looking for PEAR libraries to be clearer"

5 years agoMerge "Update wikimedia/html-formatter from 1.0.1 to 1.0.2"
jenkins-bot [Sat, 28 Apr 2018 17:57:43 +0000 (17:57 +0000)]
Merge "Update wikimedia/html-formatter from 1.0.1 to 1.0.2"

5 years agoAdd since tag to wfRemoveDotSegments
Reedy [Sat, 21 Apr 2018 09:46:51 +0000 (09:46 +0000)]
Add since tag to wfRemoveDotSegments

Looked it up for another commit, so might aswell make it easier to find for others :)

Change-Id: I432b13b35481cbca9ed6e7328b3b9115fdd203ea

5 years agoMerge "resourceloader: Remove mwPerformance stub and rename mwLoadStart mark"
jenkins-bot [Sat, 28 Apr 2018 12:04:30 +0000 (12:04 +0000)]
Merge "resourceloader: Remove mwPerformance stub and rename mwLoadStart mark"

5 years agoFix parameter doc type for matchEditToken
Daimona Eaytoy [Fri, 20 Apr 2018 08:16:55 +0000 (10:16 +0200)]
Fix parameter doc type for matchEditToken

I noticed it while fixing some AbuseFilter errors. matchEditToken simply
calls getEditTokenObject, which accepts string|array as $salt.

Change-Id: I36497eb8797ee60759c5109b699643635bba9174

5 years agoUpdate wikimedia/html-formatter from 1.0.1 to 1.0.2
Reedy [Sat, 28 Apr 2018 11:49:36 +0000 (12:49 +0100)]
Update wikimedia/html-formatter from 1.0.1 to 1.0.2

https://github.com/wikimedia/html-formatter/releases/tag/1.0.2
https://github.com/wikimedia/html-formatter/compare/1.0.1...1.0.2

Bug: T193318
Change-Id: I5f7a3e2300f343f675124df399cfe12909f56e14
Depends-On: Ia69102af64a0102e05b96b10f63ffcf6cbf292fa

5 years agoMerge "Change @throw to @throws"
jenkins-bot [Sat, 28 Apr 2018 09:01:26 +0000 (09:01 +0000)]
Merge "Change @throw to @throws"

5 years agoMerge "Add missing use statement"
jenkins-bot [Sat, 28 Apr 2018 08:58:24 +0000 (08:58 +0000)]
Merge "Add missing use statement"

5 years agomedia: Rename files to match the name of the class they define
Timo Tijhof [Sat, 28 Apr 2018 01:05:23 +0000 (02:05 +0100)]
media: Rename files to match the name of the class they define

This will make jumping from file to file much easier in text
editors when file name lookups will autocomplete naturally when
looking for a class by name.

Change-Id: I4b2e55a2e72674b619d5a592866c8a019a2b0224

5 years agojquery.ui: Use on() instead of deprecated bind() in jquery.ui.mouse
Timo Tijhof [Sat, 28 Apr 2018 00:16:03 +0000 (01:16 +0100)]
jquery.ui: Use on() instead of deprecated bind() in jquery.ui.mouse

Frequently seen on Beta Cluster due to indirect usage from
PageTriage extension.

Bug: T169385
Change-Id: Ia49ad6470aef1bcb1dd91c779dcd108a0a98d4dc

5 years agoCRH Transliteration Pattern Matching Fixes
tjones [Sat, 7 Apr 2018 06:40:15 +0000 (02:40 -0400)]
CRH Transliteration Pattern Matching Fixes

Refactor to match exceptions as patterns, not words
- break exception list to C2L and L2C pattern sets
- change main loop to break only on Roman numerals and transliterate
  everything else, rather than tokenizing on single-script words
  (this fixes the km² problem, too)
  - update word anchors from ^ and $ to \b
  - only process Roman numerals for L2C translit
  - add exception for single "Roman" character followed by a period
    which looks like an initial
- consolidate multi-step transliteration into regsConverter()
- remove regex support from main exception list to support strtr()
- re-organize some prefix/suffix/whole word patterns to the right place
- add tests for recently fixed use cases
- add support for many-to-one mappings in both directions
- update character classes, exception lists,  and regexes based on
  speaker feedback and example texts

Misc other fixes:
- fix some character classes errors
- remove unneeded character classes
- add tests for Roman numerals and quotes
- add tests for affixes and regexes

Bug: T188321
Bug: T189512
Change-Id: I056d36ff2b8f63b3998a5d3a442d8d539c15488d

5 years agoMerge "Rewrite DumpRev to not always fatal out"
jenkins-bot [Fri, 27 Apr 2018 22:35:42 +0000 (22:35 +0000)]
Merge "Rewrite DumpRev to not always fatal out"

5 years agoRecentChange: Use constants for the $noudp parameter of save()
Timo Tijhof [Fri, 6 Apr 2018 15:56:07 +0000 (16:56 +0100)]
RecentChange: Use constants for the $noudp parameter of save()

It is a boolean parameter that is confusing for three reasons:

* It's a boolean parameter, given parameters are unnamed in PHP,
  these are always poor UX for call sites.

* It's negated ("noudp"). save(true) means no feeds events,
  save(false) [default] means sending events to feeds.

* To overcome this problem, typical use was to pass a free-form
  string that self-documents the intended behaviour,
  e.g. `save('pleasenoudp')`, any string casts to true.

Fix this by moving the booleans to constants and use those
instead. For compatiblity, keep the negation internally,
although it's hidden from regular usage. Also document
the string hack, deprecate it, and update callers.

Change-Id: Ia57c86b38bf50cb4ec580f42a6b1ca798fcf781a

5 years agoMerge "EditPage: Remove isOouiEnabled(), deprecated since MW 1.30"
jenkins-bot [Fri, 27 Apr 2018 22:15:26 +0000 (22:15 +0000)]
Merge "EditPage: Remove isOouiEnabled(), deprecated since MW 1.30"

5 years agoEditPage: Remove isOouiEnabled(), deprecated since MW 1.30
Bartosz Dziewoński [Tue, 5 Sep 2017 17:52:41 +0000 (19:52 +0200)]
EditPage: Remove isOouiEnabled(), deprecated since MW 1.30

Change-Id: I0ca2960ca4da5f7ec5acb254b30254809857bafa

5 years agoRewrite DumpRev to not always fatal out
Aaron Schulz [Tue, 27 Feb 2018 09:32:07 +0000 (01:32 -0800)]
Rewrite DumpRev to not always fatal out

* The method fetchBlob() is private.
* Also remove all of the code duplication.

Change-Id: Ie307a937bcfd835a3239af23fb8deeb78704e0fe

5 years agoAdd missing use statement
Umherirrender [Fri, 27 Apr 2018 21:09:55 +0000 (23:09 +0200)]
Add missing use statement

Change-Id: Id14d97b5b74edf6c6bafb29b643ac9b9357bb681

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Fri, 27 Apr 2018 19:56:04 +0000 (21:56 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I060031447212e6e82254ee570a569fc2fc9fa749