Commit graph

37 commits

Author SHA1 Message Date
Bartosz Dziewoński 0b1919af0c Improve handling of Parsoid resource limit exceeded exceptions
Follow-up to 3d9585acbe.

* Avoid deprecated method StatusValue::getErrors()
* Don't use exceptions for control flow
* Don't re-use Parsoid's ResourceLimitExceededException,
  it seems unexpected to me and might limit future refactoring
* Use dieStatus() instead of dieWithException(), which will produce
  better localised error messages
* Add missing error handling in ApiDiscussionToolsThank

Change-Id: Ia032025f92f1c3cc0d62a0f45925dddba93fb42f
2024-11-28 04:09:44 +01:00
Umherirrender eef833a112 Use namespaced classes
Changes to the use statements done automatically via script

Change-Id: Ife9826099657bcaeca1beec94863a1600fdf55f8
2024-10-19 23:39:18 +02:00
Umherirrender 2a932e598c Use expression builder instead of raw sql
Change-Id: I0cb5fa07d63bc93089a4956097eee7a41dbc99e7
2024-07-21 23:25:41 +02:00
Fomafix 32069364ff Use $this->getServiceContainer() in maintenance and tests
Use
	$this->getServiceContainer()
instead of
	MediaWikiServices::getInstance()
in maintenance and tests.

Change-Id: I4066d7b2029296f1edb164acc5f8c812ccfba808
2024-07-03 08:44:55 +00:00
Bartosz Dziewoński f4e419b019 FixTrailingWhitespaceIds: Don't crash on complex conflicts
Also, move output and waiting to the outer loop.

Bug: T356196
Change-Id: Ibb88bfe3fb14e53eef4837ce9e681cebce399be1
2024-06-24 19:33:02 +02:00
jenkins-bot fb4d4d77a5 Merge "Trim whitespace from truncated heading titles in IDs" 2024-06-20 02:20:23 +00:00
Umherirrender 186e79d41b Use user_properties.up_value with string in database query
The field up_value is a varbinary and should be provided as string,
not all rdbms implicit converts int/strings

Change-Id: Ideb28ad9cc475dad84d0f7dc45a0f3c286f4487c
2024-05-02 23:25:20 +02:00
Ed Sanders 501046f38c Trim whitespace from truncated heading titles in IDs
Bug: T356196
Change-Id: Iddcda0cee624fda7f78a05e0a3d70eaee2635da9
2024-05-01 14:20:12 +01:00
Bartosz Dziewoński 69e8e948b2 Remove now redundant PHPDoc blocks
MediaWiki's PHPCS plugin requires documentation comments on all
methods, unless those methods are fully typed (all parameters and
return value).

It turns out that almost all of our methods are fully typed already.

Procedure:

1. Find: \*(\s*\*\s*(@param \??[\w\\]+(\|null)? &?\$\w+|@return \??[\w\\]+(\|null)?)\n)+\s*\*/
   Replace with: */
   This deletes type annotations, except those not representable
   as PHP type hints such as union types `a|b` or typed arrays `a[]`,
   or those with documentation beyond type hints, or those on
   functions with any other annotations.

2. Find: /\*\*/\n\s*
   Replace with nothing
   This deletes the remaining comments on methods that had no prose
   documentation.

3. Undo all changes that PHPCS complains about (those comments
   were not redundant)

4. Review the diff carefully, these regexps are imprecise :)

