Page MenuHomePhabricator

Expand the set of bundled extensions and skins to achieve a default MediaWiki experience that's comparable to Wikimedia sites
Open, MediumPublic

Description

There are several features that any decent social software / content management software is expected to provide today, but MediaWiki only provides them via extensions, putting the burden on users to recognize the needs, identify the right extensions and figure out the installation process. (For example: a mobile interface, notifications, two-factor authentication, WYSIWYG editing, structured discussions, Wikidata integration, support for common media formats...) There should be some kind of "recommended for a decent user experience" extension bundle, and we should gently direct users towards that instead of vanilla MediaWiki or the current bundle.

Details

Related Gerrit Patches:
operations/mediawiki-config : masterRemove lines that are now part of AbuseFilter defaults

Related Objects

StatusAssignedTask
OpenNone
OpenNone
OpenNone
ResolvedCCicalese_WMF
ResolvedCCicalese_WMF
ResolvedCCicalese_WMF
ResolvedCCicalese_WMF
ResolvedCCicalese_WMF
ResolvedLegoktm
ResolvedLegoktm
ResolvedLegoktm
DeclinedCCicalese_WMF
ResolvedNone
ResolvedJdforrester-WMF
ResolvedCCicalese_WMF
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
DuplicateNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
InvalidNone
StalledNone
OpenNone
OpenNone
OpenNone
OpenNone
ResolvedDaimona
OpenNone
Resolvedmatej_suchanek
ResolvedDaimona
ResolvedDaimona
Resolvedmatej_suchanek
Resolvedmatej_suchanek
ResolvedDaimona
OpenDaimona
OpenNone
StalledNone
OpenDaimona
OpenDaimona
OpenDaimona
OpenDaimona
OpenDaimona
StalledDaimona
OpenNone
OpenNone
StalledNone
Resolveddemon
ResolvedLegoktm
OpenNone
OpenNone
OpenNone
OpenNone

Event Timeline

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

At this point maybe we should file separate tickets for each extension so we can discuss concerns with each one separately, and file blocker tasks appropriately? (e.g. I just found a licensing issue with OATHAuth).

Done!

Change 424974 had a related patch set uploaded (by Huji; owner: Huji):
[operations/mediawiki-config@master] Remove lines that are now part of AbuseFilter defaults

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

Tgr updated the task description. (Show Details)Apr 9 2018, 2:03 PM
Elitre added a subscriber: Elitre.Apr 10 2018, 4:42 PM
Krinkle updated the task description. (Show Details)Apr 11 2018, 2:34 AM
cicalese updated the task description. (Show Details)Apr 16 2018, 6:25 PM
CCicalese_WMF updated the task description. (Show Details)
Prod added a subscriber: Prod.Apr 22 2018, 2:34 AM
Isarra added a subscriber: Isarra.May 4 2018, 8:00 PM

What about skins?

Peachey88 added a comment.EditedMay 5 2018, 5:11 AM

What about skins?

The same as always, make a task to discuss its inclusion

Isarra added a comment.May 5 2018, 2:18 PM

The same as always, make a task to discuss its inclusion

If that actually is the method now, that is completely new. I was previously told not to do that.

There is already one skin, Minerva Neue, included in the list above.

CCicalese_WMF renamed this task from Expand the set of bundled extensions to achieve a default MediaWiki experience that's comparable to Wikimedia sites to Expand the set of bundled extensions/skins to achieve a default MediaWiki experience that's comparable to Wikimedia sites.May 5 2018, 2:24 PM
Isarra added a comment.May 5 2018, 2:42 PM

Minerva Neue is a dependency for MobileFrontend. No other skins were ever discussed; no skin developers outside the wmf were ever informed this discussion was happening despite 99% of skin development being outside the wmf. If it seems like I am a bit upset, it is because I am - I have been wanting to get more skins into the bundle for years, but the process has always been so convoluted (everything from 'email greg' to 'corner demon at a hackathon') that it's been easier to just manually tell every third party user who shows up asking where they can get a better skin individually.

And now you're actually using phabricator for this and I only find out after the fact, when it's already too late.

Yes, you are correct that Minerva Neue was considered for bundling only because of its relationship to Mobile Frontend. While we did an analysis of frequently used extensions, we did not include skins in that analysis, since that was not the original intent of this task.

I would indeed like to see a similar analysis of skins. I was not aware of your attempt to get more skins bundled and would be happy to discuss this with you further.

Although I updated the task name to include "skins" after your initial comment, I will change it back. Including "skins" is misleading, indicating that we did a full analysis of skins, which we did not do.

CCicalese_WMF renamed this task from Expand the set of bundled extensions/skins to achieve a default MediaWiki experience that's comparable to Wikimedia sites to Expand the set of bundled extensions to achieve a default MediaWiki experience that's comparable to Wikimedia sites.May 5 2018, 4:19 PM
demon added a comment.May 5 2018, 4:49 PM

