2014-05-11 10:00:35 +00:00
|
|
|
{
|
|
|
|
|
"name": "mediawiki/core",
|
|
|
|
|
"description": "Free software wiki application developed by the Wikimedia Foundation and others",
|
2018-03-22 05:16:59 +00:00
|
|
|
"type": "mediawiki-core",
|
2021-01-03 22:29:28 +00:00
|
|
|
"keywords": [
|
|
|
|
|
"mediawiki",
|
|
|
|
|
"wiki"
|
|
|
|
|
],
|
2014-05-11 10:00:35 +00:00
|
|
|
"homepage": "https://www.mediawiki.org/",
|
|
|
|
|
"authors": [
|
|
|
|
|
{
|
|
|
|
|
"name": "MediaWiki Community",
|
|
|
|
|
"homepage": "https://www.mediawiki.org/wiki/Special:Version/Credits"
|
|
|
|
|
}
|
|
|
|
|
],
|
2018-03-06 01:14:07 +00:00
|
|
|
"license": "GPL-2.0-or-later",
|
2014-05-11 10:00:35 +00:00
|
|
|
"support": {
|
2023-06-03 08:12:11 +00:00
|
|
|
"issues": "https://phabricator.wikimedia.org/",
|
2021-05-20 20:57:48 +00:00
|
|
|
"irc": "irc://irc.libera.chat/mediawiki",
|
2014-05-11 10:00:35 +00:00
|
|
|
"wiki": "https://www.mediawiki.org/"
|
|
|
|
|
},
|
2020-02-13 17:03:07 +00:00
|
|
|
"prefer-stable": true,
|
2014-05-11 10:00:35 +00:00
|
|
|
"require": {
|
2022-04-12 22:24:40 +00:00
|
|
|
"composer/semver": "3.3.2",
|
2023-01-10 02:12:31 +00:00
|
|
|
"cssjanus/cssjanus": "2.1.1",
|
2022-02-25 12:41:42 +00:00
|
|
|
"ext-calendar": "*",
|
2016-04-06 23:30:41 +00:00
|
|
|
"ext-ctype": "*",
|
2019-07-30 20:17:16 +00:00
|
|
|
"ext-dom": "*",
|
2018-09-24 08:25:53 +00:00
|
|
|
"ext-fileinfo": "*",
|
2015-02-23 15:03:24 +00:00
|
|
|
"ext-iconv": "*",
|
2020-11-10 17:53:48 +00:00
|
|
|
"ext-intl": "*",
|
2016-04-06 23:30:41 +00:00
|
|
|
"ext-json": "*",
|
2020-12-27 16:04:42 +00:00
|
|
|
"ext-libxml": "*",
|
2016-01-29 19:42:44 +00:00
|
|
|
"ext-mbstring": "*",
|
2016-04-06 23:30:41 +00:00
|
|
|
"ext-xml": "*",
|
2020-12-27 16:04:42 +00:00
|
|
|
"ext-xmlreader": "*",
|
2023-12-21 22:03:58 +00:00
|
|
|
"guzzlehttp/guzzle": "7.7.1",
|
2023-10-01 14:39:33 +00:00
|
|
|
"justinrainbow/json-schema": "5.2.13",
|
2015-11-23 00:37:33 +00:00
|
|
|
"liuggio/statsd-php-client": "1.0.18",
|
2021-07-28 15:34:00 +00:00
|
|
|
"monolog/monolog": "2.2.0",
|
2023-12-06 23:19:26 +00:00
|
|
|
"oojs/oojs-ui": "0.48.3",
|
2023-12-21 20:22:28 +00:00
|
|
|
"pear/mail": "1.6.0",
|
2021-10-08 20:50:17 +00:00
|
|
|
"pear/mail_mime": "1.10.11",
|
2023-12-21 20:22:28 +00:00
|
|
|
"pear/net_smtp": "1.11.1",
|
2020-08-11 11:06:46 +00:00
|
|
|
"php": ">=7.4.3",
|
2023-01-15 15:52:53 +00:00
|
|
|
"psr/container": "1.1.2",
|
2023-12-21 22:04:52 +00:00
|
|
|
"psr/http-message": "1.1",
|
2021-10-08 19:36:55 +00:00
|
|
|
"psr/log": "1.1.4",
|
2020-03-18 08:49:15 +00:00
|
|
|
"ralouphie/getallheaders": "3.0.3",
|
2023-10-01 14:38:44 +00:00
|
|
|
"symfony/polyfill-php80": "1.28.0",
|
|
|
|
|
"symfony/polyfill-php81": "1.28.0",
|
|
|
|
|
"symfony/polyfill-php82": "1.28.0",
|
2023-10-04 16:36:14 +00:00
|
|
|
"symfony/polyfill-php83": "1.28.0",
|
2023-12-21 20:23:15 +00:00
|
|
|
"symfony/yaml": "5.4.31",
|
2021-12-21 12:11:36 +00:00
|
|
|
"wikimedia/assert": "0.5.1",
|
2021-03-21 21:43:42 +00:00
|
|
|
"wikimedia/at-ease": "2.1.0",
|
2022-07-08 22:31:49 +00:00
|
|
|
"wikimedia/base-convert": "2.0.2",
|
2023-10-03 15:48:52 +00:00
|
|
|
"wikimedia/bcp-47-code": "2.0.0",
|
2023-07-24 14:58:57 +00:00
|
|
|
"wikimedia/cdb": "3.0.0",
|
2021-02-12 01:01:34 +00:00
|
|
|
"wikimedia/cldr-plural-rule-parser": "2.0.0",
|
2023-06-06 12:44:40 +00:00
|
|
|
"wikimedia/common-passwords": "0.5.0",
|
2023-04-24 13:37:55 +00:00
|
|
|
"wikimedia/composer-merge-plugin": "2.1.0",
|
2023-02-25 22:42:39 +00:00
|
|
|
"wikimedia/html-formatter": "4.0.3",
|
2023-10-02 23:12:04 +00:00
|
|
|
"wikimedia/ip-utils": "5.0.0",
|
2023-10-03 12:54:07 +00:00
|
|
|
"wikimedia/json-codec": "2.2.1",
|
2023-08-01 22:06:29 +00:00
|
|
|
"wikimedia/less.php": "4.1.1",
|
2023-11-15 16:26:12 +00:00
|
|
|
"wikimedia/minify": "2.7.0",
|
2021-07-02 21:05:23 +00:00
|
|
|
"wikimedia/normalized-exception": "1.0.1",
|
2023-01-09 22:16:46 +00:00
|
|
|
"wikimedia/object-factory": "5.0.1",
|
2023-12-22 17:43:44 +00:00
|
|
|
"wikimedia/parsoid": "0.19.0-a11",
|
2022-07-08 22:35:30 +00:00
|
|
|
"wikimedia/php-session-serializer": "2.0.1",
|
2021-09-14 19:36:56 +00:00
|
|
|
"wikimedia/purtle": "1.0.8",
|
2023-12-21 20:32:19 +00:00
|
|
|
"wikimedia/relpath": "4.0.0",
|
2023-08-29 16:00:27 +00:00
|
|
|
"wikimedia/remex-html": "4.0.1",
|
2022-02-10 07:54:19 +00:00
|
|
|
"wikimedia/request-timeout": "1.2.0",
|
2022-07-29 04:51:26 +00:00
|
|
|
"wikimedia/running-stat": "2.1.0",
|
2022-07-24 16:28:00 +00:00
|
|
|
"wikimedia/scoped-callback": "4.0.0",
|
|
|
|
|
"wikimedia/services": "3.0.0",
|
2022-11-10 19:08:33 +00:00
|
|
|
"wikimedia/shellbox": "4.0.0",
|
2023-08-29 16:02:36 +00:00
|
|
|
"wikimedia/utfnormal": "4.0.0",
|
2023-09-29 19:05:16 +00:00
|
|
|
"wikimedia/timestamp": "4.1.1",
|
2021-08-23 21:21:18 +00:00
|
|
|
"wikimedia/wait-condition-loop": "2.0.2",
|
2021-10-08 23:07:35 +00:00
|
|
|
"wikimedia/wrappedstring": "4.0.1",
|
2022-12-16 15:13:48 +00:00
|
|
|
"wikimedia/xmp-reader": "0.9.1",
|
2021-10-08 22:59:23 +00:00
|
|
|
"zordius/lightncandy": "1.2.6"
|
2014-05-11 10:00:35 +00:00
|
|
|
},
|
|
|
|
|
"require-dev": {
|
2023-12-22 02:57:16 +00:00
|
|
|
"composer/spdx-licenses": "1.5.8",
|
2023-12-22 03:00:14 +00:00
|
|
|
"doctrine/dbal": "3.7.2",
|
2023-12-22 02:58:37 +00:00
|
|
|
"doctrine/sql-formatter": "1.1.3",
|
2022-10-26 00:25:19 +00:00
|
|
|
"ext-simplexml": "*",
|
2023-11-20 13:56:31 +00:00
|
|
|
"giorgiosironi/eris": "^0.14.0",
|
2017-04-19 19:37:35 +00:00
|
|
|
"hamcrest/hamcrest-php": "^2.0",
|
2022-01-24 04:22:04 +00:00
|
|
|
"johnkary/phpunit-speedtrap": "^4.0",
|
2023-09-27 13:22:44 +00:00
|
|
|
"mediawiki/mediawiki-codesniffer": "42.0.0",
|
2023-09-08 20:42:48 +00:00
|
|
|
"mediawiki/mediawiki-phan-config": "0.13.0",
|
2021-10-08 19:21:38 +00:00
|
|
|
"nikic/php-parser": "^4.10.2",
|
2022-10-07 17:35:34 +00:00
|
|
|
"php-parallel-lint/php-console-highlighter": "1.0.0",
|
|
|
|
|
"php-parallel-lint/php-parallel-lint": "1.3.2",
|
2023-02-27 14:53:09 +00:00
|
|
|
"phpunit/phpunit": "9.5.28",
|
2023-12-21 20:37:56 +00:00
|
|
|
"psy/psysh": "^0.12.0",
|
2023-12-22 03:01:34 +00:00
|
|
|
"seld/jsonlint": "1.10.1",
|
2023-03-10 18:27:41 +00:00
|
|
|
"wikimedia/alea": "1.0.0",
|
2022-09-21 08:36:36 +00:00
|
|
|
"wikimedia/langconv": "^0.4.2",
|
2023-12-05 18:19:41 +00:00
|
|
|
"wikimedia/testing-access-wrapper": "^3.0.0",
|
2021-04-20 12:41:37 +00:00
|
|
|
"wmde/hamcrest-html-matchers": "^1.0.0"
|
2014-05-11 10:00:35 +00:00
|
|
|
},
|
2019-01-21 22:22:31 +00:00
|
|
|
"replace": {
|
|
|
|
|
"symfony/polyfill-ctype": "1.99",
|
|
|
|
|
"symfony/polyfill-mbstring": "1.99"
|
|
|
|
|
},
|
2014-05-11 10:00:35 +00:00
|
|
|
"suggest": {
|
2022-03-06 00:45:43 +00:00
|
|
|
"ext-apcu": "Faster web responses overall.",
|
|
|
|
|
"ext-curl": "Faster HTTP services, e.g. when using InstantCommons, Swift, or Etcd.",
|
2023-01-24 22:14:20 +00:00
|
|
|
"ext-exif": "Enable processing of EXIF information in file uploads.",
|
2022-03-06 00:45:43 +00:00
|
|
|
"ext-gd": "Enable thumbnails for file uploads.",
|
|
|
|
|
"ext-mysqli": "Enable the MySQL and MariaDB database type for MediaWiki.",
|
|
|
|
|
"ext-openssl": "Encrypt session data (or opt-out via $wgSessionInsecureSecrets).",
|
|
|
|
|
"ext-pdo": "Enable the SQLite database type for MediaWiki.",
|
|
|
|
|
"ext-pgsql": "Enable the PostgreSQL database type for MediaWiki.",
|
|
|
|
|
"ext-posix": "Enable CLI concurrent processing, e.g. for runJobs.php.",
|
|
|
|
|
"ext-pcntl": "Enable CLI concurrent processing, e.g. for runJobs.php and rebuildLocalisationCache.php.",
|
|
|
|
|
"ext-readline": "Enable CLI history and autocomplete, e.g. for eval.php and other REPLs.",
|
|
|
|
|
"ext-sockets": "Enable CLI concurrent processing, e.g. for rebuildLocalisationCache.php.",
|
|
|
|
|
"ext-wikidiff2": "Faster text difference engine.",
|
|
|
|
|
"ext-zlib": "Enable use of GZIP compression, e.g. for SqlBagOStuff (ParserCache), $wgCompressRevisions, or $wgUseFileCache.",
|
2022-03-25 00:06:08 +00:00
|
|
|
"monolog/monolog": "Enable use of MonologSpi ($wgMWLoggerDefaultSpi)."
|
2014-09-23 19:31:30 +00:00
|
|
|
},
|
|
|
|
|
"autoload": {
|
|
|
|
|
"psr-0": {
|
2019-07-21 18:34:23 +00:00
|
|
|
"ComposerVendorHtaccessCreator": "includes/composer",
|
2021-01-03 22:29:28 +00:00
|
|
|
"ComposerPhpunitXmlCoverageEdit": "includes/composer"
|
2018-05-25 12:08:24 +00:00
|
|
|
}
|
2014-09-23 19:31:30 +00:00
|
|
|
},
|
2017-02-03 15:09:14 +00:00
|
|
|
"autoload-dev": {
|
|
|
|
|
"files": [
|
|
|
|
|
"vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest.php",
|
|
|
|
|
"vendor/wmde/hamcrest-html-matchers/src/functions.php"
|
|
|
|
|
]
|
|
|
|
|
},
|
2014-09-23 19:31:30 +00:00
|
|
|
"scripts": {
|
2023-11-29 11:05:59 +00:00
|
|
|
"mw-install:sqlite": "php maintenance/run.php install --server=http://localhost:4000 --dbtype sqlite --with-developmentsettings --dbpath cache/ --scriptpath= --pass adminpassword MediaWiki Admin",
|
2023-11-24 07:39:37 +00:00
|
|
|
"serve": [
|
|
|
|
|
"Composer\\Config::disableProcessTimeout",
|
2023-11-29 09:01:22 +00:00
|
|
|
"@putenv MW_LOG_DIR=logs",
|
2023-12-21 08:16:12 +00:00
|
|
|
"@putenv MW_LOG_STDERR=1",
|
build: Set PHP_CLI_SERVER_WORKERS=8 in composer serve
* This way page views and most common user interacts don't involve
queued requests by default.
* Devtools waterfall charts show realistic latency numbers, instead of
making it seem that serving a .jpg is slower than a PHP request,
because it happens to be queued behind one, when there are only
3 requests at the same time.
* Profilers become more comparable between quickstart, docker,
vagrant, beta, and production.
* Allow benchmarking with 'ab' out of the box, with at least some
concurrency, and in a way that the concurrency is obvious and easy
to find (the user ran 'composer serve' and can see WORKERS= setting
in the CLI output, as well as in composer.json).
* Slightly faster page views, especially interactions like loading
VisualEditor where there are 2-3 concurrent API requests.
https://www.mediawiki.org/w/index.php?title=Talk%3ALocal_development_quickstart&oldid=6271780#Multiple_workers_for_PHP_server
== Why 8 ==
I believe most CPUs used by contributer's devices have at least 8 cores
these days. However, even if they have a 2-core or 4-core machine,
I'd much rather requests be handled concurrently by the OS, than
forcefully queued in their entirety.
Most latency in web apps tends to be blocked on I/O (file, network,
database), so there's plenty of oppertunity for CPU sharing. Even in
WMF production, we spawn 2x the php-fpm threads as we have CPUs
(fpm_workers_multiplier).
We could comfortably set this to 16 or 32 as well, but given this is
a local server for a single-user, you're realistically not going to
actually be able to (naturally) cause more concurrency, short of
benchmarking. 8 seems about right as being just above what is normal
on a typical pageview, yet short of potential arguments about how
much and whether to induce CPU sharing for most people.
Bug: T347347
Change-Id: I7d6fbe02e13375d4e95c12165c29469cd0946d34
2023-12-19 16:00:46 +00:00
|
|
|
"@putenv PHP_CLI_SERVER_WORKERS=8",
|
2023-11-24 07:55:17 +00:00
|
|
|
"php -S 127.0.0.1:4000"
|
2023-11-24 07:39:37 +00:00
|
|
|
],
|
2022-01-24 22:38:59 +00:00
|
|
|
"lint": "parallel-lint --exclude node_modules --exclude vendor",
|
2020-12-23 16:44:17 +00:00
|
|
|
"phan": "phan -d . --long-progress-bar",
|
2021-07-06 11:26:55 +00:00
|
|
|
"phpcs": "phpcs -p -s --cache",
|
2021-01-03 22:29:28 +00:00
|
|
|
"fix": [
|
|
|
|
|
"phpcbf"
|
|
|
|
|
],
|
2017-11-11 00:05:13 +00:00
|
|
|
"post-install-cmd": "ComposerVendorHtaccessCreator::onEvent",
|
|
|
|
|
"post-update-cmd": "ComposerVendorHtaccessCreator::onEvent",
|
2023-07-13 15:31:49 +00:00
|
|
|
"releasenotes": "@phpunit --group ReleaseNotes",
|
2015-01-06 18:47:25 +00:00
|
|
|
"test": [
|
2021-11-24 16:40:04 +00:00
|
|
|
"@lint .",
|
|
|
|
|
"@phpcs ."
|
2019-06-26 02:33:14 +00:00
|
|
|
],
|
2021-02-13 02:22:47 +00:00
|
|
|
"test-some": [
|
2021-11-24 16:40:04 +00:00
|
|
|
"@lint",
|
|
|
|
|
"@phpcs"
|
2021-02-13 02:22:47 +00:00
|
|
|
],
|
2023-07-02 17:14:27 +00:00
|
|
|
"phpunit": "phpunit",
|
|
|
|
|
"phpunit:unit": "@phpunit --colors=always --testsuite=core:unit,extensions:unit,skins:unit",
|
2022-06-07 10:53:59 +00:00
|
|
|
"phpunit:integration": "@phpunit --colors=always --testsuite=core:integration,extensions:integration,skins:integration",
|
|
|
|
|
"phpunit:coverage": "@phpunit --testsuite=core:unit --exclude-group Dump,Broken",
|
2021-05-22 13:27:12 +00:00
|
|
|
"phpunit:coverage-edit": "ComposerPhpunitXmlCoverageEdit::onEvent",
|
2023-07-13 15:31:49 +00:00
|
|
|
"phpunit:entrypoint": "@phpunit"
|
2014-12-02 17:19:18 +00:00
|
|
|
},
|
|
|
|
|
"config": {
|
2015-09-27 05:16:10 +00:00
|
|
|
"optimize-autoloader": true,
|
2021-12-23 23:11:52 +00:00
|
|
|
"prepend-autoloader": false,
|
|
|
|
|
"allow-plugins": {
|
2022-07-12 12:30:17 +00:00
|
|
|
"wikimedia/composer-merge-plugin": true,
|
2023-10-19 23:04:34 +00:00
|
|
|
"composer/installers": true,
|
|
|
|
|
"dealerdirect/phpcodesniffer-composer-installer": true
|
2021-12-23 23:11:52 +00:00
|
|
|
}
|
2014-12-30 23:42:32 +00:00
|
|
|
},
|
|
|
|
|
"extra": {
|
|
|
|
|
"merge-plugin": {
|
|
|
|
|
"include": [
|
|
|
|
|
"composer.local.json"
|
2015-11-06 22:11:35 +00:00
|
|
|
],
|
|
|
|
|
"merge-dev": false
|
2014-12-30 23:42:32 +00:00
|
|
|
}
|
2014-05-11 10:00:35 +00:00
|
|
|
}
|
|
|
|
|
}
|