jenkins-bot [Mon, 7 Oct 2019 14:44:24 +0000 (14:44 +0000)]
Merge "Turn PasswordReset into a service" into REL1_34
James D. Forrester [Wed, 2 Oct 2019 21:32:01 +0000 (14:32 -0700)]
Drop HHVM support from MediaWiki
This is just a first, top-level patch for documentation and the
PHPVersionCheck class itself. Much more clean-up to follow.
Bug: T192166
Change-Id: I50f5adc8d5fff604a14c8a889a31d3b92cc568c5
(cherry picked from commit
ed8e9397adf9477c381f3880276a2e0917087a7b)
Max Semenik [Tue, 10 Sep 2019 02:49:12 +0000 (19:49 -0700)]
Turn PasswordReset into a service
My team has plans to work in this area, better make it more testable.
Bug: T232694
Change-Id: I200874ec10db69378ada1743b2a7953b3fa01e3e
(cherry picked from commit
631f56c5766f582f21dd35eff0376b14692aa145)
Daimona Eaytoy [Sun, 6 Oct 2019 18:11:05 +0000 (20:11 +0200)]
installer: Fix warningBox arguments in WebInstallerRestart
Found in Idde7a766bb0d084d6b67bb0c940d7ad704847ad2.
Change-Id: Ia576f6c39098a58f57ad422d548d0236a3e59cce
jenkins-bot [Tue, 1 Oct 2019 13:31:19 +0000 (13:31 +0000)]
Merge "tests: Fix broken assertion in ApiQueryAllPagesTest"
jenkins-bot [Tue, 1 Oct 2019 08:34:10 +0000 (08:34 +0000)]
Merge "selenium: Replace ES5 one-var assignments with const/let per line"
Translation updater bot [Tue, 1 Oct 2019 06:24:41 +0000 (08:24 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I8c399d24532a18870561e054cca2d9651e0908ec
Timo Tijhof [Tue, 1 Oct 2019 01:36:15 +0000 (02:36 +0100)]
selenium: Replace ES5 one-var assignments with const/let per line
The one-var rule only applies to 'var' where it matters that we
don't let the engine implicitly hoist variables leading to
confusing code that may be unsafe to refactor in a straight-forward
manner.
This doesn't apply to ES6 const and let. While I updated the
rule in
1955a8aa5 to allow ES6, I did not enforce it. Fixed now.
When assigning a value, each assignment should be its own
statement (disallow awkward comma separated assignments).
When not assigning a value, and the lines are next to each other,
they should be in one statement. This makes sense for this small
directory and might make sense to propose for the wikimedia preset
at some point.
Note that the rule I added was not required to make the build
pass. The changes I made are allowed by default by the wikimedia
preset for es6+. The rule I added disallows the previous way.
Change-Id: I26cda095a8a4589084e36273038877f2dd1fc50b
Aaron Schulz [Mon, 30 Sep 2019 23:08:05 +0000 (16:08 -0700)]
Avoid dynamic call to static method in ResourceLoaderModule::buildContent()
Change-Id: I4e3d944b6468ad2f4bfc39532498d8ca38617689
jenkins-bot [Mon, 30 Sep 2019 20:30:42 +0000 (20:30 +0000)]
Merge "Selenium: Hide VE welcome and beta dialogs"
Kosta Harlan [Mon, 30 Sep 2019 19:07:57 +0000 (21:07 +0200)]
Selenium: Hide VE welcome and beta dialogs
Remove uses of setLocalStorage (incompatible with chromedriver >= 75)
and also requires slightly fewer requests since BlankPage.open()
doesn't need to be invoked.
Bug: T234002
Change-Id: I4cfb4fe17a3c99bfcb7ff39ac6db60f5c5e8a687
jenkins-bot [Mon, 30 Sep 2019 19:47:47 +0000 (19:47 +0000)]
Merge "RevisionStore::newRevisionFromBatch should use Title::newFromRow"
jenkins-bot [Mon, 30 Sep 2019 19:47:40 +0000 (19:47 +0000)]
Merge "Parser: Add Title type hints"
jenkins-bot [Mon, 30 Sep 2019 19:23:38 +0000 (19:23 +0000)]
Merge "filebackend: Convert trigger_error to PSR log warning"
jenkins-bot [Mon, 30 Sep 2019 18:57:01 +0000 (18:57 +0000)]
Merge "selenium: Fix inefficient use of MWBot in specs/page.js"
jenkins-bot [Mon, 30 Sep 2019 18:56:52 +0000 (18:56 +0000)]
Merge "selenium: Use async-await for wdio-mediawiki/Api internals"
Petr Pchelko [Wed, 25 Sep 2019 20:17:38 +0000 (13:17 -0700)]
RevisionStore::newRevisionFromBatch should use Title::newFromRow
If the rows were obtained using RevisionStore::getQueryInfo with
'page' flags, the revision row already contains the fields needed
to construct the Title without an additional database query.
Change-Id: Ie36c85871a8996a5706c80d286854a9c8363905f
jenkins-bot [Mon, 30 Sep 2019 18:34:21 +0000 (18:34 +0000)]
Merge "selenium: Remove "RunJobs" wait from specialrecentchanges test"
jenkins-bot [Mon, 30 Sep 2019 18:11:33 +0000 (18:11 +0000)]
Merge "selenium: Remove deprecated legacy methods"
jenkins-bot [Mon, 30 Sep 2019 18:09:50 +0000 (18:09 +0000)]
Merge "selenium: Upgrade from webdriver v4 to v5"
jenkins-bot [Mon, 30 Sep 2019 17:46:08 +0000 (17:46 +0000)]
Merge "RevisionStore: Introduce getContentBlobsForBatch"
jenkins-bot [Mon, 30 Sep 2019 17:43:35 +0000 (17:43 +0000)]
Merge "tests: Replace assertions on count() == 0 with strict === []"
jenkins-bot [Mon, 30 Sep 2019 17:40:25 +0000 (17:40 +0000)]
Merge "Split down patch-actor-table.sql"
Reedy [Sat, 28 Sep 2019 14:48:19 +0000 (15:48 +0100)]
Split down patch-actor-table.sql
Bug: T227662
Change-Id: I024ff1d6f4c2726242138ba7e7f19480d9d2b948
jenkins-bot [Mon, 30 Sep 2019 14:38:53 +0000 (14:38 +0000)]
Merge "maintenance: Enable gzip in router.php for static files"
Thiemo Kreuz [Mon, 30 Sep 2019 14:22:54 +0000 (16:22 +0200)]
tests: Fix broken assertion in ApiQueryAllPagesTest
The description had two errors:
* It talked about the presence of a specific value, but all it did
was checking a count.
* It was talking about the value *not* being there.
I just removed it. The possible error message from PHPUnit should be
good enough.
Change-Id: I7ea85dd37db8969bdd120f9600eeb6145e42eb1e
Thiemo Kreuz [Mon, 30 Sep 2019 14:20:34 +0000 (16:20 +0200)]
tests: Replace assertions on count() == 0 with strict === []
The benefit of using count() is that the test would still succeed if
the return vfalue is not an array, but an iterable object. It seems
this is not needed.
Change-Id: I23529f6990aebe0cce86e236a21820fe74993204
jenkins-bot [Mon, 30 Sep 2019 14:11:52 +0000 (14:11 +0000)]
Merge "selenium: Restore sauce user/key configuration for wdio"
Timo Tijhof [Sun, 29 Sep 2019 03:24:47 +0000 (04:24 +0100)]
selenium: Fix inefficient use of MWBot in specs/page.js
This test previously took 4 minutes to run locally and ended up
running the MWBot.login process 9 times.
After this, the specs/page tests only log-in once.
Bug: T234002
Change-Id: I374620a01f49d4da559070d0982bdbe4c1269e2e
Timo Tijhof [Sun, 29 Sep 2019 02:37:09 +0000 (03:37 +0100)]
selenium: Use async-await for wdio-mediawiki/Api internals
Bug: T234002
Change-Id: Ie4ad5248f832dd57f35710e0e9a91250e061b0bb
Timo Tijhof [Thu, 26 Sep 2019 21:57:50 +0000 (22:57 +0100)]
maintenance: Enable gzip in router.php for static files
Bug: T233992
Change-Id: Ie401180ac968210c9f923ad920bf15955c8551d7
Translation updater bot [Mon, 30 Sep 2019 06:31:33 +0000 (08:31 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I2ff71393f57b3c397dae4e63d9607dcd1807343e
jenkins-bot [Mon, 30 Sep 2019 00:34:28 +0000 (00:34 +0000)]
Merge "resourceloader: Hard deprecate ResourceLoader::getLessVars"
Fomafix [Sun, 29 Sep 2019 09:02:32 +0000 (11:02 +0200)]
resourceloader: Hard deprecate ResourceLoader::getLessVars
ResourceLoader::getLessVars is already deprecated since MW 1.32.
Change-Id: If2fbe7828d8cde73575c0306486835fa1ea06b84
jenkins-bot [Sun, 29 Sep 2019 21:16:23 +0000 (21:16 +0000)]
Merge "Added option to specify "Various authors" as author in extension credits using "..." as the _only_ author name"
Aaron Schulz [Wed, 18 Sep 2019 09:52:38 +0000 (02:52 -0700)]
Expand testDoQuickOperations() tests for FileBackend
Change-Id: I0633f13f07b5a3234b9bbae4840b064972f68fd9
Jack Phoenix [Sun, 15 Sep 2019 20:34:27 +0000 (23:34 +0300)]
Added option to specify "Various authors" as author in extension credits using "..." as the _only_ author name
If the "author" array contains more than one entry and "..." is one of the entries in the array, "..." will be parsed as "others" (version-poweredby-others i18n message) like previously.
Change-Id: Ibebd3c38a674abd9f066b38e92c7f712f7b3ba8d
Timo Tijhof [Sun, 29 Sep 2019 01:32:47 +0000 (02:32 +0100)]
selenium: Remove "RunJobs" wait from specialrecentchanges test
This test was consistently reaching the RunJobs timeout of
10 tries and then giving up. This happens in CI, where it wasted
about ~ 5 seconds, and locally where it takes about 30s for mw.
Like so:
> RunJobs through requests to the main page (run 1).
> RunJobs detected 12 more queued job(s).
> RunJobs through requests to the main page (run 2).
> RunJobs detected 12 more queued job(s).
Etc, until it reaches run 10 and gives up. This also suggests
the whole thing isn't wokring, but that's a separate matter.
First and foremost, RecentChange objects are saved from a PRESEND
deferred update, which means it does not require a job queue wait
in order to appear on Special:RecentChanges.
This was added in
e908d347ef2 (T199446) "to keep the number of
unrun jobs low". The idea being that this test makes an edit via
the API, which means it creates jobs without running them. On
the other hand, there's also lots of test steps that view pages
but don't create jobs, which would make this optimisation premature.
If and when we do encounter a test failing due to a job backlog,
I'm confident we can find a better solution at that time.
Bug: T234002
Bug: T225730
Bug: T199446
Change-Id: I9ef8c5b65d4b636572569912f04f48ed40aa0564
Timo Tijhof [Sun, 29 Sep 2019 01:59:56 +0000 (02:59 +0100)]
selenium: Remove deprecated legacy methods
These are from 2018, prior to introducing wdio-mediawiki in
commit
16a4d9da7bb81. Some extensions referenced these pageobjects
files through escalating "../../" references.
None of these are seen in Codesearch anymore, as well as no
references to these deprecated methods by other means.
Change-Id: Idbc373f13f9767cecd6404922b5c9773d796dda5
Timo Tijhof [Fri, 27 Sep 2019 03:08:00 +0000 (04:08 +0100)]
selenium: Upgrade from webdriver v4 to v5
* Options no longer needed or no longer exist in wdio v5:
- coloredLogs: Now always on. The underlying 'chalk' library can still
be influenced via the FORCE_COLOR environment variable.
- screenshotPath: Removed. Was already disabled in our config.
- deprecationWarnings: Meh.
- 'sync: true' – On by default when `@wdio/sync` is installed.
The wdio v5 config generator doesn't recommend setting manually.
* The selenium.sh script was removed. It existed to start and stop
chromedriver for local use by developers. This is now done by
the wdio-chromedriver-service. In WMF CI, Quibble starts its own
chromedriver (as optimisation, reused across gated repos),
which is why the 'selenium-test' entry points remains and skips
this.
* The wdio-mediawiki package now requires wdio v5 and Node 10.
This doesn't affect extension repos because versions are pinned.
Upgrade may happen at the earliest convenience.
* Several WDIO methods changed names or signature. Full list at:
<https://github.com/webdriverio/webdriverio/blob/v5.13.2/CHANGELOG.md#v500-2018-12-20>
Highlights:
- browser.element() is now browser.findElement() with "$()" as alias.
- browser.localStorage replaced by browser.setLocalStorage.
- browser.deleteCookie() requires `name` param. To delete all at once,
there is a new method browser.deleteAllCookies().
- Commands that return data no longer wrapped in `{ value: … }`.
Values are now returned directly.
- Custom config keys are now under browser.config instead of browser.options.
Renamed our username/password keys to be mw-prefixed, to avoid clashes
and reduce confusion with similar config keys.
- browser.click(selector) and browser.getText(selector) no longer exist.
Use $(selector).click() or .getText() instead.
* Fix "no such alert" warning from specs/page.js by removing the apparently
redundant code.
Bug: T234002
Bug: T213268
Change-Id: I908997569ca8457997af30cb29e98ac41fae3b64
Timo Tijhof [Fri, 27 Sep 2019 22:09:59 +0000 (23:09 +0100)]
selenium: Restore sauce user/key configuration for wdio
I removed these in
e78484109ae7 because they seemed redundant
given that the library used by wdio-sauce-service already reads
these when present. However, our current version of this package
clobbers this unconditionally with config.user/config.key, thus
not letting it reach that default.
Also add sauceConnect:true which means developers can run
localhost tests against sauce labs if they so choose.
Change-Id: I8d31a23374b2b9b6cd6f1405c7a2f1001da08f1a
jenkins-bot [Sat, 28 Sep 2019 20:20:32 +0000 (20:20 +0000)]
Merge "resourceloader: Add version to ResourceLoaderImage urls for long-cache"
jenkins-bot [Sat, 28 Sep 2019 20:02:18 +0000 (20:02 +0000)]
Merge "resourceloader: Simplify makeLoaderStateScript and makeLoaderSourcesScript"
jenkins-bot [Sat, 28 Sep 2019 20:00:24 +0000 (20:00 +0000)]
Merge "resourceloader: Remove support for $context === null in getContentObj"
Daimona Eaytoy [Thu, 19 Sep 2019 09:55:19 +0000 (11:55 +0200)]
StringUtils: Clarify that isValidRegex is for PCRE regexps
As suggested in
c14571ba26e (I257a096319f1e).
Change-Id: Ia91d037f2f4bf8a1bad4eac65fecb1d3e2679d2d
Fomafix [Sat, 28 Sep 2019 11:32:29 +0000 (13:32 +0200)]
resourceloader: Simplify makeLoaderStateScript and makeLoaderSourcesScript
The signatures without array are not used anymore.
Change-Id: Ice6a09ff6cba0c605ed1c89a25fd8e02af041b05
jenkins-bot [Sat, 28 Sep 2019 12:24:40 +0000 (12:24 +0000)]
Merge "docs: Fix typo on Doxygen main page"
Reedy [Fri, 27 Sep 2019 16:22:11 +0000 (17:22 +0100)]
Fix double dot in filename
Follows-Up: I7617616df57f7468d06e9b52426b6851bfef0e7d
Change-Id: Ia8be2fd6a13d095e27a6489b0126763573dd6194
jenkins-bot [Sat, 28 Sep 2019 01:26:59 +0000 (01:26 +0000)]
Merge "resourceloader: Add $modules parameter to makeVersionQuery()"
Timo Tijhof [Thu, 26 Sep 2019 16:26:52 +0000 (17:26 +0100)]
resourceloader: Add version to ResourceLoaderImage urls for long-cache
The code previously here did not work well as it merely forwarded the
hash from the current web request. This had numerous issues:
1. It was often null because requests for stylesheets do not cary
a version hash.
2. When requested by JavaScript, the version hash would be a
combination-hash of many unrelated modules, thus when requested as
part of different batches, it would produce different urls which
is not ideal.
The impact of this is minimal currently because we basically never use
these urls, as SVGs are almost always embedded instead of ref'ed by url.
PNG urls are only generated for non-JS modules and then only used in older
browsers not supporting SVG. And, even after all that, for the edge case
of an SVG being ref'ed by url, they would be stored in LocalStorage by
mw.loader with the name+version of the module the image belonged to, not
the version hash of the batch request it came with.
Which means that, yes, localstorage key for "somemodule+someversion" would
have different values for different users, based on which batch the value
came with, because the image urls were using the version hash of the batch
request from ResourceLoaderContext. This is weird, but didn't cause bugs
or inefficiencies because the user would never be exposed to the other
possible urls for that image because we always check LocalStorage first.
It did cause fragmentation server-side in Varnish, though.
This is all fixed now by always including a version, and setting it to
the version of the module. This means there is no more Varnish fragmentation
for these. And it means that browsers are now allowed to cache the images
served from these urls for 30+ days (immutable) instead of only 5min,
which is what happened when they didn't have a version parameter (or set to
null).
Bug: T233343
Change-Id: I4af7fda03698ed4c288d154e7787fb2f3cbbe6c5
Jdlrobson [Fri, 27 Sep 2019 23:03:21 +0000 (23:03 +0000)]
Merge "Mark mediawiki.page.watch.ajax as targetable to mobile"
jenkins-bot [Fri, 27 Sep 2019 22:43:09 +0000 (22:43 +0000)]
Merge "tests: Replace PHPUnit's loose assertEquals(null) with assertNull()"
jenkins-bot [Fri, 27 Sep 2019 22:23:51 +0000 (22:23 +0000)]
Merge "build: Lower default Karma logLevel during local development"
jdlrobson [Thu, 26 Sep 2019 15:56:58 +0000 (08:56 -0700)]
Mark mediawiki.page.watch.ajax as targetable to mobile
This is explicitly disabled by Minerva so this should have
no impact other than allow the loading of this module on
mobile.
Change-Id: Ib73fb995f5ccb16d99b505abad2466187c3dc5a5
jenkins-bot [Fri, 27 Sep 2019 21:34:39 +0000 (21:34 +0000)]
Merge "Remove tests that were skipped for MCR-enabled schema"
jenkins-bot [Fri, 27 Sep 2019 20:58:32 +0000 (20:58 +0000)]
Merge ".pipeline/config.yaml: rename dev stage to publish"
jenkins-bot [Fri, 27 Sep 2019 20:48:15 +0000 (20:48 +0000)]
Merge "resourceloader: Add $context to static functions in ResourceLoader"
jenkins-bot [Fri, 27 Sep 2019 20:22:10 +0000 (20:22 +0000)]
Merge "resourceloader: Add type hints for type ResourceLoaderContext"
Petr Pchelko [Fri, 27 Sep 2019 19:05:42 +0000 (12:05 -0700)]
Remove tests that were skipped for MCR-enabled schema
Pre-MCR schema is no longer supported, thus we don't need
the tests that are skipped for MCR-enabled schema.
Bug: T214308
Change-Id: I2d78ec668fde1e49710c54be8ab72c474f30f6b8
Thiemo Kreuz [Tue, 17 Sep 2019 14:03:28 +0000 (16:03 +0200)]
tests: Replace PHPUnit's loose assertEquals(null) with assertNull()
assertEquals( null, … ) still succeeds when the actual value is 0, false,
an empty string, even an empty array. All these should be reported as a
failure, I would argue.
Note this patch previously also touched assertSame( null ). I reverted
these. The only benefit would have been consistency within this codebase,
but there is no strict reason to prefer one over the other. assertNull()
and assertSame( null ) are functionally identical.
Change-Id: I92102e833a8bc6af90b9516826abf111e2b79aac
jenkins-bot [Fri, 27 Sep 2019 18:38:16 +0000 (18:38 +0000)]
Merge "Fix permission check on protection log"
jenkins-bot [Fri, 27 Sep 2019 18:38:09 +0000 (18:38 +0000)]
Merge "Remove Revision::getRevisionText and gated pre-MCR schema access"
jenkins-bot [Fri, 27 Sep 2019 18:35:44 +0000 (18:35 +0000)]
Merge "rdbms: Remove obsolete comment in LoadBalancerSingle"
daniel [Thu, 26 Sep 2019 12:23:40 +0000 (14:23 +0200)]
RevisionStore: Introduce getContentBlobsForBatch
getContentBlobsForBatch provides a more low level interface than
newRevisionsFromBatch, allowing bulk access to serialized content
without the need to instantiate Title, RevisionRecord, RevisionSlots,
SlotRecord, and Content objects.
Bug: T228675
Bug: T234034
Change-Id: I8481ad211e2d9f11bc10ea10c16e78b74538d95b
jenkins-bot [Fri, 27 Sep 2019 17:52:33 +0000 (17:52 +0000)]
Merge "Force usage of MCR aware database schema"
Brennen Bearnes [Fri, 27 Sep 2019 17:43:52 +0000 (11:43 -0600)]
.pipeline/config.yaml: rename dev stage to publish
This should align with the "publish" pipeline defined in
integration/config.
Bug: T218360
Change-Id: Iba27755416843dd547ac1889d932a3b5ea9d1fd2
Ammar [Fri, 27 Sep 2019 13:39:15 +0000 (14:39 +0100)]
Fix permission check on protection log
*I2341e6f inverted the permission check, such that now the link is only shown to unprivileged users
Bug: T234017
Change-Id: I0977f1ab1a72840303aeca2367a30546d83117d4
Lucas Werkmeister [Thu, 26 Sep 2019 15:49:48 +0000 (17:49 +0200)]
rdbms: Remove obsolete comment in LoadBalancerSingle
This comment was added in commit
0b583944e4, but
later rendered obsolete by commit
143333b172.
Change-Id: I1a64ab75a9883a88d5767722e27724520f8a0dcc
Petr Pchelko [Fri, 20 Sep 2019 18:11:35 +0000 (11:11 -0700)]
Remove Revision::getRevisionText and gated pre-MCR schema access
- fixT22757.php appears to have been written for T22757 which has been
resolved, I assume it can be removed.
- compressOld.php - rev_text_id access is gated on MCRSchemaMigrationStage
READ_OLD. IT's safe to use the old_text and old_flags directly as we
select for them. Also the query ensures external blobs are not selected,
so we can use decompressData instead of Revision::getRevisionText.
Tested locally.
- recompressTracked.php uses a temporary table for tracking the blobs.
Table is populated by trackBlobs which explicitly queries for old_id,
so using it directly in recompressTracked is ok.
Tested locally.
- checkStorage.php the affected code attempts to fix broken revisions
from a dump, however, it looks like it doesn't work - the code expects
revision IDs as input, however it receives an array of text table old_id
values. Untested.
Bug: T198343
Change-Id: I753019565c15d270c831c995c07c7f1aad887cb6
Fomafix [Mon, 9 Sep 2019 15:50:13 +0000 (17:50 +0200)]
resourceloader: Add $context to static functions in ResourceLoader
This change allows to use the context in the functions.
The following internal static functions from ResourceLoader get now a
reference to the ResourceLoaderContext object:
* makeLoaderImplementScript
* makeLoaderStateScript
* makeLoaderRegisterScript
* makeLoaderSourcesScript
ResouceLoader::encodeJsonForScript is duplicated to
ResourceLoaderContext::encodeJson loading the debug mode from context.
ResourceLoader::encodeJsonForScript is kept for other usages without
context.
The debug mode is loaded from $context->getDebug() instead of from
ResourceLoader::inDebugMode(). This does not support to enable the debug
mode by setting the cookie 'resourceLoaderDebug' or the configuration
variable wgResourceLoaderDebug. Only the URL parameter debug=true
enables the debug mode. This should be sufficient for the subsequent
ResourceLoader requests. The tests don't need the global variable
wgResourceLoaderDebug anymore. The initial ResourceLoader context in
OutputPage still uses ResourceLoader::inDebugMode() with cookie and
global configuration variable.
This change adds the parameter $context with a ResourceLoaderContext
object to ResourceLoaderModule::getDeprecationInformation and deprecates
omitting the parameter. Ifa1a3bb56b731b83864022a358916c6aca5d7c10
updates this in extension ExtJSBase.
Bug: T229311
Change-Id: I5341f18625209446a6d006f60244990f65530319
jenkins-bot [Fri, 27 Sep 2019 15:18:11 +0000 (15:18 +0000)]
Merge "Split down patch-comment-table.sql"
jenkins-bot [Fri, 27 Sep 2019 14:47:09 +0000 (14:47 +0000)]
Merge "MWTestCase: include table prefix in domain for temp table only mode."
apaskulin [Fri, 27 Sep 2019 14:45:59 +0000 (07:45 -0700)]
docs: Fix typo on Doxygen main page
This PR fixes a typo and removes a few extra words
from the Doxygen landing page.
Change-Id: Ieb09c0e72129f4c6b0ccd574daf2f9316f580259
jenkins-bot [Fri, 27 Sep 2019 13:42:20 +0000 (13:42 +0000)]
Merge "Speed up ApiQuerySiteinfoTest:testContinuation"
jenkins-bot [Fri, 27 Sep 2019 12:01:55 +0000 (12:01 +0000)]
Merge "API: Use ConvertibleTimestamp::setFakeTime for testing curtimestamp"
Clara Andrew-Wani [Tue, 24 Sep 2019 22:07:36 +0000 (18:07 -0400)]
Force usage of MCR aware database schema
Bug: T214308
Change-Id: I2ae4e82a12f730617563eb6f911fc406b9195391
daniel [Fri, 27 Sep 2019 11:10:22 +0000 (13:10 +0200)]
MWTestCase: include table prefix in domain for temp table only mode.
This patch allows PageUpdaterTest and DerivedPageDataUpdaterTest to
function properly. Without this patch, the fail when run by themselves.
See phab ticket for analysis.
Bug: T234031
Change-Id: I0804b503bc8b860343a5141c0bfb25fe6855c87d
Brad Jorsch [Wed, 18 Sep 2019 16:44:15 +0000 (12:44 -0400)]
Remove MySQL index aliasing for user_newtalk indexes
While these have not yet caused problems, we should probably deprecate
the whole confusing "index aliasing" feature. Cleaning this up needs to
be done first.
Method MWLBFactory::setSchemaAliases() is being considered private due
to the @internal notation, and so is being removed without deprecation.
Bug: T233240
Change-Id: Ib04b7bc4af53382fde01bd8550cc7e361124255f
Antoine Musso [Fri, 27 Sep 2019 08:42:56 +0000 (10:42 +0200)]
Speed up ApiQuerySiteinfoTest:testContinuation
The test fills $wgUrlProtocols with 86000 entries, forging oversized
strings which ends up eventually truncated to 100 bytes. The aim is to
overflow $wgAPIMaxResultSize to trigger an apiwarn-truncatedresult
warning.
The test takes 230 ms on my machine and when generating code coverage
almost a minute.
A faster approach is just to lower the $wgAPIMaxResultSize limit to
trigger the warning.
Test plan:
$ php tests/phpunit/phpunit.php \
tests/phpunit/includes/api/ApiQuerySiteinfoTest.php \
--filter testContinuation
Bug: T234016
Change-Id: I3dc96d394d8b98dda8f151d14544b829c92f9b10
Translation updater bot [Fri, 27 Sep 2019 06:24:47 +0000 (08:24 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: Ic52edc08609d9b9d03b7173ae43810f0dad140c1
Fomafix [Fri, 27 Sep 2019 04:43:44 +0000 (06:43 +0200)]
resourceloader: Add type hints for type ResourceLoaderContext
Change-Id: I10fc4b9277f94fc495149fe0d0077b054090387b
Tim Starling [Fri, 27 Sep 2019 00:58:21 +0000 (10:58 +1000)]
In recompressTracked.php, fix the names of things related to child processes
The forbidden word was used in two senses, confusing the search and
replace done in
3d5016569da984050e.
Change-Id: I220a58fd536c828ab5e03a779e45f222d0298f9a
jenkins-bot [Fri, 27 Sep 2019 00:13:37 +0000 (00:13 +0000)]
Merge "objectcache: fully respect "pcTTL" in WANObjectCache instead of using INF when >= 0"
jenkins-bot [Fri, 27 Sep 2019 00:13:30 +0000 (00:13 +0000)]
Merge "filebackend: avoid use of wfWikiId() in FileBackendGroup"
jenkins-bot [Thu, 26 Sep 2019 23:20:56 +0000 (23:20 +0000)]
Merge "Add .pipeline/ with dev image variant"
jenkins-bot [Thu, 26 Sep 2019 23:17:16 +0000 (23:17 +0000)]
Merge "Add a run mode to $wgDisableQueryPageUpdate"
Aaron Schulz [Sun, 15 Sep 2019 19:32:08 +0000 (12:32 -0700)]
filerepo: make FileRepo::store/storeBatch() accept FSFile as similar methods already do
Change-Id: I92ce979a71fabd9e2095e7db43fa6fc8c2e0ef75
Umherirrender [Mon, 19 Aug 2019 14:49:43 +0000 (16:49 +0200)]
Add a run mode to $wgDisableQueryPageUpdate
The run mode is used to show a different message on the special page,
instead of the current one "Updates for this page are currently
disabled. Data here will not presently be refreshed." even the data gets
updated with a different cron job.
Bug: T78711
Change-Id: Ib63d16bfea477dec43323b39671cc068530e2f0b
Timo Tijhof [Thu, 26 Sep 2019 17:34:17 +0000 (18:34 +0100)]
resourceloader: Add $modules parameter to makeVersionQuery()
The 'version' and 'modules' parameters are a somewhat problematic
part of the ResourceLoaderContext object as we often pass around
the context but may be dealing with only a subset of the modules
in the outer request, or even entirely different ones (e.g.
for OutputPage's fake context 'modules' and 'version' are both
null).
This is already visible in ClientHtml where we create a derivative
context just to call setModules() and have makeVersionQuery()
work. This is now fixed.
This change is in preparation for use in ResourceLoaderImage
(to fix T233343) where we'll need to compute a version for only
1 module of a larger set, and ideally without needing to create
another context.
Bug: T233343
Change-Id: Icc1a4fd1f58c4e49e58eee43ca4ba2de6cfffc76
jenkins-bot [Thu, 26 Sep 2019 20:16:01 +0000 (20:16 +0000)]
Merge "installer: Deprecate WebInstaller::getInfoBox, getWarningBox and getErrorBox"
jenkins-bot [Thu, 26 Sep 2019 19:41:56 +0000 (19:41 +0000)]
Merge "Clean up ar_usertext_timestamp index mess"
jenkins-bot [Thu, 26 Sep 2019 19:41:48 +0000 (19:41 +0000)]
Merge "You are reviewing an old revision should be a warningbox"
jenkins-bot [Thu, 26 Sep 2019 19:39:58 +0000 (19:39 +0000)]
Merge "newRevisionsFromBatch: don't throw on duplicate row."
Volker E [Tue, 17 Sep 2019 01:53:29 +0000 (18:53 -0700)]
installer: Deprecate WebInstaller::getInfoBox, getWarningBox and getErrorBox
Since MW 1.31 there are messageBox, warningBox, errorBox and successBox
available which should be used instead.
These are simple wrappers around Html::messageBox and related methods
which should be used directly instead. Internal usage has been migrated
as of
a9252abb1cf0, but these public methods remain for now. Once
removed we can also removed the internal Html::infoBox() method.
Bug: T232903
Change-Id: I2756c88987754c4e3f84d98c531d8396098cd7fe
jenkins-bot [Thu, 26 Sep 2019 17:03:04 +0000 (17:03 +0000)]
Merge "Fill GenderCache for used pages in action=query&prop=fileusage"
Brad Jorsch [Thu, 26 Sep 2019 16:29:29 +0000 (12:29 -0400)]
API: Use ConvertibleTimestamp::setFakeTime for testing curtimestamp
Mainly to avoid spurious test failures when CI is being extremely slow.
Bug: T233752
Change-Id: Ie2cdd84dc076a852fbdce52f661ef893f9a2d45b
Fomafix [Wed, 28 Aug 2019 12:39:25 +0000 (14:39 +0200)]
Parser: Add Title type hints
getTitle() and Title() will never return NULL anymore. When mTitle is
not set then a TypeError be thrown at runtime. The explicit local
checks for is_null( $this->mTitle ) are not needed anymore when
$this-getTitle() instead of $this->mTitle is used.
Change-Id: I09a178e5c6938954edb2949f13660227d6a01fbc
jenkins-bot [Thu, 26 Sep 2019 14:15:53 +0000 (14:15 +0000)]
Merge "Parser: Use 'Special:Badtitle/Parser' instead of 'NO TITLE'"
Brad Jorsch [Fri, 20 Sep 2019 18:35:39 +0000 (14:35 -0400)]
CommentStore: Accept SCHEMA_COMPAT_* constants
Extensions doing an actor and comment migration at the same time will
likely want to use the same constants for each, and that will most
likely be using write-both/read-old and write-both/read-new for the
middle stages rather than write-both/read-both and write-new/read-both
as implemented by the MIGRATION_* constants. See Ie29fd05 for example.
This patch changes CommentStore's internal logic to work correctly when
passed write-both/read-old or write-both/read-new.
Bug: T233449
Change-Id: Iebec80f969ad1c4f9f51a4f25656319cca32b0dd
Timo Tijhof [Wed, 18 Sep 2019 18:05:42 +0000 (19:05 +0100)]
exception: Let MediaWiki.php control final output for ErrorPageError
The same way it does already for non-error output. This makes
it so that doPreOutputCommit() consistently happens between
the staging of output and the actual sending of output.
It is still allowed for code to bypass this, such as for fatal
errors and for handlers that disable OutputPage (like Special:Export).
But for cases where we do want to perform doPreOutputCommit(), it
should be run consistently between staging and sending so that it
can make appropiate decisions based on the current state of
OutputPage.
Previously, the state of OutputPage seen by doPreOutputCommit()
would be the broken/incomplete output of a seemingly succesful
(possibly cacheable) user action, which would then, after
doPreOutputCommit() runs, be completely replaced by $e->report()/
$out->showErrorPage().
This is a prerequisite for being able to reliably send cookie-block
cookies on error pages (next patch).
Bug: T233594
Change-Id: Iaeaf5e55a5868e6be534ddda73f3b56b9d6ef8f0