Stanislav Malyshev [Tue, 27 Aug 2019 23:18:30 +0000 (16:18 -0700)]
Fix categories detele SPARQL clause
Bug: T228348
Change-Id: I87b3b5831e31dc619b5eefb7854d3223acd605fc
Ppchelko [Thu, 22 Aug 2019 17:31:50 +0000 (17:31 +0000)]
Merge "Deprecate and replace usages of User:isAllowed{All,Any}"
jenkins-bot [Thu, 22 Aug 2019 16:46:41 +0000 (16:46 +0000)]
Merge "Make LocalisationCache a service"
jenkins-bot [Thu, 22 Aug 2019 16:36:47 +0000 (16:36 +0000)]
Merge "Some integration tests for LockManagerGroup"
jenkins-bot [Thu, 22 Aug 2019 16:31:33 +0000 (16:31 +0000)]
Merge "Update .mailmap for Aryeh Gregor"
Aryeh Gregor [Thu, 22 Aug 2019 11:13:44 +0000 (14:13 +0300)]
Some integration tests for LockManagerGroup
Change-Id: Ide94a260e5f96c4cfcf76c1ee9b8dcf486976263
Aryeh Gregor [Wed, 1 May 2019 13:56:41 +0000 (16:56 +0300)]
Make LocalisationCache a service
This removes Language::$dataCache without deprecation, because 1) I
don't know of a way to properly simulate it in the new paradigm, and 2)
I found no direct access to the member outside of the Language and
LanguageTest classes.
Change-Id: Iaa86c48e7434f081a53f5bae8723c37c5a34f503
jenkins-bot [Thu, 22 Aug 2019 10:58:05 +0000 (10:58 +0000)]
Merge "Remove deprecated User groups/permission static calls."
Aryeh Gregor [Thu, 22 Aug 2019 10:30:35 +0000 (13:30 +0300)]
Update .mailmap for Aryeh Gregor
Whoever made the mailmap for old SVN contributions mapped my account to
the e-mail address I think I used on Bugzilla etc. at the time,
simetrical+mw@gmail.com. (I was inactive then, so I wasn't consulted.)
When I started committing under the git regime, I used ayg@aryeh.name,
so that should be the address used for my old commits as well so that
they link up with my new ones.
Change-Id: If03abd0e8fc11c20e7b37948f7d10f770cd43343
jenkins-bot [Thu, 22 Aug 2019 08:16:51 +0000 (08:16 +0000)]
Merge "BadFileLookup to replace wfIsBadImage"
jenkins-bot [Thu, 22 Aug 2019 08:16:45 +0000 (08:16 +0000)]
Merge "Rewrite integration test for wfIsBadImage()"
jenkins-bot [Thu, 22 Aug 2019 08:16:38 +0000 (08:16 +0000)]
Merge "Increase maximum length of automatic deletion summaries"
Translation updater bot [Thu, 22 Aug 2019 07:32:19 +0000 (09:32 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I2858a9ae9b37a430ea70dea57b9fbc56291b64ff
Petr Pchelko [Thu, 22 Aug 2019 02:22:26 +0000 (19:22 -0700)]
Remove deprecated User groups/permission static calls.
Bug: T220191
Change-Id: Ifa8afa90c432723b0bba0033a46b6a499c77e6fc
jenkins-bot [Thu, 22 Aug 2019 01:48:49 +0000 (01:48 +0000)]
Merge "Add support for native image lazy loading"
Petr Pchelko [Wed, 21 Aug 2019 22:42:08 +0000 (15:42 -0700)]
Deprecate and replace usages of User:isAllowed{All,Any}
Bug: T220191
Change-Id: I197b8fadaa93e7b320fc19c10e3e09387fe09ad2
DannyS712 [Wed, 21 Aug 2019 23:13:16 +0000 (23:13 +0000)]
Increase maximum length of automatic deletion summaries
Currently, the maximum length is hardcoded to 255 characters.
Instead, the maximum length should be based on the actually enforce
comment store limit.
Bug: T230962
Change-Id: I4379057f8f49fd8e5efa620164eea2867fde1bfc
jenkins-bot [Wed, 21 Aug 2019 19:38:32 +0000 (19:38 +0000)]
Merge "rdbms: add some more comments to DatabaseDomain"
jenkins-bot [Wed, 21 Aug 2019 19:38:26 +0000 (19:38 +0000)]
Merge "rdbms: remove IDatabase::clearFlag() calls made redundant by QUERY_IGNORE_DBO_TRX"
jenkins-bot [Wed, 21 Aug 2019 19:38:20 +0000 (19:38 +0000)]
Merge "parser: document what 0/null rev IDs do when given to Parser::parse"
jenkins-bot [Wed, 21 Aug 2019 19:38:13 +0000 (19:38 +0000)]
Merge "deferred: make DeferredUpdates::attemptUpdate() use callback owners for $fnameTrxOwner"
Aaron Schulz [Thu, 8 Aug 2019 00:29:28 +0000 (17:29 -0700)]
rdbms: add some more comments to DatabaseDomain
Change-Id: Iee407028a2f3c7eb6497a73d57c7baa093246217
Aaron Schulz [Wed, 7 Aug 2019 12:37:11 +0000 (05:37 -0700)]
rdbms: remove IDatabase::clearFlag() calls made redundant by QUERY_IGNORE_DBO_TRX
Change-Id: I493c63f94c813ad71dc2eb8eaf9119a1f11d62cb
jenkins-bot [Wed, 21 Aug 2019 18:58:58 +0000 (18:58 +0000)]
Merge "objectcache: Remove lock()/unlock() stubs from MemcachedClient"
jenkins-bot [Wed, 21 Aug 2019 18:14:12 +0000 (18:14 +0000)]
Merge "Convert PermissionManager constructor to use ServiceOptions."
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
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
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