Commit graph

128688 commits

Author SHA1 Message Date
libraryupgrader
7193b35a51 Update git submodules
* Update extensions/OATHAuth from branch 'REL1_43'
  to 84740397eacdd49486e2364987788bacab870466
  - build: Updating brace-expansion to 1.1.12, 2.0.2
    
    * https://github.com/advisories/GHSA-v6h2-p8h4-qcjw
    
    Additional changes:
    * Enable stylelint caching.
    
    Change-Id: Ia892c96c68983deaab88e1c56658e092ad25c7d3
2025-06-15 03:23:40 +00:00
libraryupgrader
dd8f45677e Update git submodules
* Update extensions/MultimediaViewer from branch 'REL1_43'
  to 5cda3ae02ab7a626894d798b99fc0fe700cfc96a
  - build: Updating brace-expansion to 1.1.12, 2.0.2
    
    * https://github.com/advisories/GHSA-v6h2-p8h4-qcjw
    
    Additional changes:
    * Enable stylelint caching.
    
    Change-Id: I71e62432e6388d45d835ab543cf50fec3b9b3e05
2025-06-15 00:57:07 +00:00
libraryupgrader
a3db63884c Update git submodules
* Update extensions/LoginNotify from branch 'REL1_43'
  to a20beff5d4b66aab9c593322bc376f3dc8f3f148
  - build: Updating brace-expansion to 1.1.12, 2.0.2
    
    * https://github.com/advisories/GHSA-v6h2-p8h4-qcjw
    
    Change-Id: I67c6845f2e4c8c576ad199c5a1ae0c1d0b28b7c4
2025-06-14 22:29:25 +00:00
libraryupgrader
fd166fac21 Update git submodules
* Update extensions/Linter from branch 'REL1_43'
  to e388c28fc5e0af7003499d4b3a372fa38434cfcd
  - build: Updating brace-expansion to 1.1.12, 2.0.2
    
    * https://github.com/advisories/GHSA-v6h2-p8h4-qcjw
    
    Change-Id: I6f98a58c2c2ba048a4abfc5bb3a735e3de2cd85f
2025-06-14 21:56:59 +00:00
libraryupgrader
46f67d56bf Update git submodules
* Update extensions/Interwiki from branch 'REL1_43'
  to d192f6d8099f0f0b6a3274951087c718beac45fd
  - build: Updating brace-expansion to 1.1.12, 2.0.2
    
    * https://github.com/advisories/GHSA-v6h2-p8h4-qcjw
    
    Additional changes:
    * Enable stylelint caching.
    
    Change-Id: Iec76b576ba6ccd1094318bdb2101c5e834eb7c0b
2025-06-14 18:49:03 +00:00
libraryupgrader
4c58f7b36c Update git submodules
* Update extensions/ImageMap from branch 'REL1_43'
  to 2b90dbb205282f0f604d5ea0a51366f82be9d363
  - build: Updating brace-expansion to 1.1.12, 2.0.2
    
    * https://github.com/advisories/GHSA-v6h2-p8h4-qcjw
    
    Additional changes:
    * Enable stylelint caching.
    
    Change-Id: I7c6ab8221e441edf7d6417d73af8a94fc8feeda7
2025-06-14 16:34:24 +00:00
jenkins-bot
b4e774c2b8 Merge "phpunit: Remove unused trigger_error from TestLogger" into REL1_43 2025-06-14 11:01:34 +00:00
Timo Tijhof
50b0aadc6a phpunit: Remove unused trigger_error from TestLogger
It was added in 2016 as part of SessionManager (Ic1ffea74f3, later
re-attributed to Ibb3e023e4e) by Anomie. It wasn't used at the time.

Basically, it is used for cases where we expect no logs, and the
presence of logs will then produce a failing test. The point is to do
something that PHPUnit will "complain" about by showing it. Emitting
a notice or warning is one way, another is to simply echo it, since
output is also unexpected and shown. The somewhat arbitrary mapping
from log levels to PHP error codes isn't used.

Later in 2017, he introduced the same class in php-session-serializer
(I2ebf59414ef9a9) where this part was already removed and replaced
by "echo". The version in core still used trigger_error.

== Why now ==

Triggering E_USER_ERROR is deprecated in PHP 8.4+.

