Page MenuHomePhabricator

[EPIC] Improving the skinning experience for developers (improve documentation etc.)
Closed, ResolvedPublic

Description

Author: vladjohn2013

Description:
Improving the skinning experience

Research how to make the development of skins for MediaWiki easier. Many users complain about the lack of modern skins for MediaWiki and about having a hard time with skin development and maintenance. Often sys admins keep old versions of MediaWiki due to incompatibility of their skins, which introduces security issues and prevents them from using new features. However, little effort was done to research the exact problem points. The project could include improving skinning documentation,organizing training sprints/sessions, talking to users to identify problems, researching skinning practices in other open source platforms and suggesting an action plan to improve the skinning experience.

Maria Miteva proposed this project.

URL:https://www.mediawiki.org/wiki/Mentorship_programs/Possible_projects#Improving_the_skinning_experience


Version: unspecified
Severity: enhancement
URL: https://www.mediawiki.org/wiki/Manual:Skinning/Tutorial

Details

Reference
bz57801

Event Timeline

bzimport raised the priority of this task from to Low.Nov 22 2014, 2:34 AM
bzimport set Reference to bz57801.
bzimport added a subscriber: Unknown Object (MLST).

vladjohn2013 wrote:

This proposal has been listed at https://www.mediawiki.org/wiki/Mentorship_programs/Possible_projects and we are filing a report to gather community feedback and share updates.

While this is a valid and worthy task, this ticket seems to cover many potential ideas. I don't see a relation to the "Extensions requests" component here, hence moving to Skins component.
It's also hard to define when this bug report could be considered "fixed" (proposal sounds mostly like ongoing activities) which would make it invalid.

As seen in MediaWiki-General (slightly edited)

<Isarra> Improving the skinning experience - the problems mentioned aren't with the skinning system, but with practices in core.
<qgil> Isarra, yes. It is a proposal that doesn't have an active promoter. If you think that it doesn't make any sense, then probably the simplest thing is to WONTFIX and remove from Possible Projects
<qgil> or turn it into the right project that MediaWiki needs :)
<Isarra> qgil: Well, it could be made to make sense. It's just on completely the wrong track at the moment.
<Isarra> I mean, the skinning system definitely needs... help.
<Isarra> But it's also already so much better than pretty much anything else I have every seen.
<Isarra> Have you looked at wordpress? It's soup!
<Isarra> Which is actually probably fine. For wordpress.
<qgil> Isarra, I see what you mean. We can be very pragmatic here: either that project is in a state where a GSoC / OPW participant can do something useful with it, or not.
<qgil> Isarra, currently it is too vague.
<qgil> Isarra, (and probably not the best bite for a newcomer?)
<Isarra> qgil: Aye...
<Isarra> It could work, but it'd need to be narrowed down, perhaps?
<Isarra> A specific chunk to tackle...
<qgil> Isarra, it would be great if you could propose a good first step, GSoC friendly (aka code-related) in the bug report. Something that would make sense to you.
<Isarra> qgil: I'll give it a think.
<qgil> Isarra, thank you very much!

(In reply to comment #0)

Improving the skinning experience

Research how to make the development of skins for MediaWiki easier.
Many users complain about the lack of modern skins for MediaWiki and
about having a hard time with skin development and maintenance.

The lack of skin options may well have more to do with what mediawiki is than anything else - wordpress, for instance, has many available skins... and also has many, many more installs, because the common use case is personal, not community.

People make more blogs than wikis. There are more individuals than communities.

Often sys admins keep old versions of MediaWiki due to incompatibility of
their skins, which introduces security issues and prevents them from using
new features. However, little effort was done to research the exact problem
points.

These would probably be the many of same problem points as with extensions, which fits because skins effectively are a type of extension. Development in core rarely takes into consideration third party uses, so changes are often introduced that affect how extensions and skins need to be written... and this winds up breaking many existing ones.

This seems to be particularly common with frontend-facing features, though, which might bear looking into.

The project could include improving skinning documentation

This is something that definitely needs doing. There basically is no useful documentation at present.

(Potential project - make some? Coding aspect could involve making a nice skin or two in the process, since that would probably be necessary to figure it all out anyway.)

Currently a skinner's best bet is usually just to find an existing skin to copy. But while this is indeed very effective, it can also be problematic because to do so they need to find a skin that's well-organised and modular - and none of the skins currently shipped with core are either of these things.

(Potential project - turn the core skins into default extensions and get their innards out of the rest of core? It'd certainly be nice to get that cleaned up even in general. I don't like running into bits of Vector in the middle of ResourceLoader. What.)

organizing training sprints/sessions, talking to users to identify problems,
researching skinning practices in other open source platforms and suggesting
an action plan to improve the skinning experience.

Other platforms are generally not something we want to encourage people to look at, at least for this. MediaWiki's system, bat fuck though it may be, is actually very powerful in its support for hooks, internationalisation, and other such things. It also has this exceedingly wonderful feature of not tending to turn skins into an unholy soup of files. Have you tried skinning wordpress? File soup. Horrible file soup.

Well, okay, I may be exaggerating slightly, but the point is, we actually do quite well already, and in this case turning to others is probably not going to help anyway. MediaWiki has a specific use case, WordPress has a very different use case, etc. These things each have a skinning system to serve its respective usage.

We should be paying attention to what that usage is and then cleaning things up better according to that.

Thank you for the good ideas, Isarra.

(In reply to comment #4)

The project could include improving skinning documentation

This is something that definitely needs doing. There basically is no useful
documentation at present.

(Potential project - make some? Coding aspect could involve making a nice skin
or two in the process, since that would probably be necessary to figure it all
out anyway.)

A GSoC project should be proposed starting with the development of a piece of code, being the documentation a task related to it.

Hypothetical example: turn the [[mw:Winter]] prototype into a pristine MediaWiki extension, fixing the Manual:Skins documentation on the way.

Another hypothetical example, something related to

Bug 60317 - Implement reasonably usable skin modification user interface in MediaWiki core

(Potential project - turn the core skins into default extensions and get their
innards out of the rest of core? It'd certainly be nice to get that cleaned up
even in general. I don't like running into bits of Vector in the middle of
ResourceLoader. What.)

This can work as a GSoC as long as the amount of work is reasonable and we have also a mentor with +2 willing to review the patches as they arrive. With a catchy title as well, otherwise it feels like fixing a bunch of bugs.

Wikimedia will apply to Google Summer of Code and Outreachy on Tuesday, February 17. If you want this task to become a featured project idea, please follow these instructions.

This proposal looks too vague for GSoC/Outreachy, and the area of skins is perhaps too wild/unstable right now. If someone has a more specific proposal for these outreach programs, please update the description and restore the Possible-Tech-Projects tag.

Jdlrobson renamed this task from Improving the skinning experience for developers (improve documentation etc.) to [EPIC] Improving the skinning experience for developers (improve documentation etc.).Dec 22 2015, 10:19 PM

I don't like running into bits of Vector in the middle of ResourceLoader

@Isarra can you give some concrete examples? I'd be keen to cut some tasks for any outstanding work in that area.

Jdlrobson claimed this task.

I'm going to call this resolved./
I've setup https://www.mediawiki.org/wiki/Manual:How_to_make_a_MediaWiki_skin and I'm happy to run a workshop if that's helpful at a future event (if we ever have those again :))