Page MenuHomePhabricator

Fix or archive skin using deprecated Skin::setupSkinUserCss() method
Open, MediumPublicBUG REPORT

Description

Skin::setupSkinUserCss() was a step in adding the stylesheets to the generated page. Skins that used to override this method now (since 1.36-wmf.5) appear completely unstyled.
The task is to make all skins in the ecosystem operational again. The deadline for this task is the first 1.36-beta release.

History

Soft deprecated in 1.32, hard deprecated in 1.36, planned to be removed in 1.37 (T257990#6336906).
It was erroneously removed in 1.36-wmf.5 (patch), breaking non-WMF skins in violation of the Stable interface policy.

Impacts 26 skins and extensions:
https://codesearch.wmcloud.org/search/?q=setupSkinUserCss&i=nope&files=&repos=librewiki/Liberty-MW-Skin,ProfessionalWiki/chameleon,Skin:Amethyst,Skin:Bouquet,Skin:Cosmos,Skin:Daddio,Skin:DeskMessMirrored,Skin:Dusk,Skin:DuskToDawn,Skin:erudite,Skin:EUCopyrightCampaignSkin,Skin:Gamepress,Skin:HasSomeColours,Skin:Mask,Skin:Material,Skin:mediawiki-strapping,Skin:Metrolook,Skin:Nimbus,Skin:p2wiki,Skin:Refreshed,Skin:Tempo,Skin:Truglass,Skin:webplatform,Skin:WPtouch,thingles/foreground,wiki-chan/ModernSkylight
(Note: URL filters out unaffected skins - some skins extending the function without doing anything.

Ignored steps of the Stable Interface Policy
  • "Code MUST emit hard deprecation notices for at least one major MediaWiki version before being removed. It is RECOMMENDED to emit hard deprecation notices for at least two major MediaWiki versions."
  • "The removal MUST also be mentioned in the relevant RELEASE-NOTES file"
  • "Developers MAY email wikitech-l or mediawiki-l about the soft or hard deprecation depending on severity."
  • "[...] may be necessary to make breaking changes [...] In such a case, developers MUST email wikitech-l ahead of time, explaining why deprecation is not possible or not reasonable, and providing an opportunity for affected parties to raise concerns and propose alternatives."
Does not apply:
  • "The deprecation process may be bypassed for code that is unused within the MediaWiki ecosystem. [...] can be searched using the code search tool."
  • "Additionally, in some rare cases, it may be necessary to make breaking changes without deprecation it in a major MediaWiki version beforehand, because the old behavior cannot reasonably be emulated. In such a case, developers MUST email wikitech-l ahead of time, explaining why deprecation is not possible or not reasonable, and providing an opportunity for affected parties to raise concerns and propose alternatives."
See also

Formalization of the solution: T267085: Clarify deprecation of method overrides in the stable interface policy

Details

ProjectBranchLines +/-Subject
mediawiki/skins/Gamepressmaster+35 -24
mediawiki/skins/eruditemaster+23 -13
mediawiki/skins/GuMaxDDmaster+4 -13
mediawiki/skins/WPtouchmaster+19 -17
mediawiki/skins/Nimbusmaster+22 -15
mediawiki/skins/p2wikimaster+16 -23
mediawiki/skins/Schulenburgmaster+0 -12
mediawiki/skins/Amethystmaster+28 -37
mediawiki/extensions/Blackoutmaster+0 -12
mediawiki/skins/HasSomeColoursmaster+131 -501
mediawiki/skins/Maskmaster+15 -19
mediawiki/skins/Materialmaster+13 -15
mediawiki/skins/Metrolookmaster+5 -4
mediawiki/skins/Cosmosmaster+57 -83
mediawiki/coremaster+20 -3
mediawiki/skins/BlueSpiceCalummaREL1_35+19 -15
mediawiki/skins/BlueSpiceCalummamaster+19 -15
mediawiki/coremaster+21 -2
mediawiki/skins/apexmaster+11 -15
mediawiki/skins/apexmaster+6 -5
Show related patches Customize query in gerrit

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
Demian updated the task description. (Show Details)Oct 29 2020, 3:09 AM

Change 637115 had a related patch set uploaded (by Aron Manning; owner: Aron Manning):
[mediawiki/skins/apex@master] SkinApex: Migrate deprecated setupSkinUserCss() to getDefaultModules()

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

Change 622254 had a related patch set uploaded (by Aron Manning; owner: Aron Manning):
[mediawiki/core@master] Skin: Fix deprecation of Skin::setupSkinUserCss()

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

Change 637115 merged by jenkins-bot:
[mediawiki/skins/apex@master] SkinApex: Migrate deprecated setupSkinUserCss() to getDefaultModules()

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

Change 637620 had a related patch set uploaded (by Aron Manning; owner: Aron Manning):
[mediawiki/skins/Material@master] Material.skin: Migrate setupSkinUserCss() to skin.json

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

Change 637599 had a related patch set uploaded (by Aron Manning; owner: Aron Manning):
[mediawiki/skins/apex@master] SkinApex: Migrate getDefaultModules() to skin.json

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

Change 637635 had a related patch set uploaded (by Aron Manning; owner: Aron Manning):
[mediawiki/skins/Metrolook@master] SkinMetrolook: Migrate deprecated setupSkinUserCss() to getDefaultModules()

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

Demian updated the task description. (Show Details)Oct 30 2020, 4:21 PM

Change 637599 merged by jenkins-bot:
[mediawiki/skins/apex@master] SkinApex: Migrate getDefaultModules() to skin.json

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

Change 638203 had a related patch set uploaded (by Aron Manning; owner: Aron Manning):
[mediawiki/core@master] Skin: Fix deprecation of Skin::setupSkinUserCss() using DeprecateOverridesHelper

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

Demian triaged this task as High priority.Nov 3 2020, 4:46 AM

The deadline for this task is the first 1.36-beta release.

Demian updated the task description. (Show Details)Nov 3 2020, 4:54 AM
Demian updated the task description. (Show Details)Nov 3 2020, 8:59 AM
Demian updated the task description. (Show Details)Nov 3 2020, 9:02 AM
Demian updated the task description. (Show Details)
phuedx added a subscriber: phuedx.Nov 5 2020, 4:27 PM
Jdlrobson added a subscriber: Jdlrobson.

I'm happy to review patches that fix impacted skins, however, many of these skins have not been touched for years and would really benefit from volunteers maintaining and caring for them if we want to have a healthy and active skin system. I've added tags to all those impacted (note many skins do extend this method but without any functionality so are not impacted by this change)

I'm not sure if any of these skins are still maintained but have opened up issues for the github/lab hosted skins:

In future my hope is to get a MediaWiki skin site up and running to showcase all the skins in our ecosystem and make more incentive for skin development.

Restricted Application added a subscriber: MacFan4000. · View Herald TranscriptNov 6 2020, 10:55 PM
Jdlrobson renamed this task from Unmaintained skins broken by faulty deprecation of Skin::setupSkinUserCss() to Unmaintained skins broken by hard deprecation / disabling of Skin::setupSkinUserCss() method.Nov 6 2020, 10:56 PM

I do want to note my objection to the use of the word "unmaintained" to describe several ShoutWiki skins (Bouquet, Dusk, DuskToDawn, Gamepress, Nimbus, Refreshed, Truglass) as well as some of @Isarra's skins (HasSomeColours, Mask); additionally I sorta maintain MediaWiki-skins-WebPlatform and WPtouch. @SamanthaNguyen is the primary author of MediaWiki-skins-Amethyst and has recently contributed to Cosmos.

MediaWiki-skins-Tempo is basically abandonware, though I just patched it against 1.35 a few days ago, including fixes for the Echo support and whatnot; patches are in gerrit, reviews are more than welcome (despite that I've tested the patches, it's more than possible that something slipped past my radar because old codebase is ooooold)!

MediaWiki-skins-Daddio appears rather broken on MW 1.35+; I wasn't able to quite fix it by copy-pasting master Modern code and tweaking it appropriately when I tried last week; I guess git master of Modern is now de facto 1.36+? Also, like Tempo, it's abandoned.

I'm not sure if any of these skins are still maintained but have opened up issues for the github/lab hosted skins:

Thank you for this, Jon, much appreciated! Things these days are moving so quickly that even for someone who actively follows things (or tries to, anyway!) and hosts the vast majority of their code on WMF gerrit, it's not exactly easy to stay in the loop, so I'm sure third-parties appreciate the gesture of good will. :)

Though not related to this task, I do want to note that "skins" which are actually just CSS changes to an existing skin should really...not be a thing, because we have Theme and have had it for years. (Theme actually ships with a dark Vector and a dark MonoBook theme, though I don't know how they compare to this skin, or if that is even the case here; for all I know DarkVector may have some DOM and JS changes, which obviously cannot be implemented via Theme.)

(Another unrelated comment, please bear with me.) It's a great skin but the upstream repository (linked here) hasn't been touched since 2017 and even then it was quite a mess. I forked the skin for ShoutWiki (live demo) when it was first released in May 2015 and I've been somewhat maintaining our private fork of that. I guess I should request a repository for it on WMF gerrit so that there'd be at least one usable, installable, maintainable version of the skin out there. (There's no doubt a lot of legacy code in that repo, and all the comments and docs being in Korean is not exactly helpful for us non-Korean speakers out here.)

In future my hope is to get a MediaWiki skin site up and running to showcase all the skins in our ecosystem and make more incentive for skin development.

That would be great to have, and no doubt it'd help end-users in picking the right skin for their site.

I do want to note my objection to the use of the word "unmaintained" to describe several

Sorry I was generalizing here. Sorry if I offended! Isarra and yourself have been very awesome at keeping up to date, as have BlueSpice. On the other hand some skins don't even have mediawiki.org pages and haven't seen commits in years. :)

mediawiki-skins-Tempo is basically abandonware, though I just patched it against 1.35 a few days ago, including fixes for the Echo support and whatnot; patches are in gerrit, reviews are more than welcome (despite that I've tested the patches, it's more than possible that something slipped past my radar because old codebase is ooooold)!

The crux of what I'm saying is I don't want these skins to be abandonware! The main reason we're making these deprecating changes is to make skin development less prone to breakage and a lot clearer than it was before.

Where skins are lacking maintainers let's find volunteers to adopt them. I want people to start caring about these skins and find inspiration to build new skins. It's a big personal disappointment of mine that there are not many MediaWiki skins out in the wild, and I'm fed up of finding wikis for my favorite video games in hacked versions of Vector/Minerva :)

Every now and again I look at skins and see patchsets opened from over a year ago on these skin repos and it makes me sad.

If a skin is unmaintainted to the point that even a volunteer would not be able to do much with it, I think we should make that clear by archiving the skin or updating its skin.json to clearly define its MediaWiki compatibility.

Change 639884 had a related patch set uploaded (by Jdlrobson; owner: Jdlrobson):
[mediawiki/skins/Gamepress@master] Upgrade SkinGamepress to take advantage of new skin capabilities

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

Aklapper removed Demian as the assignee of this task.Nov 8 2020, 10:22 AM

[Resetting assignee due to inactive user account]

Change 639970 had a related patch set uploaded (by Pwirth; owner: Pwirth):
[mediawiki/skins/BlueSpiceCalumma@REL1_35] Replace usage of since 1.32 deperecated Skin::setupSkinUserCss

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

Change 639933 had a related patch set uploaded (by Pwirth; owner: Pwirth):
[mediawiki/skins/BlueSpiceCalumma@master] Replace usage of since 1.32 deperecated Skin::setupSkinUserCss

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

In future my hope is to get a MediaWiki skin site up and running to showcase all the skins in our ecosystem and make more incentive for skin development.

That would be great to have, and no doubt it'd help end-users in picking the right skin for their site.

I've created a wiki (https://skins.toolforge.org/wiki/Main_Page) with all stable skins and also skins under wmf version control (Gerrit) that work with modern versions of MediaWiki.

Change 639933 merged by jenkins-bot:
[mediawiki/skins/BlueSpiceCalumma@master] Replace usage of since 1.32 deperecated Skin::setupSkinUserCss

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

Change 639970 merged by jenkins-bot:
[mediawiki/skins/BlueSpiceCalumma@REL1_35] Replace usage of since 1.32 deperecated Skin::setupSkinUserCss

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

Change 640325 had a related patch set uploaded (by Jack Phoenix; owner: Jack Phoenix):
[mediawiki/skins/Mask@master] Update for MediaWiki 1.35+

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

Jdlrobson lowered the priority of this task from High to Medium.Nov 16 2020, 7:40 PM

1.36 is a while away so I think medium better reflects this task. I am confident we'll get skins fixed or archived before then.

Change 639875 had a related patch set uploaded (by Jdlrobson; owner: Jdlrobson):
[mediawiki/skins/Nimbus@master] Make Nimbus skin 1.36 compatible

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

Jdlrobson renamed this task from Unmaintained skins broken by hard deprecation / disabling of Skin::setupSkinUserCss() method to Fix or archive skin using deprecated Skin::setupSkinUserCss() method.Nov 24 2020, 11:44 PM
Jdlrobson removed a project: Platform Engineering.
Jdlrobson edited projects, added Platform Engineering; removed MediaWiki-skins-Daddio.

Daddio is being archived so untagging (T267455)

Platform engineering have made sure these skins are not broken now so untagging them and renamed.

Jdlrobson updated the task description. (Show Details)Nov 25 2020, 12:00 AM
Jdlrobson updated the task description. (Show Details)

Change 644649 had a related patch set uploaded (by Universal Omega; owner: Universal Omega):
[mediawiki/skins/Cosmos@master] Cleanup skin.json and SkinCosmos.php

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

Change 644649 merged by jenkins-bot:
[mediawiki/skins/Cosmos@master] Cleanup skin.json and SkinCosmos.php

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

Change 637635 merged by jenkins-bot:
[mediawiki/skins/Metrolook@master] SkinMetrolook: Migrate deprecated setupSkinUserCss() to getDefaultModules()

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

Change 637620 merged by jenkins-bot:
[mediawiki/skins/Material@master] Material.skin: Migrate setupSkinUserCss() to skin.json

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

Change 640325 merged by jenkins-bot:
[mediawiki/skins/Mask@master] Update for MediaWiki 1.35+

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

Change 650274 had a related patch set uploaded (by Isarra; owner: Isarra):
[mediawiki/skins/HasSomeColours@master] Use updated everything

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

Change 650274 merged by jenkins-bot:
[mediawiki/skins/HasSomeColours@master] Use updated everything

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

Change 650538 had a related patch set uploaded (by Jdlrobson; owner: Jdlrobson):
[mediawiki/extensions/Blackout@master] The setupSkinUserCss method is deprecated and not ever run

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

Change 650538 merged by jenkins-bot:
[mediawiki/extensions/Blackout@master] The setupSkinUserCss method is deprecated and not ever run

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

Change 650541 had a related patch set uploaded (by Jdlrobson; owner: Jdlrobson):
[mediawiki/skins/Amethyst@master] Modernize Amethyst skin code

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

Change 650541 merged by jenkins-bot:
[mediawiki/skins/Amethyst@master] Modernize Amethyst skin code

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

Change 651785 had a related patch set uploaded (by Jdlrobson; owner: Jdlrobson):
[mediawiki/skins/Schulenburg@master] Drop unused setupSkinUserCss

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

Change 651785 merged by jenkins-bot:
[mediawiki/skins/Schulenburg@master] Drop unused setupSkinUserCss

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

Change 651815 had a related patch set uploaded (by Jdlrobson; owner: Jdlrobson):
[mediawiki/skins/WPtouch@master] Skin::setupSkinUserCss() method is deprecated

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

Change 651828 had a related patch set uploaded (by Jdlrobson; owner: Jdlrobson):
[mediawiki/skins/GuMaxDD@master] Add support for 1.35

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

Change 651831 had a related patch set uploaded (by Jdlrobson; owner: Jdlrobson):
[mediawiki/skins/p2wiki@master] Should support 1.35 / 1.36

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

Change 651831 merged by jenkins-bot:
[mediawiki/skins/p2wiki@master] Should support 1.35 / 1.36

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

Change 651815 merged by jenkins-bot:
[mediawiki/skins/WPtouch@master] Skin::setupSkinUserCss() method is deprecated

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

Change 639875 merged by jenkins-bot:
[mediawiki/skins/Nimbus@master] Make Nimbus skin 1.36 compatible

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

Jdlrobson closed this task as Resolved.Dec 23 2020, 10:43 PM
Jdlrobson reopened this task as Open.
Jdlrobson claimed this task.
Jdlrobson removed a project: Nimbus.

Change 651828 merged by Jdlrobson:
[mediawiki/skins/GuMaxDD@master] Add support for 1.35

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

Change 654335 had a related patch set uploaded (by Jdlrobson; owner: Jdlrobson):
[mediawiki/skins/erudite@master] Add 1.35 support

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

Change 654335 merged by jenkins-bot:
[mediawiki/skins/erudite@master] Add 1.35 support

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

phuedx removed a subscriber: phuedx.Fri, Jan 8, 10:49 AM

Change 639884 merged by jenkins-bot:
[mediawiki/skins/Gamepress@master] Upgrade SkinGamepress to take advantage of new skin capabilities

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