Commit graph

104 commits

Author SHA1 Message Date
Máté Szabó
16ec1a3703 Introduce minimal OTEL tracing library
In T340552, the official PHP OpenTelemetry client was effectively
rejected for inclusion in MediaWiki due to its size. Implement a minimal
tracing library instead that eschews conformance with the OTEL client
specification in favor of simplicity, while remaining capable of
emitting trace data in OTLP format and thus retaining compatibility with
any ingestion endpoint capable of handling OTLP.

In its current state, the library supports a basic feature set that
should be sufficient for basic tracing integration:

* Span creation, inclusive span activation and automatic parent span
  assignment,
* Span attributes and span kinds,
* Basic resource (process/request)-level metadata generation,
* Data export over OTLP.

Additional functionality, such as trace propagation, can then be
incrementally added to the library.

Bug: T340552
Change-Id: Ibc3910058cd7ed064cad293a3cdc091344e66b86
2024-10-09 15:55:31 +02:00
C. Scott Ananian
f856992ad9 Alias Parsoid DOM nodes to PHP DOM implementation
Parsoid abstracts the specific DOM implementation it is using, in
practice (currently) using subclasses of the built-in \DOMDocument
classes using the \DOMDocument::registerNodeClass() mechanism.
Parsoid's own phan configuration uses stubs for its abstract DOM
classes to encourage the use of "standard" DOM methods -- but core
doesn't use Parsoid's phan configuration and doesn't really understand
the way that ::registerNodeClass() works and so get confused by code
such as:

   $el = $document->createElement('div');

In actual practice this is a Wikimedia\Parsoid\DOM\Document (a
subclass of \DOMDocument) which creates a
Wikimedia\Parsoid\DOM\Element (a subclass of \DOMElement) via the
::registerNodeClass() mechanism, but phan sees only the base
\DOMDocument::createElement() signature and assumes this creates a
\DOMElement *not* a Wikimedia\Parsoid\DOM\Element.  If you do
"element-y" things on this, phan has no complaints, but if you pass
this back to a Parsoid method which expects the abstract
Wikimedia\Parsoid\DOM\Element type then phan (spuriously) complains.
This type error can be hard to understand.

Workaround this issue by simply aliasing Parsoid's abstract DOM types
to the built-in \DOMDocument etc types.  The alternative would be to
use Parsoid's stubs, but it seems cleaner (for now) to avoid reaching
into

  vendor/wikimedia/parsoid/.phan/stubs

to get them.

Change-Id: I90b33c5d65bde1582be9a452a144808b6d53d914
2024-05-22 10:35:02 -04:00
Umherirrender
f3524224f0 build: Fix line indents
Fixed SkinModuleTest::provideGetFeatureFilePathsOrder as nesting of
arrays for parameters is wrong

Change-Id: I9875008adf62d284c48662ebfbd245d72e5be064
2024-03-11 00:14:16 +01:00
Timo Tijhof
4ee45454a9 ResourceLoader: Remove libs/jsminplus.php (JSMinPlus, JSParser)
No longer used.

Bug: T75714
Change-Id: I2b097671716fabec169bc803da98cd0340d70cc4
2024-01-19 05:07:23 +00:00
Timo Tijhof
173954c1b8 GlobalFunctions: Minor clean up of wfMkdirParents()
* Remove docs for unchecked exception (T321683).

* Remove use of MWException, prefer more specific type (T86704).

* Remove use of AtEase (T253461).

* Merge `is_dir||mkdir||is_dir` into one check to more clearly express
  that our success criteria is explicitly one or the other, with
  a repeat for race conditions. This makes them not seem like unrelated
  checks or early returns, rather than the main code.

  This also fixes the seemingly unintentional difference where one
  check was before normalized $dir and one after.

* Use native trigger_error() directly as does not add value to use
  MWDebug::warning() with merely the default parameters. The last
  edge case was $wgDebugToolbar which got fixed with I62d864823ec8a.

Change-Id: Ic44798299a64f902decbc4cf2dbf2206a96c3837
2023-10-19 19:30:42 -07:00
jenkins-bot
78beda4683 Merge "Add tests for taint-check" 2023-09-25 15:30:27 +00:00
jenkins-bot
8ffec936fc Merge "phan: Re-enable class_alias support" 2023-09-25 15:30:20 +00:00
Daimona Eaytoy
d1e0d5a4ae Add tests for taint-check
Make sure that taint-check knows about these methods, especially as we
move the taintedness info from the plugin to annotations on the methods.

