Page MenuHomePhabricator

[GOAL] Invest in the MobileFrontend & MinervaNeue frontend architecture
Closed, ResolvedPublic



Overview of outcomes

  1. Improve developer experience (onboarding, maintenance, development)
  2. Reduce technical debt and make production improvements
  3. Separate presentation and logic
  4. Make Minerva and MobileFrontend better citizens of the MediaWiki ecosystem

See the full “Outcomes” documentation on wiki

Sub-projects (Outputs)

  1. Automate asset bundling
  2. Speed up unit test execution and increase code coverage
  3. Make Minerva independent of MobileFrontend
  4. Review and refactor components

See full documentation for “Outputs” on wiki

Who & when

This project will be worked on by the Readers Web Team during FY 18/19. Follow progress on the children Epic tasks under this Goal task, or by checking the tasks on MinervaNeue MobileFrontend or Web-Team-Backlog.

Related Objects

Event Timeline

ovasileva renamed this task from Invest in the MobileFrontend & MinervaNeue frontend architecture to [EPIC] Invest in the MobileFrontend & MinervaNeue frontend architecture.Jun 4 2018, 10:06 AM
ovasileva renamed this task from [EPIC] Invest in the MobileFrontend & MinervaNeue frontend architecture to [GOAL] Invest in the MobileFrontend & MinervaNeue frontend architecture.
Vvjjkkii renamed this task from [GOAL] Invest in the MobileFrontend & MinervaNeue frontend architecture to idcaaaaaaa.Jul 1 2018, 1:08 AM
Vvjjkkii triaged this task as High priority.
Vvjjkkii updated the task description. (Show Details)
Vvjjkkii removed a subscriber: Aklapper.
CommunityTechBot renamed this task from idcaaaaaaa to [GOAL] Invest in the MobileFrontend & MinervaNeue frontend architecture.Jul 2 2018, 3:52 PM
CommunityTechBot raised the priority of this task from High to Needs Triage.
CommunityTechBot updated the task description. (Show Details)
CommunityTechBot added a subscriber: Aklapper.

I have some questions about this effort on behalf of TechCom. Mainly, is there a future where we unify front ends? If so, we could sketch plans together for how to get that done. If not, do you have thoughts about keeping the separation? @daniel is thinking a lot about not having two front ends, so cc-ing him on any conversation. I personally don't know enough yet, I think, but this is an area of our platform that I've been interested in. I'd like to take a more active role, maybe helping with some basic tasks to get up to speed.

This work is specifically about the skin Minerva, and its frontend, and splitting mobilefrontend and minerva sensibly.

It would be good if you could expand what your thinking is, given that every skin is essentially a frontend, so, don't we have as many frontends as skins we have, plus some core UI provided by mediawiki?

I think the questions are around unifying Mobile Front End and Core. Is this a good idea, something that's planned at some point, or considered and decided against? And, relevant to this epic, how does the Minerva refactor affect any such plans?

I'll try to provide some information as a summary, let me know if it helps:

At the end of the project, we should hopefully have 2 distinct well factored software pieces:

  • An extension (MobileFrontend) allows mediawiki to have a separate mobile site for your mobile traffic and:
    • Allows system administrators are able to provide a different skin for the mobile domain
    • Provides some content transformations to make the wiki content mobile friendly (section collapsing, content re-arrangement and removal
    • Simplifies mobile footer and adds a desktop/mobile site switching link
    • Provides some mobile friendly alternatives to special pages for MediaWiki
  • A responsive mediawiki skin that works on mobile and desktop: MinervaNeue
    • that is configured as the default for the mobile site on wikimedia projects

Once this is done, I think it would be a great idea to think about what do we want mediawiki core to do, and what is fine as an extension, and maybe upstream some parts of MobileFrontend to core.

In terms of the skin, it is just a skin like Vector or others, and this project will allow to untie it from MobileFrontend and be more like a proper MediaWiki skin. In terms of upstreaming/unifying, from the skin there could be a UI library similar to OOUI and could be used outside of the skin, maybe included in core like ooui, or maybe some other path, but we are far from that point right now.

I think these are future aspects to keep in mind, but it is a bit early to commit to any plans given we don't know exactly how minerva itself is going to look like.

To add to Joaquin's outputs, the following can also be considered outputs:

  • 100% code coverage for MobileFrontend
  • The ability to package MobileFrontend's components in npm and move it/use it in other contexts where JS is being used.
  • Some strong recomendations/opinions/RFCs around tooling for Wikimedia frontend code going forward
    • In particular a roadmap to a place where all code has code coverage and has tests that can be run in headless mode from the command line

The topic of different frontends is on my mind, but is not an output of this project and would be worth talking about that elswhere. However I do have strong opinions on this... like Joaquin I think all skins have their own frontends. For example, many 3rd party skins use bootstrap. Would love to talk more about this. Can I suggest following on from Joaquin's suggestion, we have task specifically to discuss the question "is there a future where we unify front ends?".

Jdlrobson claimed this task.

This project is no longer being worked on. The epic T195482: [EPIC] Review and refactor MobileFrontend components used by Minerva more than captures the remaining work here.