Page MenuHomePhabricator

Reuse the M1 rendering component as-is, without forking or rewriting it
Open, MediumPublic

Description

Reuse the M1 rendering component as-is, without forking or rewriting it.

The M1 header committed to M1 being "the rendering component that M2 will reuse rather than reimplement", and this is the bullet that cashes that commitment. If the M1 class turns out to have mainspace-incompatible assumptions baked in (e.g. special-page-only title handling, hard-coded Special: URL construction, or skin chrome calls that only make sense off a SpecialPage subclass), the correct response is to refactor the M1 component so that its rendering path is reusable from a mainspace entry point, not to copy-paste it into a mainspace-specific variant. Copy-paste is explicitly not acceptable under this bullet; the whole point of the M1/M2 split was to avoid it.