Bug: T379445
Change-Id: Id1e1db80bc8fea39cd192716597e5e4a6f4966b0
(cherry picked from commit 5a1a8c14bd418c846498cd4ed99b77e45a0fcca1)
2025-06-14 10:43:47 +00:00
Timo Tijhof
f34ea0830a widget: Remove outdated try/catch wrapper from SpinnerWidget
== What ==

This method was "Copied from OOUI\Tag", which no longer does this
since last year (I42c7a7b4d, 6e4e1a1796). Apply the same change here.

== Why now ==

Triggering E_USER_ERROR is deprecated in PHP 8.4+.

Bug: T381341
Bug: T379445
Change-Id: I1bac121caf746c30996dccd7fb95c4c240742951
(cherry picked from commit 751eca89fe473cc4a649e47dd54e9ab38f7c1957)
2025-06-14 10:42:05 +00:00
libraryupgrader
37f529df85 Update git submodules
* Update extensions/Gadgets from branch 'REL1_43'
  to 6caf0899ec0a204a18dce5ecc5d19752b1c9eb12
  - build: Updating brace-expansion to 1.1.12, 2.0.2
    
    * https://github.com/advisories/GHSA-v6h2-p8h4-qcjw
    
    Change-Id: If3bc180617acbcff3b99922d7ee22901426f90c7
2025-06-14 08:46:45 +00:00
libraryupgrader
3eea4fda99 Update git submodules
* Update extensions/Echo from branch 'REL1_43'
  to d9b488106340c14c18380de89598f807954dbf3c
  - build: Updating brace-expansion to 1.1.12, 2.0.2
    
    * https://github.com/advisories/GHSA-v6h2-p8h4-qcjw
    
    Additional changes:
    * Enable stylelint caching.
    
    Change-Id: I1a6cc4f9b4f8fae4c99805786170fc9149bda995
2025-06-14 03:49:35 +00:00
libraryupgrader
0311a74536 Update git submodules
* Update extensions/DiscussionTools from branch 'REL1_43'
  to a9d987bb4c81f3da6f10ba678a415f28f27c5610
  - build: Updating brace-expansion to 1.1.12, 2.0.2
    
    * https://github.com/advisories/GHSA-v6h2-p8h4-qcjw
    
    Additional changes:
    * Enable stylelint caching.
    
    Change-Id: I017b05f99396bf4163caf3d4dcb47cd485041cd0
2025-06-14 03:02:22 +00:00
Timo Tijhof
78d252789c Setup: Update error message for composer dependencies check
== Why ==

While psr/log represents our original an first use of Composer,
this is nowadays "just" another dependency among many. It does not
justify or help understand what to do next.

== What ==

Use the same "external libraries" terminology, as on mediawiki.org.

== History ==

* 2014 (Ie66794441): Add first ever Composer dependency (psr/log)
* 2015 (Ie47467657): Add LoggerFactory with check for missing Composer
                     dependency, to address a then-common issue.
* 2015 (Ib60261237): Move check earlier, to WebStart.
* 2017 (I633a6ff23): Move check earlier, to Setup.
* 2021 (Ia81903fb2): Remove redundant exit(1).
* 2025 (I6050ec4ca): Replace deprecated E_USER_ERROR.

Change-Id: I890d1f285997ccbc04cdb378a69815982c2bf64f
(cherry picked from commit b538453cdc6438419d044854cc730706988cb908)
2025-06-13 20:54:40 +00:00
libraryupgrader
566f4f84ba Update git submodules
* Update extensions/ConfirmEdit from branch 'REL1_43'
  to a27590a6533c0480d5e446e4f6d22704cf21d89d
  - build: Updating brace-expansion to 1.1.12, 2.0.2
    
    * https://github.com/advisories/GHSA-v6h2-p8h4-qcjw
    
    Additional changes:
    * Enable stylelint caching.
    
    Change-Id: I3d24774b7b6c24fcb1c79f166606bfe4260f716a
2025-06-13 19:16:05 +00:00
Timo Tijhof
8b7f9129c3 Setup: Switch vendor error from echo+E_USER_ERROR to echo+exit
== Background ==

E_USER_ERROR is a deprecated error code for "recoverable fatal error",
a confusing description no longer used upstream and replaced by the
Throwable/Error concept, i.e. something that is meant to be fatal,
but could in theory be caught if you know what you're doing, via a
risky catch for Throwable instead of Exception.

What trigger_error with E_USER_ERROR does:

* (If we haven't sent headers yet)
  Emit header "HTTP/1.1 500 Internal Server Error".
* (If display_errors is enabled)
  Print the message, again, along with a strack trace.
* Notify set_error_handler letting you "catch" a non-Exception error.
* Write it to error_log, e.g. STDERR for composer serve and CLI,
  or an Apache/php-fpm error.log file.
* End with exit(1).

Issues:

* When enabling display_errors, the message is printed twice.
* The HTTP 500 status didn't work because headers are already sent,
  ... by the "echo" statement, right above it.

== Option A: throw Error $message ==

`throw Error($message)` is the natural successor to E_USER_ERROR.
I would recommend this, if
1) we didn't already echo it, and
2) the message didn't contain HTML, and
3) we needed to keep compat with someone catching this, or
4) we wanted a stack trace.

We echo it because display_errors can be off, and the most likely
audience for this is someone new to PHP/MediaWiki, installing in prod
or locally, when debugging is either intentionally off, or before
they're familiar with debugging modes. As such, we want to print it
ourselves either way, and printing it again as part of E_USER_ERROR
isn't needed.

The HTML part is important because one subtle difference between
trigger_error and throw Error is that the former allows raw HTML,
while the latter treats exception messages as plain text. Our message
intentionally uses HTML to link to docs in the browser, so this is
unhelpful.

The catchable-ness of this is not important to us, as no extension or
distro code (e.g. PlatformSettings.php) can run this early. There
are no runtime consumers of this error, only the end-user's browser.

== Option B: echo+exit ==

Given we already print the message, we just need to exit.

== History ==

* 2014 (Ie66794441): Add first ever Composer dependency (psr/log)
* 2015 (Ie47467657): Add LoggerFactory with check for missing Composer
                     dependency, to address a then-common issue.
* 2015 (Ib60261237): Move check earlier, to WebStart.
* 2017 (I633a6ff23): Move check earlier, to Setup.
* 2021 (Ia81903fb2): Remove redundant exit(1).

== Change ==

* Emit HTTP 500 before the echo.
* Keep echo (for browser) and error_log (for discovery via CLI or log
  file).
* Replace trigger_error with just exit(1), avoid duplicate message.

Bug: T379445
Change-Id: I6050ec4ca857d3c92c1c43f6a38e4154cd60e5d5
(cherry picked from commit 98c6d3c4c3511ecf60ffc693ff6c7164964270ca)
2025-06-13 16:57:53 +00:00
libraryupgrader
65ca36bb1d Update git submodules
* Update extensions/CodeEditor from branch 'REL1_43'
  to c76872da4a491feadaf07b3ba4cd2cd9ee363dd5
  - build: Updating brace-expansion to 1.1.12, 2.0.2
    
    * https://github.com/advisories/GHSA-v6h2-p8h4-qcjw
    
    Additional changes:
    * Enable stylelint caching.
    
    Change-Id: Ide8f6faede21586d440b0c2e9ccf6f3bc3056128
2025-06-13 11:36:54 +00:00
libraryupgrader
a8ea00feda Update git submodules
* Update extensions/CiteThisPage from branch 'REL1_43'
  to 3e8a6bd5246edd983de5564007cf24ea52bddec5
  - build: Updating brace-expansion to 1.1.12, 2.0.2
    
    * https://github.com/advisories/GHSA-v6h2-p8h4-qcjw
    
    Additional changes:
    * Enable stylelint caching.
    
    Change-Id: Iac3ffcef10438a99643ac35f219a435dfc5e587c
2025-06-13 09:58:22 +00:00
libraryupgrader
b4b4ae5cec Update git submodules
* Update extensions/Cite from branch 'REL1_43'
  to 58a51cf9d46c055488133f87f3729a32488104a5
  - build: Updating brace-expansion to 1.1.12, 2.0.2
    
    * https://github.com/advisories/GHSA-v6h2-p8h4-qcjw
    
    Additional changes:
    * Enable stylelint caching.
    
    Change-Id: Ib25fd457bac6d5e0595e5bdc5c855a023fcb1b58
2025-06-13 09:47:32 +00:00
Timo Tijhof
83d4898319 debug: Migrate E_USER_ERROR to throw Error in DeprecationHelper
For a long time now, since PHP 7.0.0, access to non-public properties
has thrown Error, not emitted E_ERROR.

Example - https://3v4l.org/dHChU

Our simulation of this in DeprecationHelper is meant to do what PHP
does, so, given we no longer support PHP 5.6 and can thus construct
Error ourselves, we should do the same.

This is identical - https://3v4l.org/koUqu

== Why ==

Referencing the E_USER_ERROR constant causes a deprecation warning
in PHP 8.4+.

== Change ==

The source change is straight-forward.

One of the tests (testSet, dataset 4 "fallbackGetterOnly") was
previously passing by accident. The source called trigger_error twice,
first with E_USER_DEPRECATED (via wfDeprecated) and then again with
E_USER_ERROR. Given that these are asserted via set_error_handler,
an event calback, the callback is run after the callback finished
(it does not interrupt), at which point only the last values are
reported to the event handler. Improve on this by explicitly hiding
the deprecation warning, and focus the case on testing the error.

Bug: T379445
Change-Id: Ia0aff9906102023370f3907e01962a5e1e369125
(cherry picked from commit d0920b8fb5be462a7aba5c21e47b02c2c2f5025f)
2025-06-13 07:40:14 +00:00
Umherirrender
20d15ad97f tests: Match deprecation message under php8.4 in DeprecationHelperTest
php8.4 prints more information into the string "{closure}".
The text is now "{closure:DeprecationHelperTest::testSet():124}"

Change-Id: I4c54a089ad981ba03da21f50cbeebb48ea8e1d28
(cherry picked from commit eea57fa92c043a1e0571b24d7a88a8d7f0ed3bf7)
2025-06-13 07:39:32 +00:00
libraryupgrader
b4460215be Update git submodules
* Update extensions/CategoryTree from branch 'REL1_43'
  to 8c7cfd7315b40da55e7ff56b3e5ac247c96621d5
  - build: Updating brace-expansion to 1.1.12, 2.0.2
    
    * https://github.com/advisories/GHSA-v6h2-p8h4-qcjw
    
    Additional changes:
    * Enable stylelint caching.
    
    Change-Id: I4233c6d9becfe1a0d334af8447b3c75676b6c1fd
2025-06-13 04:50:49 +00:00
libraryupgrader
d39a8f8d61 Update git submodules
* Update extensions/AbuseFilter from branch 'REL1_43'
  to 5c163561574a786bf9ffba8d213a52b874ede0a9
  - build: Updating brace-expansion to 1.1.12, 2.0.2
    
    * https://github.com/advisories/GHSA-v6h2-p8h4-qcjw
    
    Additional changes:
    * Enable stylelint caching.
    
    Change-Id: I5ea304e24360de8e26931a307acf863f87b7ad57
2025-06-12 02:13:03 +00:00
Translation updater bot
fa1dc72191 Update git submodules
* Update skins/MinervaNeue from branch 'REL1_43'
  to e08046c12cb1850b839c8247b0045c18305651bb
  - Localisation updates from https://translatewiki.net.
    
    Change-Id: I4c280c50ee53d265fc2a435a67bc14545b265813
2025-06-10 06:34:34 +00:00
Translation updater bot
86b589187e Update git submodules
* Update skins/Vector from branch 'REL1_43'
  to 7bf54eb9c8327f07e030d8a63cd5b9bae2b933e4
  - Localisation updates from https://translatewiki.net.
    
    Change-Id: Iebe94acf1c4dc2c0e85ef0441ff3863a64662860
2025-06-10 06:34:33 +00:00
Translation updater bot
07c6652a59 Update git submodules
* Update extensions/VisualEditor from branch 'REL1_43'
  to 1c8f8c9017d88cbebbfba76d4689b1d97e49e7a3
  - Localisation updates from https://translatewiki.net.
    
    Change-Id: Ib0833e010dcbfe1c1e0808247a2694b02591cf37
2025-06-10 06:33:05 +00:00
Translation updater bot
5b11bef288 Update git submodules
* Update extensions/WikiEditor from branch 'REL1_43'
  to c28f05727b0fad7f8f6a31e77e1f8fdf6a01a395
  - Localisation updates from https://translatewiki.net.
    
    Change-Id: I00452d84afe4b5139062c61a8724c9f908072f00
2025-06-10 06:32:57 +00:00
Translation updater bot
764d82b333 Update git submodules
* Update extensions/TemplateData from branch 'REL1_43'
  to c5141fccf9761aa8203af282cb13357b2c9ebeed
  - Localisation updates from https://translatewiki.net.
    
    Change-Id: Iceb93fb7ddada1d504d3e784ba4b63d133f8b4ad
2025-06-10 06:32:42 +00:00
Translation updater bot
d21ba425cf Update git submodules
* Update extensions/ReplaceText from branch 'REL1_43'
  to 4a52f69150d3b69cb2ae8a22ed09a7bf22393b0a
  - Localisation updates from https://translatewiki.net.
    
    Change-Id: I084b94b11b9aa905d62458d9199f897e283e6de4
2025-06-10 06:32:35 +00:00
Translation updater bot
6a1d59a3eb Update git submodules
* Update extensions/OATHAuth from branch 'REL1_43'
  to f357d4b40c5a48250824ee16962fd45d02fb2451
  - Localisation updates from https://translatewiki.net.
    
    Change-Id: I72d8ef9b98ec8615926bc1ff8c1cafae2cd59157
2025-06-10 06:32:22 +00:00
Translation updater bot
3fac1251a9 Update git submodules
* Update extensions/Math from branch 'REL1_43'
  to d77d0e44fe218ff4059b032cdfff6af47444e827
  - Localisation updates from https://translatewiki.net.
    
    Change-Id: Ide57a8da4fa5d3b6be4f911460fed252dbf32259
2025-06-10 06:32:02 +00:00
Translation updater bot
cfe0609634 Update git submodules
* Update extensions/LoginNotify from branch 'REL1_43'
  to 5abe4f29cd859a63079e3d9a14e0f5b679c391b8
  - Localisation updates from https://translatewiki.net.
    
    Change-Id: Iee6d1df91590f907ee1fbf3a4ef416c01a586903
2025-06-10 06:31:57 +00:00
Translation updater bot
84f73bb718 Update git submodules
* Update extensions/Linter from branch 'REL1_43'
  to 40e73c507756386ec3d8fd7f18371cfa3d85c93d
  - Localisation updates from https://translatewiki.net.
    
    Change-Id: Ib8d4a236fc90098b44a55530f99bb4c796cb4c09
2025-06-10 06:31:56 +00:00
Translation updater bot
a07434544d Update git submodules
* Update extensions/Gadgets from branch 'REL1_43'
  to 1c01a4045b7ba5f254d45a6c14227b1bd20d8e5f
  - Localisation updates from https://translatewiki.net.
    
    Change-Id: I95601bdd63e94e66607db45607e28c5bd5ad5764
2025-06-10 06:31:37 +00:00
Translation updater bot
f740ab5f13 Update git submodules
* Update extensions/Echo from branch 'REL1_43'
  to b9fbb90a39ba6b1fa13053ab15062e18920aa47d
  - Localisation updates from https://translatewiki.net.
    
    Change-Id: I6e01f46e01f5d33c4e4cb03ea5e5f4a6ed85c0ac
2025-06-10 06:31:29 +00:00
Translation updater bot
9cc2b6b152 Update git submodules
* Update extensions/DiscussionTools from branch 'REL1_43'
  to add13015066a2e25e6f27305c4ce9c7e3f2ed6c8
  - Localisation updates from https://translatewiki.net.
    
    Change-Id: If4318c642029b1305752fdcb2891869d14405e97
2025-06-10 06:31:21 +00:00
Translation updater bot
5429374dd6 Update git submodules
* Update extensions/ConfirmEdit from branch 'REL1_43'
  to b113d5699ac46b526d585bcd8aa0c5b4adc61b12
  - Localisation updates from https://translatewiki.net.
    
    Change-Id: I84d5f70c73e017af26e49fb984eb0d2e69ab3de4
2025-06-10 06:31:19 +00:00
Translation updater bot
24a1f49de5 Update git submodules
* Update extensions/Cite from branch 'REL1_43'
  to 38cb551ee285c1df2e848406ce74e0d4e0729553
  - Localisation updates from https://translatewiki.net.
    
    Change-Id: I2c22eea962de1e0f52a22790fa946b551e1c7692
