User:Legoktm/Architecture work

Over the years I've done a significant amount of architecture work for MediaWiki. This is an incomplete listing of the major work I've done, primarily focusing on those that went through the RfC process.

Date Name Role Abstract Status
August 2012 Shadow namespaces Co-author, partial implementor This is a request for comments regarding implementing shadow namespaces, which refers to the concept where if a local page doesn't exist, it will be transparently fetched from a remote wiki, like how InstantCommons and foreign file repos currently work. Some parts have been implemented, others are in draft and discussion
May 2013 AuthManager Co-author and reviewer The current authentication and authorization system is very limited and restricted in terms of the allowed customization, for system administrators, core developers, and extension developers. This RFC hopes to fix just a section of this problem: authentication. This will be done by deprecating the AuthPlugin system and replacing it will a comprehensive authentication layer. Implemented
October 2013 Cross-wiki notifications Co-author and co-implementor Cross-wiki notifications would be added to the Echo extension. If a user's account is global (via CentralAuth/shared user table), all of their notifications would be accessible on all wikis they have an account on through the personal tools flyout as well as Special:Notifications (no-JS and archive). Implemented
November 2013 Configuration database 2 Co-author, lead implementor This is a request for comments for MediaWiki to have a sane and easy to use configuration interface through the wiki user interface. Partially implemented, in discussion
December 2013 Linker refactor Lead implementor MediaWiki should move away from using static functions, and a first step or trial of this would be to replace the Linker utility class with service objects. Implemented
January 2014 Publishing the RecentChanges feed Co-author This is a proposal to provide a structured and machine-readable RecentChanges feed as an alternative to the current IRC system. Implemented
May 2014 Extension registration Author and implementor This is a proposal to change the way extensions store metadata about themselves and how we enable them. Implemented
December 2014 Global user preferences Co-author, developed initial prototype extension This request for comments encapsulates user preferences from MediaWiki core and user preferences from MediaWiki extensions (including the Gadgets and BetaFeatures extensions). Global here refers to preferences that would apply across a wiki-farm (e.g., Wikimedia-wide). Implemented
January 2015 Improving extension management Author This RfC proposes a system for easier extension management through:
  1. Allowing extensions to specify their compatibility and dependencies in a standard and machine-readable method.
  2. Providing an API to expose said metadata
  3. Building a CLI tool that allows system administrators to install extensions, and update them.
May 2015 Proper command-line runner for maintenance tasks Co-author maintenance/ is a mess: it contains over 150 PHP scripts, which range from essential to obscure or obsolete, with no sign-posts to guide the user to the one they need or to facilitate discovery. This RFC proposes to introduce a top-level command-line entry-point to MediaWiki which would provide access to individual maintenance tasks via subcommands. Approved, needs implementing
July 2015 Content model storage Author A proposal to change how we store content model and format in the page, revision, and archive tables. Approved, but never implemented due to MCR
July 2015 Moving database abstractions out of MediaWiki core Co-author and co-implementor MediaWiki has no support whatsoever for third-party database drivers, meaning that if someone wants to take it on themselves to add a new abstraction layer, the code must live in core. This RFC aims to provide the underlying infrastructure support in mediawiki to allow for database abstractions to be installed/included much like extensions and skins are. Implementation in progress
February 2016 Notifications in core Author This is a followup to Notification framework (talk), and proposes that we move some of the code currently in the Echo extension into MediaWiki core. In discussion
September 2016 Deprecation policy Primary author and lead implementor ...there is no consistent deprecation or backwards-compatibility policy, it is difficult for extension authors to anticipate what changes might need to be made and core developers who don't know how much they need to bend over backwards to provide back-compat. We should create an actual policy that is followed by developers. Implemented, later superseded by Stable interface policy.
September 2016 Future of magic links Author and lead implementor Magic links are a feature of MediaWiki core that create automatic links for 3 hardcoded external identifiers. In many cases, local templates are preferable and more advanced than magic links. Approved, partially implemented
October 2016 JSON validation Co-author As we increasingly store content in JSON, usually via ContentHandler, there is a need for a standardized JSON validation system that meets the requirements of Wikimedia projects. Based on an agreed-upon set of requirements, we should adopt a schema validator and implement it in MediaWiki core. In discussion (TechCom doesn't consider it RfC worthy though)
January 2017 Accessing page properties from wiki pages Co-author MediaWiki has a page_props database table where certain attributes and values are stored on a per-page basis. Users cannot access a page's properties from other local wiki pages. In discussion
August 2017 Move i18n data into JSON Co-author Let's move the rest of the i18n data in extensions into JSON. We previously migrated i18n messages. In draft
December 2017 PlatformSettings.php Author and implementor Introduce a standardized and recommended way for re-distributors and packagers of MediaWiki to be able to tune DefaultSettings.php as appropriate. Implemented
July 2018 Release notes automation Co-author Most of the developers working MediaWiki have encountered a merge conflict due to RELEASE-NOTES at some point. As a result it has become common to no longer add release notes. This RFC seeks to find a solution to this problem. Approved, needs implementing