Some tests are currently disabled because they would fail. These will
be enabled in subsequent commits while adding annotations to the
relevant methods.

Note that the disabling needs to be done by making the suppression
annotation invalid (done by prepending 'xxx' in this patch), because
commenting out the code or adding a method-wide @suppress won't work.

Bug: T321806
Change-Id: I8b89a22a5c23a2ab25329bcb06c673168d24683d
2023-09-23 16:38:30 +02:00
Daimona Eaytoy
334d24c2b9 phan: Re-enable class_alias support
This was disabled in I51dca12be9c77049f77563d9bf0edd07928c2300. The
rationale is still valid; however, without class_alias support we cannot
add tests for taint-check to verify that it knows about both the old and
the new class names. The benefits of being able to test taint-check
would currently outweigh the benefits of not using aliased classes.

Set enable_class_alias_support to true again, but add a TODO comment
that this should ideally be switched back to false if we can do that
without breaking taint-check tests.

Bug: T321806
Change-Id: I4177c7578cd84ce28d4ca359f73f89b6899bda68
2023-09-23 14:52:12 +02:00
DannyS712
8b66151b73 Update references to config-vars.php
Moved to docs/ rather than includes/, update references and remove
from phan exclusion list

Follow-up: I32c034d05bf2354cdaa5f02d19031421cbae78a1
Change-Id: I8d71c29c8cbfa413db47066f00d71783259f0916
2023-09-23 03:37:44 +00:00
Daimona Eaytoy
f78fd3710d Add $wgRequest to phan's globals_type_map
The base phan config uses a file_exists check to determine whether to
use the namespaced class name, but it doesn't work when running against
core because MW_INSTALL_PATH isn't set. So specify the type in the local
config, and remove @phan-var annotations added in I6bbdbbe6.

Also use `::class` instead of string literals for classes.

Change-Id: I994a0ed32ea948253ed07ee3cc8868a0eaa6d8b9
2023-09-11 23:22:12 +02:00
Amir Sarabadani
d8e542abf9 Reorg: Move three output related classes to includes/Output/
And namesapce them:
 - StreamFile
 - OutputHandler
 - OutputPage

Bug: T321882
Change-Id: Iedf8d88c595e580f2d8f0734c92aa5c45618ba33
2023-09-05 19:36:42 +01:00
jenkins-bot
1d5e4f3d0a Merge "Add support for wikidiff2_multi_format_diff()" 2023-07-31 11:54:12 +00:00
Timo Tijhof
24701f86e6 tests: Update Phan stub to php-excimer 1.1.1
Last updated for php-excimer 1.0.4, which is missing
getSpeedscopeData(), as used by excimer-ui-client and in examples
on mediawiki.org.

Bug: T266626
Change-Id: I7f0c86f83cbe3b0378648003a66fcb86da8d7828
2023-07-24 04:49:51 +00:00
Tim Starling
2ed4e600b4 Add support for wikidiff2_multi_format_diff()
Bug: T341754
Change-Id: I17396985d0b26516a06df17e9bd1343054521e01
2023-07-19 12:38:18 +10:00
Kevin Israel
192babf4e2 Revert "build: Add phan stub for ReturnTypeWillChange"
No longer needed since 5ceaf8a5d4, which added the
symfony/polyfill-php81 requirement to composer.json.

This reverts commit 7534655922.

Change-Id: I860f11180fe26c4626c467bdd298013236d70ad1
2023-05-16 18:01:30 +00:00
Timo Tijhof
39ead04e98 objectcache: Remove $wgMainWANCache and $wgWANObjectCaches
We always wrap the local cluster cache, and there are no subclasses
of WANObjectCache. It was never documented or recommended how these
would be used. It is a left-over from the original 2015 Multi-DC plan
in which WANObjectCache would work differently. See task for details.

Note that this requires no configuration changes, even in the
theoretical case of these variables being used, as the only
option is to use the main cache, and that's also the default.

* Update WAN overrides to override the underlying main cache
  instead.
