Last modified: 2014-04-26 16:50:13 UTC
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.
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 (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
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.
Related, a GSoC proposal: