Commit graph

60 commits

Author SHA1 Message Date
Kosta Harlan
ad6b476fce Tests: Split log files by parallel grouping
Why:

- When tests are run in parallel, they are organized by groups--it is
  useful to be able to see logs organized by each test group.

What:

- Set an environment variable in ComposerLaunchParallel,
  `MW_PHPUNIT_SPLIT_GROUP_ID`
- If the environment variable is set, modify the file names used for
  logs in DevelopmentSettings to use `split-group-{group ID}` in the
  file name
 - CI script for checking if any errors have been logged was updated
   in I4283478a89d2a8d3a0502f836459b3fb21d99113

Bug: T375852
Change-Id: If5e08558a6efbb0139c320fda6f53ec73597ba60
2024-10-10 12:47:00 +00:00
James D. Forrester
9203493606 Add namespace to remaining parts of Wikimedia\FileBackend
Bug: T353458
Change-Id: I49c843c9d8f6459c0fbf774afeea7a82fa564b59
2024-10-03 16:21:22 +00:00
daniel
84fe1b9ccd REST: Introduce discovery endpoint
The discovery endpoint provides basic information about accessing the
wiki's APIs, as well as a directory of available modules.

Bug: T365753
Change-Id: I161aa68566da91867b650e13c8aadc87cd0c428c
2024-09-20 17:02:59 +00:00
daniel
994d2c35cc REST: yank the new content.v1 module
We introduced the content.v1 module as an alternative way to access
endpoints currently under v1/page and and v1/revision. This patch
disables the module per default, and enables it in development mode.

Change-Id: I044527601cbc19dfeb1282e9cd025265394c1cb8
2024-09-06 13:15:21 +02:00
Kosta Harlan
1f66411c3a
DevelopmentSettings: Enable temp user autocreation
Why:

- Enabling by default in DevelopmentSettings.php means that more
  developers will interact with the feature and we'll have more input
  into ways that the feature works with (or doesn't work with) various
  extension and configuration setups in local development environments

What:

- Enable temp user account autocreation by default in
  DevelopmentSettings.php

Bug: T359043
Change-Id: Ie88043a7dd7f504092ddd9a6cae1320ab2dbd208
2024-07-25 16:43:10 +03:00
Kosta Harlan
3bcc55efde DevelopmentSettings: Enable auto creation of temp users in CI
Why:

- Temporary accounts will become the default anonymous editing
  paradigm on Wikimedia wikis (and maybe for MediaWiki via T355880),
  so we want this to be the default that we test against in CI

What:

- Enable AutoCreateTempUser in DevelopmentSettings.php when
  MW_QUIBBLE_CI is set. That means it will be enabled for CI, but not
  by default, in local development setups that include
  DevelopmentSettings.php

Notes:

- PHPUnit tests that need to run in an anonymous IP editing context
  should use TempUserTestTrait::disableAutoCreateTempUser()
- Selenium and API-testing tests that specifically check anonymous
  IP editing context should use a custom LocalSettings.php override
  to disable temp accounts feature for the duration of the test

Bug: T359043
Depends-On: I375cf7dfec1667396136402a85cbbb68efd43069
Depends-On: If48a33794132b46fb51d864bce103aa8285443c3
Depends-On: I604c521f00d5cc64b8102c93f9a013bcac557001
Depends-On: Id6ec4b9e438dd277a51f781377a93756fa4c3996
Depends-On: Ib0a176fe335cf45e5b2cdd351c95d5da162a1eb2
Change-Id: I8c4395ac1bdbc0c55aa45038cbbd589025b4aeef
2024-07-18 07:55:41 +00:00
Kosta Harlan
7db4723f3a
DevelopmentSettings: Disable rate limiting for temp accounts
Why:

- For local development/testing, default rate limits are too
  restrictive

What:

- Disable rate limiting for temp account creation and temp account name
  acquisition

Bug: T357777
Bug: T343101
Change-Id: Ie5a94d8b674010d33f49c8d141969f200be735ab
2024-04-24 09:10:36 +02:00
Tim Starling
551ec29ea6 Check warnings from INSERT during tests
INSERT IGNORE when inserting NULL into a non-nullable field will succeed
with a warning on MySQL but fail on PostgreSQL. In any case, it's
probably harmful and unintended. But to check the error code of MySQL
warnings, you need to query the server with SHOW WARNINGS, so there is a
performance cost.

So, add a configuration variable which, when enabled, checks warnings
after INSERT to see if there were any null type constraint errors. Set
it to true in DevelopmentSettings.php and TestSetup.php.

Change-Id: I5e47e2d3cc7e0f804036e11b512b1e3b76804432
2024-01-12 09:33:05 +11:00
Kosta Harlan
3d4294af3b
composer serve: create and set log directory
Why:

- New users will appreciate having easy access to MediaWiki logs; in
  order to make that easier, we need to have a directory to write to and
  set an environment variable to use that directory

What:

- Set MW_LOG_DIR for the `serve` command
- Add a `logs` directory at the root of MW, and gitignore it
- Create the `logs` directory via DevelopmentSettings, if MW_LOG_DIR is
  defined but does not exist

I considered the `cache` directory for the log location as it
already exists, but it seemed preferable to not conflate cache and
logs.

Bug: T347347
Change-Id: Ic3ddb0203df07a0c93df9f431b25a2a5d9ecc407
2023-12-21 08:39:07 +01:00
Bartosz Dziewoński
f61827d9e0 Replace $wgCommandLineMode checks with MW_ENTRY_POINT in developer code
This code should only be executed in development environments, never
in production, so it should be safe to mess with it.

Bug: T313841
Change-Id: I8cab7704b244db1432f4266b2e06e03452ffc98f
2023-12-14 15:24:48 +01:00
Lucas Werkmeister
fe1ecc9bd9 Enable $wgUseXssLanguage in DevelopmentSettings.php
Bug: T340201
Change-Id: Id2e12970f273b602fdf17c282aec819a64b5b70e
2023-09-28 15:51:00 +02:00
Timo Tijhof
6c4c4b27f5 DevelopmentSettings: Limit display_errors to index.php
Reduce impact of deprecation warnings by not breaking non-HTML
responses such as load.php and api.php with invalid syntax, which
results in confusing silent failures in the frontend.

Change-Id: I1e7f60290fd2498216180f263a1a418c28ad956e
2023-09-06 22:24:49 +01:00
jenkins-bot
6f1dfbf403 Merge "DevelopmentSettings: Do not override existing REST API config" 2023-03-05 20:12:53 +00:00
Gergő Tisza
1e5a866a79
DevelopmentSettings: Do not override existing REST API config
Change-Id: I49549eb68a7eeb0fde91522eec3fbbeb47aec5cd
2023-03-05 11:53:11 -08:00
Amir Sarabadani
4bb2886562 Reorg: Migrate WikiMap to WikiMap/ out of includes
And WikiReference

Bug: T321882
Change-Id: I60cf4b9ef02b9d58118caa39172677ddfe03d787
2023-02-27 05:19:46 +01:00
Reedy
1ed3d69d95 DevelopmentSettings: Fix typo
Change-Id: I501bd52b471fd41b8bb46da9b7b3d8c55f9f9d8b
2022-12-23 12:14:24 +00:00
Kosta Harlan
13c53dd43b DevelopmentSettings: Enable Vue development mode
Change-Id: Id68a44273c6eb546873e4408e56aaa5569a2dade
2022-11-17 12:00:23 +00:00
daniel
8c1c1ae35a Enable pig-latin variant for testing
Having pig-latin enabled per default in dev environments is convenient
for manual testing. More importantly, it will allow us to write
end-to-end tests for variant conversion.

Depends-On: I9dc2f743ac487b0f7cfb667150c0f6950d5e7fce
Depends-On: I85b66c85be3959d48a048733af17197bc4cf70af
Change-Id: Ia80ad33cbf5e311fa8b84bd765a8df8d156f4c38
2022-11-08 17:45:51 +05:30
daniel
c25380ca37 Parsoid: Fix e2e tests for size limits.
The tests for size limits did not catch an issue introduced by
If09afc4b933e, which caused resource limits to trigger early, since they
were now being compared to the size in bytes, rather than characters.

The reason the tests didn't protect us is threefold:
- They only check the error returned when the resource sizes is one over the limit.
  They don't check that the error is NOT returned when the size is one under the limit.
- They did not test with a multi-byte character.
- They were disabled, because the limits are quite high, and the e2e test can not change them.

This patch is an attempt to fix all three issues.

Depends-On: I40901a1204b3c698895a836bf3b605239878d1fe
Change-Id: I2aead24cb7f47eb1267fdd2954a7c7e45dd4ed51
2022-10-14 13:22:12 +00:00
Timo Tijhof
1b218b2b54 debug: Fix $wgDebugRawPage to work with PSR-3 debug logging
The benefit of this setting was largely lost due to wfDebug() having
been replaced with calls to Logger->debug() for much of our code.

This is motivated by making ResourcLoader debug=2 able to make
its concurrent load.php requests more quickly during local dev.

This effectively reverts T49960. I was wrong there, thinking that
this variable has no reason for being. The vast majority of the time,
these aren't of interest on subresource requests. It's trivial
to enable when wanted, and any non-debug level messages still come
through either way, including PHP runtime errors, exceptions,
warnings, etc.

This seems to make load.php about 50% faster for local development
when using mediawiki-docker.
I used `ab` to perform a load.php request 300 times. The mean was
320-360ms before this patch (with and without DebugRawPage=false),
and around 120-140ms with patch (with DebugRawPage=false, default).

Bug: T85805
Bug: T225730
Change-Id: I061419adebf43e83cd0103bdb9b7a3296a2a1122
2022-04-13 00:29:40 +00:00
Aaron Schulz
0381118090 phpunit: Set $wgSQLMode from DevelopmentSettings instead of MediaWikiIntegrationTestCase (ii)
This reverts commit 17bab86e7a.

Extension failures (ref T304625) have since been fixed.

Bug: T225730
Change-Id: Ia452e076bdce45f1151f970c16837b80813ee08a
2022-04-04 21:36:14 +00:00
Alexander Vorwerk
17bab86e7a Revert "phpunit: Set $wgSQLMode from DevelopmentSettings instead of MediaWikiIntegrationTestCase"
This reverts commit 8a54b5ec38.

Bug: T304625
Change-Id: Id54589603d56aa87b6a1e7d9570ebba5346dd70c
2022-03-24 16:55:02 +00:00
jenkins-bot
b89c59ba9a Merge "phpunit: Set $wgSQLMode from DevelopmentSettings instead of MediaWikiIntegrationTestCase" 2022-03-24 14:51:48 +00:00
Aaron Schulz
8a54b5ec38 phpunit: Set $wgSQLMode from DevelopmentSettings instead of MediaWikiIntegrationTestCase
This avoids a large number of SET query pairs during tests.

Bug: T225730
Change-Id: Ic2729428297162763a772e6a16549ded8de06c01
2022-03-24 09:13:54 +00:00
Umherirrender
6dd8a2bb32 phan: Disable scalar_implicit_cast setting
Make phan stricter about scalar types by setting scalar_implicit_cast to
false (the default in mediawiki-phan-config)

Bug: T242536
Bug: T301991
Change-Id: Ia2fe30b17804186571722e728578121c8b75d455
2022-03-18 18:52:24 +00:00
Aaron Schulz
604bf984ef DevelopmentSettings.php: Remove obsolete comment about --mwdebug param
Change-Id: Idf2e03341abd0b5c9d8a2e1e2fc1baf91c92aa60
2022-03-15 23:11:31 +00:00
daniel
0ebf7786b1 DeferredUpdates: Introduce $wgForceDeferredUpdatesPreSend
Enabling this setting will cause post-send deferred updates to be run
before a response is sent to the client, so the client can observe all
effects of their last request immediately.

This resolves a problem with some end-to-end tests that were failing
because the updates caused by one request had not landed in the database
by the time the subsequent request was made.

This patch re-enabled some e2e tests that were disabled because of this
problem. If $wgForceDeferredUpdatesPreSend works as intended, the tests
should again pass reliably.

Bug: T230211
Bug: T301100
Change-Id: I0e30fdb6acba85cec4bb1499f7063ba6bfb0ffb2
2022-02-15 19:49:14 +01:00
Kosta Harlan
4999d5d4ef DevelopmentSettings: Move wgPasswordAttemptThrottle to correct section
This was intended as a setting override to faciliate testing, not as
something that is experimental and may later become default.

Follows-Up: Ief9e724c84755248a6fccfd04abdd4b03e331a8e

Bug: T298735
Change-Id: I56e98926c7d857c0c221d3ffd9b3be0b4267b6ae
2022-01-25 12:54:27 +01:00
Kosta Harlan
b5ded1dafe DevelopmentSettings: Lift PasswordAttemptThrottle limits
Seems to be needed to be able to run api-testing (and possibly also some
browser tests) in parallel in CI / locally.

Bug: T298735
Change-Id: Ief9e724c84755248a6fccfd04abdd4b03e331a8e
2022-01-12 09:03:39 -05:00
Amir Sarabadani
54fb283a0a Set $wgIncludejQueryMigrate to false as default
Bug: T280944
Change-Id: I02a3e4f4a2b596ff2741436884b2ef9a4b2b9177
2021-08-29 02:09:35 +02:00
Amir Sarabadani
15a48357c2 Set $wgIncludejQueryMigrate to false in CI/dev
Bug: T280944
Change-Id: Iaf786cd0f1d870cbcf0b968b7adce616c82df3d8
2021-07-14 20:17:42 +02:00
Petr Pchelko
686976b750 DevelopmentSettings: Don't disable rate limits but use very high ones
Switching rate limits completely off make tests bypass
an important code path. Instead, set all limits to almost
infinity - the code will still be executed, but with no
real chance that a test will exceed the limits.

Bug: T284804
Change-Id: Ic1d011f251159990fd54cb706608793d1b0a5acf
2021-06-14 15:27:22 +00:00
Amir Sarabadani
99d4ad5995 resourceloader: Remove support for $wgLegacyJavaScriptGlobals
Bug: T72470
Change-Id: I321a3bf5a85e2b4069ef003db65ac93b69692c83
2021-04-19 22:54:43 +00:00
Adam Wight
b28a3f9fe9 Ensure that the legacy wikitext editor is preferred by default
Any change to the extension's defaults would disrupt tests, so we
repeat the default here.

Bug: T270240
Change-Id: I84791ecf8c35f60b7d2cc337d67572bb422f0ea5
2021-01-12 12:30:02 +01:00
Adam Wight
68c3154cb9 Enable VisualEditor newwikitext mode in CI
This allows browser tests to access the "new wikitext" mode, but
should not affect any tests which don't explicitly enable the
associated beta preference.

Bug: T270240
Change-Id: I2ba889e1a5dd03549d8d7cb00678a30882ff03fe
2021-01-11 12:44:10 +00:00
Reedy
7535a26594 DevelopmentSettings: Make sure all currently used global have a global call
Bug: T263475
Change-Id: I8a09a58d7ef2ed56eb26832e0899a4d2e15e5b72
2020-09-21 17:08:48 +01:00
Adam Wight
0d455c6346 FileImporter browser tests require uploads enabled
Once this is merged, we can revert I8c20e4c4482f43191264490da7769dea7786ff0f

Bug: T190829
Change-Id: I6eccad9b54c6b2c895e6aaaa1d783011aee64358
2020-09-18 08:23:59 +00:00
Brennen Bearnes
c9efaadd00 mediawiki-docker: Add a jobrunner container
- Uses new stretch-php72-jobrunner from dev-images

  - Removes TimedMediaHandler-specific resource limits from general
    DevelopmentSettings.php, as we're putting these in the container
    PlatformSettings.php from docker entrypoints.

Bug: T246935
Bug: T246942
Depends-On: I505366b287f75581a5dd8016abbedfe61f53cb13
Change-Id: I4b4061d9cd877af34606c914942cfe0be028fff8
2020-06-17 13:34:55 +00:00
Kosta Harlan
8112f4be07 DevelopmentSettings: Disable resource limits
Useful for developing with TimedMediaHandler.

Bug: T246942
Change-Id: I3c3ab8ae44f04cfb32fb276b580b3ee8366828fb
2020-03-29 21:11:12 +02:00
jenkins-bot
17185fb70d Merge "DevelopmentSettings: Set cache dir to system temp + wiki ID" 2020-03-25 17:31:15 +00:00
Bill Pirkle
6b772fee0b Add config variable $wgRestAPIAdditionalRouteFiles
New configuration variable $wgRestAPIAdditionalRouteFiles
allows specifying additional Core REST API route files to
include. The initial use is to include development routes
from new file coreDevelopmentRoutes.json only on testing
wikis, but not on production wikis.

Bug: T247997
Change-Id: Iff8a9b7f4cafb29162e9b10f3d32e2a85f6f58df
2020-03-23 10:22:58 -05:00
Kosta Harlan
47529ed4f0 DevelopmentSettings: Set cache dir to system temp + wiki ID
Otherwise, require DevelopmentSettings.php in LocalSettings.php leads to an
error because LCStoreStaticArray attemps to write to the root directory.

Bug: T246547
Change-Id: I4b466cea2c830aed85e9df9f4ddd01b6997e1c45
2020-03-17 15:49:18 +00:00
jenkins-bot
3fb7e265eb Merge "DevelopmentSettings: Set EnableJavaScriptTest to true" 2020-03-12 22:40:17 +00:00
Kosta Harlan
880938593e DevelopmentSettings: Set EnableJavaScriptTest to true
Bug: T247285
Change-Id: Id973426b31eb1c98bff49ea135d0d64de09fcbbe
2020-03-12 22:26:10 +00:00
Timo Tijhof
14a8713e93 exception,deferred: Standardise on 'exception' for uncaughts and fatals
Bug: T247113
Change-Id: Id72cae0672169e8d2622bbc67c3c0b59e7c8ad54
2020-03-06 20:16:22 +00:00
Timo Tijhof
d06b2918c7 DevelopmentSettings: Enable 'fatal' and 'DeferredUpdates' error channels
These used to be in the 'exception' channel but were separated out
to better categorise them in Logstash, but this meant we regressed
in terms of CI enforcement because they weren't enabled (they only
went to the debug file), and thus Jenkins didn't fail the build
if they were non-empty.

