Page MenuHomePhabricator

[EPIC] Make Minerva independent of MobileFrontend
Closed, DuplicatePublic

Description

Documentation on wiki

https://m.mediawiki.org/wiki/Reading/Web/Projects/Invest_in_the_MobileFrontend_%26_MinervaNeue_frontend_architecture#Make_Minerva_independent_of_MobileFrontend

What

3rd party support is important to the MediaWiki community and causes the team extra maintenance effort (dealing with talk page questions and bug reports). Currently there is an implicit relationship where Minerva requires installing and configuring MobileFrontend, and MobileFrontend requires Minerva. As such, using only MobileFrontend (with Vector for example) or using only the skin Minerva (on desktop) is complicated and causes many issues to MediaWiki administrators.

We will make Minerva an independent skin that can easily be used independently, like other skins. We will continue to support mobile-friendly special pages inside MobileFrontend and clarify the purpose of MobileFrontend and the function it serves (which currently causes a lot of confusion).

We will make MobileFrontend use a UI library for the mobile-friendly Special pages provided. Minerva will also use the same mobile-friendly UI library (which could be used by any skins or other projects in the future).

To do so, we will migrate all UI components and assets into a library, which will be stored in the Minerva skin code repository for development convenience, but also published as an independent library.

Going forward, any engineer working on mobile web - Minerva or related features - will work in the Minerva skin repo. MobileFrontend will then effectively live in maintenance mode.

For WMF products, MobileFrontend will use the installed skin Minerva to get the UI library needed.

For 3rd parties who want to use MobileFrontend with another skin that’s not Minerva we will provide an additional install step for them to do so. In exchange for this slight discomfort they will have more control of their user experience. Websites not affiliated with the WMF (e.g. wikitravel) will have more reason not to inherit Wikipedia’s “brand”.

We believe this will reduce the amount of the work the team has to do in the arena of third party support (we get plenty of bug reports), freeing us to focus on products.

Implementation details may change, depending on activity in T107561 (how will MobileFrontend use Minerva’s components/vice versa).

We’ll email wikitech-l and mobile-l to let MediaWiki community members know about this change, before start as a consultation, sending updates via email with the monthly readers email and after finishing presenting the results.

Measuring progress

We will monitor the resources/assets in MobileFrontend and how they move to the MinervaNeue repository, (except the special pages sources or other files MobileFrontend specific ones). Most of the mobile.* UI modules on MobileFrontend should be migrated and renamed into MinervaNeue.

Measuring success

We will know if we have been successful when:

  • Minerva is standalone and installable on a MediaWiki instance without dependencies on other skins or extensions
  • MobileFrontend is installable on a MediaWiki instance without dependencies on another skin or extensions
  • The Minerva skin UI components live in Minerva instead of in MobileFrontend
  • The stakeholders (developer community, foundation developers, tech com, etc) are aware and informed of the status of Minerva, MobileFrontend, and their purposes and functionality, and confusion is cleared

AC

AC is very similar to the success metrics:

  • Minerva is standalone and installable on a MediaWiki instance without dependencies on other skins or extensions
  • MobileFrontend is installable on a MediaWiki instance without dependencies on another skin or extensions
  • The Minerva skin UI components live in Minerva instead of in MobileFrontend and are published as an NPM package and the release process (when to release and how) is documented
  • The stakeholders (developer community, foundation developers, tech com, etc) are aware and informed of the status of Minerva, MobileFrontend, and their purposes and functionality, and confusion is cleared
    • We have a recorded and shared a video explaining Minerva and MobileFrontend’s purpose and situation
    • We have written a couple of blog posts for the skin and extension explaining their purpose and status, and shared them in the appropriate mailing lists
    • We have reached personally on a meeting or otherwise to the core platform team and updated them with the situation of the skin and extension.
      • We have discussed the possibilities of upstreaming useful parts to MediaWiki core, and the possibility to bundle Minerva and/or MobileFrontend in the standard MediaWiki distribution

