Page MenuHomePhabricator

[GOAL] Invest in the MobileFrontend & MinervaNeue frontend architecture
Open, HighPublic

Description

Documentation

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

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 Readers-Web-Backlog.

Related Objects

StatusAssignedTask
ResolvedJdlrobson
ResolvedJdlrobson
OpenNone
OpenNone
ResolvedJdlrobson
ResolvedJdlrobson
ResolvedJdlrobson
ResolvedJdlrobson
ResolvedJdlrobson
ResolvedNiedzielski
ResolvedNiedzielski
ResolvedJdlrobson
ResolvedJdlrobson
OpenNone
OpenNone
ResolvedJdlrobson
ResolvedJdlrobson
ResolvedNone
Resolvednray
ResolvedJdlrobson
ResolvedJdrewniak
ResolvedJdlrobson
ResolvedJdlrobson
ResolvedNiedzielski
ResolvedJdlrobson
ResolvedJdlrobson
ResolvedJdlrobson
ResolvedJdlrobson
ResolvedNone
ResolvedNiedzielski
ResolvedJdrewniak
ResolvedJdrewniak
ResolvedJdrewniak
ResolvedNone
ResolvedJdrewniak
ResolvedNone
ResolvedJdrewniak
ResolvedJdrewniak
ResolvedJdlrobson
ResolvedJdlrobson
ResolvedJdlrobson
ResolvedNone
ResolvedNone
ResolvedJdlrobson
ResolvedJdlrobson
ResolvedNone
ResolvedNone
Resolvedphuedx
ResolvedJdlrobson
ResolvedJdrewniak
ResolvedJdlrobson
OpenNone
OpenNone
DeclinedNone
OpenNone
OpenNone
ResolvedKrinkle
Resolvedovasileva
ResolvedJdlrobson
OpenNone
ResolvedNone
ResolvedNone
ResolvedNiedzielski
Resolvedovasileva
OpenJdlrobson
ResolvedJdlrobson
Resolvedphuedx
ResolvedJdlrobson
Resolvedovasileva
DeclinedJdlrobson
Resolvednray
OpenNone
ResolvedNone
ResolvedNone
ResolvedJdlrobson
ResolvedJdlrobson
OpenNone
DuplicateNone
OpenNone
Resolvedpmiazga
ResolvedJdlrobson
DeclinedNone
ResolvedJdlrobson
ResolvedJdlrobson
DeclinedNone
ResolvedNiedzielski
DuplicateReedy
ResolvedNiedzielski
ResolvedJdlrobson
ResolvedJdlrobson
DuplicateNone
Resolvedpmiazga
Resolvedovasileva
Resolvedovasileva
Resolvedovasileva
ResolvedNiedzielski
OpenNone
ResolvedNiedzielski
DuplicateNone
OpenNone
ResolvedJdlrobson
ResolvedJdlrobson
ResolvedJdlrobson
ResolvedABorbaWMF
OpenJdlrobson
StalledNone
ResolvedJdlrobson
Resolvedphuedx
ResolvedJdlrobson
ResolvedJdlrobson
DuplicateNone
OpenNone
OpenNone
ResolvedJdlrobson
DeclinedNone
ResolvedJhernandez
ResolvedJdrewniak
Resolvedpmiazga
ResolvedJdrewniak
ResolvedJdlrobson
ResolvedJdrewniak
ResolvedJdlrobson
OpenNone
ResolvedJdlrobson
DeclinedNone
DuplicateNone
ResolvedJdlrobson
OpenNone
ResolvedJdlrobson
ResolvedRyasmeen
ResolvedJdlrobson
DuplicateNone
DuplicateNone
DuplicateNone

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald TranscriptMay 24 2018, 11:29 AM
Jhernandez updated the task description. (Show Details)May 24 2018, 11:46 AM
Jhernandez updated the task description. (Show Details)May 24 2018, 11:57 AM
Jhernandez updated the task description. (Show Details)May 24 2018, 12:18 PM
Jhernandez updated the task description. (Show Details)May 24 2018, 12:31 PM
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.
Jdlrobson moved this task from Backlog to New adventures on the MinervaNeue board.Jun 13 2018, 3:55 PM
Niedzielski updated the task description. (Show Details)Jun 15 2018, 12:25 PM
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.
Milimetric added subscribers: daniel, Milimetric.EditedNov 28 2018, 2:16 PM

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?".

Thanks for outlining that, @Jhernandez. I agree with @Jdlrobson about making a separate task, so I did: T210694