Page MenuHomePhabricator

Deprecate legacy "personal" and "namespaces" menu from SkinTemplate
Closed, ResolvedPublic

Assigned To
Authored By
Jdlrobson-WMF
Nov 10 2025, 7:10 PM
Referenced Files
F71510295: T409774-de.png
Mon, Jan 12, 5:42 PM
F71510331: rc-app-link.png
Mon, Jan 12, 5:42 PM
F71508194: T409774-h.png
Mon, Jan 12, 11:49 AM
F71508193: T409774-g.png
Mon, Jan 12, 11:49 AM
F71508197: T409774-d.png
Mon, Jan 12, 11:49 AM
F71508195: T409774-c.png
Mon, Jan 12, 11:49 AM
F71508313: T409774-y.png
Mon, Jan 12, 11:49 AM
F71508312: T409774-z.png
Mon, Jan 12, 11:49 AM

Description

Background

When building Vector 2022 we reorganized menus to support breaking certain items out of existing menus. We needed to ensure backwards compability. As a result we have a lot of convoluted code that makes it hard to follow how menus are constructed. Removing this will make this code easier to work with.

Notifications are rendered in a legacy menu "personal" as well as a modern menu "user-menu". This makes the code more difficult to reason with.

Skin::getOptions already allows skins to declare the menus for which they need data. This show now be a requirement of skins to allow us to remove these legacy menus.

Going forward we'll make specifying this a requirement. On the long term this will also allow us to reduce the PHP processing time in SkinTemplate by only generating menus that are needed.

TODO

Event Timeline

Change #1203506 had a related patch set uploaded (by Jdlrobson; author: Jdlrobson):

[mediawiki/core@master] POC: Deprecate legacy menus

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

(Would need sufficient coordination but worth working towards a deprecation for next MediaWiki Release)

Change #1217248 had a related patch set uploaded (by Jdlrobson; author: Jdlrobson):

[mediawiki/core@master] Allow skins based on SkinTemplate to request new menus

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

Change #1217256 had a related patch set uploaded (by Jdlrobson; author: Jdlrobson):

[mediawiki/skins/Vector@master] Legacy Vector should use modern menu keys

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

Change #1217257 had a related patch set uploaded (by Jdlrobson; author: Jdlrobson):

[mediawiki/skins/Timeless@master] Timeless should use associated pages menu for sourcing Page / Discussion tabs

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

Change #1217248 merged by jenkins-bot:

[mediawiki/core@master] Allow skins based on SkinTemplate to request new menus

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

Change #1217257 merged by jenkins-bot:

[mediawiki/skins/Timeless@master] Timeless should use associated pages menu for sourcing Page / Discussion tabs

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

It looks like Timeless now has two 'edit watchlist' links (when wlenhancedfilters-disable is not true):

image.png (246×1 px, 42 KB)

(Noticed by @GMikesell-WMF in T411842.)

Change #1224771 had a related patch set uploaded (by Jdlrobson; author: Jdlrobson):

[mediawiki/skins/Modern@master] Migrate to modern menu system

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

Change #1225004 had a related patch set uploaded (by Jdlrobson; author: Jdlrobson):

[mediawiki/core@master] Do not generate namespaces menu if not requested by skin

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

It looks like Timeless now has two 'edit watchlist' links (when wlenhancedfilters-disable is not true):

image.png (246×1 px, 42 KB)

(Noticed by @GMikesell-WMF in T411842.)

I believe the duplication is not related to this task. The right side link is added by core RCFilters App but only for skins that don't have the top bar. Presumaly Timeless should be added to the list.

  1. Special:Watchlist (with or without RCFilters App) will now show a navigation bar.
  2. The navigation bar moves to namespace/page-actions level tab
Special:Watchlist+RCFilters (before)(after)Special:Watchlist (before)(after)
T409774-a.png (716×2 px, 105 KB)
T409774-b.png (706×2 px, 124 KB)
T409774-z.png (710×1 px, 168 KB)
T409774-y.png (684×1 px, 171 KB)
  1. Special pages lose their namespace tab