To avoid having to keep this in sync with the Jenkins job config,
standardise on a single file (mw-error.log), which the job already
asserts as having to be empty/non-existent.

Change-Id: I432682c082f77d9a6ec2ea07539c2a3e41ea1340
2020-02-15 19:18:25 +00:00
Adam Wight
23a390e700 Enable Book Referencing for development and tests
Sets a feature flag to allow browser tests to use an experimental feature.

Bug: T236255
Change-Id: I1528c09bb2ae13c1a73f30432bdf3ec97d525860
2019-10-24 15:36:07 +02:00
Amir Sarabadani
3936ddb4be Set l18n cache to array in DevelopmentSettings.php
Bug: T218207
Change-Id: Ib52d766436f487570b26fde54abfb1ff780c3647
2019-09-17 22:52:59 +02:00
Timo Tijhof
853de300a3 DevelopmentSettings: Clarify grouping of settings and purpose
Change-Id: Ia0fc063eb2679b466e19e6dabaf1f4bea7d6bb20
2019-08-07 14:23:58 +00:00
James D. Forrester
9c0dd23b96 Follow-up ffd802a386: Actually disable legacy JS globals
Bug: T72470
Change-Id: I2703420afd260c1c9d0cdc17baceed12dc28f758
2019-07-21 19:07:42 +00:00