Change-Id: Ic82e8b23f2996f44951208dbd9cfb4c8e0738dac
2024-03-10 23:53:04 +00:00
Umherirrender 8b00546749 build: Upgrade mediawiki/mediawiki-codesniffer to v43.0.0
Change-Id: I889efe00ac06fa857fc3ae063193368927bcff7a
2024-03-10 17:36:18 +01:00
Bartosz Dziewoński 2fc7f17bc0 persistRevisionThreadItems: Use SQL expression builder
Change-Id: I9dc94b9d3ad927eab81abf9d3aef782c20eaa482
2023-10-21 23:22:34 +02:00
Umherirrender 58f184cc97 Use namespaced Wikimedia\Rdbms\IDatabase
Bug: T344536
Change-Id: I0d710d3598e63262675bc072e52e4f97dd8a9ef3
2023-08-20 14:48:33 +02:00
Umherirrender fd0de6b09a Use namespaced Title
Bug: T321681
Change-Id: I66a498679d0743b7740887c636eca001efc170cd
2023-08-19 20:16:15 +02:00
Bartosz Dziewoński 505aef8a60 Use UpdateQueryBuilder and InsertQueryBuilder
Change-Id: I8d8377a0ad3472d193b1bf9b20c8966bb6b34dd7
2023-08-11 21:59:03 +02:00
thiemowmde 0cf68818a8 Add various, more specific type hints
* Add @var comments to untyped getService() calls so IDEs and tools
  are able to understand where the callers are.
* Use the more specific IReadableDatabase where possible.
* Fix missing import.

Change-Id: I9c1153cb9fe872227753628a947f40bd5ee447fa
2023-06-09 13:44:42 +02:00
Bartosz Dziewoński eede5f73de NewTopicOptOutActiveUsers: Skip bot users etc.
Bug: T317375
Change-Id: I7b83d1b0a9c450ae5eefa5b6f7ebd9ef4c1f22a1
2023-05-17 17:33:39 +02:00
Bartosz Dziewoński 18edf9ca61 Define $maintClass in maintenance script for compatibility
Bug: T317375
Change-Id: Iad131b1fd7d8ae7e6ea6e01d907dcdbeffd8e4fe
2023-05-17 12:55:27 +02:00
Bartosz Dziewoński 2321e645f4 Add maint script to opt out active users from the new topic tool
Opt out users who are active (according to Special:ActiveUsers)
and have at least 100 edits, unless they have already opted in
by enabling the beta feature.

To run the script, use the new run.php wrapper:

  php maintenance/run.php MediaWiki.Extension.DiscussionTools.Maintenance.NewTopicOptOutActiveUsers

Bug: T317375
Change-Id: I953c4c9d00a60b00a621049b119ba96c9682004d
2023-05-05 18:51:38 +02:00
jenkins-bot 12abc51940 Merge "resources: Use core's manageForeignResources script now we can" 2023-04-25 19:09:28 +00:00
James D. Forrester a8a645e9e4 resources: Use core's manageForeignResources script now we can
Depends-On: I5df95ea4799d0efce60b58a35cb916c8e0f555b0
Change-Id: If6b323a46ec8eff1b908b4524b48527913a6f343
2023-04-25 14:46:16 -04:00
Bartosz Dziewoński c0269e701c Allow maintenance script to only process pages touched in a time period
Bug: T334258
Change-Id: Iba5509c55d3eb0ab7b9500eebd8d68fe82bfda1d
2023-04-14 19:44:01 +02:00
Bartosz Dziewoński 0d21df43dc Allow maintenance script to work even when DiscussionToolsEnablePermalinksBackend is off
Bug: T334258
Change-Id: I40e09b2f8561eeac1744bbbc48e3973e519bd9ea
2023-04-14 19:36:18 +02:00
Bartosz Dziewoński 174533e41d persistRevisionThreadItems: Allow processing all pages in a namespace
Bug: T332745
Change-Id: I3014c9aab1df5aff6fe36742daef77b3b21a2445
2023-03-21 23:48:52 +01:00
Bartosz Dziewoński 445b8caca0 persistRevisionThreadItems: Avoid listing non-discussion pages
Bug: T329627
Change-Id: I52a9f5dfa583d8dc2e0a315844a2a40e538f6a8c
2023-02-14 17:53:27 +01:00
Bartosz Dziewoński af68c835bb Update exception handling for new code conventions
Change code to match the documented consensus formed on T321683:
https://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP#Exception_handling

* Do not directly throw Exception, Error or MWException
* Document checked exceptions with @throws
* Do not document unchecked exceptions

For this extension, I think it makes sense to consider DOMException an
unchecked exception too (in addition to the usual LogicException and
RuntimeException).