* Fix EditPageTest which was previously implicitly using a 'hash'
  as main cache but also relying on wan cache to be 'none'.
  The part that it actually needs is the 'none'. When WAN cache is
  enabled, testUpdateNoMinor fails due to an edit conflict because
  one of the edits it makes is made with a current timestamp whereas
  it expects to simulate wpEdittime in the year 2012 which, when
  caching is enabled, is ignored and becomes the current time instead.
  I don't understand exactly why, but I'm going to conserve that
  behaviour for now.
* Fix TemplateCategoriesTest, which was failing due to an unexpected
  cache hit:
  > [objectcache] fetchOrRegenerate(…:page:10:…): volatile hit
  This could be solved in a more realistic way by splitting the test,
  or by explicitly resetting services half-way the test to clear
  WikiPageFactory, PageStore and WANCache process state.
  For now, keep the prior behaviour of no cache in this test.

Bug: T305093
Bug: T329680
Depends-On: If890622eed0d0f8b4bd73d36ba1815a3d760ea05
Depends-On: Ie1def75208822bdf19bb2cfd7e6edf32c2000e6b
Depends-On: I35cce61dc3ee90dcee3dd6f0b36f84133be029ed
Change-Id: I53781a8c06ebb2583f6ca83dd91bbfe8a5c88b13
2023-03-07 22:47:04 +00:00
James D. Forrester
ad06527fb4 Reorg: Namespace the Title class
This is moderately messy.

Process was principally:

* xargs rg --files-with-matches '^use Title;' | grep 'php$' | \
  xargs -P 1 -n 1 sed -i -z 's/use Title;/use MediaWiki\\Title\\Title;/1'
* rg --files-without-match 'MediaWiki\\Title\\Title;' . | grep 'php$' | \
  xargs rg --files-with-matches 'Title\b' | \
  xargs -P 1 -n 1 sed -i -z 's/\nuse /\nuse MediaWiki\\Title\\Title;\nuse /1'
* composer fix

Then manual fix-ups for a few files that don't have any use statements.

Bug: T166010
Follows-Up: Ia5d8cb759dc3bc9e9bbe217d0fb109e2f8c4101a
Change-Id: If8fc9d0d95fc1a114021e282a706fc3e7da3524b
2023-03-02 08:46:53 -05:00
Máté Szabó
4e3c6cb25d TempFSFile: Use a WeakMap for reference tracking if available
Use a WeakMap to track references to TempFSFile instances if available
to avoid deprecation warnings for dynamic property creation on PHP 8.2.
Use an anonymous class rather than an stdClass to test the behavior in
TempFSFileTestTrait to verify that bind() does not trigger dynamic
property creation on PHP 8.2.

Also add a Phan stub for WeakMap for PHP 7.4.

Bug: T324894
Change-Id: Ic413c115e9ed1c750e175152094f3309628e777a
2023-02-12 15:49:02 +01:00
Umherirrender
7534655922 build: Add phan stub for ReturnTypeWillChange
ReturnTypeWillChange is new in php8.1
Allow to run phan under php80 with a stub

