Page MenuHomePhabricator

[EPIC] Extract Minerva skin from MobileFrontend to its own repository
Closed, ResolvedPublic

Description

Lets make Minerva a true skin, and separate it from the other features MF has (Nearby, etc.). I'm guessing this is going to be difficult, but I have no clue :)

Minerva or MinervaNeue

Renaming the skin to MinervaNeue is problematic as it will require updates to existing extensions and configs to ensure they take into account both Minerva and Minerva-Neue. A benefit of doing this however is that sysadmins can install MinervaNeue skin alongside Minerva before upgrading MobileFrontend.

Preparation steps

  • Setup CI on Minerva repository (merge pending)
  • Setup browser tests for Minerva repository
  • Setup translations on the new Minerva repository

The big switcheroo

  • Transfer code from MobileFrontend to Minerva
  • To begin with, Minerva will depend on MobileFrontend
  • If Minerva is installed without MobileFrontend an exception will be thrown
  • If MobileFrontend is installed without Minerva an error will be logged using LoggerFactory saying that no mobile skin has been setup
  • Browser tests will move from MobileFrontend to Minerva, so ensure there is no disruption to browser test jobs

Sign off checklist

  • Create a new epic for removing the MobileFrontend dependency on Minerva

Related: T72142

Related Objects

StatusSubtypeAssignedTask
OpenNone
ResolvedJdlrobson
ResolvedJdlrobson
Duplicate KHammerstein
DuplicateNone
Resolved bmansurov
Resolveddr0ptp4kt
InvalidNone
Resolved bmansurov
DuplicateNone
Resolvedmatmarex
DeclinedJdlrobson
DuplicateJdlrobson
DuplicateNone
ResolvedJdlrobson
ResolvedSumit
ResolvedJdlrobson
ResolvedFlorian
ResolvedFlorian
ResolvedFlorian
DeclinedJdlrobson
ResolvedFlorian
ResolvedJdlrobson
ResolvedJdlrobson
Resolved bmansurov
ResolvedSumit
ResolvedJdlrobson
ResolvedABorbaWMF
ResolvedNone
ResolvedNone
ResolvedJdlrobson
Resolvedjo12bar
ResolvedNone
ResolvedKghbln
DeclinedNone
ResolvedJdlrobson
ResolvedJdlrobson
ResolvedJdlrobson

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

@Jdlrobson, is there any interest in proposing this as a GSoC/Outreachy project? Do one or more of the blocked tasks seem like good candidates?

So I've asserted that if we accept a Minerva skin depends on MobileFrontend this is possible and how it might work in https://gerrit.wikimedia.org/r/245607

If we want to do this it's likely to need a focused effort but should be highly possible.

Would appreciate someone sanity checking the approach.

So I've asserted that if we accept a Minerva skin depends on MobileFrontend this is possible and how it might work in https://gerrit.wikimedia.org/r/245607

A skin depending on an extension seems fairly weird and unreasonable to me. I'd like to see MobileFrontend killed, so ideally any code split out from it would no longer depend on it.

Seems like a logical step. Splitting the mobile site into a skin and an extension means alternative mobile skins can be written. It also means the extension becomes smaller so merging it into the core or turning it into a library that certain skins might use will be less work.

For completeness: You already can develop another mobile skin for MobileFrontend :) Nevertheless: Moving the skin out of MobileFrontend seems to be the right way, even if it still depends on MobileFrontend.

In T71366#1720661, @Tgr wrote:

Seems like a logical step. Splitting the mobile site into a skin and an extension means alternative mobile skins can be written. It also means the extension becomes smaller so merging it into the core or turning it into a library that certain skins might use will be less work.

I agree with this. The part I disagree with is a skin relying on an extension. This type of dependency isn't exactly unprecedented, as a loose example, we have (and had) extensions that rely on other extensions. I just think that it's poor practice. If you want a mobile skin, install a skin that has mobile support. (And, by the way, all of the skins deployed to Wikimedia wikis should have mobile support.)

For completeness: You already can develop another mobile skin for MobileFrontend :)

I don't want to develop a skin for MobileFrontend. I want to be able to, similar to WordPress, pick a theme and have it just work on mobile.

The part I disagree with is a skin relying on an extension. This type of dependency isn't exactly unprecedented, as a loose example, we have (and had) extensions that rely on other extensions.

Moving common functionality to a shared library to avoid duplication of code is common sense. Currently, MediaWiki doesn't support plain libraries well (they can't register hooks for example) so you need to use extensions for this purpose (or move the code into core itself, of course, which is AIUI an ongoing effort for at least parts of MobileFrontend).

And, by the way, all of the skins deployed to Wikimedia wikis should have mobile support.

Indeed. AIUI MobileFrontend (or at least its ugly part) is more about making the content of the wiki support mobile. Currently a skin has very little control over how content gets formatted so something like this is necessary. (I think all the "semantic" proposals for WikiDev lay out a good roadmap for enabling skins to function on their own, but it's not a short way to go.)

Jdlrobson renamed this task from [EPIC] Repurpose MobileFrontend as Minerva skin to [EPIC] Extract Minerva skin from MobileFrontend to its own repository.Feb 2 2016, 10:26 PM
Jdlrobson moved this task from 2017-18 Q3 to 2017-18 Q1 on the Web-Team-Backlog board.
Jdlrobson moved this task from 2017-18 Q1 to 2016-17 Q1 on the Web-Team-Backlog board.
Jdlrobson moved this task from 2016-17 Q1 to 2015-16 Q4 on the Web-Team-Backlog board.
Jdlrobson moved this task from 2015-16 Q4 to Epics/Goals on the Web-Team-Backlog board.

All the above tasks do not block separating Minerva from MobileFrontend.

T96202 however, does block removing the Minerva dependency on MobileFrontend.

Jdlrobson updated the task description. (Show Details)

To ease the transition I've submitted a patch to vagrant:

Change 364928 had a related patch set uploaded (by Jdlrobson; owner: Jdlrobson):
[mediawiki/skins/MinervaNeue@master] Change message prefixes to minerva- from mobile-frontend-

https://gerrit.wikimedia.org/r/364928

This is now done. Thanks for all involved.
Now phase 2 must begin: T171000

Change 364928 abandoned by Jdlrobson:
Change message prefixes to minerva- from mobile-frontend-

Reason:
A discussion for another day...

https://gerrit.wikimedia.org/r/364928