3 years agoMerge "EditPage: In the list of "templates used", highlight redirect templates"
jenkins-bot [Mon, 5 Mar 2018 18:33:47 +0000 (18:33 +0000)]
Merge "EditPage: In the list of "templates used", highlight redirect templates"

3 years agoEditPage: In the list of "templates used", highlight redirect templates
AdityaJ [Sat, 3 Mar 2018 08:25:17 +0000 (13:55 +0530)]
EditPage: In the list of "templates used", highlight redirect templates

Bug: T188737
Change-Id: I16af53c5048a95fd166f8e79ea26f164c1d3a49d

3 years agoMerge "StripState testing and cleanup"
jenkins-bot [Mon, 5 Mar 2018 18:04:06 +0000 (18:04 +0000)]
Merge "StripState testing and cleanup"

3 years agoMerge "Limit total expansion size in StripState and improve limit handling"
jenkins-bot [Mon, 5 Mar 2018 18:02:30 +0000 (18:02 +0000)]
Merge "Limit total expansion size in StripState and improve limit handling"

3 years agoMerge "Fix master/replica race condition when creating null revisions"
jenkins-bot [Mon, 5 Mar 2018 11:59:33 +0000 (11:59 +0000)]
Merge "Fix master/replica race condition when creating null revisions"

3 years agoStripState testing and cleanup
Tim Starling [Wed, 28 Feb 2018 09:42:40 +0000 (20:42 +1100)]
StripState testing and cleanup

* Added StripState unit tests
* Deprecated unmaintained "half-parsed" serialization experiment
* Renamed some variables for brevity and removed unused "prefix"

Change-Id: I838d7ac7f9a2189e13d39c6939dba5d70e74a6b7

3 years agoLimit total expansion size in StripState and improve limit handling
Tim Starling [Wed, 28 Feb 2018 02:11:56 +0000 (13:11 +1100)]
Limit total expansion size in StripState and improve limit handling

* Add a new limit to the parser which limits the size of the output
  generated by StripState. The relevant bug shows exponential blowup in
  output size.
* Remove the $prefix parameter from the StripState constructor. Used by
  no Gerrit-hosted extensions, hard-deprecated since 1.26.
* Convert the existing unstrip recursion depth limit to a normal parser
  limit with limit report row, warning and tracking category. Provide
  the same features in the new limit.
* Add an optional $parser parameter to the StripState constructor so
  that warnings and tracking categories can be added.

Bug: T187833
Change-Id: Ie5f6081177610dc7830de4a0a40705c0c8cb82f1

3 years agoApiQueryContributors: Use correct variable
Brad Jorsch [Sun, 4 Mar 2018 04:31:02 +0000 (23:31 -0500)]
ApiQueryContributors: Use correct variable

Bug: T188813
Change-Id: Ibc705d61d57cfe8867d1bde35781515c25b777c1

3 years agoMerge "Drop 'comma' value for wgArticleCountMethod"
jenkins-bot [Sat, 3 Mar 2018 23:06:23 +0000 (23:06 +0000)]
Merge "Drop 'comma' value for wgArticleCountMethod"

3 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Sat, 3 Mar 2018 20:59:53 +0000 (21:59 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: I12d8afdf599386fa27fd3f9ff96f77e16ef9a560

3 years agoFix master/replica race condition when creating null revisions
Roan Kattouw [Sat, 3 Mar 2018 03:54:45 +0000 (19:54 -0800)]
Fix master/replica race condition when creating null revisions

RevisionStore::newFromNullRevision() carefully reads the latest revision
from the master, but then forgets to instruct emulateMainSlot_1_29() to
do the same, so the lookup query for rev_text_id in the text table is
done against a replica.

This is not usually a problem for null revisions, but it is a problem
when editing a page and then immediately moving it: this causes a null
revision to be created based on a freshly created revision, which
doesn't yet exist on the replica.

Bug: T184670
Change-Id: Ied4db5ee770716ff3edb918d2be722934c79d0c7

3 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Fri, 2 Mar 2018 21:01:20 +0000 (22:01 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: I29741ea3f2e69c74456584857b144f2cdb7465f9

3 years agoMerge "Introduce hasSlot in RevisionRecord and RevisionSlots."
jenkins-bot [Fri, 2 Mar 2018 20:38:59 +0000 (20:38 +0000)]
Merge "Introduce hasSlot in RevisionRecord and RevisionSlots."

3 years ago[MCR] NameTableStore
addshore [Tue, 16 Jan 2018 13:53:22 +0000 (13:53 +0000)]
[MCR] NameTableStore

General purpose cached store for things like:
 - content_models (id,name)
 - slot_roles (id,name)
And in the future possibly namespaces & content_formats
as mentioned at:

Bug: T188518
Change-Id: Ia550ef7fe30af25ac3fee5ac8a89d032544563bf

3 years agoMerge "rdbms: make LoadBalancer::getConnection() ignore CONN_TRX_AUTO when unusable"
jenkins-bot [Fri, 2 Mar 2018 19:26:49 +0000 (19:26 +0000)]
Merge "rdbms: make LoadBalancer::getConnection() ignore CONN_TRX_AUTO when unusable"

3 years agoMerge "rdbms: avoid strange uses of empty()"
jenkins-bot [Fri, 2 Mar 2018 19:13:58 +0000 (19:13 +0000)]
Merge "rdbms: avoid strange uses of empty()"

3 years agoMerge "rdbms: add missing hint check DatabaseMysqlBase::isInsertSelectSafe"
jenkins-bot [Fri, 2 Mar 2018 19:10:28 +0000 (19:10 +0000)]
Merge "rdbms: add missing hint check DatabaseMysqlBase::isInsertSelectSafe"

3 years agoMerge "Ensure abort link parsing on xmlish tag in link title position"
jenkins-bot [Fri, 2 Mar 2018 18:55:37 +0000 (18:55 +0000)]
Merge "Ensure abort link parsing on xmlish tag in link title position"

3 years agordbms: make LoadBalancer::getConnection() ignore CONN_TRX_AUTO when unusable
Aaron Schulz [Wed, 28 Feb 2018 00:00:05 +0000 (16:00 -0800)]
rdbms: make LoadBalancer::getConnection() ignore CONN_TRX_AUTO when unusable

Change-Id: I1fd13171c3cfbe071e8e398d561281188d998767

3 years agoMerge "Fix undefined $ok in DatabaseUpdater::migrateComments"
jenkins-bot [Fri, 2 Mar 2018 16:36:26 +0000 (16:36 +0000)]
Merge "Fix undefined $ok in DatabaseUpdater::migrateComments"

3 years agoFix undefined $ok in DatabaseUpdater::migrateComments
Reedy [Fri, 2 Mar 2018 16:24:50 +0000 (16:24 +0000)]
Fix undefined $ok in DatabaseUpdater::migrateComments

Change-Id: I608a693e688039526975ef5d3fe4c40c7679ed7b

3 years agoMerge "User: Remove ::setCookie/etc., deprecated in 1.27"
jenkins-bot [Fri, 2 Mar 2018 11:10:08 +0000 (11:10 +0000)]
Merge "User: Remove ::setCookie/etc., deprecated in 1.27"

3 years agoMerge "EditPage: Remove methods from OOUI transition, deprecated in 1.30"
jenkins-bot [Fri, 2 Mar 2018 11:03:59 +0000 (11:03 +0000)]
Merge "EditPage: Remove methods from OOUI transition, deprecated in 1.30"

3 years agoMerge "resourceloader: Un-deprecate makeLoaderConditionalScript()"
jenkins-bot [Fri, 2 Mar 2018 11:01:07 +0000 (11:01 +0000)]
Merge "resourceloader: Un-deprecate makeLoaderConditionalScript()"

3 years agoUser: Remove ::setCookie/etc., deprecated in 1.27
James D. Forrester [Tue, 27 Feb 2018 23:55:34 +0000 (15:55 -0800)]
User: Remove ::setCookie/etc., deprecated in 1.27

Change-Id: I6b37ffd957cdeba79037dadd36f50e0a0b89e5f5

3 years agoEditPage: Remove methods from OOUI transition, deprecated in 1.30
James D. Forrester [Tue, 27 Feb 2018 23:34:49 +0000 (15:34 -0800)]
EditPage: Remove methods from OOUI transition, deprecated in 1.30

No uses found in code search.

Change-Id: I683538f72eab3002ebb4b3e0c76a1ffa6fb9e39a

3 years agordbms: in Database::selectSQLText, do not treat $conds = "0" as no condition
daniel [Tue, 27 Feb 2018 18:08:47 +0000 (19:08 +0100)]
rdbms: in Database::selectSQLText, do not treat $conds = "0" as no condition

This fixes an issue that arises because empty( "0" ) is true in PHP.

The new behavior rejects any conditions that are not strings or arrays,
and lets $conds = "0" be passed to the databases as WHERE 0.

Some databases may reject this as invalid syntax, which is the expected
behavior here, instead of silently ignoring the 0, causing no condition to
be applied to the query.

Bug: T188314
Change-Id: I5bc4d7f41221a886c85e54d9da67c4c095a7d9ce

3 years agordbms: add missing hint check DatabaseMysqlBase::isInsertSelectSafe
Aaron Schulz [Fri, 2 Mar 2018 04:41:32 +0000 (20:41 -0800)]
rdbms: add missing hint check DatabaseMysqlBase::isInsertSelectSafe

This was lost when a bunch of other logic was split off in 671368a59e3

Change-Id: I3d3f744f8fce007ecf88cbd2c9f99918b06f0573

3 years agordbms: avoid strange uses of empty()
Aaron Schulz [Fri, 2 Mar 2018 04:30:07 +0000 (20:30 -0800)]
rdbms: avoid strange uses of empty()

Change-Id: Id1a8d1aae72cdee48e43ddb3227cd697516411e0

3 years agoMerge "Expose the latest modified index seen by EtcdConfig"
jenkins-bot [Fri, 2 Mar 2018 03:59:40 +0000 (03:59 +0000)]
Merge "Expose the latest modified index seen by EtcdConfig"

3 years agoMerge "rdbms: make Database::insertSelect() stricter about replication safety"
jenkins-bot [Fri, 2 Mar 2018 02:50:32 +0000 (02:50 +0000)]
Merge "rdbms: make Database::insertSelect() stricter about replication safety"

3 years agordbms: make Database::insertSelect() stricter about replication safety
Aaron Schulz [Wed, 28 Feb 2018 23:33:03 +0000 (15:33 -0800)]
rdbms: make Database::insertSelect() stricter about replication safety

Avoid the native INSERT SELECT method if a LIMIT clause is present.

Change-Id: Ibf9b8a4a42092fbc98d7ebd45167203a6a8801ee

3 years agoPass '' instead of false for the $conds parameter in select calls.
daniel [Tue, 27 Feb 2018 18:37:26 +0000 (19:37 +0100)]
Pass '' instead of false for the $conds parameter in select calls.

Per documentation on IDatabase, $conds must be a string or an array.
Passing false for conds is confusing, since it's unclear whether this
should match everything or nothing.

Bug: T188314
Change-Id: I8be1ac4cbdaafc41aadc2a658be8a99b754b0268

3 years agoresourceloader: Un-deprecate makeLoaderConditionalScript()
Timo Tijhof [Fri, 2 Mar 2018 01:12:03 +0000 (17:12 -0800)]
resourceloader: Un-deprecate makeLoaderConditionalScript()

It was deprecated to encourage callers to use makeInlineScript()
instead, because before makeInlineScript() was introduced, callers
would often manually wrap it in a <script> tag, which we don't want
because 1) We want de-duplication through WrappedString and 2)
callers sometimes forget to use Html.php methods that ensure
proper escaping as-needed.