I'm adding Timeless. Obvious oversight is obvious.

demon added a comment.May 5 2018, 5:04 PM

And done. Timeless will be in 1.31 and beyond :)

Isarra added a comment.May 6 2018, 2:06 AM

Thanks.

Cindy, that seems reasonable. It would be good to have a proper analysis and discussion for the next.

CCicalese_WMF updated the task description. (Show Details)

I'm glad that Timeless will be bundled. I'd also like to consider bundling Chameleon, which is used on many third-party MediaWiki sites. Are there other skins that should be considered?

Isarra added a comment.May 7 2018, 3:58 PM

Makes sense, if it works.

I'd also recommend perhaps just going through all the ones we maintain in gerrit and seeing what seems reasonable of the lot, as there's currently not very many of them, and even fewer which are fully usable (sufficiently implemented, not made for a very specific single purpose, etc). Referencing https://wikiapiary.com/wiki/Skin:Skins gives an idea of existing usage, though it's going to be highly skewed toward skins deployed to wikifarms as well as just older skins, especially if they've been more advertised.

Given that none of the current ones besides minerva and now timeless support mobile (vector and monobook are partway there, but vector's option isn't entirely usable, and monobook's isn't even merged), though, you may also want to consider prioritising any that include built-in mobile support in particular - if we're talking for 1.31, I know GreyStuff also does currently, but there are likely others too now, as there's been something of a push to actually start doing this of late. And for 1.32 and onward, expect there to be more.

Chameleon is built on Bootstrap 3 and supports mobile.

Yes, I have gone through the ones listed on WikiApiary, and no others jumped out at me, but I could easily be missing one that others are familiar with.

Isarra added a comment.May 7 2018, 5:30 PM

Try doing it the other way around - just because something is in gerrit and might be a viable option does not mean people necessarily know about it, which is what wikiapiary is about - whether or not they're known. And the whole point of putting options in the installer is so that people realise there are options and actually have them with immediacy.

And I mean you might check if Chameleon would actually work with the installer, meet the general requirements here, etc. I haven't checked specifically, but the installation process was a tad... strange, as I recall. If that can be simplified in general it'd be useful even outside the installer.

Agreed. I have looked in gerrit as well. I'm just saying that I'm open to hearing from others who have had success with other skins that I do not have familiarity with.

Yes, Chameleon is normally installed with composer. That's a whole other conversation. It would have to be checked to see if it would work with the installer. Further, I don't recall if there's a default layout configuration or whether one needs to do that manually, which would be a showstopper. And, if we're going to go through the same process as with the extensions, it would need other checks, like a security and license review, etc.

demon added a comment.May 7 2018, 5:54 PM

Yes, Chameleon is normally installed with composer. That's a whole other conversation. It would have to be checked to see if it would work with the installer.

It's not an installer problem, it's a build problem. The script probably won't handle it nicely (my assumption, without having tried obviously)

Further, I don't recall if there's a default layout configuration or whether one needs to do that manually, which would be a showstopper.

Yes.

And, if we're going to go through the same process as with the extensions, it would need other checks, like a security and license review, etc.

Also this.

I think it's best if we skip Chameleon this round.

Okay, of skins I've worked with that might be worth looking into:

  • BlueSky: Wouldn't necessarily recommend at present; I rewrote it two years ago and never finished putting all the features back, so it's kind of... barebones? Technically mostly works, but no mobile support yet, no themes (originally came with a bunch of different colour options for site admins to choose), etc. Once back to original feature set, should absolutely be included.
  • GreyStuff: Probably pretty solid, with mobile support and a simple look. Probably needs a go over for some of the interface message parsing to make sure it's actually using methods that make sense, as it's an old monobook fork, so there could be some security issues there.
  • HasSomeColours: is not even the right skin. I don't know what's going on there. My brain just... decided it should exist a couple days ago.
  • Metrolook: A vector derivative not unlike some of the chameleon variants. Apparently pretty popular.
  • Refreshed: Brickipedia skin, has mobile support, but kind of weird to install.
  • Splash: Skin I made for my personal wiki that turned out to be surprisingly popular among wikis with more fantasy themes. Lacks mobile support and built-in configurability, though.
  • Wordpress conversions: Bouquet, DeskMessMirrored, Dusk, DuskToDawn - simple things, but might be useful for folks who want blog-like setups to have something like these? Dunno.

Basically Timeless and Minerva Neue are the only ones that should have already had the reviews to just drop in, which I guess explains why... they were.

ashley added a subscriber: ashley.May 8 2018, 2:53 PM

Okay, of skins I've worked with that might be worth looking into:

  • GreyStuff: Probably pretty solid, with mobile support and a simple look. Probably needs a go over for some of the interface message parsing to make sure it's actually using methods that make sense, as it's an old monobook fork, so there could be some security issues there.