Special:RecentChanges (before)(after)Special:BlankPage (before)(after)
T409774-c.png (636×2 px, 161 KB)
T409774-d.png (620×2 px, 159 KB)
T409774-g.png (406×1 px, 40 KB)
T409774-h.png (408×1 px, 38 KB)
  1. Yes the display of the navigation bar is intentional as this feature is new and Vector is opting into it. T414246: Watchlist displays multiple 'edit watchlist' links (when wlenhancedfilters-disable is not true and skin is not using deprecated menus) will hopefully result in the removal of those additional links.
  2. I forgot that we intentionally don't show the link in associated pages (since it is identical to the current page) - thanks for pointing this out! I am not sure how controversial removing this would be. We have two options here - we can either omit it and see how the community reacts (perhaps doing this on Monobook first?) or we can make this configurable. Making it configurable would require a new kind of skin option (E.g. ttps://gerrit.wikimedia.org/r/c/mediawiki/core/+/1225610 ) which I'd rather avoid if I can (unless we suspect similar needs arising in future). I wonder if there's something we could tie this feature too that already exists...? Any ideas?
  1. Yes the display of the navigation bar is intentional as this feature is new and Vector is opting into it. T414246: Watchlist displays multiple 'edit watchlist' links (when wlenhancedfilters-disable is not true and skin is not using deprecated menus) will hopefully result in the removal of those additional links.