However, there is still use in getting thet wrapped script without
also the wrapped HTML script tag. Namely, for use in http responses
that produce JavaScript, rather than HTML, where there cannot be
an HTML script tag.

There is at least one such caller (in SpecialJavaScriptTest) and
it's fine for there to be others.

Change-Id: Icfc285e12293c76dc68a220deb6816e32b058209

3 years agoFollow-up 6d4e1547: Hard-deprecate these functions
James D. Forrester [Tue, 27 Feb 2018 23:24:03 +0000 (15:24 -0800)]
Follow-up 6d4e1547: Hard-deprecate these functions

Only use in Wikimedia production is in GlobalCssJs, below.

Depends-On: I7543fe9ea393901379c16c4f0b1e96fa20955b6f
Change-Id: I66292b179d948e46dba3513f50c3d36012765a9d

3 years agoDrop 'comma' value for wgArticleCountMethod
James D. Forrester [Wed, 28 Feb 2018 01:45:27 +0000 (17:45 -0800)]
Drop 'comma' value for wgArticleCountMethod

We have three methods for page counting currently supported for wikitext
non-redirect pages; 'any' counts any page that exists, 'link' counts any
page that has any outbound links, and 'comma' which searches for any ','
in the text having loaded it. This last option is much slower than these
other two, and is only used on a very small number of installations. Now
by dropping support for this method we can simplify this code and so run
it more often. Note that non-wikitext pages already did not support this
count method.

Installations with this setting set to 'comma', or any other string will
now work as if it was configured with 'any'.

Bug: T188472
Change-Id: I965927edcd2485ec4b49b2d80fdf216dbf19520b

3 years agordbms: make replace()/upsert() use atomic sections
Aaron Schulz [Wed, 28 Feb 2018 22:41:18 +0000 (14:41 -0800)]
rdbms: make replace()/upsert() use atomic sections

This makes them consistent with nonNativeInsertSelect()

Style aside, there is also the potential edge case of:
a) no transaction being active yet, with
b) the first query being replace() or upsert(), with
c) DBO_TRX being set (usually part of an implicit transaction round)

Previously, in that case, these methods would commit the transaction
they started, rather than leave it open. The correct semantics are
to leave it open. Since MySQL redefined upsert() to use ON DUPLICATE
KEY UPDATE, it already had the right behavior.

Also make sure that rollback() always sets the affectedRowCount
field to 0.

Change-Id: I15f923d3d4799cffc60e3aaea934f4ca1a9488e1

3 years agoMerge "rdbms: refactored code into separate Database::getClass method"
jenkins-bot [Thu, 1 Mar 2018 21:49:46 +0000 (21:49 +0000)]
Merge "rdbms: refactored code into separate Database::getClass method"

3 years agordbms: refactored code into separate Database::getClass method
Aaron Schulz [Tue, 27 Feb 2018 21:44:14 +0000 (13:44 -0800)]
rdbms: refactored code into separate Database::getClass method

Change-Id: Ic09ce2ea541d04f3cb3bc80a4a59c8b525ed8c53

3 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Thu, 1 Mar 2018 20:57:02 +0000 (21:57 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: Ibd74ef97fc27e4cd42491a049f9bd08a06859487

3 years agoMerge "multiselect: Use MenuTagMultiselectWidget"
jenkins-bot [Thu, 1 Mar 2018 20:04:28 +0000 (20:04 +0000)]
Merge "multiselect: Use MenuTagMultiselectWidget"

3 years agomultiselect: Use MenuTagMultiselectWidget
Prateek Saxena [Thu, 1 Mar 2018 07:00:53 +0000 (12:30 +0530)]
multiselect: Use MenuTagMultiselectWidget

…instead of CapsuleMultiselectWidget

Bug: T183299
Change-Id: I58385968c03e9b53ea8fc4d64de5d6540d12acc1

3 years agoEnsure abort link parsing on xmlish tag in link title position
Arlo Breault [Thu, 1 Mar 2018 18:59:43 +0000 (13:59 -0500)]
Ensure abort link parsing on xmlish tag in link title position

This shouldn't be dependent on the current definition of legal title
chars and strip marker.

See the test "<nowiki> inside a link"

Change-Id: I0d87aca1bb0adf4ec5ac480e0373a65fcd150a72

3 years agomw.widgets: Add SizeFilterWidget and its PHP implementation
Prateek Saxena [Fri, 29 Dec 2017 05:27:44 +0000 (10:57 +0530)]
mw.widgets: Add SizeFilterWidget and its PHP implementation

Bug: T183765
Change-Id: Ieb551e901405749489059366de9af6316f369cc0

3 years agoNewPagesPages: Use array_merge rather than + for RC query info fields
Brad Jorsch [Thu, 1 Mar 2018 13:24:48 +0000 (08:24 -0500)]
NewPagesPages: Use array_merge rather than + for RC query info fields

Unlike CommentStore::getJoin() and ActorMigration::getJoin(), the tables
and fields of various ::getQueryInfo() methods aren't guaranteed to be
safe to use with array '+'.

Bug: T188555
Change-Id: Ibe99edcb93d1729935fed6232ba4fe2e7d39cea6

3 years agoExpose the latest modified index seen by EtcdConfig
Giuseppe Lavagetto [Fri, 16 Feb 2018 16:08:58 +0000 (17:08 +0100)]
Expose the latest modified index seen by EtcdConfig

While not immediately useful for fecthing the configuration, this is
basically a version information about the configuration currently loaded
from etcd. A typical use-case for this index is monitoring the freshness
of the configuration across a cluster of servers.

Bug: T182597
Change-Id: I58189d36a5b620fb44323bae87257f085a64386e

3 years agoMerge "Only add header when description not already has it"
jenkins-bot [Thu, 1 Mar 2018 09:56:20 +0000 (09:56 +0000)]
Merge "Only add header when description not already has it"

3 years agoMerge "Fix bogus DatabaseOracle::__construct() calls in OracleInstaller"
jenkins-bot [Thu, 1 Mar 2018 01:22:13 +0000 (01:22 +0000)]
Merge "Fix bogus DatabaseOracle::__construct() calls in OracleInstaller"

3 years agoMerge "Use findSelectedItems instead of getSelectedItems"
jenkins-bot [Thu, 1 Mar 2018 00:02:05 +0000 (00:02 +0000)]
Merge "Use findSelectedItems instead of getSelectedItems"

3 years agoUse findSelectedItems instead of getSelectedItems
Prateek Saxena [Wed, 28 Feb 2018 05:44:46 +0000 (11:14 +0530)]
Use findSelectedItems instead of getSelectedItems

Bug: T76630
Depends-on: Ic1be36b62f6c48c9f40feace009fe4ca3e7a8e3f
Change-Id: I0f0e0f3494e2993e604dd7d0e6d15c2d1f34e772

3 years agoFix bogus DatabaseOracle::__construct() calls in OracleInstaller
Aaron Schulz [Wed, 28 Feb 2018 19:25:15 +0000 (11:25 -0800)]
Fix bogus DatabaseOracle::__construct() calls in OracleInstaller

Change-Id: I12a35ac0eeb68e5da9ba07ba44d3522213e9de8e

3 years agoMerge "rdbms: allow callers to hint that native insertSelect() is safe"
jenkins-bot [Wed, 28 Feb 2018 22:37:30 +0000 (22:37 +0000)]
Merge "rdbms: allow callers to hint that native insertSelect() is safe"

3 years agoMerge "Database: Add batching to non-native insertSelect()"
jenkins-bot [Wed, 28 Feb 2018 22:04:13 +0000 (22:04 +0000)]
Merge "Database: Add batching to non-native insertSelect()"

3 years agoMerge "Fix table loading bug for CRH transliteration"
jenkins-bot [Wed, 28 Feb 2018 21:09:01 +0000 (21:09 +0000)]
Merge "Fix table loading bug for CRH transliteration"

3 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Wed, 28 Feb 2018 20:57:46 +0000 (21:57 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: I59d4acb939e5ac374a3166c5edf61f72bde87e37

3 years agoMerge "Parser: Don't wrap <style> or <link> tags in paragraphs"
jenkins-bot [Wed, 28 Feb 2018 19:29:34 +0000 (19:29 +0000)]
Merge "Parser: Don't wrap <style> or <link> tags in paragraphs"

3 years agoParser: Don't wrap <style> or <link> tags in paragraphs
Brad Jorsch [Mon, 26 Feb 2018 21:49:08 +0000 (16:49 -0500)]
Parser: Don't wrap <style> or <link> tags in paragraphs

If <style> or <link> tags are by themselves on a line, don't wrap them
in <p> tags. But, at the same time, don't end an existing paragraph if
we find <style> or <link> in the middle (like we would if we just
treated them as block tags).

If <style> or <link> is on a line with other text, though, let it be
wrapped in a paragraph along with that other text.

Bug: T186965
Change-Id: Ide4005842cdab537226aa538cb5f7d8e363ba95d

3 years agordbms: allow callers to hint that native insertSelect() is safe
Brad Jorsch [Thu, 8 Feb 2018 19:18:24 +0000 (14:18 -0500)]
rdbms: allow callers to hint that native insertSelect() is safe

An INSERT SELECT in MySQL/MariaDB is unsafe for replication if a column
is getting values from auto-increment, statement-based replication is in
use, and the default innodb_autoinc_lock_mode is set.

I9173f655 added checks to force non-native insertSelect for the
statement-based replication and innodb_autoinc_lock_mode != 2 case, but
determining whether a column is getting values from auto-increment is
too hard to do automatically there.

Instead, let's add a flag to let the caller hint that the query isn't
getting any auto-increment values. And use it in MysqlUpdater when

Bug: T160993
Change-Id: If70450a64aa3bcbf763c62838bb21306d124ae3d

3 years agoDatabase: Add batching to non-native insertSelect()
Brad Jorsch [Thu, 8 Feb 2018 19:16:29 +0000 (14:16 -0500)]
Database: Add batching to non-native insertSelect()

It would be easy for a call to nonNativeInsertSelect() to generate an
INSERT that's too big for the database to actually process. Add batching
to try to avoid that.

Bug: T160993
Change-Id: I1de994208d95926f0d75c0d7cab7b5fe1dd565c3

3 years agoMerge "Separate additional swift users for public and private"
jenkins-bot [Wed, 28 Feb 2018 18:19:25 +0000 (18:19 +0000)]
Merge "Separate additional swift users for public and private"

3 years agoMerge "API: Update main description to reflect reality"
jenkins-bot [Wed, 28 Feb 2018 17:12:57 +0000 (17:12 +0000)]
Merge "API: Update main description to reflect reality"

3 years agoMerge "WikiPage: Avoid $user variable reuse in doDeleteArticleReal()"
jenkins-bot [Wed, 28 Feb 2018 14:16:29 +0000 (14:16 +0000)]
Merge "WikiPage: Avoid $user variable reuse in doDeleteArticleReal()"

3 years agoMerge "Update namespaces for Sindhi"
Nikerabbit [Wed, 28 Feb 2018 11:58:55 +0000 (11:58 +0000)]
Merge "Update namespaces for Sindhi"

3 years agoWikiPage: Avoid $user variable reuse in doDeleteArticleReal()
Kunal Mehta [Wed, 28 Feb 2018 05:47:29 +0000 (21:47 -0800)]
WikiPage: Avoid $user variable reuse in doDeleteArticleReal()

$user was being used to represent the person who was deleting the page as
well as a variable when dermining the person who made an edit in each
row as it was moved to the archive table.

Make it unambigious which variable is used to represent the person deleting
the article by renaming it to $deleter.

Bug: T188479
Change-Id: Ia06e7fb840ebc68446127352e336a7e33c813042

3 years agoMerge "In StripState use closures instead of temporary member variables"
jenkins-bot [Wed, 28 Feb 2018 05:05:56 +0000 (05:05 +0000)]
Merge "In StripState use closures instead of temporary member variables"

3 years agoMerge "Avoid use of deprecated SiteStatsUpdate::__construct()"
jenkins-bot [Wed, 28 Feb 2018 05:04:52 +0000 (05:04 +0000)]
Merge "Avoid use of deprecated SiteStatsUpdate::__construct()"

3 years agoAPI: Update main description to reflect reality
Kunal Mehta [Wed, 28 Feb 2018 04:36:34 +0000 (20:36 -0800)]
API: Update main description to reflect reality

For quite a while now, the API no longer "may change at any time". Any
potential breaking change goes through code review, usage analysis, and
usually, a deprecation process.

This process was implemented as part of the "API roadmap"[1] RfC in

Today, the API is mature and stable, but still actively developed and
maintained. Breaking changes can still happen, and we want people to
subscribe to the -announce mailing list, but it's not as scary as the
old text implied.


Change-Id: If13172a35a3d041bce745aa72a835bfddcfe62c0

3 years agoMerge "Do not run ipblocks cleanup randomly, just do it all the time"
jenkins-bot [Wed, 28 Feb 2018 03:53:47 +0000 (03:53 +0000)]
Merge "Do not run ipblocks cleanup randomly, just do it all the time"

3 years agoDo not run ipblocks cleanup randomly, just do it all the time
Amir Sarabadani [Fri, 23 Feb 2018 16:58:58 +0000 (17:58 +0100)]
Do not run ipblocks cleanup randomly, just do it all the time

It's a deferred update and the number of blocks are small

Change-Id: I75e0b7dc38b22f8aa7453582d535a8ab8121fd1a

3 years agoAvoid use of deprecated SiteStatsUpdate::__construct()
Aaron Schulz [Wed, 28 Feb 2018 03:15:43 +0000 (19:15 -0800)]
Avoid use of deprecated SiteStatsUpdate::__construct()

Change-Id: I9bf70fefe3ca146525e9b7cb436c9a577fb8eaee

3 years agoMerge "RCFilters: Actually apply the $autoCloseIgnore to the overlay"
jenkins-bot [Wed, 28 Feb 2018 01:46:51 +0000 (01:46 +0000)]
Merge "RCFilters: Actually apply the $autoCloseIgnore to the overlay"

3 years agoRCFilters: Actually apply the $autoCloseIgnore to the overlay
Moriel Schottlender [Wed, 28 Feb 2018 01:12:01 +0000 (17:12 -0800)]
RCFilters: Actually apply the $autoCloseIgnore to the overlay

The way we extended the configuration meant we overrided the
overlay $autoCloseIgnore with default rather than override the
default with the overlay.

Bug: T188459
Change-Id: If20bd400a8a206aa77c25c390d9e9ce5111b68cb

3 years agoIn StripState use closures instead of temporary member variables
Tim Starling [Wed, 28 Feb 2018 00:22:43 +0000 (11:22 +1100)]
In StripState use closures instead of temporary member variables

The former convention was an awkward workaround for the lack of

Change-Id: I8722e168fb9b5e76cf6a937139be728bb3fc3e92

3 years agoMerge "shell: Don't use --seccomp=@default for firejail < 0.9.50 support"
jenkins-bot [Tue, 27 Feb 2018 23:00:15 +0000 (23:00 +0000)]
Merge "shell: Don't use --seccomp=@default for firejail < 0.9.50 support"

3 years agoMerge "Update more forms to limit comments by codepoints rather than bytes"
jenkins-bot [Tue, 27 Feb 2018 22:27:58 +0000 (22:27 +0000)]
Merge "Update more forms to limit comments by codepoints rather than bytes"

3 years agoAdd a missing check of $wgActorTableSchemaMigrationStage
Brad Jorsch [Tue, 27 Feb 2018 21:08:02 +0000 (16:08 -0500)]
Add a missing check of $wgActorTableSchemaMigrationStage

We shouldn't be trying to update the table when it's MIGRATION_OLD.

Bug: T188437
Change-Id: Id5aae5eaafc36bf7e65009e67fe91619fb1df295

3 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Tue, 27 Feb 2018 20:55:42 +0000 (21:55 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: I9451759812c8112ae1be6583659a78a6f53ef935

3 years agoMerge "Use findSelectedItem instead of getSelectedItem"
jenkins-bot [Tue, 27 Feb 2018 19:04:29 +0000 (19:04 +0000)]
Merge "Use findSelectedItem instead of getSelectedItem"

3 years agoMerge "Remove wfWaitForSlaves when using Maintenance::commitTransaction"
jenkins-bot [Tue, 27 Feb 2018 17:43:57 +0000 (17:43 +0000)]
Merge "Remove wfWaitForSlaves when using Maintenance::commitTransaction"

3 years agoUse findSelectedItem instead of getSelectedItem
Prateek Saxena [Tue, 27 Feb 2018 06:06:07 +0000 (11:36 +0530)]
Use findSelectedItem instead of getSelectedItem

Depends-on: I0f1d9c1f31efcc10d3647103548770d2101050d9
Bug: T76630
Change-Id: I6782909cfff3b10c0f651a26081cb73f37e82b83

3 years agoMerge "Remove wfProfileIn/wfProfileOut"
jenkins-bot [Tue, 27 Feb 2018 01:54:39 +0000 (01:54 +0000)]
Merge "Remove wfProfileIn/wfProfileOut"

3 years agoMerge "Accept non-fully qualified TestCase in StructureTest"
jenkins-bot [Tue, 27 Feb 2018 01:32:32 +0000 (01:32 +0000)]
Merge "Accept non-fully qualified TestCase in StructureTest"

3 years agoMerge "Create a custom log formatter that allows log entries to contain wikitext"
jenkins-bot [Tue, 27 Feb 2018 01:12:56 +0000 (01:12 +0000)]
Merge "Create a custom log formatter that allows log entries to contain wikitext"

3 years agoCreate a custom log formatter that allows log entries to contain wikitext
SamanthaNguyen [Sun, 25 Feb 2018 00:19:31 +0000 (18:19 -0600)]
Create a custom log formatter that allows log entries to contain wikitext

This creates a new log formatter called WikitextLogFormatter, which
is a simple class that allows log entries to contain properly
formatted wikitext. This makes it easier for extensions so they don't
have to create their own subclass of LogFormatter.

Change-Id: I2b7fddf5c6ef017a0925b4bf75cfd47cb55aa5de

3 years agoshell: Don't use --seccomp=@default for firejail < 0.9.50 support
Kunal Mehta [Mon, 26 Feb 2018 21:40:27 +0000 (13:40 -0800)]
shell: Don't use --seccomp=@default for firejail < 0.9.50 support

Just using a plain `--seccomp` automatically enables the default list.

Bug: T183680
Change-Id: I623db943eeb5c3e9d4f7a553fb6a17a60d659dce

3 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Mon, 26 Feb 2018 20:55:45 +0000 (21:55 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: I11123ffd371ab1883530b4342f1d4af38485464f

3 years agoRemove wfWaitForSlaves when using Maintenance::commitTransaction
Umherirrender [Mon, 26 Feb 2018 20:05:33 +0000 (21:05 +0100)]
Remove wfWaitForSlaves when using Maintenance::commitTransaction

Maintenance::commitTransaction is calling waitForReplication already.
No need to wait a second time, hopefully the lags are 0 already.

Change-Id: Id457ed2cdd6bfd9663665ba0cd5c4e3dd640b738

3 years agoMerge "updateCollation.php: Improve --dry-run mode"
jenkins-bot [Mon, 26 Feb 2018 19:15:56 +0000 (19:15 +0000)]
Merge "updateCollation.php: Improve --dry-run mode"

3 years agoExit populateIpChanges maintenance script if there are no revisions
MusikAnimal [Mon, 26 Feb 2018 17:38:46 +0000 (12:38 -0500)]
Exit populateIpChanges maintenance script if there are no revisions

Bug: T188225
Change-Id: Ice1bdae3d16cf365da14c6df0e8d91d2b914f064

3 years agoFix table loading bug for CRH transliteration
tjones [Mon, 26 Feb 2018 18:03:19 +0000 (13:03 -0500)]
Fix table loading bug for CRH transliteration

In production, the regex and exception tables were not being loaded,
resulting in very poor transliteration. The loading has been moved to
the contructor, similar to the implementation of the Kazakh

Also, a bug in the mappings for Ö/ö -> Ё/ё and Ü/ü -> Ю/ю has been

Test cases for specific additional examples have been added. (Though
it is worth noting that the regex and exception tables did load
properly during unit testing, so the problem wasn't caught there.)

Bug: T186727
Change-Id: I6bacee7d9de6f4a870a8a9ef1f04b819ad489c02

3 years agoUpdate more forms to limit comments by codepoints rather than bytes
Brad Jorsch [Mon, 26 Feb 2018 18:07:11 +0000 (13:07 -0500)]
Update more forms to limit comments by codepoints rather than bytes

This updates the deletion forms, Special:Block, Special:EditTags,
Special:MovePage, Special:RevisionDelete, Special:Undelete, and
Special:UserRights to limit by code point count rather than by byte (or,
in some cases, by UTF-16 code unit).

Bug: T185948
Change-Id: I20d11d7cc4f58902cbcb6dda70af533bce6dd170

3 years agoIntroduce hasSlot in RevisionRecord and RevisionSlots.
daniel [Tue, 6 Feb 2018 21:42:07 +0000 (22:42 +0100)]
Introduce hasSlot in RevisionRecord and RevisionSlots.

Change-Id: Ie7ee2afe26d37ac726f4682c96166cb89134227c

3 years agoAccept non-fully qualified TestCase in StructureTest
Lucas Werkmeister [Mon, 26 Feb 2018 17:04:33 +0000 (18:04 +0100)]
Accept non-fully qualified TestCase in StructureTest

This makes StructureTest also recognize test classes which look like

    use PHPUnit\Framework\TestCase;

    class FooTest extends TestCase {

instead of

    class FooTest extends \PHPUnit\Framework\TestCase {

This form is preferred, for instance, in Wikibase code.

Bug: T188276
Change-Id: I5bef035df33d317893ad3ba195ecb75f3b09a62f

3 years agoSeparate additional swift users for public and private
Gilles Dubuc [Mon, 26 Feb 2018 09:25:38 +0000 (10:25 +0100)]
Separate additional swift users for public and private

For better security seggregation it can be desirable
to set different additional swift users when dealing
with private containers.

Bug: T187822
Change-Id: I66d26ec81b3a3577d274c0d28cf86db7b505e082

3 years agoMerge "Chinese Conversion Table Update 2018-1"
jenkins-bot [Mon, 26 Feb 2018 09:19:17 +0000 (09:19 +0000)]
Merge "Chinese Conversion Table Update 2018-1"

3 years agoMerge "SpecialPageAliasTest: Fix arguments of Language::fetchLanguageNames"
jenkins-bot [Mon, 26 Feb 2018 08:54:36 +0000 (08:54 +0000)]
Merge "SpecialPageAliasTest: Fix arguments of Language::fetchLanguageNames"

3 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Sun, 25 Feb 2018 20:56:56 +0000 (21:56 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: I1eed5fd6944bbd829ed1fbb5950e89c8b85c87f6

3 years agoChinese Conversion Table Update 2018-1
Chiefwei [Sun, 25 Feb 2018 13:43:18 +0000 (21:43 +0800)]
Chinese Conversion Table Update 2018-1

1. Update the Chinese conversion table routinely to fix bugs reported from https://zh.wikipedia.org/wiki/Wikipedia:%E5%AD%97%E8%AF%8D%E8%BD%AC%E6%8D%A2/%E4%BF%AE%E5%A4%8D%E8%AF%B7%E6%B1%82 .

2. Fully support the conversion of Chinese characters included in "Table of General Standard Chinese Characters" (通用规范汉字表).

It is only data changes and only works for Chinese WikiProjects.

Change-Id: I7f94eb01b3b50427cbb96084152e574b066d5fbf

3 years agoSpecialPageAliasTest: Fix arguments of Language::fetchLanguageNames
Fomafix [Sun, 25 Feb 2018 12:19:15 +0000 (13:19 +0100)]
SpecialPageAliasTest: Fix arguments of Language::fetchLanguageNames

Language::fetchLanguageNames( 'mwfile' ) means all languages with the
default filter 'mw' and names in the language 'mwfile'.

Language::fetchLanguageNames( null, 'mwfile' ) means language all
languages with the filter 'mwfile' and names in the default language.

This change removes the test for the language codes:
* aa
* als
* bat-smg
* be-x-old
* cho
* fiu-vro
* ho
* hz
* kj
* kr
* mh
* mus
* ng
* no
* rn
* roa-rup
* shi-latn
* shi-tfng
* simple
* tum
* uz-cyrl
* uz-latn
* zh-classical
* zh-min-nan
* zh-yue

Change-Id: I7266a67e37862daf863d1565d84cfeebaf5cb680

3 years agocontent: Fix @return doc for AbstractContent::getDeletionUpdates()
Kunal Mehta [Sun, 25 Feb 2018 02:49:08 +0000 (18:49 -0800)]
content: Fix @return doc for AbstractContent::getDeletionUpdates()

If a subclass re-implements this function, then there's no guarantee
that it will be returning instances of LinksDelet

Change-Id: I09a0c0a786b687997e61344847f8af08b20cebf2