Page MenuHomePhabricator

Remove $wgVectorResponsive from legacy mode
Closed, ResolvedPublic

Description

$wgVectorResponsive is only enabled on testwiki and doesn't appear to be used elsewhere. As the configuration was introduced about four years ago, it seems unlikely to suddenly become popular and is most probably a good candidate for removal.

Precursor

  • The new Vector is seen as a worthy replacement for the flag.

Acceptance criteria

  • $wgVectorResponsive turns on the Skin responsive option for the modern skin.
  • skins.vector.styles.responsive is removed from the codebase

QA

QA Results - Prod

ACStatusDetails
1T242772#6874977

Event Timeline

I believe this configuration is used in 3rd party wikis. Perhaps Izno can provide specific examples or further details?

I don't know. It just seems bizarre that something we wanted 4 years ago apparently is no longer wanted, and no circumstances related to the original work have changed. :) I would expect that as part of the Vector rework we'll get to a responsive mode again, but maybe that's not an explicit requirement of that work? (I am fairly certain that is an objective/requirement.)

I believe the reason it was enabled only on beta was because people were requested to try it out, not because it wasn't ready for full deployment or another. It probably should have been deployed then in some fashion or another. Maybe @Isarra knows different.

It seems only slightly weird to me to not cc the people who were actively involved in creating and merging this feature (@Harej, the original author of the CSS code, me, who did some cleanup and integration, and @Legoktm, who merged the original patch and @TheDJ who further improved the original code) when you're talking about killing off a useful feature...

Now then...the whole configuration global exists because @Jdlrobson figured that some people would dislike the change for various reasons. The rationale for that made sense at the time, and to some extent, still does; though I feel that having an important feature such as responsiveness default to false is wrong, and should WMF wikis not want the feature, for whatever reasons, it could and should default to false only on WMF wikis and canonically default to true in skin.json.

That being said, on ShoutWiki this global has been enabled since day one and continues to be enabled, there being over 3,800 wikis that use Vector as their default skin. I'm not telling you how to implement responsiveness, but I am certainly vouching for the importance of responsiveness in general; it doesn't matter how it's implemented, as long as it is there. Mobile is a big deal and its importance is unlikely to diminish in the near future, so in that context, it seems silly that we are even discussing the subject of "should we remove responsiveness from a popular skin".

What ashley said.

Unless the plan is to replace it with a new implementation that better meets the same use cases before the next major release, removing a used feature with no cited specific issues is generally poor practice. Whether or not the WMF specifically uses this isn't particularly relevant.