Depends-On: Id07e301c3f20afa135e5469ee234a27354485652
Depends-On: I869af06896b9757af18488b916211c5a41a8c563
Depends-On: I42d9b7465d1406a22ef1b3f6d8de426c60c90e2c
Change-Id: Ic9d9efd031a87fa5a93143f714f0adb20f0dd956
2023-01-22 18:17:11 +00:00
daniel a6a12730fc Don't write to parser cache from maintenance script
The parser cache for parsoid output isn't yet ready for full load.
Don't flood it when running batch operations.

Change-Id: I77f3de30b0500f0e5c593f4d31dceef7720f848e
2022-12-13 16:26:03 +00:00
Bartosz Dziewoński 7b5a8cea11 persistRevisionThreadItems: Print time taken
Change-Id: Ide002b26740815ef0db3351a0e7e8c498010d164
2022-11-09 00:18:42 +01:00
Bartosz Dziewoński 433e57394c Use PHP 7.4 property types
Change-Id: I788db64f0c0c00894d77256b7f016d44eda4bbb1
2022-10-28 21:56:38 +02:00
Bartosz Dziewoński 3fa61ab6cd Rewrite persistRevisionThreadItems
* Fix estimate when using --current
* Add waitForReplication() after batches
* Add an option to restart from a specific point
* Remove TableCleanup, which doesn't work well for these use cases
* Use index on page_id when processing current revisions only

Bug: T315510
Change-Id: Idf9759743e67b3e116d6e20234b603bd76d4a41f
2022-09-30 18:07:39 +02:00
Timo Tijhof 86d47438d3 maintenance: Use standard doMaintenance boilerplate
Consistent with core, most WMF extensions, and boilerplate as
documented in extensions/README and elsewhere; as per T316722.

Change-Id: I02cfcb2bd3debf877d1cbf8654dff4a98dd354ad
2022-09-30 18:01:57 +02:00
Bartosz Dziewoński 1cdb3df12a Fix boilerplate in maintenance scripts for WMF production
We run MediaWiki from directories like "php-1.39.0-wmf.26",
whose names include dots, making these scripts impossible to run.

Bug: T316548
Change-Id: Ic318939cea6eafb1a0cd3105517e45c9fca52f4b
2022-08-29 14:14:09 +00:00
Bartosz Dziewoński fd3453d96c persistRevisionThreadItems: Allow processing current revisions only
Bug: T315510
Change-Id: Iecde2a0a74a08b938ad0a089ed6d69662a8f28b1
2022-08-23 01:51:00 +02:00
Bartosz Dziewoński 0024a94ba7 Store permalink data, implement Special:FindComment/GoToComment
Depends-On: I90656cc74bb1cb1f2f3c82ad51cfb164cb8a4a4b
Bug: T296801
Change-Id: I84187b303aa10a242c872088403f808df3d1f940
2022-08-11 01:19:47 +02:00
David Lynch d543e7a4f9 Defensive use of dynamic paths in maintenance script
Bug: T242134
Change-Id: I64fc136d3d19268008062dc8a2c655c8551244ea
2020-02-20 19:51:07 +01:00
Umherirrender fdd52762ee Call Maintenance::requireExtension
This avoids that the script is executed without the extension is
installed.
This avoids than an error when class is missing

Change-Id: I064d2be5dbaa3b43c8134e19694511398decba88
2020-01-13 22:15:43 +01:00
Umherirrender 1c05fa9049 build: Add missing .phpcs.xml and make pass
Add .phpcs.xml to run codesniffer against the extension.
The entry in composer.json is already there

Change-Id: If9de7e9b1b9439dc4d5fa2ba521883d13deaa739
2020-01-13 20:48:11 +01:00
Bartosz Dziewoński db80e48933 Handle timestamps in daylight saving time
Add the Moment Timezone library. Add a script for managing libraries,
like in MediaWiki core.

Depends-On: I9a59a6ad01850b30327e4215f2be61b8d1c41277
Change-Id: I64bc79e7d0ccdf42b006e5a225c8aa70ea5f4e15
2019-10-22 16:33:21 +02:00