Aaron Schulz [Thu, 27 Jun 2019 07:17:06 +0000 (00:17 -0700)]
parser: document what 0/null rev IDs do when given to Parser::parse
This was extremely obscure and tricky to figure out before
Change-Id: Ibdbb669431819eecd34de508735864e977d51021
Aryeh Gregor [Sun, 18 Aug 2019 18:19:05 +0000 (21:19 +0300)]
BadFileLookup to replace wfIsBadImage
I think this probably shouldn't be directly in the MediaWiki namespace,
but I don't know where is a better place to put it.
In order to avoid gratuitous use of TitleFormatter, I changed the cache
format -- the old implementation used getPrefixedDBkey() and I switched
to an ns/dbkey pair. I also changed the cache keys to use SHA1 instead
of MD5, by Daniel's request.
The previous implementation cached the parsed blacklist for one minute
without invalidation, so it could return slightly stale results, but it
didn't retrieve the bad image list message on a cache hit. The new
implementation unconditionally retrieves the bad image list message, but
uses a hash of it in the cache key and caches for one day. The new
behavior happens to be more cleanly implementable in a service.
Bug: T200882
Bug: T139216
Change-Id: I69fed1b1f3cfc1aa149e0739780e67f6de01609d
Aryeh Gregor [Wed, 21 Aug 2019 08:14:57 +0000 (11:14 +0300)]
Rewrite integration test for wfIsBadImage()
In preparation for rewriting as a service. I didn't figure out how to
get file redirects to be tested.
Change-Id: Ic6669a19a13025744036f9f8adc4d1a25490fb42
Petr Pchelko [Wed, 21 Aug 2019 05:28:47 +0000 (22:28 -0700)]
Convert PermissionManager constructor to use ServiceOptions.
Change-Id: I36a3a2f338506ef14cc5d65b8bee2961a92d60da
Thalia [Wed, 24 Jul 2019 15:27:52 +0000 (16:27 +0100)]
Ensure block hooks keep user state consistent with realistic blocks
Several block-related hooks allow the user to be put into in a state
that is inconsistent with blocks that can actually be made:
* With UserIsHidden, User::mHideName can be set to true without there
being a block
* With UserIsBlockedFrom, a user can be blocked from editing a page
without there being a block
* With GetBlockedStatus, public block properties can be arbitrarily
set on a user
These problems are mostly theoretical, but mean that it is impossible to
make some basic assumptions, e.g. that a user who is blocked from a page
must have a block. The hooks are not widely used, and with a few changes
we can make them more robust so such assumptions can be made.
This patch:
* Ensures UserIsBlockedFrom is only called if there is a block. This
would be a breaking change if any extensions were using this to block
an unblocked user; the intended use case is clearly for extensions to
allow user talk page access to blocked users.
* Adds a new hook, GetUserBlockComplete, which passes the block for
modification. This should be used instead GetBlockedStatus and
UserIsHidden, which will be deprecated in the future.
* Allows the 'hideName' option to be passed into the AbstractBlock
constructor so that suppressing system blocks can be made.
Bug: T228948
Bug: T229035
Change-Id: I6f145335abeb16775b08e8c7c751a01f113281e3
jenkins-bot [Wed, 21 Aug 2019 16:21:01 +0000 (16:21 +0000)]
Merge "TempFSFileFactory service"
jenkins-bot [Wed, 21 Aug 2019 16:18:50 +0000 (16:18 +0000)]
Merge "REST: Use ob_clean to wipe display_errors output"
Aryeh Gregor [Fri, 16 Aug 2019 10:00:15 +0000 (13:00 +0300)]
TempFSFileFactory service
This replaces TempFSFile::factory(), which is now deprecated.
Change-Id: I9e65c3867e26c16687560dccc7d9f3e195a8bdd6
jenkins-bot [Wed, 21 Aug 2019 10:43:03 +0000 (10:43 +0000)]
Merge "RedirectSpecialArticle: Fix PHP notice about undefined index"
jenkins-bot [Wed, 21 Aug 2019 10:28:50 +0000 (10:28 +0000)]
Merge "mw.widgets.CalendarWidget: Tweak hover styling after OOUI changes"
Ariel T. Glenn [Thu, 8 Aug 2019 13:11:36 +0000 (16:11 +0300)]
replace wfGetDB (discouraged for use) with Maintenance::getDB in dumps scripts
Bug: T228772
Change-Id: I0d9448b2565481f61d927b2d58f44bddbf358ed8
Gilles Dubuc [Wed, 21 Aug 2019 09:04:45 +0000 (11:04 +0200)]
Add support for native image lazy loading
Bug: T230897
Depends-On: I6c0b01fafe2c4498852e9c9b81151aba759dc5eb
Change-Id: I0307563b8f433dab062effe4dbfd7d4a9bbb8764
jenkins-bot [Wed, 21 Aug 2019 08:15:34 +0000 (08:15 +0000)]
Merge "Remove usages of deprecated User::getRights."
jenkins-bot [Wed, 21 Aug 2019 08:00:33 +0000 (08:00 +0000)]
Merge "Replace User::isAllowed with PermissionManager."
Translation updater bot [Wed, 21 Aug 2019 07:12:43 +0000 (09:12 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I67fba817871853916304194753f95e330841167d
jenkins-bot [Wed, 21 Aug 2019 05:59:19 +0000 (05:59 +0000)]
Merge "Add $digitTransformTable for the Manipuri language"
jenkins-bot [Wed, 21 Aug 2019 05:59:13 +0000 (05:59 +0000)]
Merge "Change the autonym of Manipuri to Meetei script"
Petr Pchelko [Wed, 21 Aug 2019 02:21:13 +0000 (19:21 -0700)]
Remove usages of deprecated User::getRights.
Bug: T220191
Change-Id: Ia7472cf61765fe5fee9ae72cfa9b7060565dbe87
Tim Starling [Wed, 21 Aug 2019 01:45:00 +0000 (11:45 +1000)]
REST: Use ob_clean to wipe display_errors output
As in the Action API
Change-Id: I48c3477f0ebb58c000fa832352a1631cfda6c909
jenkins-bot [Tue, 20 Aug 2019 23:08:27 +0000 (23:08 +0000)]
Merge "DefaultSettings.php: Move $wgDBname/$wgDBprefix/$wgDBmwschema closer to each other"
Bartosz Dziewoński [Tue, 20 Aug 2019 23:02:27 +0000 (01:02 +0200)]
mw.widgets.CalendarWidget: Tweak hover styling after OOUI changes
Bug: T230393
Change-Id: I9e1e2e3d7dded82e6bc60b00afedef4e56d893b6
jenkins-bot [Tue, 20 Aug 2019 22:48:24 +0000 (22:48 +0000)]
Merge "Break the cyclic dependency between SearchEngine and SearchResult"
jenkins-bot [Tue, 20 Aug 2019 22:26:24 +0000 (22:26 +0000)]
Merge "resourceloader: Avoid isKnownEmpty call for regular (non-embed) modules"
Petr Pchelko [Fri, 16 Aug 2019 18:13:56 +0000 (11:13 -0700)]
Replace User::isAllowed with PermissionManager.
Covers root includes, actions, api, block, changes,
changetags, diff and PermissionManager itself.
Bug: T220191
Change-Id: Ic027d32f5dd8f4c74865df0c8a9fcf91123c889c
Timo Tijhof [Wed, 14 Aug 2019 12:18:50 +0000 (14:18 +0200)]
resourceloader: Avoid isKnownEmpty call for regular (non-embed) modules
Modules that are never embedded, and not user-specific, should not be
excluded from the loader, even if they are empty.
Doing so has two problems:
1. Modules are expected to have their changes propagated within 5 minutes
through the startup module. This depends on the fact that in page view
HTML we queue the module by name, regardless of its current version.
If the module is known to be needed by a page, then we need to queue it,
even if the current version is empty. Otherwise, cached pages will be
missing the module, despite the older ParserOutput perfectly knowing
already that it was needed, which can cause bugs due to HTML not
matching the module queue it was generated with.
2. The isKnownEmpty method can sometimes require a database lookup.
The performance team tuned this with a preloader for the subset of
modules we need the information for (user modules and style modules).
In
0b1a7d4c59c8395, I accidentally made the conditions nested the wrong
way, which made it call this much more frequently.
Bug: T230260
Bug: T176159
Change-Id: I4e6af2c833c92e1277713bdd0c68953d49c4dd9d
jenkins-bot [Tue, 20 Aug 2019 19:21:15 +0000 (19:21 +0000)]
Merge "Clear block cookie if the value is invalid"
jenkins-bot [Tue, 20 Aug 2019 17:34:29 +0000 (17:34 +0000)]
Merge "Add instrumentation to Special:Mute"
jenkins-bot [Tue, 20 Aug 2019 17:25:21 +0000 (17:25 +0000)]
Merge "Put block cookie expiry into UTC for comparison with current time"
jenkins-bot [Tue, 20 Aug 2019 17:19:00 +0000 (17:19 +0000)]
Merge "rdbms: simplify LoadBalancer::getLaggedReplicaMode()"
jenkins-bot [Tue, 20 Aug 2019 16:51:53 +0000 (16:51 +0000)]
Merge "Tests: Set dbname for DatabaseSqliteTest"
David Causse [Thu, 1 Aug 2019 15:06:50 +0000 (17:06 +0200)]
Break the cyclic dependency between SearchEngine and SearchResult
Change-Id: Icda469eb675ccac6048d7a9d978d51e3e673edab
jenkins-bot [Tue, 20 Aug 2019 16:08:11 +0000 (16:08 +0000)]
Merge "ApiSandbox: Load mediawiki.hlist RL module"
jenkins-bot [Tue, 20 Aug 2019 15:50:58 +0000 (15:50 +0000)]
Merge "objectcache: fix WRITE_ALLOW_SEGMENTS in BagOStuff cas() and add() methods"
Thalia [Tue, 20 Aug 2019 14:32:47 +0000 (15:32 +0100)]
Put block cookie expiry into UTC for comparison with current time
Change-Id: Ia01a364a01ebacec8783ecdcfe4a129cfb746eb8
jenkins-bot [Tue, 20 Aug 2019 15:20:13 +0000 (15:20 +0000)]
Merge "TitleOptionWidget: Documentation type fix"
jenkins-bot [Tue, 20 Aug 2019 15:20:02 +0000 (15:20 +0000)]
Merge "RCFilters: add namespace filters for all contents and all discussions"
jenkins-bot [Tue, 20 Aug 2019 15:13:41 +0000 (15:13 +0000)]
Merge "hooks.txt: Convert docs to modern extension registration style"
Aaron Schulz [Thu, 15 Aug 2019 01:31:48 +0000 (21:31 -0400)]
objectcache: fix WRITE_ALLOW_SEGMENTS in BagOStuff cas() and add() methods
Add MediumSpecificBagOStuff::getValueOrSegmentList() helper method.
Also:
* Use $keysMissing variable correctly in CachedBagOStuff::getMulti()
to avoid extra overhead.
* Optimize mergeViaCas() when the current value matches the new one.
Change-Id: I5c4bd74379bc459216ac0278150ce3aecff3b851
Ed Sanders [Tue, 20 Aug 2019 14:13:30 +0000 (16:13 +0200)]
TitleOptionWidget: Documentation type fix
Change-Id: I6ea4a1749a373c64e12d5c0ee1e5d55953523205
Brad Jorsch [Tue, 20 Aug 2019 13:52:54 +0000 (09:52 -0400)]
ApiSandbox: Load mediawiki.hlist RL module
The default l10n for the main module's description uses the hlist class,
so load it.
It might make more sense to have it as a module dependency of an
appropriate RL module like mediawiki.apipretty instead of requiring
every caller to load it manually, but it seems that's not really done
because RL is weird about handling CSS-only modules as dependencies.
Bug: T230782
Change-Id: I6493d7d789f3cebee737645528cddfb1d3acb1d7
DannyS712 [Mon, 19 Aug 2019 07:01:43 +0000 (07:01 +0000)]
hooks.txt: Convert docs to modern extension registration style
This changes the examples in hooks.txt from using the old format of
manually entering additions into `wgHooks` to instead use the new
`"Hooks“: {}` object format.
Bug: T230397
Change-Id: I48a9986e4243eb933088d36b4bb095b345ab62fd
jenkins-bot [Tue, 20 Aug 2019 13:40:26 +0000 (13:40 +0000)]
Merge "objectcache: make newFromId()/newWANcacheFromId()/getDefaultKeyspace() private"
Aaron Schulz [Tue, 13 Aug 2019 00:46:14 +0000 (17:46 -0700)]
objectcache: make newFromId()/newWANcacheFromId()/getDefaultKeyspace() private
Change-Id: I30b99f23dbd9637ca8178d3a3650b4c38ec43e7d
Aaron Schulz [Tue, 13 Aug 2019 05:47:42 +0000 (22:47 -0700)]
objectcache: Remove lock()/unlock() stubs from MemcachedClient
Change-Id: I56628957b16d91cfa9b79b07abdece17fb396577
jenkins-bot [Tue, 20 Aug 2019 12:59:23 +0000 (12:59 +0000)]
Merge "Prime connections and update description of McTest script"
Aaron Schulz [Wed, 7 Aug 2019 23:14:36 +0000 (16:14 -0700)]
DefaultSettings.php: Move $wgDBname/$wgDBprefix/$wgDBmwschema closer to each other
Change-Id: I33e55a8547beade94157c1cdf941677d29ae5869
jenkins-bot [Tue, 20 Aug 2019 12:32:19 +0000 (12:32 +0000)]
Merge "Tests for TempFSFile"
jenkins-bot [Tue, 20 Aug 2019 10:05:15 +0000 (10:05 +0000)]
Merge "docs: Fix typos for 'parameter' and 'perform'"
jenkins-bot [Tue, 20 Aug 2019 10:02:24 +0000 (10:02 +0000)]
Merge "logging: Fix typo for `getPerformer()` interface method declaration"
DannyS712 [Tue, 20 Aug 2019 00:47:01 +0000 (00:47 +0000)]
docs: Fix typos for 'parameter' and 'perform'
Bug: T201491
Change-Id: I37ed48907bf7c1a1d4ebab7b10b41a77623eba8a
Kosta Harlan [Tue, 20 Aug 2019 09:28:29 +0000 (11:28 +0200)]
Tests: Set dbname for DatabaseSqliteTest
Bug: T230780
Change-Id: I93d3771233c74443f76b0a402a4820e1e1e30ee7
Aryeh Gregor [Tue, 20 Aug 2019 08:22:31 +0000 (11:22 +0300)]
Tests for TempFSFile
These are in preparation for making a TempFSFileFactory service, thus
the odd break-up into two files. I split it into a separate commit so
that we could verify that the same tests pass before and after the
conversion to service.
Tests cover everything except getUsableTempDirectory() (which I don't
see how to test), and register_shutdown_function()-related stuff (which
seems actually impossible to test without starting a new PHP process).
Change-Id: If61b7ea3e332adc2bceefc8e6879a9e9443c99dd
Translation updater bot [Tue, 20 Aug 2019 07:37:55 +0000 (09:37 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I5d21bfc6534244188a6d639590681edeba3e9e7d
Aaron Schulz [Mon, 19 Aug 2019 22:24:15 +0000 (18:24 -0400)]
rdbms: add setTempTablesOnlyMode() to suppress CONN_TRX_AUTOCOMMIT during tests
Bug: T202116
Change-Id: Ib3e80eb04580b2d5a75ede8fb5546409c09a751a
jenkins-bot [Mon, 19 Aug 2019 19:23:08 +0000 (19:23 +0000)]
Merge "Test that classes use all their ServiceOptions"
Dayllan Maza [Mon, 19 Aug 2019 18:59:25 +0000 (14:59 -0400)]
Clear block cookie if the value is invalid
When a block cookie is present and the block is invalid or doesn't exists
or the cookie value is invalid or malformed, the cookie is removed.
Bug: T227678
Change-Id: Icaff594686c16a0eb8551b2a4392a14a969b43b0
Aryeh Gregor [Wed, 14 Aug 2019 12:58:53 +0000 (15:58 +0300)]
Test that classes use all their ServiceOptions
Classes that use ServiceOptions need to declare a list of keys that they
use, typically in self::$constructorOptions. If keys are missing from
that list that are supposed to be present, an exception will be thrown
when someone tries to access them. If keys are present on the list that
are never used, no error is flagged. This means if a dependency on a
given configuration option is removed and nobody updates the list, the
service will keep thinking it depends on that option when it doesn't.
This is messy at best, like an unused variable.
A new and easy-to-use TestAllServiceOptionsUsed trait fixes that
problem. It will log all the ServiceOptions accesses while the test
class runs and raise an error if there are any keys that were never
accessed.
In retrospect, it was probably not worth the time to write this, but
it's a sunk cost now.
Change-Id: Idcaf9a0e2f687069869e6f8057908ffee7dd5f11
Aryeh Gregor [Mon, 6 May 2019 11:14:24 +0000 (14:14 +0300)]
Return better errors from MovePage::isValidMove()
Previously the errors returned were incorrect or redundant in a number
of cases.
Change-Id: Ief96e69b0ae09afb9642f9ed93b2419a36351292
Aryeh Gregor [Mon, 6 May 2019 09:47:46 +0000 (12:47 +0300)]
Add a bunch of MovePage tests
The expected values in many cases are silly, because our code is
currently silly and could use some refactoring. These are marked with
@todo. In one case the return value is even wrong (moving to an invalid
non-empty name is considered valid).
Change-Id: I9649a4de12bbcd6263c85de37d7b9365d9c0aeb4
Aryeh Gregor [Sun, 5 May 2019 13:45:19 +0000 (16:45 +0300)]
Use RepoGroup service in MovePage
Change-Id: I2b59de374d49652b61f074a9da5483c0d991e7a6
Aryeh Gregor [Wed, 1 May 2019 11:39:45 +0000 (14:39 +0300)]
Introduce MovePageFactory
This will help make MovePage more testable.
In the course of abstracting the logic out of ParserFactoryTest to
FactoryArgTestTrait so it could be used in MovePageFactoryTest, I made
them all unit tests instead of integration. This required some
modification to the Parser constructor so that it didn't access
MediaWikiServices unnecessarily.
Change-Id: Idaa1633f32dfedfa37516bb9180cfcfbe7ca31aa
Brad Jorsch [Mon, 19 Aug 2019 16:45:56 +0000 (12:45 -0400)]
API: Warn about POST without Content-Type
HHVM sniffs the content type and so probably correctly guesses
application/x-www-form-urlencoded and fills in $_POST, while PHP 7 does
not sniff and so doesn't fill in $_POST.
Since there are clients that have been expecting the HHVM behavior, give
a warning both to let them know and so we can have some idea of how many
such clients there are.
This also adds any warnings and errors as an HTML comment at the top of
the auto-generated help page, to hopefully make it easier for people
getting that unexpectedly to find out why.
Bug: T230735
Change-Id: I017b7afe808844d74d376f6436894a5a2f525a9f
Bartosz Dziewoński [Mon, 19 Aug 2019 16:55:22 +0000 (18:55 +0200)]
RedirectSpecialArticle: Fix PHP notice about undefined index
Follow-up to
68558351c835c577fb8eb504aa96822a1dff1e7b.
Change-Id: I611509c7a27a6b49d322dd43832dc33fdc7db790
Derick Alangi [Mon, 19 Aug 2019 16:22:24 +0000 (17:22 +0100)]
logging: Fix typo for `getPerformer()` interface method declaration
Not sure but the previous wording didn't make much sense or is it
correct that way?
Change-Id: Ia5bea91fb426bb2fe742e656e5a826b8c07d88ee
jenkins-bot [Mon, 19 Aug 2019 16:04:04 +0000 (16:04 +0000)]
Merge "Use injected services instead of static method"
jenkins-bot [Mon, 19 Aug 2019 16:03:56 +0000 (16:03 +0000)]
Merge "Convert MessageCache to service"
jenkins-bot [Mon, 19 Aug 2019 15:36:40 +0000 (15:36 +0000)]
Merge "Add recursion check to createService()"
Dayllan Maza [Mon, 5 Aug 2019 21:30:45 +0000 (17:30 -0400)]
Add instrumentation to Special:Mute
We are already tracking pageviews and with following change we should be able
to answer the following questions:
* Of the users who land on this page, what percentage of users actually
mute or unmute someone
* Of the users who mute a user, which option(s) did they check/uncheck in order
to mute/unmute the user
EventLogging Schema: https://meta.wikimedia.org/wiki/Schema:SpecialMuteSubmit
Bug: T224958
Change-Id: I655dbd999fd5d3d8f792c4f53b7cc502fe05afd5
jenkins-bot [Mon, 19 Aug 2019 15:11:20 +0000 (15:11 +0000)]
Merge "Revert "Clean up ApiEditPage content handler undo logic""
Anomie [Mon, 19 Aug 2019 14:49:30 +0000 (14:49 +0000)]
Revert "Clean up ApiEditPage content handler undo logic"
This reverts commit
01564dcbf76cd279c88320f96f0844cfadf4f7c9.
Reason for revert: I find the empty case far clearer as to intention than this change, and I doubt this is such a hot path that optimization should take precedence over clarity. If we really want to get rid of the empty case, I'd have structured it somewhat clearly as
if (
// always allow undo via api, T230702
!( $params['undo'] > 0 ) &&
// [something else here to explain this clause]
$contentHandler->supportsDirectApiEditing() === false
) {
But even that is IMO less clear. At the very least this seems to deserve more discussion.
Bug: T230702
Change-Id: Icc16250faad31abf7308c4af9be2e7658540346c
jenkins-bot [Mon, 19 Aug 2019 14:10:51 +0000 (14:10 +0000)]
Merge "Remove 'redundant' attribute from BaseTemplate::makeListItem() links in case this is not done in SkinTemplate::buildContentActionUrls()"
jenkins-bot [Mon, 19 Aug 2019 12:14:04 +0000 (12:14 +0000)]
Merge "Add suppressredirect right to the createeditmovepage grant"
jenkins-bot [Mon, 19 Aug 2019 10:47:45 +0000 (10:47 +0000)]
Merge "MySQL connect: Parse the Unix domain socket path correctly"
jenkins-bot [Mon, 19 Aug 2019 10:29:13 +0000 (10:29 +0000)]
Merge "Clean up ApiEditPage content handler undo logic"
DannyS712 [Mon, 19 Aug 2019 02:13:32 +0000 (02:13 +0000)]
Clean up ApiEditPage content handler undo logic
Bug: T230702
Change-Id: I79d528866c54f40c5adcffde8410b9e2d5336ea7
jenkins-bot [Mon, 19 Aug 2019 07:51:46 +0000 (07:51 +0000)]
Merge "Select "move subpages" by default when moving a page"
Translation updater bot [Mon, 19 Aug 2019 06:51:49 +0000 (08:51 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I298e4b5253f73c1e2d3a385a4ea5eb1369e432aa
jenkins-bot [Sun, 18 Aug 2019 12:14:25 +0000 (12:14 +0000)]
Merge "Fix doc for MediaWikiIntegrationTestCase::getTestSysop"
DannyS712 [Sun, 18 Aug 2019 03:42:02 +0000 (03:42 +0000)]
Fix doc for MediaWikiIntegrationTestCase::getTestSysop
Bug: T230670
Change-Id: Icd57ef2f6268d362a0912931911c46f93165d4ff
Aryeh Gregor [Mon, 8 Apr 2019 15:21:49 +0000 (18:21 +0300)]
Convert MessageCache to service
Depends-On: Ia70e6c75f6e8a533f20cd44ebb05e013678e9951
Depends-On: I546eda0377f3a50843144b1450d3fbe8e4e02a8a
Change-Id: I305539a8598535a73e5cd280b2becdafa740ef97
Aryeh Gregor [Wed, 14 Aug 2019 11:46:47 +0000 (14:46 +0300)]
Add recursion check to createService()
This will throw when trying to create a service while already in the
process of creating that same service, i.e., if there's a circular
service dependency. This would have saved me a whole bunch of debugging
time. :)
Change-Id: Id148d4f221f35f4069f3e0ab0069d13ca271df3d
Translation updater bot [Sun, 18 Aug 2019 06:51:34 +0000 (08:51 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: Iee50e7133afa7491e1a29e5d4600bf99cc259dbd
jenkins-bot [Sun, 18 Aug 2019 03:23:34 +0000 (03:23 +0000)]
Merge "skins: Hard-deprecate QuickTemplate::msgWiki()"
Aaron Schulz [Sat, 17 Aug 2019 18:54:04 +0000 (14:54 -0400)]
Prime connections and update description of McTest script
Change-Id: I4a53b5e4c02a9e2d1163ab9458dd309f651345bc
Aaron Schulz [Fri, 9 Aug 2019 00:46:14 +0000 (17:46 -0700)]
rdbms: make LBFactory close/rollback dangling handles like LoadBalancer
The application is expected to call shutdown(), so do not commit if that
never happens, which usually indicates some sort of severe error. This
should avoid "already closed" errors that pile on top of uncaught errors.
Bug: T225103
Bug: T230065
Change-Id: I1bdfe87c47bcc2537d0dfc518f7212c2c9bf21d2
jenkins-bot [Sat, 17 Aug 2019 12:11:44 +0000 (12:11 +0000)]
Merge "Fix typos in code"
Piotr Miazga [Fri, 16 Aug 2019 15:52:52 +0000 (17:52 +0200)]
skins: Hard-deprecate QuickTemplate::msgWiki()
Add wfDeprecated() call as MediaWiki 1.33 has been released.
Change-Id: Ied80b7b23bad21af113d4d6f6e19c22064e3125c
jenkins-bot [Sat, 17 Aug 2019 09:27:34 +0000 (09:27 +0000)]
Merge "Remove title protection correctly for undeletions and imports"
Translation updater bot [Sat, 17 Aug 2019 06:53:10 +0000 (08:53 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I487111cd57cb185b6a9c3222e4527fca72214de3
jenkins-bot [Sat, 17 Aug 2019 02:07:08 +0000 (02:07 +0000)]
Merge "Handle changed defaults in Argon2PasswordTest::testPartialConfig()"
jenkins-bot [Sat, 17 Aug 2019 01:41:08 +0000 (01:41 +0000)]
Merge "Fix IDatabase::affectedRows() documentation"
Brad Jorsch [Fri, 16 Aug 2019 18:44:29 +0000 (14:44 -0400)]
Handle changed defaults in Argon2PasswordTest::testPartialConfig()
PHP 7.2.21 and 7.3.8 changed the default settings for PASSWORD_ARGON2I.
Load the default settings at runtime so the test can work.
Bug: T230487
Change-Id: I55a0f1af160c822113c9f86f8f8cce558da61736
Brad Jorsch [Fri, 16 Aug 2019 18:02:56 +0000 (14:02 -0400)]
RecentChangesUpdateJob: Fix GROUP BY
When a column specified in GROUP BY is both a table column and a
SELECT-field, MySQL and PostgreSQL both interpret it as the table column
rather than the SELECT-field.
In PostgreSQL this raises an error, which is good since it lets us know
it needs fixing. But MySQL goes ahead and groups by the table field
which gives us the wrong result.
Bug: T230618
Change-Id: Id500556b2795b86849329eece3b651b08e29a7f7
Brad Jorsch [Fri, 16 Aug 2019 17:57:51 +0000 (13:57 -0400)]
ActiveUsersPager: Fix outer GROUP BY
MySQL doesn't care, but PG actually enforces rules about GROUP BY
columns.
Bug: T230618
Change-Id: If769db525bf53c906ad3e0e1d1a6e92194f622a8
jenkins-bot [Fri, 16 Aug 2019 17:39:53 +0000 (17:39 +0000)]
Merge "Remove unused variables from setupTemplate"
Petr Pchelko [Tue, 13 Aug 2019 21:52:39 +0000 (14:52 -0700)]
Check all slots in DerivedPadeDataUpdater::isCountable.
For example when the page is moved, the slots are not actually
modified, so countability of the page after the update should
not be based only on modified slots, but instead on all the page
slots.
Bug: T212706
Change-Id: Ie352ec9307b89b04af09ed85b542ca2907856bbf
Isarra [Fri, 16 Aug 2019 16:46:32 +0000 (16:46 +0000)]
Remove 'redundant' attribute from BaseTemplate::makeListItem() links
in case this is not done in SkinTemplate::buildContentActionUrls()
Not all skins are going to use buildContentActionUrls() in the first
place, as they may not be laying out the usual action tabs as, well,
the usual action tabs. Given that this is being added in core, it
should likewise be cleaned up in core.
Bug: T214202
Change-Id: I630410aea2852f7a72fea67bbf256b3561ea0f3f
Piotr Miazga [Fri, 16 Aug 2019 16:40:14 +0000 (18:40 +0200)]
Remove unused variables from setupTemplate
Both $repository and $cache_dir are never used, no other skin/
extension makes use of that, variables are defined just because of
PHP Strict standards.
IMHO there is no need to define those, all Skins that extend
Skin class define optional params so PHP will not complain.
Change-Id: I059415a795e5836b9399890ecfd4fb5ee1888ac3
GeoffreyT2000 [Thu, 9 May 2019 00:56:15 +0000 (17:56 -0700)]
Remove title protection correctly for undeletions and imports
Undeletions and imports can both produce "new" pages with more than
1 revision. The fact that $options['created'] for the associated
DerivedPageDataUpdater instance is unexpectedly changed to false is due
to the fact that the latest revision often has a nonzero rev_parent_id.
This causes WikiPage::onArticleCreate not to be applied correctly, and
so title protection is not correctly removed. The part about "created"
being forced is therefore being fixed.
Bug: T200088
Change-Id: I8c899893486976285eb6fac87d641e93a616676d
jenkins-bot [Fri, 16 Aug 2019 12:32:03 +0000 (12:32 +0000)]
Merge "Introduce TitleParser::makeTitleValueSafe()"