I don't think there are any gaping security vulnerabilities lurking in there. The code seems to be using Html methods sanely. There are some unrelated things which could be improved, e.g. combining the two addModules calls into one in SkinGreyStuff#initPage, using short array syntax in SkinGreyStuff#setupSkinUserCss, replacing Sanitizer#escapeId calls in the GreyStuffTemplate class with whatever is the modern/present-day equivalent for that method as IIRC it was deprecated in MW 1.30...but security vulnerabilities? I don't think there are any more security vulnerabilities than what there are generally associated with the admin ability to edit interface messages (e.g. MediaWiki:Common.js etc.). (Note that this is not an official security review by any means, I merely glanced over the code instead of carefully examining every method and testing it out to make sure everything's safe.)

  • Refreshed: Brickipedia skin, has mobile support, but kind of weird to install.

Refreshed uses the (nowadays archived and unsupported) WikiFont for icons in a few places. This means that when cloning the skin from git, you need to initialize the WikiFont submodule with the right command or the skin will look utterly broken. When not using git, the installation steps are described on the skin's info page on MW.org. The task about switching Refreshed to use OOJS icons instead of WikiFont is T155083.

  • Splash: Skin I made for my personal wiki that turned out to be surprisingly popular among wikis with more fantasy themes. Lacks mobile support and built-in configurability, though.

Mobile support is presumably a feature users will essentially expect to simply "be there", given that some sites have more mobile traffic than desktop traffic these days. Can you elaborate on the "lacks [--] built-in configurability" part, though? According to the info page there are a bunch of interface messages end-users (well, more like end-sysadmins) can edit to configure various skin features; and looking into the codebase I see a rather familiar parseItem method in the SplashTemplate class... ;-)

  • Wordpress conversions: Bouquet, DeskMessMirrored, Dusk, DuskToDawn - simple things, but might be useful for folks who want blog-like setups to have something like these? Dunno.

And let's not forget Gamepress, which is responsive and supports multiple themes!
There's also the mobile-first/mobile-"only" skin called WPtouch, but I'm guessing most people would pick Minerva over that skin.

Of the various skins I've worked with, here are some of my suggestions:

  • Liberty (live example) -- Bootstrap-based skin not maintained on gerrit which lacks a MediaWiki.org info page (!), but is nowadays i18n-compatible, configurable and ad-ready. Probably not yet fully suited for wider deployment but more eyes on the codebase certainly wouldn't hurt.
  • Nimbus -- a skin originally designed for Halopedia, it's designed to work seamlessly with social tools but it works well without them. A notable feature of this skin is the nested sidebar menu, similar to that found on the Monaco skin. There's some ShoutWiki branding in the skin, though, and removing that will probably take a bit of effort. Not responsive either, since this skin, too, wasn't written yesterday.
  • Truglass -- literally probably a decade old but still maintained and used. Modern/MonoBook-esque, but sadly not responsive either.

The Social Tools Development Wiki has most of these skins and more available for testing.

However, in addition to skins, I'd like to note about the existence of the Theme extension as well as the task to merge it into core (T122924). The PHP part of the Theme extension is relatively simple, and the extension allows sysadmins to easily customize the visual look of a wiki with a configuration setting ($wgDefaultTheme) instead of requiring (on-wiki) admins to copy-paste lots and lots of CSS. You could even say that the Theme extension allows turning one skin (e.g. MonoBook or Vector) into multiple "skins", as Dark MonoBook looks quite different from the default MonoBook theme, but then again so does Pink MonoBook. Furthermore themes themselves are CSS + images (if applicable), which would eventually reduce the need for security reviews, which is a must for skins as skins have PHP parts, sometimes even significant portions of a skin are written in PHP (such as a sidebar menu parser, for example). Of course this would indeed mean that Theme needs a security review, but that'll hopefully be needed only once as the PHP portion of the Theme extension is quite stable and I don't see it changing drastically in the future.

demon added a comment.May 8 2018, 5:22 PM

So, this is all a great discussion to have, but I'd like to punt the decisions to made to 1.32. We're already adding a lot of new stuff in this release, and I don't want to hold up a release over potential blockers.

Isarra added a comment.May 8 2018, 8:20 PM

Sounds good - and now we should have both a better basis for the currently included new ones (that the necessary work is already done, and they're the only two that goes for), as well as a better idea where to begin with this for 1.32.

I created T194266 to continue the discussion and analysis of skins to consider bundling with MW 1.32.

Change 424974 merged by jenkins-bot:
[operations/mediawiki-config@master] Remove lines that are now part of AbuseFilter defaults

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

CCicalese_WMF updated the task description. (Show Details)
CCicalese_WMF added a project: Epic.
CCicalese_WMF renamed this task from Expand the set of bundled extensions to achieve a default MediaWiki experience that's comparable to Wikimedia sites to Expand the set of bundled extensions and skins to achieve a default MediaWiki experience that's comparable to Wikimedia sites.Sep 13 2019, 4:14 PM