I might be mistaken, but I don’t think that’s quite correct. From what I understand, the RCFilters app adds an 'Edit Watchlist' link on the right-hand side (when the skin doesn’t already have that top bar, the logic itself is broken as you noted T414246#11509768 ). Because of that, I believe the app wouldn’t remove these links, it sounds like you are expecting that.

In the image below, I’ve highlighted in green the Watchlist link that the app manages.

rc-app-link.png (724×2 px, 161 KB)

I do have some concerns about this change, as it feels like a fairly noticeable visual adjustment. In languages with longer words, such as German (de), the new position may stretch the links excessively in my view, and it will result in pushing the search box down, which might affect the placement of the usual help icon.

I believe if extensions append to the list, the tabs may even require two lines to display or maybe push the searchbox even further.

T409774-de.png (532×2 px, 151 KB)

  1. I forgot that we intentionally don't show the link in associated pages (since it is identical to the current page) - thanks for pointing this out! I am not sure how controversial removing this would be. We have two options here - we can either omit it and see how the community reacts (perhaps doing this on Monobook first?) or we can make this configurable. Making it configurable would require a new kind of skin option (E.g. ttps://gerrit.wikimedia.org/r/c/mediawiki/core/+/1225610 ) which I'd rather avoid if I can (unless we suspect similar needs arising in future). I wonder if there's something we could tie this feature too that already exists...? Any ideas?

At first, it will likely look quite jarring to people, as it does to me. Over time, though, users will probably get used to the new placement. The newly empty space clearly gives the impression that something has been removed, which is understandable since many of us are used to seeing that area occupied.

I think it'd be good to start removing it in Monobook first.

From what I understand, the RCFilters app adds an 'Edit Watchlist' link on the right-hand side (when the skin doesn’t already have that top bar, the logic itself is broken as you noted T414246#11509768 ). Because of that, I believe the app wouldn’t remove these links, it sounds like you are expecting that.

I'm expecting there will be duplicate links until T414246 is addressed. My recommendation for fixing T414246 would be to ultimately remove the link altogether as once this task is done, all skins will have access to edit watchlist from the tabs. In the short term we could expand the array of skins, but I do not think this is a significant regression to prioritise.

I do have some concerns about this change, as it feels like a fairly noticeable visual adjustment. In languages with longer words, such as German (de), the new position may stretch the links excessively in my view, and it will result in pushing the search box down, which might affect the placement of the usual help icon.

The change has been visible on the default skins Minerva and Vector 2022 for almost 3 years without complaint so I am not concerned about that:
https://de.wikipedia.org/w/index.php?title=Spezial:Beobachtungsliste&uselang=de&useskin=vector-2022

At first, it will likely look quite jarring to people, as it does to me. Over time, though, users will probably get used to the new placement. The newly empty space clearly gives the impression that something has been removed, which is understandable since many of us are used to seeing that area occupied.

I propose we simply retain the behaviour inside skins. The legacy Vector patch has been updated to do that.

Change #1226289 had a related patch set uploaded (by Jdlrobson; author: Jdlrobson):

[mediawiki/skins/MonoBook@master] Use modern menu keys

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

Okay! Let's do Monobook first (https://gerrit.wikimedia.org/r/c/mediawiki/skins/MonoBook/+/1226289) with the core fix (https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1224770). This has been adjusted so the "Special page" tab is present on all special pages which do not have associated pages.

If we find Monobook users hate this change, we'll update the hook to define the special page tab for all special pages ( and remove all the other tabs).

If not, we can proceed with the modification in behaviour in legacy Vector.

Does that make sense?

Yes, looks good to me. I have left a comment there.

Change #1226905 had a related patch set uploaded (by Jdlrobson; author: Jdlrobson):

[mediawiki/skins/Vector@master] Restore duplicate user page link in the dropdown for low resolutions

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

Change #1226289 merged by jenkins-bot:

[mediawiki/skins/MonoBook@master] Use modern menu keys

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

Change #1226905 merged by jenkins-bot:

[mediawiki/skins/Vector@master] Restore duplicate user page link in the dropdown for low resolutions

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

Change #1226957 had a related patch set uploaded (by Jdlrobson; author: Jdlrobson):

[mediawiki/skins/CologneBlue@master] Migrate CologneBlue to modern menus

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

Change #1226959 had a related patch set uploaded (by Jdlrobson; author: Jdlrobson):

[mediawiki/extensions/ContentTranslation@master] ContentTranslation needs to request the menus it uses

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

Change #1226959 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] ContentTranslation needs to request the menus it uses

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

Change #1233225 had a related patch set uploaded (by Ammarpad; author: Ammarpad):

[mediawiki/core@master] SpecialWatchlist: Do not add incomplete subtitle

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

Change #1226957 merged by jenkins-bot:

[mediawiki/skins/CologneBlue@master] Migrate CologneBlue to modern menus

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

Change #1224771 merged by jenkins-bot:

[mediawiki/skins/Modern@master] Migrate to modern menu system

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

Change #1217256 merged by jenkins-bot:

[mediawiki/skins/Vector@master] Legacy Vector should use modern menu keys

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

Change #1234470 had a related patch set uploaded (by Jdlrobson; author: Jdlrobson):

[mediawiki/skins/Modern@master] Drop unused personal menu

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

Change #1234542 had a related patch set uploaded (by Jdlrobson; author: Jdlrobson):

[mediawiki/skins/MinervaNeue@master] Fix incomplete test

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

Change #1234470 merged by jenkins-bot:

[mediawiki/skins/Modern@master] Drop unused personal menu

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

Change #1234542 merged by jenkins-bot:

[mediawiki/skins/MinervaNeue@master] tests: Fix incomplete test

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

Ammarpad changed the task status from Stalled to Open.Thu, Feb 5, 12:04 PM
Ammarpad changed the task status from Open to Stalled.
Ammarpad updated the task description. (Show Details)

Change #1203506 merged by jenkins-bot:

[mediawiki/core@master] Deprecate legacy menus namespaces and personal

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

Jdlrobson-WMF renamed this task from Drop legacy "personal" menu from SkinTemplate to Deprecate legacy "personal" and "namespaces" menu from SkinTemplate.Thu, Feb 5, 11:57 PM
Jdlrobson-WMF claimed this task.
Jdlrobson-WMF updated the task description. (Show Details)
Jdlrobson-WMF added a subscriber: Quiddity.

Thanks for adding that here (I saw that too). Yes we had similar feedback for Monobook. Editors can easily disable it via gadgets and it brings legacy Vector into consistency with how Vector 2022 has been for a couple of years so I am not too concerned.

I see @Quiddity replied there (thank you!) with a good explanation. Certainly having more skins function the same makes software development easier across the board. I am just sorry it took so long to bring these skins in line with the default ones (maintaining all these skins is hard work!)

Next steps: