lhc/web/wiklou.git
4 years agoIntroduce separate unit tests PHPUnit configuration
Máté Szabó [Mon, 17 Jun 2019 21:15:25 +0000 (23:15 +0200)]
Introduce separate unit tests PHPUnit configuration

This changeset lays down the basic groundwork required to implement
T89432 and related tickets and is based on exploration done
at the Prague Hackathon. The goal is to identify tests in MediaWiki core
that can be run without having to install & configure MediaWiki and its dependencies,
and provide a way to execute these tests via the standard phpunit entry point,
allowing for faster development and integration with existing tooling like IDEs.

This changeset creates a  new subdirectory under phpunit/ and organizes it
into a separate test suite. The environment for this suite is set up
via a PHPUnit bootstrap file without a custom entry point. For B/C, this
directory is also registered in suite.xml, to ensure that existing CI jobs
still pick up tests in the new suite.

For initial testing, a single test class, PasswordFactoryTest, was moved
to this new suite.

You can run the new suite using the follwoing command:
$ vendor/bin/phpunit -d memory_limit=512M -c tests/phpunit/unit-tests.xml

Bug: T84948
Bug: T89432
Bug: T87781
Change-Id: I69b92db3e70093570e05cc0a64c7780a278b321a

4 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Mon, 17 Jun 2019 20:06:02 +0000 (22:06 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I78a1cea264df6fa322b5df4a342882fb867a2c1a

4 years agoMerge "Use [...] instead of array(...) in PHP comments and documentation"
jenkins-bot [Mon, 17 Jun 2019 20:00:45 +0000 (20:00 +0000)]
Merge "Use [...] instead of array(...) in PHP comments and documentation"

4 years agoMerge "Installer: Make short header and normal header of WebInstaller equivalent"
jenkins-bot [Mon, 17 Jun 2019 19:39:03 +0000 (19:39 +0000)]
Merge "Installer: Make short header and normal header of WebInstaller equivalent"

4 years agoInstaller: Make short header and normal header of WebInstaller equivalent
Fomafix [Fri, 14 Jun 2019 09:07:33 +0000 (11:07 +0200)]
Installer: Make short header and normal header of WebInstaller equivalent

Change-Id: I8ae0cca582c2dab87a4b3b050030f6c96897939e

4 years agoUse [...] instead of array(...) in PHP comments and documentation
Fomafix [Mon, 16 Jan 2017 15:42:53 +0000 (16:42 +0100)]
Use [...] instead of array(...) in PHP comments and documentation

Change-Id: I0c83783051bf35fe785bc01644eeb2946902b6b2

4 years agoMerge "Fix some issues with HTMLSelectAndOtherField default and validation"
jenkins-bot [Mon, 17 Jun 2019 18:35:34 +0000 (18:35 +0000)]
Merge "Fix some issues with HTMLSelectAndOtherField default and validation"

4 years agoMerge "resourceloader: Remove unused static $contexts var in ResourceLoaderImageTest"
jenkins-bot [Mon, 17 Jun 2019 18:02:31 +0000 (18:02 +0000)]
Merge "resourceloader: Remove unused static $contexts var in ResourceLoaderImageTest"

4 years agoMerge "FileRepo: Use Late Static Binding in File static constructors"
jenkins-bot [Mon, 17 Jun 2019 17:59:44 +0000 (17:59 +0000)]
Merge "FileRepo: Use Late Static Binding in File static constructors"

4 years agoresourceloader: Remove unused static $contexts var in ResourceLoaderImageTest
Fomafix [Sun, 16 Jun 2019 11:59:59 +0000 (13:59 +0200)]
resourceloader: Remove unused static $contexts var in ResourceLoaderImageTest

Change-Id: I95abbfd6d2baafb9378072fdf1a1fc5ed046cec3

4 years agoMerge "Filter out blocks with duplicate IDs when checking for blocks"
jenkins-bot [Mon, 17 Jun 2019 17:20:47 +0000 (17:20 +0000)]
Merge "Filter out blocks with duplicate IDs when checking for blocks"

4 years agoMerge "rdbms: clean up and simplify toString() handle for Database"
jenkins-bot [Mon, 17 Jun 2019 16:48:05 +0000 (16:48 +0000)]
Merge "rdbms: clean up and simplify toString() handle for Database"

4 years agoFilter out blocks with duplicate IDs when checking for blocks
Thalia [Mon, 17 Jun 2019 09:56:49 +0000 (10:56 +0100)]
Filter out blocks with duplicate IDs when checking for blocks

Bug: T225919
Change-Id: I76549072d53083e6057f4fd8fe963e8989daa25c

4 years agoMerge "[bugfix] Fetch tag ID before calling undefineTag()"
jenkins-bot [Mon, 17 Jun 2019 11:11:45 +0000 (11:11 +0000)]
Merge "[bugfix] Fetch tag ID before calling undefineTag()"

4 years agoDisable rate limiting in Development Settings
Leszek Manicki [Mon, 17 Jun 2019 09:11:39 +0000 (11:11 +0200)]
Disable rate limiting in Development Settings

Bug: T225796
Change-Id: I2475a04066d4aaefeba372bd223ef68548a8cf18

4 years agoMerge "Fix param type of search terms in search related classes"
jenkins-bot [Mon, 17 Jun 2019 07:54:27 +0000 (07:54 +0000)]
Merge "Fix param type of search terms in search related classes"

4 years agoMerge "rdbms: allow synchronous=OFF for sqlite"
jenkins-bot [Mon, 17 Jun 2019 01:53:48 +0000 (01:53 +0000)]
Merge "rdbms: allow synchronous=OFF for sqlite"

4 years agoMerge "search: clean up some type hints in search classes"
jenkins-bot [Mon, 17 Jun 2019 01:03:47 +0000 (01:03 +0000)]
Merge "search: clean up some type hints in search classes"

4 years agoMerge "rdbms: do not close the connection in LoadBalancerSingle::__destruct"
jenkins-bot [Mon, 17 Jun 2019 00:50:47 +0000 (00:50 +0000)]
Merge "rdbms: do not close the connection in LoadBalancerSingle::__destruct"

4 years agordbms: allow synchronous=OFF for sqlite
Aaron Schulz [Mon, 17 Jun 2019 00:47:32 +0000 (01:47 +0100)]
rdbms: allow synchronous=OFF for sqlite

Change-Id: I58be09bb170399f3ad94fc3bcc4881932d357a9b

4 years agosearch: clean up some type hints in search classes
Aaron Schulz [Sun, 16 Jun 2019 22:13:02 +0000 (23:13 +0100)]
search: clean up some type hints in search classes

Change-Id: I357a78b42ea02a63c3b64e8982f04314cbbfdf9f

4 years agordbms: do not close the connection in LoadBalancerSingle::__destruct
Aaron Schulz [Sun, 16 Jun 2019 23:20:55 +0000 (00:20 +0100)]
rdbms: do not close the connection in LoadBalancerSingle::__destruct

The connection instance is injected unlike with the parent class,
meaning that it does not own the connection. No-op the method.

Change-Id: I61914b986619f201ac9cc8c94d46873a3b9e8177

4 years agoOnly attempt to deduplicate if there is data in archive and revision
Kosta Harlan [Sun, 16 Jun 2019 23:00:52 +0000 (19:00 -0400)]
Only attempt to deduplicate if there is data in archive and revision

The idea is to avoid expensive calls to makeDummyRevisionRow, and speed up
installation of MediaWiki on CI.

Bug: T225901
Change-Id: I6f69281568218c89eb18353c06cabf7eb1926de8

4 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Sun, 16 Jun 2019 20:01:56 +0000 (22:01 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I84ab99cdcd91ee6dab8ae284e8b1c6aea53cefac

4 years ago[bugfix] Fetch tag ID before calling undefineTag()
Martin Urbanec [Sun, 16 Jun 2019 14:15:22 +0000 (16:15 +0200)]
[bugfix] Fetch tag ID before calling undefineTag()

undefineTag() also deletes the tag if it's not used anywhere,
which is breaking the rest of deleteTagEverywhere() in that case.

Bug: T225564
Change-Id: I7ca5db9efd0088b266e33c0a9ce78d73a4fa87c9

4 years agoUse secure protocols on Wikimedia sites
MarcoAurelio [Tue, 11 Jun 2019 11:38:50 +0000 (11:38 +0000)]
Use secure protocols on Wikimedia sites

Change-Id: I3af0038202027a737a306ae677f7cda2b9857404

4 years agoMerge "Reduce HashRing test load to avoid several seconds of CPU"
jenkins-bot [Sun, 16 Jun 2019 07:17:18 +0000 (07:17 +0000)]
Merge "Reduce HashRing test load to avoid several seconds of CPU"

4 years agoFileRepo: Use Late Static Binding in File static constructors
Máté Szabó [Wed, 22 May 2019 19:26:35 +0000 (21:26 +0200)]
FileRepo: Use Late Static Binding in File static constructors

The FileRepo extension API allows to specify factory methods that
FileRepo implementations will use to instantiate File instances.
Currently, the default static constructors in LocalFile and OldLocalFile
do not use Late Static Binding, so every subclass is forced to re-implement them,
even if they would not need any custom logic. Switching to Late Static Binding
(available since PHP 5.3) allows File implementors to reduce boilerplate
if they do not need to overwrite the existing logic.

Change-Id: Id8f6f5362b68269c2a3232796a1703be14116dd5

4 years agordbms: clean up and simplify toString() handle for Database
Aaron Schulz [Sat, 15 Jun 2019 10:42:14 +0000 (11:42 +0100)]
rdbms: clean up and simplify toString() handle for Database

Change-Id: Ia95e25505785aad71b70a74f4ec7a07a73e419e1

4 years agoMerge "resourceloader: Support 'versionCallback' for computed package files"
jenkins-bot [Sat, 15 Jun 2019 09:47:50 +0000 (09:47 +0000)]
Merge "resourceloader: Support 'versionCallback' for computed package files"

4 years agoFix some issues with HTMLSelectAndOtherField default and validation
Thalia [Thu, 13 Jun 2019 19:04:49 +0000 (20:04 +0100)]
Fix some issues with HTMLSelectAndOtherField default and validation

Bring HTMLSelectAndOtherField in line with other HTMLFormFields by
ensuring that the default value is of the correct type and passes
validation checks.

Also make sure HTMLSelectAndOtherField::validate checks for the
final value, if the field has required set to true.

Bug: T222170
Bug: T225860
Change-Id: I949ee3df2b1f597982cf522b149c54b8e79d59bc

4 years agoMerge "PHPVersionCheck: remove version_compare() existence check"
jenkins-bot [Fri, 14 Jun 2019 22:39:07 +0000 (22:39 +0000)]
Merge "PHPVersionCheck: remove version_compare() existence check"

4 years agoPHPVersionCheck: remove version_compare() existence check
Max Semenik [Fri, 14 Jun 2019 01:36:14 +0000 (18:36 -0700)]
PHPVersionCheck: remove version_compare() existence check

It was added to PHP in 2001.

Change-Id: I3b14d726aa1cefd6b64e4bac39ef489b3c79ac1a

4 years agoMerge "mw.Uri: Use more intuitive variable names"
jenkins-bot [Fri, 14 Jun 2019 21:28:45 +0000 (21:28 +0000)]
Merge "mw.Uri: Use more intuitive variable names"

4 years agoMerge "Hard deprecate Preprocessor_DOM"
jenkins-bot [Fri, 14 Jun 2019 20:33:41 +0000 (20:33 +0000)]
Merge "Hard deprecate Preprocessor_DOM"

4 years agoMerge "Use HTTPS for creativecommons.org"
jenkins-bot [Fri, 14 Jun 2019 18:26:48 +0000 (18:26 +0000)]
Merge "Use HTTPS for creativecommons.org"

4 years agoMerge "resourceloader: Validate ResourceLoaderContext::getDirection() input"
jenkins-bot [Fri, 14 Jun 2019 18:26:07 +0000 (18:26 +0000)]
Merge "resourceloader: Validate ResourceLoaderContext::getDirection() input"

4 years agoMerge "Installer: Move style of background image from HTML to CSS"
jenkins-bot [Fri, 14 Jun 2019 18:25:09 +0000 (18:25 +0000)]
Merge "Installer: Move style of background image from HTML to CSS"

4 years agoMerge "user: Move idFromName cache truncation to before adding the new value"
jenkins-bot [Fri, 14 Jun 2019 18:17:23 +0000 (18:17 +0000)]
Merge "user: Move idFromName cache truncation to before adding the new value"

4 years agoresourceloader: Validate ResourceLoaderContext::getDirection() input
Fomafix [Tue, 11 Jun 2019 19:54:57 +0000 (21:54 +0200)]
resourceloader: Validate ResourceLoaderContext::getDirection() input

Only dir=ltr and dir=rtl are now allowed. Ignore other values.

Change-Id: Id39471e8a792c7c48ff7ca9d80be2e6dd4caee6b

4 years agoMerge "Add a custom block message for composite blocks"
jenkins-bot [Fri, 14 Jun 2019 18:12:51 +0000 (18:12 +0000)]
Merge "Add a custom block message for composite blocks"

4 years agouser: Move idFromName cache truncation to before adding the new value
Alexia E. Smith [Fri, 14 Jun 2019 17:40:54 +0000 (12:40 -0500)]
user: Move idFromName cache truncation to before adding the new value

This prevents a double query for the same User::idFromName() call
twice in a row.

Bug: T225843
Change-Id: I5beb0a3ad5e715b68dd8a450408fb089184fa6ce

4 years agomw.Uri: Use more intuitive variable names
Bartosz Dziewoński [Fri, 14 Jun 2019 18:02:58 +0000 (20:02 +0200)]
mw.Uri: Use more intuitive variable names

Change-Id: I8e53d7a0e0b89909a5c3798a819a0690c757a060

4 years agoFix param type of search terms in search related classes
Umherirrender [Fri, 7 Jun 2019 18:43:02 +0000 (20:43 +0200)]
Fix param type of search terms in search related classes

Change-Id: I036434268f1e7992f7f9f23d2c1c0fcd399823c8

4 years agoresourceloader: Support 'versionCallback' for computed package files
Timo Tijhof [Wed, 12 Jun 2019 00:57:17 +0000 (01:57 +0100)]
resourceloader: Support 'versionCallback' for computed package files

The use cases we've seen for using computed (or virtual) package files,
involve expensive computations to expand and transform data for the client
that we don't want to evaluate in full just to compute the module's version
hash (e.g. in the StartupModule, where we need to do this for 1000s of
modules).

For such cases, the module can specify a 'versionCallback' of which the
return value will be used to seed the module's version hash. The default
remains the same as before, which is to use the full content to seed the
version hash (via getDefinitionSummary).

Bug: T223260
Change-Id: I76f573239e6bd429287e7adb33a92ffd5e260c20

4 years agoHard deprecate Preprocessor_DOM
C. Scott Ananian [Tue, 9 Apr 2019 18:42:42 +0000 (14:42 -0400)]
Hard deprecate Preprocessor_DOM

The Preprocessor_DOM implementation doesn't interact well with PHP memory
profiling, and has some limitations not present in the Preprocessor_Hash
implementation (see T216664).  There is no reason to keep around two
versions of the preprocessor: it just complicates on-going wikitext
feature development.

Hard deprecate use of Preprocessor_DOM, so we can remove the redundant
code in a future release.

Bug: T204945
Depends-On: Id38c9360e4d02b570996dbf7a660f964f02f1a2c
Change-Id: Ica5d1ad5b1e677542962fc36d582a793f941155e

4 years agoAdd a custom block message for composite blocks
Thalia [Fri, 14 Jun 2019 08:22:57 +0000 (09:22 +0100)]
Add a custom block message for composite blocks

Give a custom reason and include the user's IP address and the
expiry of the longest block.

Bug: T225748
Change-Id: Ie147cca625365c1a01e2ed18819e5d6e3946865e

4 years agoReduce HashRing test load to avoid several seconds of CPU
Aaron Schulz [Fri, 14 Jun 2019 11:57:07 +0000 (12:57 +0100)]
Reduce HashRing test load to avoid several seconds of CPU

Bug: T225719
Change-Id: I358383e99d7950c4747b48583dc8faf00b3deeab

4 years agoMerge "Migrate remaining usages of Title::userCan() to PermissionManager"
jenkins-bot [Fri, 14 Jun 2019 11:19:47 +0000 (11:19 +0000)]
Merge "Migrate remaining usages of Title::userCan() to PermissionManager"

4 years agoMerge "Defines: Drop DB_SLAVE, deprecated since 1.28"
jenkins-bot [Fri, 14 Jun 2019 11:06:07 +0000 (11:06 +0000)]
Merge "Defines: Drop DB_SLAVE, deprecated since 1.28"

4 years agoDefines: Drop DB_SLAVE, deprecated since 1.28
James D. Forrester [Tue, 3 Jul 2018 21:26:43 +0000 (14:26 -0700)]
Defines: Drop DB_SLAVE, deprecated since 1.28

Change-Id: I9b48524bfa071c21e03c50e9e8231e4661917c78

4 years agoUse HTTPS for creativecommons.org
Fomafix [Fri, 14 Jun 2019 09:26:40 +0000 (11:26 +0200)]
Use HTTPS for creativecommons.org

http://creativecommons.org/ redirects to https://creativecommons.org/

Change-Id: I625a09b32a30df2043620c0ce0756b2a963ba0c7

4 years agoInstaller: Move style of background image from HTML to CSS
Fomafix [Fri, 14 Jun 2019 08:46:40 +0000 (10:46 +0200)]
Installer: Move style of background image from HTML to CSS

Change-Id: I5fb8a9fc87290c407be123238397accbc5a886dc

4 years agoREST: Rename attributes to path params
Tim Starling [Mon, 10 Jun 2019 21:32:51 +0000 (07:32 +1000)]
REST: Rename attributes to path params

Change-Id: I1cd7297715bf0f9902949a5117ea7ab94b689a37

4 years agoREST: Testable EntryPoint
Tim Starling [Tue, 4 Jun 2019 23:59:57 +0000 (09:59 +1000)]
REST: Testable EntryPoint

* Split EntryPoint into a static main() and a non-static execute()
* Add tests for execute()

Change-Id: I025356b04ddc5a16494f98c446d785d6bb05ab10

4 years agoREST: HeaderContainer should start empty not null
Tim Starling [Mon, 10 Jun 2019 21:01:39 +0000 (07:01 +1000)]
REST: HeaderContainer should start empty not null

Change-Id: I30b68862307f2b44e4f5708c06464e0a218c1ed5

4 years agoStringStream and PathMatcher tests
Tim Starling [Mon, 3 Jun 2019 06:08:29 +0000 (16:08 +1000)]
StringStream and PathMatcher tests

Change-Id: Ic4c6e15ef9a107608fe8e72d469987ccce21f98f

4 years agoFix HHVM StringStream test errors
Tim Starling [Fri, 14 Jun 2019 07:00:11 +0000 (17:00 +1000)]
Fix HHVM StringStream test errors

Change-Id: I3eebd14db7157bb423ee88af7b49d92f628bc771

4 years agoMerge "Fix "succesful" typo"
jenkins-bot [Fri, 14 Jun 2019 00:54:19 +0000 (00:54 +0000)]
Merge "Fix "succesful" typo"

4 years agoMerge "StringStream::copyToStream() should adjust the offset"
jenkins-bot [Fri, 14 Jun 2019 00:18:31 +0000 (00:18 +0000)]
Merge "StringStream::copyToStream() should adjust the offset"

4 years agoMerge "REST: tests for HelloHandler and HeaderContainer"
jenkins-bot [Fri, 14 Jun 2019 00:18:22 +0000 (00:18 +0000)]
Merge "REST: tests for HelloHandler and HeaderContainer"

4 years agoMerge "REST: Implement 405 responses"
jenkins-bot [Fri, 14 Jun 2019 00:18:15 +0000 (00:18 +0000)]
Merge "REST: Implement 405 responses"

4 years agoFix "succesful" typo
petarpetkovic [Fri, 14 Jun 2019 00:11:03 +0000 (03:11 +0300)]
Fix "succesful" typo

Change-Id: I1f49ce9ce104263adc8763947dbd30634f18697d

4 years agoMerge "build: Add missing dashes in .travis.yml (restore PHP 7.1/7.2 tests)"
jenkins-bot [Fri, 14 Jun 2019 00:09:02 +0000 (00:09 +0000)]
Merge "build: Add missing dashes in .travis.yml (restore PHP 7.1/7.2 tests)"

4 years agoMerge "Fix doc type of Installer::addInstallStep"
jenkins-bot [Fri, 14 Jun 2019 00:08:43 +0000 (00:08 +0000)]
Merge "Fix doc type of Installer::addInstallStep"

4 years agoMerge "Clarify MediaWikiTestCase::getSchemaOverrides()"
jenkins-bot [Fri, 14 Jun 2019 00:06:06 +0000 (00:06 +0000)]
Merge "Clarify MediaWikiTestCase::getSchemaOverrides()"

4 years agoMerge "Storage: Type against ILBFactory and ILoadBalancer in storage classes"
jenkins-bot [Fri, 14 Jun 2019 00:05:03 +0000 (00:05 +0000)]
Merge "Storage: Type against ILBFactory and ILoadBalancer in storage classes"

4 years agoMerge "libs: Remove unused deprecated BufferingStatsdDataFactory::getBuffer()"
jenkins-bot [Thu, 13 Jun 2019 23:52:27 +0000 (23:52 +0000)]
Merge "libs: Remove unused deprecated BufferingStatsdDataFactory::getBuffer()"

4 years agoMerge "SpecialEmailUser: Remove validate/get target without sender specified"
jenkins-bot [Thu, 13 Jun 2019 23:52:21 +0000 (23:52 +0000)]
Merge "SpecialEmailUser: Remove validate/get target without sender specified"

4 years agoMerge "Revert "Separate MediaWiki unit and integration tests""
jenkins-bot [Thu, 13 Jun 2019 23:28:13 +0000 (23:28 +0000)]
Merge "Revert "Separate MediaWiki unit and integration tests""

4 years agoRevert "Separate MediaWiki unit and integration tests"
Legoktm [Thu, 13 Jun 2019 23:00:08 +0000 (23:00 +0000)]
Revert "Separate MediaWiki unit and integration tests"

This reverts commit 0a2b996278e57a8b8c5377cd3a3eaa54f993d4a9.

Reason for revert: Broke postgres tests.

Change-Id: I27d8e0c807ad5f0748b9611a4f3df84cc213fbe1

4 years agobuild: Add missing dashes in .travis.yml (restore PHP 7.1/7.2 tests)
Timo Tijhof [Thu, 13 Jun 2019 22:21:25 +0000 (23:21 +0100)]
build: Add missing dashes in .travis.yml (restore PHP 7.1/7.2 tests)

Follows-up f638c599d5, in which I accidentally removed the leading
dashes from the entries in the 'include' array.

Apparently when you do that, it just assumes you intended to
have a dash in front of the first line and create a single-item
object in which you have the same key four times, where the last
one wins. Thus, testing only 1 variant: php 7.0.

Change-Id: I3fd77749017d15cc60daf9a531417b55c604e7ff

4 years agoMerge "Expand ResponseFactory"
jenkins-bot [Thu, 13 Jun 2019 22:18:28 +0000 (22:18 +0000)]
Merge "Expand ResponseFactory"

4 years agoMerge "REST API initial commit"
jenkins-bot [Thu, 13 Jun 2019 22:18:21 +0000 (22:18 +0000)]
Merge "REST API initial commit"

4 years agolibs: Remove unused deprecated BufferingStatsdDataFactory::getBuffer()
Derick Alangi [Thu, 23 May 2019 21:12:26 +0000 (22:12 +0100)]
libs: Remove unused deprecated BufferingStatsdDataFactory::getBuffer()

Usage
=====

https://codesearch.wmflabs.org/search/?q=%5CbgetBuffer%5Cb&i=nope&files=&repos=

Bug: T220656
Change-Id: I3d9637e1802e0d34698940f400c628f29f0aab3b

4 years agoSpecialEmailUser: Remove validate/get target without sender specified
Derick Alangi [Tue, 14 May 2019 11:14:07 +0000 (12:14 +0100)]
SpecialEmailUser: Remove validate/get target without sender specified

This was deprecated in 1.30 and per usage below, these has been cleaned
up. Passing "null" is deprecated and no longer used anywhere. All usage
now pass a user object that is the sender.

Usage
=====

* validateTarget():
https://codesearch.wmflabs.org/search/?q=%5CbvalidateTarget%5Cb&i=nope&files=&repos=

* getTarget():
https://codesearch.wmflabs.org/search/?q=%5Cb(-%3E%7C%3A%3A)getTarget%5Cb&i=nope&files=&repos=

Change-Id: I22ed2bc42216712602f8b4685035c3396d3d1e5c

4 years agoStorage: Type against ILBFactory and ILoadBalancer in storage classes
Umherirrender [Fri, 7 Jun 2019 14:22:48 +0000 (16:22 +0200)]
Storage: Type against ILBFactory and ILoadBalancer in storage classes

Instead of the LBFactory/LoadBalancer implementations.

Change-Id: Ia58d9056bd60f3f094fbb16f7b9afa64e11143c8

4 years agoMerge "Separate MediaWiki unit and integration tests"
Jforrester [Thu, 13 Jun 2019 22:06:10 +0000 (22:06 +0000)]
Merge "Separate MediaWiki unit and integration tests"

4 years agobuild: Remove dbtype=postgres from Travis CI matrix
Timo Tijhof [Thu, 13 Jun 2019 21:07:20 +0000 (22:07 +0100)]
build: Remove dbtype=postgres from Travis CI matrix

This has since been added to  WMF CI (and voting).

What remains is just secondary confirmation that the tests can
all pass a third-party system (e.g. not the WMF-specific Linux/Docker
environment), for supported PHP versions.

Change-Id: Ic257a34630c61d5328afeaa6dc5685581e03a528

4 years agoSeparate MediaWiki unit and integration tests
Máté Szabó [Sat, 1 Jun 2019 14:10:15 +0000 (16:10 +0200)]
Separate MediaWiki unit and integration tests

This changeset implements T89432 and related tickets and is based on exploration
done at the Prague Hackathon. The goal is to identify tests in MediaWiki core
that can be run without having to install & configure MediaWiki and its dependencies,
and provide a way to execute these tests via the standard phpunit entry point,
allowing for faster development and integration with existing tooling like IDEs.

The initial set of tests that met these criteria were identified using the work Amir did in
I88822667693d9e00ac3d4639c87bc24e5083e5e8. These tests were then moved into a new subdirectory
under phpunit/ and organized into a separate test suite. The environment for this suite
is set up via a PHPUnit bootstrap file without a custom entry point.

You can execute these tests by running:
$ vendor/bin/phpunit -d memory_limit=512M -c tests/phpunit/unit-tests.xml

Bug: T89432
Bug: T87781
Bug: T84948
Change-Id: Iad01033a0548afd4d2a6f2c1ef6fcc9debf72c0d

4 years agoMerge "rdbms: avoid LoadBalancer::getConnection waste when using $groups"
jenkins-bot [Thu, 13 Jun 2019 20:20:50 +0000 (20:20 +0000)]
Merge "rdbms: avoid LoadBalancer::getConnection waste when using $groups"

4 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Thu, 13 Jun 2019 20:08:04 +0000 (22:08 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I2557496565cbdfee6bba829b3d2fdd36875aa5f7

4 years agoMerge "resourceloader: Deprecate ResourceLoaderContext::getConfig and ::getLogger"
jenkins-bot [Thu, 13 Jun 2019 19:41:01 +0000 (19:41 +0000)]
Merge "resourceloader: Deprecate ResourceLoaderContext::getConfig and ::getLogger"

4 years agoMerge "resourceloader: Change cache keys to use first segment for grouping by purpose"
jenkins-bot [Thu, 13 Jun 2019 19:33:07 +0000 (19:33 +0000)]
Merge "resourceloader: Change cache keys to use first segment for grouping by purpose"

4 years agordbms: avoid LoadBalancer::getConnection waste when using $groups
Aaron Schulz [Wed, 8 May 2019 19:18:01 +0000 (12:18 -0700)]
rdbms: avoid LoadBalancer::getConnection waste when using $groups

Add a "readIndexByGroup" field that does the same thing that the
generic read index does except for query grouped connections.

Also remove some pointless checks at the end of getReaderIndex().

Change-Id: I3bd6295be4355ee930960f89ccb07811dd8c5545

4 years agoMerge "PHPDoc: Fix non-carnonical order of elements in phpdoc"
jenkins-bot [Thu, 13 Jun 2019 18:40:38 +0000 (18:40 +0000)]
Merge "PHPDoc: Fix non-carnonical order of elements in phpdoc"

4 years agoexternalstore: Fix insert*() return docs and remove redundant checks
Daimona Eaytoy [Mon, 7 Jan 2019 10:18:39 +0000 (11:18 +0100)]
externalstore: Fix insert*() return docs and remove redundant checks

ExternalStorage::insertWithFallback is reported to return false on
failure, but it doesn't. It has a single exit point, and return value is
checked with strlen(), so actually it can only return the URL or throw.
Thus, update any related doc and remove a redundant check from code
calling insertToDefault.

Change-Id: Ic95c3aed19118b987aef105f8077d55558f39127

4 years agoMerge "objectcache: add object segmentation support to BagOStuff"
jenkins-bot [Thu, 13 Jun 2019 18:19:17 +0000 (18:19 +0000)]
Merge "objectcache: add object segmentation support to BagOStuff"

4 years agoresourceloader: Change cache keys to use first segment for grouping by purpose
Timo Tijhof [Tue, 28 May 2019 18:24:31 +0000 (19:24 +0100)]
resourceloader: Change cache keys to use first segment for grouping by purpose

Remove use of a complete "namespace" for grouping and instead use dashes
within the first key segment for that.

This way, we can leverage the various features WANObjectCache provides
for statistics relating to a particular kind of thing being cached.

These statistics are currently combined for all of resourceloader,
which isn't useful. Mildly related to T223647.

Change-Id: I5df69e46ac436d04e765726a36fc3eb70697a7ed

4 years agoMerge "rdbms: reorganize Database fields and constants"
jenkins-bot [Thu, 13 Jun 2019 17:57:41 +0000 (17:57 +0000)]
Merge "rdbms: reorganize Database fields and constants"

4 years agoMerge "rdbms: implement strictor ownership of LoadBalancer by LBFactory"
jenkins-bot [Thu, 13 Jun 2019 17:50:00 +0000 (17:50 +0000)]
Merge "rdbms: implement strictor ownership of LoadBalancer by LBFactory"

4 years agordbms: reorganize Database fields and constants
Aaron Schulz [Thu, 13 Jun 2019 11:27:30 +0000 (12:27 +0100)]
rdbms: reorganize Database fields and constants

Move the constants to the bottom and make more of them private.
Place the configuration fields at the top of the list.
Also, move some related fields closer to each other.

In addition:
* Rename the named lock tracking variable to start with the
  prefix "session" for consistency.
* Remove unused $preparedArgs field.
* Rename $sessionVars and $rttEstimate fields.
* Use short field documentation syntax.
* Make transaction callback fields private.

Change-Id: I7d78be6744723f4d7bb32a75154564ee04eca0f6

4 years agoresourceloader: Deprecate ResourceLoaderContext::getConfig and ::getLogger
Timo Tijhof [Thu, 11 Apr 2019 22:22:08 +0000 (23:22 +0100)]
resourceloader: Deprecate ResourceLoaderContext::getConfig and ::getLogger

The methods existed for two use cases.

1. Inside ResourceLoaderContext, usage was removed with I4e4ee758cd22.
2. In Module class methods that get $context, already have their own
   Config and Logger instances injected from ResourceLoader::getModule(),
   which should be used instead.

Deprecating these opens the paths for making ResourceLoaderContext
a purer value object with no ResourceLoader, Config, or Logger objects
needing to be passed (in the future).

Bug: T32956
Change-Id: I74a9535918ea43b2c00073c5d4469f864d1eeb41

4 years agoresourceloader: Omit default 'lang' and 'skin' params from load.php urls
Fomafix [Mon, 10 Jun 2019 17:38:05 +0000 (19:38 +0200)]
resourceloader: Omit default 'lang' and 'skin' params from load.php urls

lang=qqx and skin=fallback are the default values.

This change removes the default values from the load request of the
html5shiv module.

Before this change
 <script src="/w/load.php?lang=qqx&amp;modules=html5shiv&amp;only=scripts&amp;skin=fallback&amp;sync=1"></script>
With this change
 <script src="/w/load.php?modules=html5shiv&amp;only=scripts&amp;sync=1"></script>

Change-Id: Ie384ce0f7ab1bd0b6c2d3f0ca4a990c3cf3a7f15

4 years agoselenium: Skip another flaky Rollback test
Timo Tijhof [Thu, 13 Jun 2019 17:22:11 +0000 (18:22 +0100)]
selenium: Skip another flaky Rollback test

Bug: T220479
Change-Id: Ie523e719f5c7df959ef63930edaff1a80e09ff04

4 years agoMerge "DevelopmentSettings: Remove redundant CacheType overrides"
jenkins-bot [Thu, 13 Jun 2019 14:52:07 +0000 (14:52 +0000)]
Merge "DevelopmentSettings: Remove redundant CacheType overrides"

4 years agoMerge "installer: Detect APC for MainCacheType in CLI installer"
jenkins-bot [Thu, 13 Jun 2019 14:50:02 +0000 (14:50 +0000)]
Merge "installer: Detect APC for MainCacheType in CLI installer"

4 years agoDevelopmentSettings: Remove redundant CacheType overrides
Timo Tijhof [Thu, 13 Jun 2019 01:08:53 +0000 (02:08 +0100)]
DevelopmentSettings: Remove redundant CacheType overrides

Follows-up 5a090c29822. This is no longer needed as of
7e0fb4fff6, which will add this to the generated LocalSettings.php
file automatically.

The installer now sets MainCacheType for CLI installs, the same
way as the web installer did already.

The secondary cache types have as default CACHE_ANYTHING (not
CACHE_NONE) and will automatically inherit from MainCacheType.

This commit unbreaks situations where developers have MainCache
set to something (e.g. Redis, or Memc) which after 5a090c29822
caused other types to go to APC instead of Memc.

Bug: T225496
Change-Id: Ib2824a6d316912daf09672de748726b91e4de449

4 years agoinstaller: Detect APC for MainCacheType in CLI installer
Timo Tijhof [Thu, 13 Jun 2019 14:06:43 +0000 (15:06 +0100)]
installer: Detect APC for MainCacheType in CLI installer

The web installer did this already, but with the CLI installer,
the generated LocalSettings.php always contained the following
hardcoded:

 $wgMainCacheType = CACHE_NONE;

Combined with the fact that in WMF CI, the generated local settings
is applied *after* the inclusion of Quibble settings and
DevelopmentSettings, meant that it was not possible to enable
object caching.

For now, make it match the behaviour of the web installer and thus
output $wgMainCacheType = CACHE_ACCELL if we detect a supported
implementation in the PHP runtime.

For later we should probably:

* Make this an option to install.php,
* or, change Quibble to append its overrides, instead of
  prepending. So that DevelopmentSettings actually after the
  generated LocalSettings.

Bug: T225496
Change-Id: I3f43cd054ce71d0f1b2395302e8ef9ee2f6b01c2

4 years agoMerge "Do move options checks before the move"
jenkins-bot [Thu, 13 Jun 2019 10:13:31 +0000 (10:13 +0000)]
Merge "Do move options checks before the move"