Change-Id: Ib84b314bf495634583b625ed8d7530908286e839
2022-12-16 14:51:07 +01:00
Kevin Israel
4ac4b79e22 phan: Don't analyze .inc files, we don't use them now
Also remove two vendor/* entries from exclude_file_list; besides the
fact that one is a .inc file, both are part of dev dependencies, which
are ignored after 3253cbf8d5.

Bug: T184782
Change-Id: I0e0fac176b1c085e106533bcf3e8e3dcc75cd65a
2022-12-04 06:56:09 -05:00
Kevin Israel
b3a2c88cea profiler: Drop support for Tideways 4.x in ProfilerXhprof
This branch fails to compile against PHP 7.4.3, our lowest supported
version, and will not be updated to support that or any newer version:

https://tideways.com/profiler/blog/releasing-new-tideways-xhprof-extension

In doing so, remove the Xhprof class. At this point, it doesn't do
anything other than calling either of two functions from whichever
extension is installed, which can just be done in ProfilerXhprof.

Change-Id: Iba1c16f47c68b36982f5d2dcda3bdf4dcb83501d
2022-11-28 06:20:45 +00:00
Kevin Israel
3aa7f762a1 phan: Remove internal stubs that should never be used
* dom: This PHP extension is an installation requirement so should
  always be available.
* oci8: Oracle support was removed in 1.34 (4d10bb14e8).
* sqlsrv: Likewise for Microsoft SQL Server.

Change-Id: Id53f4ce477a19cff0063d3d60a405647249e7202
2022-11-25 16:21:17 -05:00
Kevin Israel
09e80b986e phan: Remove ValueError stub
The only reference to ValueError (added in a80631ea0c) was removed
in 47241a3520. Regardless, the stub is redundant to the one that
is part of the symfony/polyfill-php80 library, which is already listed
in composer.json as a required dependency.

Change-Id: Ic9aa3e36d24bf79fb21ab37dd177e28f8176f573
2022-11-25 15:13:04 -05:00
Kevin Israel
0d62e220d8 UserMailer: Don't check if PEAR Mail and Mail_mime classes exist
Since ee5a9b788a, pear/mail and pear/mail_mime are installed by
Composer along with the other required external libraries, so these
classes should exist in all installations.

Also removed the Phan stub for the same reason.

Change-Id: I6e545bf9fab15a66d1ea7bdf697908e7b1066897
2022-11-25 11:51:10 -05:00
Tim Starling
28f65f252e password: Update Argon2Password for PHP 7.4 minimum
In PHP 7.4, it's possible to compile password without Argon, but if
Argon is compiled in, both algorithms should be available.

So:

* Remove Phan stubs
* Simplify class code
* Add test per todo

Change-Id: I749d456ad59698e5b1538b127586ea796efba1d1
2022-11-22 22:47:42 +00:00
Tim Starling
3253cbf8d5 Phan: parse only directly required composer dependencies
Indirect dependencies are typically needed only by the direct
dependencies, which are not analyzed.

Dev dependencies are needed to run Phan, but are not needed in the code
Phan is analyzing.

So it turns out to be fairly straightforward to eliminate unnecessary
dependencies from the Phan parse stage, reducing memory usage by about
40% and time usage by about 20%. This means I can run Phan on my laptop
without first closing PHPStorm, which is convenient.

As a matter of policy, you could argue that the list of allowed indirect
dependencies here should be explicitly declared by moving them to
composer.json.

Change-Id: I987c3b22bafd1b4332fdeaf40ec3e20d35a3d929
2022-11-10 09:55:51 +11:00
Tim Starling
7b3e7c017a Respond to some messages from Phan on PHP 8.1
* ForkController, OrderedStreamingForkController: indeed pcntl_fork()
  can't return false.
* RL\Image: Specify type instead of using suppression, since the issue
  name changes.
* VueComponentParser: Accept complaint about nullable nodeValue.
* Disable PHP 8.0 polyfill stubs when running on PHP 8.0+ to avoid
  duplicate interface errors.
* Add Socket stub and use it in LegacyHandler instead of multiple
  existing suppressions.
* MemcachedPeclBagOStuff: accept complaint recommending !$result over
  $result === false when the type is boolean.
* MemcachedPeclBagOStuff: fix probable bug, ignoring errors from
  Memcached::getMulti(). Phan noticed that $res=false was unreachable,
  but it should probably be reachable.
* DatabaseMysqli: accept complaint that $this->conn->errno is already
  known to be an int. It was probably a hack for some previous version
  of Phan.
* BcryptPassword, MWOldPassword, MWSaltedPassword: accept complaint that
  the !is_string() checks are unnecessary, after code review of PHP.
* Pbkdf2PasswordUsingHashExtension: note that contrary to Phan's
  suggestion, this check is necessary.
* DefaultPreferencesFactory: remove an existing hack for
  array_diff_key(), no longer necessary on 7.4 and causes an error on
  8.1. Use coalesce instead of cast for the remaining
  array_intersect_key() hack since it better shows that we are casting
  away null.
* FullSearchResultWidget: fix likely bug involving strict comparison
  between a float and an int.
* SpecialWatchlist: accept complaint that $selectedHours is
  unconditionally a float, being the return value of round(), and thus
  the cast is unnecessary.
* Add stub for AllowDynamicProperties, resolving an error in User.php.
* Xml: accept complaint that $encMonth is already known to be an int.

Six errors remain. These need suppressions or otherwise conflict with
PHP 7.4 support.

Bug: T322278
Change-Id: Ie375bbc8ccf22330b9a169e8da98f2bbe26ec8b9
2022-11-03 16:25:43 +11:00
Zabe
f6b9381d7f Revert "Reorg: Move some of request related classes to MediaWiki/Request"
This reverts commit 2bdc0b2b72.

Reason for revert: T166010#8349431

Bug: T166010
Change-Id: Idcd3025647aec99532f5d69b9c1718c531761283
2022-10-27 13:14:16 +00:00
Amir Sarabadani
2bdc0b2b72 Reorg: Move some of request related classes to MediaWiki/Request
Moving:
 - DerivativeRequest
 - FauxRequest
 - FauxRequestUpload
 - PathRouter
 - WebRequest
 - WebRequestUpload

Bug: T166010
Change-Id: I5ea70120d745f2876ae31d039f3f8a51e49e9ad8
2022-10-26 16:49:10 +02:00
Kevin Israel
17da6e7075 phan: Remove local override of suppress_issue_types
This is not needed after ef8c6b086e2c9399 in mediawiki/tools/phan,
and the "approximate error count" in the comment is out of date
after 43a93d9782.

Change-Id: I9c6749c981140227296e592f857f095bfb4ed29f
2022-10-21 18:27:58 -04:00
Reedy
8898358271 .phan/config.php: Update minimum_target_php_version
Temporarily disable PhanPluginDuplicateExpressionAssignmentOperation

Bug: T319186
Change-Id: I8ae3f74f482b5de3dd74471c2e853386d1fe1091
2022-10-03 15:46:40 +01:00
Amir Sarabadani
2b9fd5176d Drop support for doctrine/dbal < 3.0.0
Removes various hacks and back compat support

Bug: T270740
Change-Id: I17d74705cdd5a2e1af0bda66bfa466067b8387a8
2022-09-29 10:49:17 -04:00
Zabe
daa9bfab3b Suppress php 7.4 phan false positive
see T298571

This failure only shows up for php 7.4 since that is using
dbal 3.x.x while php 7.2 is using dbal 2.x.x

Phan analysis is being disabled for those files for php 7.2
since those are now failing with 'unused suppression' and
php 7.2 support is going to be dropped in the near future,
so that doesn't matter to much.

Bug: T316518
Change-Id: I74da37dc4329a7dd2c015a9d1fc7037a866f40c9
2022-09-19 14:22:50 +00:00
Umherirrender
3acc9e63c0 tests/parser: Run phan
Run phan over classes in tests/parser

The dependency of classes between parser and phpunit is not clear.
Classes used by both possible needs part of /common/

Change-Id: I2ceca6b7cd447876c127ed3b14e09f479defbd93
2022-06-02 00:13:30 +02:00
daniel
7f8e3c5360 Docs: remove references to DefaultSettings.php
Bug: T300129
Change-Id: I1e83a0dde6235bed91d28d7d43691c6a5d979f2f
2022-05-30 21:27:09 +02:00
daniel
237bbf089f Turn DefaultSettings.php into a deprecated stub
DefaultSettings.php has been replaced by MainConfigSchema.
Loading DefaultSettings.php is deprecated.

Code that needs to have access to configuration defaults should use the
ConfigSchema service object.

Bug: T300129
Change-Id: I7b2c0ca95a78990be1cdb9dd9ace92f6dcf1af15
2022-05-17 16:50:56 +02:00
Sébastien Beyou
c727d900c7 phan: Add internal stub Redis::SERIALIZER_IGBINARY
Bug: T282133
Change-Id: I31f52d26bc022c77e50db42ac80c7dbe1a37c8e6
2022-04-18 20:54:36 +02:00
Umherirrender
9cc4f9b65e phan: Remove PhanCompatibleAccessMethodOnTraitDefinition suppression
* Remove the fallback code in ImagePage, it is possible to call
  getImageLimitsFromOption non-statically in this situation
* In OutputPage replace the call to trait function to one class
  implementing the trait

Bug: T289813
Change-Id: I166a53615fb2be6e3d8b48489ce342e48435dfc3
2022-03-31 19:22:34 +02:00
Umherirrender
6caf78c2c8 phan: Remove PhanPossiblyUndeclaredVariable suppression
Make phan stricter about conditional variable declaration
Remaining false positive issues are suppressed.
The suppression and the setting change can only be done together

Bug: T259172
Change-Id: I1f200ac37df7448453688bf464a8250c97313e5d
2022-03-30 19:47:15 +00:00
jenkins-bot
6fad0d2888 Merge "phan: Upgrade mediawiki-phan-config to 0.11.1 and set minimum_target_php_version" 2022-03-29 17:17:13 +00:00
James D. Forrester
24e67e03b1 phan: Upgrade mediawiki-phan-config to 0.11.1 and set minimum_target_php_version
MediaWiki still supports PHP 7.2+, but we want to mainly test in newer versions
of PHP. Setting minimum_target_php_version to 7.2 this lets us run phan without
phan trying to get us to make PHP 7.2-incompatible changes to 'appease' PHP 8.0
or whatever later changes.

Some switches of generic 'resource' type-hinting to 'resource|object' to inform
phan to ignore this (triggering PHPCS at the time, ah well), rather than trying
to hint the specific novel PHP encapsulation classes to that have replaced them
from PHP 8.0 onwards but don't yet exist, and fixes from where we were checking
the results of implode and explode.

Bug: T293924
Change-Id: I629e3fb3adfad73beb3d424a07e643c2e079d9bb
2022-03-29 16:54:36 +00:00
Umherirrender
7aa0884029 phan: Remove PhanTypePossiblyInvalidDimOffset suppression
Make phan stricter about array keys
Remaining false positive issues are suppressed.
The suppression and the setting change can only be done together

Bug: T304887
Depends-On: I3105a5fd4826f8667b5232834defc5ec93be32a1
Depends-On: Ie9610a6e83731468311edb3ed17f80fc509de385
Change-Id: I701f12ab94478c3b8e7fd82110ade74a8e6b04ef
2022-03-28 23:26:49 +02:00
Umherirrender
1f71eccf63 phan: Disable null_casts_as_any_type setting
Make phan stricter about null types by setting null_casts_as_any_type to
false (the default in mediawiki-phan-config)
Remaining false positive issues are suppressed.
The suppression and the setting change can only be done together

Bug: T242536
Bug: T301991
Change-Id: I0f295382b96fb3be8037a01c10487d9d591e7e01
2022-03-21 18:25:07 +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
Umherirrender
44fd53fee3 Using @return never documentation on always-throw-function
This helps phan to detect unreachable code and also impossible types
after the functions.
It helps phan to avoid false positives for array keys
when the keys are checked before

Bug: T240141
Change-Id: I895f70e82b3053a46cd44135b15437e6f82a07b2
2021-09-07 17:29:03 +02:00
Umherirrender
07b499fbcf build: Update mediawiki/mediawiki-phan-config to 0.11.0
Addition and remove of suppression needs to be done with the version
update.

Change-Id: I3288b3cefa744b507eadebb67b8ab08c86517c1c
2021-09-07 17:19:05 +02:00
Umherirrender
084f2fedfd build: Enable phan plugin UseReturnValuePlugin
Suppress false positives

Bug: T240141
Change-Id: Ie356512ad76de465b1fda5b913fa30702339cb11
2021-08-26 21:08:19 +00:00
C. Scott Ananian
b1f53045d7 Bump wikimedia/remex-html to 2.3.2 and drop 2.3.1
This is a bug fix release of RemexHtml, required by the latest version
of Parsoid.

RemexHtml migrated to a new namespace in 2.3.2.  Since we don't
support aliases in our phan configuration in core, update all uses to
the new namespace to satisfy phan.

Depends-On: I30f01f4a2a5479bb82c9b952ffa68a478215828a
Depends-On: Iedf446635ee2112cfe637d8ebcf8092f0976bd17
Change-Id: I74fc929e4a66b28bfb1800ff0cd751c86e4a9f50
2021-08-08 18:07:29 -04:00
C. Scott Ananian
2fa79194ad Allow core to use remex-html 2.3.2
This is a bug fix release of RemexHtml, required by the latest version
of Parsoid.

RemexHtml migrated to a new namespace in 2.3.2 and uses aliases for
compatibility.  Once we upgrade mediawiki-vendor we can rename all
the uses in core and turn off aliases again.

Due to T287419, we need to suppress some phan issues because phan
ends up running against both remex 2.3.1 *and* 2.3.2 in different
CI jobs.  These suppressions are removed in the follow up
I74fc929e4a66b28bfb1800ff0cd751c86e4a9f50.

Change-Id: I42edd4fb8cd277ea20e331994fcbe56b52bf3f06
2021-08-08 17:55:15 -04:00