Commit graph

578 commits

Author SHA1 Message Date
jenkins-bot
a510a1c50d Merge "Remove many references to db fields being retired as part of MCR Schema Migration" 2019-03-19 18:09:30 +00:00
Bill Pirkle
f7afe42713 Remove many references to db fields being retired as part of MCR Schema Migration
Remove many references to database fields rev_text_id and ar_text_id,
which are being retired as part of MCR Schema Migration.
Some references remain, and will be removed under other patchsets
or other tasks.

Bug: T198341
Change-Id: Id044b8dcd7c9d09d5d6037eb732f6a105933f516
2019-03-19 10:50:54 -05:00
jenkins-bot
44eecdda93 Merge "Make LinkCache::isCacheable include namespaces like NS_CATEGORY/NS_MODULE" 2019-03-17 18:49:05 +00:00
Aaron Schulz
9804ee9d3a Make LinkCache::isCacheable include namespaces like NS_CATEGORY/NS_MODULE
Category and module pages are some of the most frequently referenced

Change-Id: I6d29e883883cbea596b287494e75663d09130749
2019-03-16 04:48:15 +00:00
Aaron Schulz
93b24207c1 Make EditPage::getTemplates avoid page table query spam
This changes TemplatesOnThisPageFormatter to use LinkBatch
and LinkBatch/LinkCache to manage the field.

Change-Id: I523158cdffc599d4d29bab91c98e55085130cee2
2019-03-15 02:34:00 -07:00
Umherirrender
ba03d8f32a Move CacheDependency classes to own files
Change-Id: Icacf36674f10fa19a09499d68d596d5e2cc235f0
2019-03-08 22:27:29 +01:00
Timo Tijhof
3edaa0b37c resourceloader: Make $rl parameter mandatory for MessageBlobStore
Change-Id: I851b2417b7e495a1d0c7ee1aa8be2b2e970840bb
2019-02-19 17:16:57 +00:00
Timo Tijhof
a186dc62fd resourceloader: Instantiate main class via ServiceWiring
It also removes some code duplication which is nice.

This unlocks various future changes, including:

* Making the `$config` parameter mandatory for the ResourceLoader class
  constructor, which currently falls back to global state.
  This should be deprecated and removed.

* Making it possible to instantiate the ResourceLoader class
  without all the default MW modules being registered from
  global state. E.g. move MW module registration from main class
  constructor to ServiceWiring, and remove the 'EmptyResourceLoader'
  class hack from unit tests, and use regular 'new ResourceLoader'
  instead.

* Making ResourceLoader a standalone library (some day),
  e.g. allowing it to be instantiated from a basic PHP script,
  in a way that is still useful and perhaps able to serve
  (most) RL modules without MW itself.

Bug: T32956
Change-Id: I4939f296c705b268e9cf8de635e923a739410470
2019-02-18 17:55:09 +00:00
James D. Forrester
33418878f9 Drop LinkCache->addLink(), deprecated in 1.27 and unused
Change-Id: Id6395cc9a122375349b7a13c051049bca3f5ab08
2019-02-09 07:49:09 +00:00
Kunal Mehta
cc5d9a92a2 build: Updating mediawiki/mediawiki-codesniffer to 24.0.0
Change-Id: I66b1775b7c1d36076d9ca78cbeb42787a743f2aa
2019-02-07 18:39:42 +00:00
Umherirrender
1c851623b0 Move interface ICacheHelper to own class
Change-Id: I6f2b6507b0038f0988e4db5566ebddbe0d734a70
2019-02-05 20:04:12 +01:00
Amir Aharoni
9dc4ff216b Move exif messages to a separate i18n file
Bug: T167762
Change-Id: I17900ff07cd9b15f00c7118b4206cf1cdc074469
2018-12-27 17:05:55 +02:00
jenkins-bot
8c9de54eef Merge "Avoid expensive array_shift where possible" 2018-12-21 23:33:07 +00:00
Seb35
1cb8f5bff8 localisation: Make PHP cache files slimmer
The only difference is the scalar values are no longer encoded as an
array, but just the value itself. As a result, PHP localisation cache
files are about 2/3rds of their previous size and become slightly
smaller than CDB files.

Bug: T99740
Change-Id: Iaa5e32830dc1bb710b9e0f1a681afe91e521ece9
2018-12-20 21:58:23 +00:00
Thiemo Kreuz
fa7e5bd901 Avoid expensive array_shift where possible
array_shift manipulates the original array. This is surprisingly
expensive, because it iterates *all* elements in the array and
decrements numeric keys. The code touched in this patch does not need
this restructured new array, but only the individual elements.

Change-Id: Iee28377b2c9930f6de821e041381a1d7564f7633
2018-12-17 11:58:55 +01:00
Max Semenik
ca41a48ffe Hard deprecate LinkCache::addLink()
Deprecated in 1.27, no callers.