2025-06-10 06:31:01 +00:00
Translation updater bot
0914cf87cf Update git submodules
* Update extensions/CiteThisPage from branch 'REL1_43'
  to e796fb8129164509265bb6aa92465ce3dc64a471
  - Localisation updates from https://translatewiki.net.
    
    Change-Id: Id95ffef3d2f3d19ced68d9300dba71fdf469225c
2025-06-10 06:30:59 +00:00
Translation updater bot
570bb91658 Update git submodules
* Update extensions/AbuseFilter from branch 'REL1_43'
  to 60800c48785657e7a3a2d066136cdca0bca7f137
  - Localisation updates from https://translatewiki.net.
    
    Change-Id: If03a602c0fdd168017f2a455fb1e71f3b305981d
2025-06-10 06:30:26 +00:00
Translation updater bot
d5e97d42ac
Localisation updates from https://translatewiki.net.
Change-Id: Id5113b17063ac0d61bc9ab3638814ad4d6e13e8e
2025-06-10 07:33:07 +02:00
Bartosz Dziewoński
994f95f757 Treat File::getShortDesc() as possibly unsafe HTML
File::getShortDesc() is documented to return HTML, but some handlers
return unescaped plain text.

Bug: T395834
Change-Id: I150f0215339b4ac18254fce2be138b1cde2277d5
(cherry picked from commit b2a9cc1564397e27fd80e44e99e1905fcbd10684)
2025-06-04 21:18:13 +00:00
jenkins-bot
707e98bb1f Merge "Update wikimedia/parsoid to 0.20.3" into REL1_43 2025-06-04 01:14:22 +00:00
Arlo Breault
1af0cd0710 Update git submodules
* Update vendor from branch 'REL1_43'
  to e81b93847b7a9b189b3cb762409e6bcfb3295a1e
  - Update wikimedia/parsoid to 0.20.3
    
    Bug: T382963
    Change-Id: I1ec004b6914173c14f66ac0300192035122f6ae0
2025-06-04 00:58:33 +00:00
Arlo Breault
0e3fcccd5c Update git submodules
* Update vendor from branch 'REL1_43'
  to ff6edc415996157f9f80020d273554e2d211278f
  - Bump wikimedia/wikipeg to 4.0.2
    
    This is the same as 4.0.0, released because 4.0.1 was unpublished.
    
    Change-Id: Ic98898b5c5fb62505fdd81cc0a3c37e1f3b5e8e2
2025-06-04 00:46:38 +00:00
Arlo Breault
d46488212a Update wikimedia/parsoid to 0.20.3
Bug: T382963
Depends-On: I1ec004b6914173c14f66ac0300192035122f6ae0
Change-Id: I968df278a3aefec02e1b53aff484419311e5df34
2025-06-03 20:40:11 -04:00
jenkins-bot
58a2eed8d3 Merge "Sync up core repo with Parsoid" into REL1_43 2025-06-03 22:10:15 +00:00
jenkins-bot
3da6713b95 Merge "Improve BrokenRedirects display" into REL1_43 2025-06-03 21:44:00 +00:00
Arlo Breault
e49931aca1 Sync up core repo with Parsoid
This now aligns with Parsoid commit 9fac646fe95054a8b68765b381d987b46c4eebca

Bug: T382963
Change-Id: Iec78163a320210e411845017619e99bf1af7c9ec
2025-06-03 17:36:27 -04:00
Pppery
9ac90f7816 Improve BrokenRedirects display
- Don't strike all entries in Miser Mode
  - This does a query for each entry, however other pages like
    Special:DoubleRedirects already do that so it shouldn't cause
    performance problems.
- If the redirect is no longer broken because its target now exists then
  strike the entire entry rather than displaying a red link to a page
  that actually exists

Bug: T351055
Change-Id: I9189b1ba537f0ca590b41a3db76621f11df2a224
2025-06-03 20:52:50 +00:00
Pppery
a43f368b65 Update RfC links to bypass redirect
Per https://meta.wikimedia.org/wiki/Talk:Interwiki_map/Archives/2024#RFC

Bug: T71997
Bug: T382963
Change-Id: I2b6b63f7809e5801c78de370c828bbca5fe95e64
2025-06-03 16:37:04 -04:00