As @ashley points out this is used by third parties and it also is enabled on the mobile domain of Wikimedia wikis (https://en.m.wikipedia.org/wiki/Spain?useskin=vector).

On hindsight, given what happened with "responsive Monobook" (and related conversations e.g. T196721) and in the end it became an opt out user preference - I still think the flag was a good idea. I would like to see it improved and folded into the default experience or removed once a new version of Vector exists.

That said, I think any decision to remove it should involve an RFC around the future of the flag to respect the people that did work on this and check we're all on the same page.

This config variable does need to be limited to legacy Vector - where skin version is 1 - as otherwise it's going to break pretty quickly.

Jdlrobson renamed this task from Remove unused configuration $wgVectorResponsive to Limit $wgVectorResponsive to legacy mode.Apr 17 2020, 7:02 PM
Jdlrobson updated the task description. (Show Details)

As TheDJ and Harej both have unsubscribed from this task without comment, are the original concerns presented as pertinent? Would forking the current repo to a "Skin:ResponsiveVector" and removing the config from Skin:Vector be a better idea? Persisting this configuration in any form is costly from my perspective.

I do think we need to decouple these styles from the newly developed Vector prior to T246420 which will have the side effect of adding responsive styles to the new version of Vector without need for a feature flag. Given what @Isarra has said in T242772#5806191 it seems like that wouldn't be controversial. I'm happy to revert to the old task name and create a subtask for that if you think that makes sense.

I'd hope on the long term the new version of Vector we are building would have responsiveness of some sort built into it meaning we can remove the config altogether. Legacy mode would be non-responsive and satisfy the very people that led to the config flag in the first place.

Given the concerns raised @ashley and @Isarra so I'm hopeful that with time and good output we can convince them that we've provided a sound alternative and the config can be removed.

From a user-experience engineer standpoint I strongly share both angles of @Niedzielski as original author and @Jdlrobson above.
We should aim in the long-term for wrapping some of the findings from responsive Vector into latest Vector, limit the current stylesheet to legacy Vector and remove the flag.
It's already incredibly long and extremely painful to test against different viewports with Vector outside of the flag. We have only very limited quality assurance resources and adding just another 3 test cases (breakpoints) with an extra manual configuration flag sounds like shooting into our own foot while juggle a plethora of needs trying to run for an acceptable user experience on time and scope.

Jdlrobson renamed this task from Limit $wgVectorResponsive to legacy mode to [later] Remove $wgVectorResponsive from legacy mode.Jun 8 2020, 5:30 PM
Jdlrobson changed the task status from Open to Stalled.
Jdlrobson updated the task description. (Show Details)

Change 647772 had a related patch set uploaded (by Jdlrobson; owner: Jdlrobson):
[mediawiki/skins/Vector@master] Repurpose $wgVectorResponsive as modern skin

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

Jdlrobson changed the task status from Stalled to Open.EditedDec 10 2020, 8:11 PM

Hey @Izno @ashley @Isarra I'm looking into repurposing the feature flag for early next year.

The upgrade of Vector will look a lot nicer on mobile browsers than the current stalled implemented version and will allow us to close out all tasks on https://phabricator.wikimedia.org/project/view/1658/

I'd be interested in whether you see the following as a worthy replacement before pushing forward with this though
https://gerrit.wikimedia.org/r/c/mediawiki/skins/Vector/+/647772

Please note this is still a WIP so there will be many more improvements to follow:

Screen Shot 2020-12-10 at 12.10.35 PM.png (1×870 px, 151 KB)

Screen Shot 2020-12-10 at 12.10.29 PM.png (1×882 px, 132 KB)

$wgVectorResponsive is used on wiki.wikimedia.it, IIRC.

$wgVectorResponsive is used on wiki.wikimedia.it, IIRC.

And those will still get a responsive layout with the changes proposed in T242772#6683316

No fundamental issue from me, I was just the first to catch the original description before work started. :^)

Jdlrobson renamed this task from [later] Remove $wgVectorResponsive from legacy mode to Remove $wgVectorResponsive from legacy mode.Dec 11 2020, 12:10 AM

Change 647772 abandoned by Jdlrobson:
[mediawiki/skins/Vector@master] Repurpose $wgVectorResponsive as modern skin

Reason:
Right now we are only supporting down to 500px. So Vector modern is not quite ready to replace this.

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

Change 659503 had a related patch set uploaded (by Jdlrobson; owner: Jdlrobson):
[mediawiki/skins/Vector@master] Simplify responsive Vector implementation

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

Just waiting on input from @ashley
If this is deemed an acceptable step in the right direction we will push forward

Just waiting on input from @ashley
If this is deemed an acceptable step in the right direction we will push forward

Fine by me; go right ahead!

Thanks for the input everyone!
The only wikimedia wiki I know that's using this flag (test.wikipedia.org) already defaults to the next skin.

I've refreshed the documentation on https://www.mediawiki.org/wiki/Skin:Vector#wgVectorResponsive in preparation for the change.

Change 659503 merged by jenkins-bot:
[mediawiki/skins/Vector@master] Simplify responsive Vector implementation

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

Edtadros subscribed.

Test Result - Prod

Status: ✅ PASS
Environment: test
OS: macOS Big Sur
Browser: Chrome
Device: MBP
Emulated Device: iPhone 11 Max Pro

Test Artifact(s):

QA Steps

AC1: Check that test wiki mobile domain loaded in mobile adapts to the viewport.

Screen Recording 2021-03-02 at 7.14.27 AM.mov.gif (900×414 px, 3 MB)

Resolving. MediaWiki Skin:Vector has been updated documenting the change.