Change-Id: Ide39566b6741d2b844ddd5c8e62dd0fc0382670a
2018-12-08 22:23:08 -08:00
Gilles Dubuc
de3fc8f765 Log error when array_flip fails in MessageCache load
Bug: T208897
Change-Id: If6e7a6a3019abbdc11b6604ec706cc88bfddf128
2018-11-19 11:49:23 +01:00
Aaron Schulz
387071ecc2 Avoid broken markup due to conversion table DB queries in Installer:parse()
Bug: T207979
Change-Id: I6a196a64865533a073fadc4a07f5627b67924921
2018-10-27 16:41:33 -07:00
jenkins-bot
ecee5cd7c7 Merge "Use PHP 7 '??' operator instead of if-then-else" 2018-10-24 21:58:04 +00:00
jenkins-bot
13dba84b6f Merge "Fix PHPDoc type for instance variables and methods" 2018-10-24 21:17:02 +00:00
Fomafix
43244db9a2 Use PHP 7 '??' operator instead of if-then-else
Change-Id: If9d4be5d88c8927f63cbb84dfc8181baf62ea3eb
2018-10-21 21:46:46 +02:00
Alangi Derick
b4ecf374fe Fix PHPDoc type for instance variables and methods
Should be "string" not "String" and "array" not "Array" in
@param, @return and @var use cases. Also, minor typo fixes.

Change-Id: I9d5ebc5b741c6560907b95f7c0c4039da2861f4a
2018-10-21 13:00:25 +01:00
C. Scott Ananian
4b1db1190b Tidy Message::parseAsBlock() by enabling tidy in MessageCache
We are incrementally removing places where the parser is used with
tidy disabled, since future parsers will not support such operation.

Bug: T198214
Change-Id: I0f417f75a49dfea873e9a2f44d81796a48b9f428
2018-10-17 02:43:07 +00:00
Aaron Schulz
4fc5ba8bf8 messagecache: check overridable message array in getMsgFromNamespace()
Follow up to a3d6c1411d.

This avoids extra queries for messages that have a software defined value.

Bug: T193271
Change-Id: I25aa0e27200a0b417721cf1fbd34a82095405b89
2018-10-16 20:39:38 +00:00
Kunal Mehta
d0463178df LocalisationCache: Avoid use of compact()
In PHP 7.3, compact() now raises notices if the variable is undefined, which
is something that we expect. So we can check whether the key exists instead
of bothering with compat() and suppressing warnings.

Bug: T206979
Change-Id: I612049db4debd850a2e6d10bc631d31aa17be898
2018-10-15 13:35:30 -07:00
jenkins-bot
578318e688 Merge "Use a ScopedCallback to silence transaction profiler in SqlBagOStuff" 2018-10-12 18:34:02 +00:00
Umherirrender
719bfa8977 Use a ScopedCallback to silence transaction profiler in SqlBagOStuff
This affects most LCStoreDB which is the default cache
and spamming the log.

Bug: T154424
Bug: T97693
Change-Id: I68af177c7d0d88ab266eb3fefb4336eff86d861c
2018-10-12 20:04:31 +02:00
jenkins-bot
d69b967481 Merge "MessageCache: replace should actually replace, not reload" 2018-10-11 20:56:33 +00:00
jenkins-bot
7c091e68e9 Merge "messagecache: avoid caching message pages that do not override" 2018-10-11 18:59:24 +00:00
Brad Jorsch
08e9eb1fef MessageCache: replace should actually replace, not reload
Prior to I462554b30, MessageCache::replace() did just that: it took the
existing cache and updated the one entry.

In I462554b30, the rearrangement of work into a DeferredUpdate
introduced a bug: the in-process cache was updated, but when the shared
cache was loaded later the entry was never updated in there so the
shared caches kept the old value. This was found in code review and
worked around by reloading all the messages from the database instead of
updating the existing cache.

But all that extra work reloading everything from the database causes
major slowness saving any MediaWiki-namespace page when the wiki has
many such small pages. Let's go back and fix the bug so replace() can
again replace instead of reloading everything.

Bug: T203925
Change-Id: Ife8e1bd6f143f480eb8da09b817c85aadf33a923
2018-10-11 11:20:51 -04:00
Brad Jorsch
993baa3493 ActorMigration: Remove possibility of read-both
When this was originally written, the plan was to read both the old and
new fields during the transition period, while stopping writes to them
midway through. It turns out that the WHERE conditions to do read-both
correctly are generally not handled well by the database and working
around that would require a lot of complicated code (see what's being
removed from ApiQueryUserContribs here, for example).

We can simplify things greatly by instead having it write both fields
during the transition period, reading from the old for the first part
and the new for the second part, as is being done for MCR.

Bug: T204669
Change-Id: I4764c1c7883dc1003cb12729455c8107319f70b1
Depends-On: I845f6ae462f2539ebd35cbb5f2ca8b5714e2c1fb
Depends-On: I88b31b977543fdbdf69f8c1158e77e448df94e11
2018-10-11 12:12:00 +11:00
Aaron Schulz
a3d6c1411d messagecache: avoid caching message pages that do not override
Clean up individual message cache handling when the master key is
volatile. The goal is not to treat the message as gone but to re-fetch
it when accessed rather than cache the value in the main/process cache.

