MediaWiki needs a standard way to version, bundle, transport and sync on-wiki data (e.g. pages and files). We propose extending extension.json's schema and update.php process and providing tools to accommodate this functionality.
Help Pages for MediaWiki
As it is currently distributed, MediaWiki does not currently come with any end-user help documentation. The Help namespace is present, but empty. Bundling documentation with the distribution of MediaWiki would allow new MediaWiki installations to point to on-wiki documentation.
This sort of bundling would help on wikis that are available to people who are not able to access the MediaWiki.org.
Properly implemented synchronization would allow upgrades to update the documentation without overwriting local modifications by merging where possible and using conflict resolution where necessary.
Extension developers will, of course, be able to distribute help pages as described above.
Standard Dev→Staging→Prod workflow
When updating a local wiki, often it is necessary to modify local wiki content and then move that content to the staging and then production sites. Providing tools to move that content will make the jobs of administrators easier.
Why not just use import?
Using the current infrastructure doesn't provide a standard, well documented set of tools for the use cases we are looking to accommodate.
extension.json schema updates
At least two fields need to be added to the schema. One will point to the enclosed bundle's URI and the other will point to an endpoint that will be used to perform as-needed updates.
We anticipate providing the following tools to help create and manage these content bundles.
Lists known bundles and marks any that have updates available. Allows the administrator to perform updates.
This page will allow the administrator to handle any edit conflicts that arise from bundle updates.
Provides a way to publish bundle updates, list and import available updates to known bundles, list and resolve conflicts.
Similar to the API. Conflicts will probably not be handled on the CLI.
Performs a hands-free update of any bundles whether included in the core or extensions. Any conflicts will be handled via Special:Bundler/conflicts