User:Daniel Kinzler (WMDE)/MCR-todos


 * RevisionStore T174024
 * ...support new Schema (needs test wiki, T192306) 406595 (blocks SDC, needs test wiki)
 * ...support multiple slots (needs test wiki, T192306) 416465 (blocks SDC, needs test wiki)
 * replace all usages of the old Revision class with RevisionRecord and RevisionStore (mid term, not a blocker)


 * Schema migration T183488 (uncontroversial)
 * script for fixing duplicates in the archive table T182682 T193180 403879 (blocks SDC)
 * script for populating the new tables T193180 429345 429455 (blocks SDC)
 * run migration on test wikis (blocks SDC)
 * run migration on commons (blocks SDC)
 * run migration on all wikis (mid-term, not a blocker)
 * Compatibility views for Toolforge T174047 (soft blocker for SDC)


 * PageUpdater T174038
 * PageUpdater base patch [needs test wiki]
 * define setAllowedSlots method, until we have a better solution (PageTypeHandler RFC).
 * replace prepareContentForedit
 * introduce a SlotRenderingProvider (and a Rendering interface)
 * replace Content::getSecondaryDataUpdate T190063
 * track dependencies for all slots T190063 (last call to approve RFC ends may 2nd)
 * replace WikiPage::doEditUpdate
 * make search aware of multiple content slots T190066 (talk to discovery at the hackathon, make spec)
 * replace hook points - soon, or when the dust has settled? T192307
 * factor event emitter out of DerivedPageDataUpdater (could be part of PageTypeHandler RFC)
 * deprecate and replace Content::prepareSave T192777 T143761


 * Introduce a SlotRoleHandler
 * spec initial interface (may need RFC; see User:Daniel_Kinzler_(WMDE)/MCR-SlotRoleHandler)
 * create a SlotRoleRegistry for obtaining a SlotRoleHandler for a given Title and role name. Could be based on per-namespace configuration directly, or be defined indirectly via PageTypeHanlders. We don't need to decide this in order to specify the interface and provide an initial implementation, but we should decide this before we introduce the config variables.


 * RevisionRenderer 421794 (needs spec, hopefully no RFC)
 * Basic RevisionRenderer (blocks SDC, could bypass with a hack)
 * use SlotHandler to compose ParserOutput (SlotHandler needs spec, hopefully no RFC)
 * implement logic for copying one ParserOutput into another (messy, see )
 * Decide on if and how we want to re-use rendered content when only some slots have changed (see discussion at User:Daniel_Kinzler_(WMDE)/MCR-PO).
 * replace usages of Content::getParserOutput in core and relevant extensions (blocks SDC)
 * Allow data-access across slots T187935 (blocks SDC, but easy to do for wikibase; harder for multiple text slots)
 * enable multi-slot view T174035. (blocks SDC. May be possible without changing Article::view, if we are careful/lucky).


 * Refactor EditPage
 * break out EditController (not needed for SDC)
 * break out DiffView
 * implement multi-slot diff view (blocks SDC!) T189809
 * break out ConflictView (technically blocks SDC, but "good" solution can wait)
 * allow multiple pluggable editors per model (needs RFC, not needed for SDC)
 * allow multiple editors on the same page T174033 (not needed for SDC)


 * Refactor Article (needed for full MCR, but maybe not for SDC)
 * introduce PageTypeHandler (needs RFC)
 * replaces WikiFilePage, WikiCategoryPage
 * break out PageView (FilePageView, CategoryPageView, TemplatePageView, etc)
 * figure out how they interact with RevisionRenderer (PageTypeHandler RFC)
 * figure out action handling (extra stuff on purge, move, delete, etc for File pages, Category pages, Template pages, Module pages, Message pages, Script pages, etc...) (needs exploration/spec)
 * Make "undo" work with multiple slots T189808. (technically blocks SDC, but "good" solution can wait)


 * Prepare API T174032 (Brad has been working on this. Soft blocker for SDC)


 * Single-slot UI (Needs exploration. Soft blocker for SDC)


 * MCR in XML Dumps T174031 (soft blocker for SDC)


 * Make Extensions MCR-Aware: T189220
 * Spam Blacklist (soft blocker for SDC)
 * AbuseFilter (soft blocker for SDC)