Bug: T193271
Change-Id: I4bcaf10c1516e7c96c2d0963722affeaf80272e0
2018-10-10 12:35:07 -07:00
Aaron Schulz
59242afaa7 messagecache: use MergeableUpdate for the deferred replace() update
This combines the load loop for multiple messages for a language code.

Bug: T203925
Bug: T193271
Change-Id: Ie5e1e83d6740344b7ca641c99fb3bd4ad5718492
2018-10-05 20:14:41 +00:00
Aaron Schulz
548c92a332 MessageCache: do not store the EXCESSIVE array as it is only needed for HASH
This saves space as the number of entries becomes larger.

Bug: T193271
Change-Id: I32d7512d7f05ae7c9a69b88cd19df64d7a21b4a1
2018-10-04 02:22:05 +00:00
Aaron Schulz
7d2b121ac8 MessageCache: remove confusing and unused $isFullKey parameter from get()
Follows-up cba0fb1c15, which removed the last caller.

Change-Id: I00c17fedff39b1b35519cff2a0f8eac3e4d6f2ab
2018-10-02 23:34:53 +00:00
Umherirrender
173df1768b Fix logged method in MessageCache::replace/loadCachedMessagePageEntry
Seeing {closure} in the logs as caller is not helpful

Change-Id: Iddfb6042bba2a59a9f21f533b748c96478a87b97
2018-09-30 17:37:51 +00:00
Ed Sanders
8477d4a6f5 Define which languages explicitly fallback to 'en'
In the message store, all messages fall through to English,
but only a few languages should actually explicitly fallback
to English (English variants and dialects).

These new explicit fallbacks are used by ResourceLoaderImageModule,
and this change doesn't affect the message fall through system.

Bug: T203350
Change-Id: I6b68a17f4d69341bccdae748727b5133a600d8bc
2018-09-19 15:55:38 -07:00
James D. Forrester
7cadf392f6 resources: Rename oojs-ui file paths to ooui per general branding
No change to the module names yet.

Change-Id: Ica33520b0128bd56dc06c8951bdc6932fce041fe
2018-09-10 14:35:45 -07:00
Kunal Mehta
e4676f42ff Use StaticArrayWriter in LCStoreStaticArray
...instead of var_export(), which uses array() syntax and spaces for
indentation.

Also get rid of some unnecessary closure indirection.

Bug: T200626
Change-Id: I5db8ade50fcba5ecf394817b2d14295620314ea7
2018-08-27 22:23:08 +00:00
Umherirrender
40d3ce8d17 Reduce calls to MediaWikiServices::getInstance()
In some functions MediaWikiServices::getInstance() was called twices or
in loops. Extract the variable to reduce calls.

Change-Id: I2705db11d7a9ea73efb9b5a5c40747ab0b3ea36f
2018-08-18 06:02:39 +02:00
jenkins-bot
e4a4029517 Merge "Have LinkCache::getMutableCacheKeys() accept LinkTarget" 2018-08-15 20:32:16 +00:00
Niklas Laxström
cb74e93b44 Make LinkBatch::setCaller chainable
To allow for one-liners such as $lb->setCaller( __METHOD__ )->execute();

Change-Id: I45cd81d9e583f09aacb578ffb87d7c11b0e13d57
2018-08-15 10:57:21 +02:00
Kunal Mehta
f503ab10b8 Have LinkCache::getMutableCacheKeys() accept LinkTarget
Change-Id: Id84590b3aa285e31a358877167fe8ff502077f3c
2018-08-14 22:56:27 -07:00
jenkins-bot
6c5bdf5ace Merge "Move l10n_cache table to a separate DB for sqlite via the installer" 2018-08-14 18:32:33 +00:00
Aaron Schulz
1081356412 Move l10n_cache table to a separate DB for sqlite via the installer
This does not set 'db' as the cache type so that admins can still
easily set the cache directory to use the file-based cdb system.
If they do not, then at least the second DB file will be used to
avoid heavy contention.

Bug: T93097
Change-Id: Ib3912f00cf12de99801ebda4f06135b2987ce71a
2018-08-14 17:29:01 +00:00
jenkins-bot
a8b828a774 Merge "Avoid MapCacheLRU error when MessageCache fails to load" 2018-08-14 16:32:07 +00:00
Fomafix
0a0d5cb7f7 Fix typos
Bug: T201491
Change-Id: I25a27d11faabe2f5fa02950c7a4fb58b13fb3662
2018-08-14 09:52:19 +00:00
Aaron Schulz
65ad02955c Avoid MapCacheLRU error when MessageCache fails to load
Bug: T201893
Change-Id: I6093113a3ffa8092dea3351a6ed6c815c7ff7162
2018-08-13 23:03:27 -07:00
Aryeh Gregor
90d4f56fe4 Mass conversion of $wgContLang to service
Brought to you by vim macros.

Bug: T200246
Change-Id: I79e919f4553e3bd3eb714073fed7a43051b4fb2a
2018-08-11 22:44:29 -06:00
Max Semenik
1facc21e49 Make sure to not unpack an associative array into parameter list
Bug: T200394
Change-Id: I9c28e1cadeb76275d24eb7725f1578bf5ba43ad0
2018-07-28 23:52:57 +00:00