Page MenuHomePhabricator

Migrate skins to modern menus and drop legacy personal and namespaces menu
Open, LowPublic

Description

In future this will allow us to optimize the work that skins do generating menu for rendering. This will also allow us to make changes this support better caching for logged in users.

TODO

  • Migrate all skins to modern menus
  • Drop support for older menus

Migration steps for skins

  • Skins will need to explicitly declare a "menus" skin option in skin.json

Before:

"ValidSkinNames": {
              "modern": {
                      "class": "SkinMustache",
                      "args": [
                              {
                                      "name": "modern",
                                      "scripts": [],
                                      "styles": [
                                              "skins.modern"
                                      ]

After:

"ValidSkinNames": {
              "modern": {
                      "class": "SkinMustache",
                      "args": [
                              {
                                      "name": "modern",
                                      "scripts": [],
                                      "styles": [
                                              "skins.modern"
                                      ],
                                      "menus": [
                                               "namespaces",
                                               "personal",
                                              "user-menu",
                                              "notifications",
                                              "user-interface-preferences",
                                              "user-page",
                                              "associated-pages",
                                              "views",
                                              "actions"
                                      ],
  • Update $this->data['content_navigation']['namespaces'] to $this->data['content_navigation']['associated-pages']
  • References in CSS to #p-namespaces should be changed #p-associated-pages
  • References to personal menu key should be replaced with code that merges user-interface-preferences, user-page, notifications, user-menu. See associated T422975: Deprecate BaseTemplate::getPersonalTools
  • Update calls to content_actions. See associated T423303: Deprecate SkinTemplate content_actions
  • Remove "namespaces" and "personal" from the menus option and note impact of menu rendering
  • Make sure the following is in skin.json
"requires": {
                "MediaWiki": ">= 1.46"
        },

Event Timeline

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

[mediawiki/core@master] [DONOTMERGE/Future] WIP: Remove support for legacy menus and optimize

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

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

[mediawiki/extensions/WikiLambda@master] Do not read/write from unused namespaces menu

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

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

[mediawiki/extensions/Flow@master] Do not read/write from unused namespaces menu

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

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

[mediawiki/extensions/CommunityRequests@master] Remove modification of namespaces menu

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

Change #1238754 merged by jenkins-bot:

[mediawiki/extensions/WikiLambda@master] Do not read/write from unused namespaces menu

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

Change #1238756 merged by jenkins-bot:

[mediawiki/extensions/CommunityRequests@master] Remove modification of namespaces menu

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

Change #1238755 abandoned by Jdlrobson:

[mediawiki/extensions/Flow@master] Do not read/write from unused namespaces menu

Reason:

Please feel free to restore if need be.

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

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

[mediawiki/skins/GreyStuff@master] WIP: Fix deprecation warnings for 1.46

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

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

[mediawiki/skins/Foreground@master] Fix deprecation warnings for 1.46

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

Change #1263433 merged by jenkins-bot:

[mediawiki/skins/Foreground@master] Fix deprecation warnings for 1.46

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

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

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

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

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

[mediawiki/skins/Cosmos@master] Upgrade for 1.46

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

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

[mediawiki/core@master] BaseTemplate::getPersonalTools shouldn't trigger deprecation warnings

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

Change #1267099 abandoned by Jdlrobson:

[mediawiki/core@master] BaseTemplate::getPersonalTools shouldn't trigger deprecation warnings

Reason:

On second thoughts let's deprecate this https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1270090

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