MediaWiki Product Insights/Reports/June 2024
Hi All,
Welcome to the monthly MediaWiki Insights email!
First of all, many thanks and congratulations to Harshrathod50 and Ahecht who got their first patch merged in MediaWiki core, extensions or services deployed in Wikimedia production during the month of June!
As we concluded the Foundation’s fiscal year 2023/2024 on June 30, 2024, it’s also time to share the final stats for contributions to MediaWiki core over the past year: We’ve achieved a 25% increase in the number of authors who have committed more than 5 patches! The overview and celebration pages now include the updated count and authors. Thank you all so much.
Project snapshots: Migration to Prometheus reaches milestone, work in flight on REST API, and updates to Wikimedia password storage
editThe Observability team has completed the migration of MediaWiki core metrics to the Prometheus-capable library StatsLib and made significant progress overall (tracking task: T343020). This marks a key milestone on the path towards using Prometheus as the standard metrics infrastructure in Wikimedia production. The migration to Prometheus will continue over the next year with the goal to be able to sunset Graphite. Many thanks to the Observability team and everyone who has helped with this migration so far!
The MediaWiki Interfaces team has been working on improving the experience of REST API endpoint creators and callers through multiple related initiatives:
- Ability to specify REST modules in an OpenApi-like JSON syntax
- Ability to define JSON schema definitions for body param validation
- Ability to generate request body specs from param settings
- Exposing a Swagger-UI view of MW REST endpoints
Putting all this together, REST endpoints can be specified and defined in ways that not only support better namespacing, versioning, and parameter validation, but which also feed directly into generation of an OpenAPI spec which can be viewed on-wiki in an interactive sandbox. Some of this work is still being completed – but these changes should benefit both endpoint creators and endpoint callers. The work has been done in a backward-compatible way, which means we've just introduced the ability to do these things. More work remains to actually realize the benefits of these changes. Many thanks to the MediaWiki Interfaces team and Daniel Kinzler for driving much of the vision for this work.
The MediaWiki platform team worked on the completion of the Less.php upgrade work for Less.js 3.0 compatibility, with the release of Less.php 5.0 (release notes. Before we can enable use of new CSS "slash" features in Less.php 5.0, a few extensions and components have to first prepare themselves. Maintainers and contributors are invited to help with this, details are at T368921. Many thanks to Hannah, Dringsim, Piotr, Timo and Bartosz for their work!
More highlights from work done to improve security, ease of use, maintainability and overall code health:
Zabe updated Wikimedia’s password storage: All passwords are now encrypted and we use the stronger Argon2 hashing algorithm instead of PBKDF2, which together adds an extra layer of security. A big thanks to Zabe for this important work & to the MediaWiki platform team for code reviews!
Rdbms library: We shared about the efforts to improve consistency, security and ease for getting database connections and performing common queries already in the October and April MW Insights editions. Over the past weeks, work continued on removing or deprecating methods that are no longer needed after the introduction of the new APIs. To date, 19 methods have been removed, the remaining are deprecated or marked internal.
The related work to update WMF-deployed extensions to use SelectQueryBuilder was completed in May, and the work to migrate WMF-deployed extensions to use expression builder made substantial progress over the past months! A huge thanks to Amir Sarabadani for leading on this work, Umherirrender for taking on many updates to extensions, and everyone else who helped make this happen.
TK999 refactored redirect storage to follow modern architecture standards (T290639) - many thanks for working on this :-)
Umherirrender worked on removing inline namespaces across core and extensions over the past months (example) - many thanks for this impressive long tail of work to ensure consistent usage of namespaced classes across MediaWiki. A big shout out also to Danny712 for supporting this effort with code reviews!
The Wikimedia interwiki-map on Meta was migrated from a wikitext table to a machine-readable JSON format (T365803). The map is now maintained as JSON at m:Interwiki_map/list, with the former page rendering this into a table for reading convenience, powered by a Sribunto Lua module. Many thanks to Reedy for carrying out this work, and to Pppery and Timo for supporting it!
Last, many thanks to the Kiwix team for their work on migrating away from Mobile Content Service (MSC) to its replacement, the Page Content Service (PCS). This enabled us to set the sunset deadline for the Mobile Content Service for the end of July, 2024.
Outlook: We just started with the new annual plan (July 2024-June 2025). We will share more about this work in the upcoming Insights email.
Thanks all for reading!