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 https://www.mediawiki.org/wiki/MediaWiki_Product_Insights/Contributor_retention_and_growth#MediaWiki_coreand celebration https://www.mediawiki.org/wiki/MediaWiki_Product_Insights/Contributor_retention_and_growth/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
The Observability team has completed the migration of MediaWiki core metrics to the Prometheus-capable library StatsLib and made significant progress overall https://grafana.wikimedia.org/d/nCxX65cSk/mediawiki-statslib-migration?orgId=1 (tracking task: T343020 https://phabricator.wikimedia.org/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 https://phabricator.wikimedia.org/T366837 - Ability to define JSON schema definitions for body param validation https://phabricator.wikimedia.org/T362108 - Ability to generate request body specs from param settings https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1017343 - Exposing a Swagger-UI view of MW REST endpoints https://phabricator.wikimedia.org/T362006
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. The release notes are at https://gerrit.wikimedia.org/g/mediawiki/libs/less.php/+/v5.0.0/CHANGES.md. 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 https://phabricator.wikimedia.org/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 https://phabricator.wikimedia.org/T150647 and we use the stronger Argon2 hashing algorithm https://phabricator.wikimedia.org/T216682 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 https://www.mediawiki.org/wiki/MediaWiki_Product_Insights/Reports/October_2023#Project_snapshot:_New_database_features,_new_security_feature,_and_Source_Maps_now_live_on_all_Wikimedia_wikis_+_default_in_MediaWiki and April https://www.mediawiki.org/wiki/MediaWiki_Product_Insights/Reports/April_2024#Project_snapshots:_ObjectCacheFactory_introduced_to_MediaWiki_core,_SUL3_and_more_work_on_REST_API MW Insights editions. Over the past weeks, work continued on removing or deprecating methods https://phabricator.wikimedia.org/T363839 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 https://phabricator.wikimedia.org/T311866 was completed in May, and the work to migrate WMF-deployed extensions to use expression builder https://phabricator.wikimedia.org/T350075 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 https://phabricator.wikimedia.org/T290639) - many thanks for working on this :-)
Umherirrender worked on removing inline namespaces across core and extensions over the past months (example https://gerrit.wikimedia.org/r/c/mediawiki/extensions/OAuth/+/1042353) - 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 https://phabricator.wikimedia.org/T365803). The map is now maintained as JSON at https://meta.wikimedia.org/wiki/Interwiki_map/list, with the former page rendering this into a table for reading convenience, powered by a Scribunto 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 from Mobile Content Service (MSC) to its replacement, the Page Content Service https://www.mediawiki.org/wiki/Page_Content_Service (PCS). This enabled us to set the sunset deadline for the Mobile Content Service https://phabricator.wikimedia.org/T328036#9930794 for the end of July, 2024.
Outlook: We just started with the new annual plan https://meta.wikimedia.org/wiki/Wikimedia_Foundation_Annual_Plan/2024-2025/Product_%26_Technology_OKRs#Draft_Key_Results (July 2024-June 2025) and will share more about this work in the upcoming Insights email.
Thanks all for reading!
Birgit
mediawiki-l@lists.wikimedia.org