Event Timeline

There were a few points I was confused about. They're all circling around skin and extension independence, what that means and what use cases are supported. Maybe we can clarify these in the next dev time meeting and update the task as needed.

For 3rd parties who want to use MobileFrontend with another skin that’s not Minerva we will provide an additional install step for them to do so.

Does this mean that MobileFrontend will work with arbitrary skins like Monobook or just custom MinervaNeue-like skins? If it's the former, we should add a testing criteria that MobileFrontend works with Vector. If it's the latter, we should create a stripped-down "vanilla" skin that will serve two purposes: 1) verify that MobileFrontend can be used without MinervaNeue 2) provide a canonical example / documentation for how MobileFrontend skins should be written.

Minerva is standalone and installable on a MediaWiki instance without dependencies on other skins or extensions

So Minerva can be used on desktop without MobileFrontend just like Vector?

MobileFrontend is installable on a MediaWiki instance without dependencies on another skin or extensions

What skinless use cases other than mobileview (see T186627) should MobileFrontend support? Can we add a couple extra criteria here to make sure they work?

Going forward, any engineer working on mobile web - Minerva or related features - will work in the Minerva skin repo. MobileFrontend will then effectively live in maintenance mode.

Is this really true? Even new features generally won't require touching MobileFrontend except to fix bugs? What function does it provide then that shouldn't be pushed into Core?

ovasileva renamed this task from Make Minerva independent of MobileFrontend to [EPIC] Make Minerva independent of MobileFrontend.Jun 4 2018, 10:08 AM

For 3rd parties who want to use MobileFrontend with another skin that’s not Minerva we will provide an additional install step for them to do so.

Does this mean that MobileFrontend will work with arbitrary skins like Monobook or just custom MinervaNeue-like skins?

It does work with arbitrary skins right now, but for installing you need to install MinervaNeue right now for everything to work.

The idea is that you can install MobileFrontend only, and it works as expected, and that you can install MinervaNeue only, and it works as expected.

Nothing more, just fixing the implicit dependencies and making them installable by themselves.

Minerva is standalone and installable on a MediaWiki instance without dependencies on other skins or extensions

So Minerva can be used on desktop without MobileFrontend just like Vector?

Minerva can already be used on desktop, no problem. This is about being able to install Minerva only, and it working fine (right now you need to install MobileFrontend even if you don't use it for Minerva to function properly).

MobileFrontend is installable on a MediaWiki instance without dependencies on another skin or extensions

What skinless use cases other than mobileview (see T186627) should MobileFrontend support? Can we add a couple extra criteria here to make sure they work?

I'm not sure what you mean about skinless.

One of MobileFrontend's features is letting you select a skin for the mobile domain. Default is Minerva, it can be anything (even right now). As I mentioned above that bullet is about fixing the install, so that you can install MobileFrontend without needing to install the skin Minerva (which right now is needed even if it is not used as a skin).


Let me know if these clarify things. As mentioned at the beginning of the epic, at its core this is about fixing this:

Currently there is an implicit relationship where Minerva requires installing and configuring MobileFrontend, and MobileFrontend requires Minerva.

Vvjjkkii renamed this task from [EPIC] Make Minerva independent of MobileFrontend to cdcaaaaaaa.Jul 1 2018, 1:08 AM
Vvjjkkii reopened this task as Open.
Vvjjkkii triaged this task as High priority.
Vvjjkkii updated the task description. (Show Details)
Vvjjkkii removed a subscriber: Aklapper.
JJMC89 renamed this task from cdcaaaaaaa to [EPIC] Make Minerva independent of MobileFrontend.Jul 1 2018, 2:13 AM
JJMC89 raised the priority of this task from High to Needs Triage.
JJMC89 updated the task description. (Show Details)
JJMC89 added a subscriber: Aklapper.