mediawiki-skins-MinervaNeue/skin.json

607 lines
14 KiB
JSON
Raw Normal View History

{
"name": "MinervaNeue",
"namemsg": "skinname-minerva",
"descriptionmsg": "minerva-skin-desc",
"author": [
"[https://www.mediawiki.org/wiki/Readers/Web/Team Readers Web Team]",
"Alex Hollender",
"Bahodir Mansurov",
"Florian Schmidt",
"Jan Drewniak",
"Joaquin Hernandez",
"Jon Robson",
"Juliusz Gonera",
"Piotr Miazga",
"Ryan Kaldari",
"Nick Ray",
"Sam Smith",
"Stephen Niedzielski",
"Volker E."
],
"type": "skin",
"url": "https://www.mediawiki.org/wiki/Skin:MinervaNeue",
"license-name": "GPL-2.0-or-later",
"requires": {
"MediaWiki": ">= 1.43"
},
"config": {
"MinervaDonateLink": {
"value": {
"base": false
}
},
"MinervaDownloadNamespaces": {
"value": [
0
]
},
"MinervaEnableSiteNotice": {
"value": true
},
"MinervaAlwaysShowLanguageButton": {
"value": true
},
"MinervaTalkAtTop": {
"value": {
"base": false,
"beta": false,
"loggedin": true
}
},
Feature flag overhaul Two new feature flags: 1) MinervaPersonalMenu 2) MinervaAdvancedMainMenu Changes: * AMC defaults to false on desktop - desktop doesn't have AMC mode it just enables several skin options. * WHen inserting a link at the bottom of the page check whether the talk at top of the page (tabs) is enabled.. not AMC * Update ServiceWiring to construct menu based on MinervaAdvancedMainMenu and MinervaPersonalMenu - note when former is enabled but not latter there is no way to logout. Noted in README. * Use one entry point for skins.minerva.amc.styles/index.less * Document files inside skins.minerva.amc.styles to make it clear which features they are associated with * Drop history page styles when AMC is disabled - it's not possible to ever get to these as the history page redirects in non-AMC mode * Rename the class .minerva--amc-enabled to minerva--history-page-action-enabled to reflect its real purpose and move styles from skins.minerva.base.styles to skins.minerva.amc.styles No need to worry about cached HTML as AMC runs without cache... * Remove isAnyAMCOptionEnabled - it's an antipattern and should be discouraged as it discourages the art of feature flagging. Nothing is using it after these changes. * The AMC_MODE flag is disabled. There is no need for this - AMC is not a feature and therefore not a skin option. It is a mechanism for turning on other skin options. Tests are updated. Testing: It should now be possible to enable any feature in `beta` and see it in the beta of the site. Bug: T229295 Change-Id: I48959905f5c09721b14a27aa1a5ad82849ac6263
2019-08-22 20:31:31 +00:00
"MinervaAdvancedMainMenu": {
"value": {
"base": false,
"beta": false,
"amc": true
}
Feature flag overhaul Two new feature flags: 1) MinervaPersonalMenu 2) MinervaAdvancedMainMenu Changes: * AMC defaults to false on desktop - desktop doesn't have AMC mode it just enables several skin options. * WHen inserting a link at the bottom of the page check whether the talk at top of the page (tabs) is enabled.. not AMC * Update ServiceWiring to construct menu based on MinervaAdvancedMainMenu and MinervaPersonalMenu - note when former is enabled but not latter there is no way to logout. Noted in README. * Use one entry point for skins.minerva.amc.styles/index.less * Document files inside skins.minerva.amc.styles to make it clear which features they are associated with * Drop history page styles when AMC is disabled - it's not possible to ever get to these as the history page redirects in non-AMC mode * Rename the class .minerva--amc-enabled to minerva--history-page-action-enabled to reflect its real purpose and move styles from skins.minerva.base.styles to skins.minerva.amc.styles No need to worry about cached HTML as AMC runs without cache... * Remove isAnyAMCOptionEnabled - it's an antipattern and should be discouraged as it discourages the art of feature flagging. Nothing is using it after these changes. * The AMC_MODE flag is disabled. There is no need for this - AMC is not a feature and therefore not a skin option. It is a mechanism for turning on other skin options. Tests are updated. Testing: It should now be possible to enable any feature in `beta` and see it in the beta of the site. Bug: T229295 Change-Id: I48959905f5c09721b14a27aa1a5ad82849ac6263
2019-08-22 20:31:31 +00:00
},
"MinervaPersonalMenu": {
"value": {
"base": false,
"beta": false,
"amc": true
}
Feature flag overhaul Two new feature flags: 1) MinervaPersonalMenu 2) MinervaAdvancedMainMenu Changes: * AMC defaults to false on desktop - desktop doesn't have AMC mode it just enables several skin options. * WHen inserting a link at the bottom of the page check whether the talk at top of the page (tabs) is enabled.. not AMC * Update ServiceWiring to construct menu based on MinervaAdvancedMainMenu and MinervaPersonalMenu - note when former is enabled but not latter there is no way to logout. Noted in README. * Use one entry point for skins.minerva.amc.styles/index.less * Document files inside skins.minerva.amc.styles to make it clear which features they are associated with * Drop history page styles when AMC is disabled - it's not possible to ever get to these as the history page redirects in non-AMC mode * Rename the class .minerva--amc-enabled to minerva--history-page-action-enabled to reflect its real purpose and move styles from skins.minerva.base.styles to skins.minerva.amc.styles No need to worry about cached HTML as AMC runs without cache... * Remove isAnyAMCOptionEnabled - it's an antipattern and should be discouraged as it discourages the art of feature flagging. Nothing is using it after these changes. * The AMC_MODE flag is disabled. There is no need for this - AMC is not a feature and therefore not a skin option. It is a mechanism for turning on other skin options. Tests are updated. Testing: It should now be possible to enable any feature in `beta` and see it in the beta of the site. Bug: T229295 Change-Id: I48959905f5c09721b14a27aa1a5ad82849ac6263
2019-08-22 20:31:31 +00:00
},
"MinervaHistoryInPageActions": {
"value": {
"base": false,
"beta": false,
"loggedin": true
}
},
"MinervaOverflowInPageActions": {
"value": {
"base": false,
"beta": false,
"amc": true,
"loggedin": true
}
},
"MinervaShowCategories": {
"value": {
"base": false,
"loggedin": false,
"amc": true
}
},
"MinervaPageIssuesNewTreatment": {
"value": {
"base": true,
"beta": true
}
},
"MinervaABSamplingRate": {
"value": 0
},
"MinervaNightMode": {
"value": {
"base": false,
"loggedin": false,
"amc": true
}
},
"MinervaNightModeOptions": {
"value": {
"exclude": {
"mainpage": false,
"querystring": {},
"namespaces": [],
"pagetitles": []
}
},
"description": "options for configuring where Dark/Night Mode should and should not apply. More details can be found in Hooks::shouldDisableNightMode PHP documentation."
}
},
"ValidSkinNames": {
"minerva": {
"class": "MediaWiki\\Minerva\\Skins\\SkinMinerva",
"services": [
"GenderCache",
"LinkRenderer",
"Minerva.LanguagesHelper",
"Minerva.Menu.Definitions",
"Minerva.Menu.PageActions",
"Minerva.Permissions",
"Minerva.SkinOptions",
"Minerva.SkinUserPageHelper",
"NamespaceInfo",
"RevisionLookup",
"UserIdentityUtils",
"UserOptionsManager"
],
"args": [
{
"name": "minerva",
"supportsMwHeading": true,
"templateDirectory": "includes/Skins",
"templateSectionLinks": "SectionLinks",
"tempUserBanner": true,
"wrapSiteNotice": true,
"scripts": [
"skins.minerva.scripts"
],
"styles": [
"skins.minerva.styles",
"skins.minerva.content.styles.images",
"mediawiki.hlist",
"skins.minerva.codex.styles",
"skins.minerva.icons"
],
"messages": [
"variants",
"mobile-frontend-languages-not-available",
"minerva-page-actions-language-switcher",
"sitetitle",
"mainpage",
"searchbutton",
"minerva-user-navigation",
"mobile-frontend-main-menu-button-tooltip",
"mobile-frontend-footer-sitename"
],
"menus": [
"notifications",
"associated-pages"
],
"clientPrefEnabled": true,
"responsive": true,
"link": {
"text-wrapper": {
"tag": "span"
}
}
}
]
}
},
"AutoloadNamespaces": {
"MediaWiki\\Minerva\\": "includes/"
},
"ConfigRegistry": {
"minerva": "GlobalVarConfig::newInstance"
},
"HookHandlers": {
"main": {
"class": "MediaWiki\\Minerva\\Hooks",
"services": [
"ConfiguredReadOnlyMode",
"Minerva.SkinOptions",
"UserOptionsLookup"
],
"optional_services": [
"MobileFrontend.Context"
]
},
"mobilefrontend": {
"class": "MediaWiki\\Minerva\\MobileFrontendHooks",
"services": [
"ConfigFactory",
"Minerva.SkinOptions"
]
}
},
"Hooks": {
"DifferenceEngineViewHeader": "main",
"ResourceLoaderRegisterModules": "main",
"SkinPageReadyConfig": "main",
"UserLogoutComplete": "main",
"FetchChangesList": "main",
"MobileFrontendFeaturesRegistration": "mobilefrontend",
"RequestContextCreateSkinMobile": "mobilefrontend",
"GetPreferences": "main",
"PreferencesGetLayout": "main",
"SpecialPageBeforeExecute": "main",
"ResourceLoaderGetConfigVars": "main",
"OutputPageBodyAttributes": "main"
},
"SkinLessImportPaths": {
"minerva": "resources/mediawiki.less"
},
"MessagesDirs": {
"MinervaNeue": [
"i18n"
]
},
"ResourceFileModulePaths": {
"localBasePath": "",
"remoteSkinPath": "MinervaNeue"
},
"ResourceModuleSkinStyles": {
"minerva": {
"ext.visualEditor.core.mobile": [
"skinStyles/ext.visualEditor.core.mobile.less"
],
"ext.echo.styles.badge": [
"skinStyles/ext.echo.styles.badge.less"
],
"mobile.init.styles": [
"skinStyles/mobile.init.styles/mobile.less"
],
"mobile.mediaViewer": [
"skinStyles/mobile.mediaViewer.less"
],
"mobile.special.nearby.styles": [
"skinStyles/mobile.special.nearby.styles.less"
],
"mediawiki.diff.styles": [
"skinStyles/mediawiki.diff.styles.less"
],
"mediawiki.searchSuggest": [
"skinStyles/mediawiki.searchSuggest/index.less"
],
"mediawiki.rcfilters.filters.ui": [
"skinStyles/mediawiki.rcfilters.filters.ui.less"
],
"mediawiki.action.history.styles": [
"skinStyles/mediawiki.action.history.styles.less"
],
"mediawiki.interface.helpers.styles": [
"skinStyles/mediawiki.interface.helpers.styles.less"
],
"mediawiki.rcfilters.highlightCircles.seenunseen.styles": [],
"mobile.special.mobileoptions.styles": [
"skinStyles/mobile.special.mobileoptions.styles/minerva.less"
],
"mediawiki.page.gallery.styles": [
"skinStyles/mediawiki.page.gallery.styles/tablet.less"
],
"mediawiki.special.search.styles": [
"skinStyles/mediawiki.special.search.styles/minerva.less"
],
"mediawiki.special.search.interwikiwidget.styles": [
"skinStyles/mediawiki.special.search.interwikiwidget.styles/minerva.less"
],
"mediawiki.skinning.content.parsoid": [
"skinStyles/mediawiki.skinning.content.parsoid/minerva.less"
],
"mediawiki.hlist": [
"skinStyles/mediawiki.hlist/minerva.less"
],
"mobile.languages.structured": [
"skinStyles/mobile.languages.structured/LanguageSearcher.less"
],
"mobile.startup": [
"skinStyles/mobile.startup/mobile.startup.less"
],
"mediawiki.special": [
"skinStyles/mobile.special.styles/minerva.less"
],
"mediawiki.special.preferences.styles.ooui": [
"skinStyles/mediawiki.special.preferences.styles.ooui/minerva.less"
],
"mobile.special.styles": [
"skinStyles/mobile.special.styles/minerva.less"
],
"mediawiki.editfont.styles": [
"skinStyles/mediawiki.editfont.styles/minerva.css"
],
"mediawiki.notification": [
"skinStyles/mobile.startup/drawers.less",
"skinStyles/mobile.startup/toast.less",
"skinStyles/mediawiki.watchstar.widgets.css"
],
"mediawiki.action.edit.styles": [
"skinStyles/mediawiki.action.edit.styles/minerva.less"
],
"mediawiki.content.json": [
"skinStyles/mediawiki.content-json/minerva.less"
],
"mediawiki.special.changeslist": [
"skinStyles/mediawiki.special.changeslist.less",
"skinStyles/mediawiki.special.changeslist.watchlistexpiry.less"
],
"mediawiki.special.changeslist.legend": [
"skinStyles/mediawiki.special.changeslist.legend.less"
],
"mobile.special.pagefeed.styles": [
"skinStyles/mobile.special.pagefeed.styles.less"
],
"+ext.CodeMirror.v6.visualEditor": [
"skinStyles/ext.visualEditor.codeMirror.less"
]
}
},
"ResourceModules": {
"skins.minerva.styles": {
"class": "MediaWiki\\ResourceLoader\\SkinModule",
"features": [
"normalize",
"accessibility",
"i18n-ordered-lists",
"content-body",
"content-tables",
"interface-core"
],
"styles": [
"resources/skins.minerva.styles/CSSCustomProperties.less",
"resources/skins.minerva.styles/skin.less",
"resources/skins.minerva.styles/index.less"
]
},
"skins.minerva.content.styles.images": {
"class": "MediaWiki\\ResourceLoader\\ImageModule",
"selectorWithoutVariant": "{name}",
"selectorWithVariant": "{name}--{variant}",
"defaultColor": "#36c",
"useDataURI": false,
"variants": {
"reference": {
"color": "#69f"
}
},
"images": {
"toast.mw-notification-type-error, .mw-notification.mw-notification-type-error": "resources/skins.minerva.content.styles.images/error.svg",
"a.external, .mw-parser-output a.external": {
"file": {
"ltr": "resources/skins.minerva.content.styles.images/link-external-ltr.svg",
"rtl": "resources/skins.minerva.content.styles.images/link-external-rtl.svg"
},
"variants": [
"reference"
]
}
}
},
"skins.minerva.amc.styles": {
"styles": [
Feature flag overhaul Two new feature flags: 1) MinervaPersonalMenu 2) MinervaAdvancedMainMenu Changes: * AMC defaults to false on desktop - desktop doesn't have AMC mode it just enables several skin options. * WHen inserting a link at the bottom of the page check whether the talk at top of the page (tabs) is enabled.. not AMC * Update ServiceWiring to construct menu based on MinervaAdvancedMainMenu and MinervaPersonalMenu - note when former is enabled but not latter there is no way to logout. Noted in README. * Use one entry point for skins.minerva.amc.styles/index.less * Document files inside skins.minerva.amc.styles to make it clear which features they are associated with * Drop history page styles when AMC is disabled - it's not possible to ever get to these as the history page redirects in non-AMC mode * Rename the class .minerva--amc-enabled to minerva--history-page-action-enabled to reflect its real purpose and move styles from skins.minerva.base.styles to skins.minerva.amc.styles No need to worry about cached HTML as AMC runs without cache... * Remove isAnyAMCOptionEnabled - it's an antipattern and should be discouraged as it discourages the art of feature flagging. Nothing is using it after these changes. * The AMC_MODE flag is disabled. There is no need for this - AMC is not a feature and therefore not a skin option. It is a mechanism for turning on other skin options. Tests are updated. Testing: It should now be possible to enable any feature in `beta` and see it in the beta of the site. Bug: T229295 Change-Id: I48959905f5c09721b14a27aa1a5ad82849ac6263
2019-08-22 20:31:31 +00:00
"resources/skins.minerva.amc.styles/index.less"
]
},
"skins.minerva.overflow.icons": {
"selectorWithoutVariant": ".minerva-icon--{name}",
"useDataURI": false,
"defaultColor": "#54595d",
"class": "MediaWiki\\ResourceLoader\\OOUIIconPackModule",
"variants": [],
"useMaskImage": true,
"icons": [
"block",
"ellipsis",
"articleRedirect",
"infoFilled",
"link",
"move",
"lock",
"trash",
"listBullet",
"logoWikidata",
"qrCode",
"quotes",
"unBlock",
"unLock",
"userAvatarOutline",
"userTalk",
"userAvatar",
"userAdd",
"userGroup"
]
},
"skins.minerva.icons": {
"selectorWithoutVariant": ".minerva-icon--{name}",
"useDataURI": false,
"defaultColor": "#54595d",
"class": "MediaWiki\\ResourceLoader\\OOUIIconPackModule",
"variants": [],
"useMaskImage": true,
"icons": [
"edit",
"wikiText",
"editLock",
"history",
"language",
"menu",
"search",
"userAvatar",
"userTalk",
"star",
"halfStar",
"unStar",
"die",
"heart",
"home",
"logIn",
"logOut",
"mapPin",
"settings",
"userContributions",
"unStar",
"watchlist"
]
},
"skins.minerva.mainPage.styles": {
"styles": [
"resources/skins.minerva.mainPage.styles/common.less"
]
},
"skins.minerva.userpage.styles": {
"styles": [
"resources/skins.minerva.userpage.styles/userpage.less"
]
},
"skins.minerva.personalMenu.icons": {
"class": "MediaWiki\\ResourceLoader\\OOUIIconPackModule",
"variants": [],
"useMaskImage": true,
"selectorWithoutVariant": ".minerva-icon--{name}",
"defaultColor": "#54595d",
"icons": [
"sandbox"
],
"useDataURI": false
},
"skins.minerva.mainMenu.advanced.icons": {
"class": "MediaWiki\\ResourceLoader\\OOUIIconPackModule",
"useMaskImage": true,
"selectorWithoutVariant": ".minerva-icon--{name}",
"defaultColor": "#54595d",
"icons": [
"recentChanges",
"specialPages",
"speechBubbles"
],
"variants": [],
"useDataURI": false
},
"skins.minerva.loggedin.styles": {
"styles": [
"resources/skins.minerva.loggedin.styles/styles.less"
]
},
"skins.minerva.scripts": {
tests: Adopt private require() for skins.minerva.scripts (take 2) Resubmission of Ib68f45d93a (548e94da98), which caused an error due to `require('../../`)` not working outside the module base directory. This is fixed with regression test in T373065. Further confirmed in this repo by viewing `/wiki/Special:CreateAccount?campaign=loginCTA&useskin=minerva` with this patch applied. Without the T373065 fix, the console warns: > Error: Cannot require undefined file …/ToggleList.js ------- Support for private require() in tests is available since MW 1.41: https://mediawiki.org/wiki/RL/PKG#Private_export_and_import https://mediawiki.org/wiki/RL/PKG#Virtual_files_in_traditional_modules This fixes a confusing assertion in page-issues/index.test.js, where for "insertBannersOrNotice()" it was asserting that the HTML contain "⧼skin-minerva-issue-learn-more⧽", where the ⧼ character indicates the message is not found (i.e. an error). The test had to be written this way in order to pass, because the skins.minerva.scripts module was not actually loaded, and thus its templates and messages are not present either. This lack was filled in by index.js for mw.templates, but not mw.messages. By adopting private require(), these workarounds can all be removed. == Motivation == In change I3a4024ccf90e505581, I'm working on improving the testrunner config to enforce uselang=qqx on all tests. This is passing except for GrowthExperiments and Minerva, both of which have the above workarounds in place that caused a message to be undefined, and then kept in the assertion expectation. When using uselang=qqx, values are returned as (key) instead of ⧼key⧽, which exposes these message existence errors. By removing this workaround, the test will simply import the module in the test as normal, thus the messages will exist, and thus it will expect (key), and thus it will continue to pass even after enforcing uselang=qqx. Bug: T373482 Depends-On: I777f2c12e845a738edeac00e19818d4c939a1ef1 Change-Id: I6348e5ae00776c2c01d91fa90a431b6ffe3da25d
2024-08-23 04:25:52 +00:00
"localBasePath": "resources/skins.minerva.scripts",
"remoteSkinPath": "MinervaNeue/resources/skins.minerva.scripts",
"dependencies": [
"skins.minerva.icons",
"skins.minerva.styles",
"mediawiki.cookie",
"mediawiki.util",
"mediawiki.router",
"mediawiki.Title",
"mediawiki.Uri",
"mobile.startup",
"mediawiki.user",
"mediawiki.storage",
"mediawiki.experiments",
"mediawiki.page.watch.ajax"
],
"messages": [
"skin-minerva-night-mode-unavailable",
"skin-minerva-time-ago-seconds",
"skin-minerva-time-ago-minutes",
"skin-minerva-time-ago-hours",
"skin-minerva-time-ago-days",
"skin-minerva-time-ago-months",
"skin-minerva-time-ago-years",
"echo-badge-count",
"skin-minerva-issue-learn-more",
"mobile-frontend-meta-data-issues",
"minerva-meta-data-issues-section-header",
"mobile-frontend-meta-data-issues-categories",
"mobile-frontend-meta-data-issues-header",
"mobile-frontend-languages-not-available",
"mobile-frontend-cookies-required",
"mobile-frontend-editor-redlink-create",
"mobile-frontend-editor-redlink-leave",
"mobile-frontend-editor-redlink-explain",
"minerva-download",
"minerva-watchlist-cta",
"mobile-frontend-redirected-from"
],
"styles": [
tests: Adopt private require() for skins.minerva.scripts (take 2) Resubmission of Ib68f45d93a (548e94da98), which caused an error due to `require('../../`)` not working outside the module base directory. This is fixed with regression test in T373065. Further confirmed in this repo by viewing `/wiki/Special:CreateAccount?campaign=loginCTA&useskin=minerva` with this patch applied. Without the T373065 fix, the console warns: > Error: Cannot require undefined file …/ToggleList.js ------- Support for private require() in tests is available since MW 1.41: https://mediawiki.org/wiki/RL/PKG#Private_export_and_import https://mediawiki.org/wiki/RL/PKG#Virtual_files_in_traditional_modules This fixes a confusing assertion in page-issues/index.test.js, where for "insertBannersOrNotice()" it was asserting that the HTML contain "⧼skin-minerva-issue-learn-more⧽", where the ⧼ character indicates the message is not found (i.e. an error). The test had to be written this way in order to pass, because the skins.minerva.scripts module was not actually loaded, and thus its templates and messages are not present either. This lack was filled in by index.js for mw.templates, but not mw.messages. By adopting private require(), these workarounds can all be removed. == Motivation == In change I3a4024ccf90e505581, I'm working on improving the testrunner config to enforce uselang=qqx on all tests. This is passing except for GrowthExperiments and Minerva, both of which have the above workarounds in place that caused a message to be undefined, and then kept in the assertion expectation. When using uselang=qqx, values are returned as (key) instead of ⧼key⧽, which exposes these message existence errors. By removing this workaround, the test will simply import the module in the test as normal, thus the messages will exist, and thus it will expect (key), and thus it will continue to pass even after enforcing uselang=qqx. Bug: T373482 Depends-On: I777f2c12e845a738edeac00e19818d4c939a1ef1 Change-Id: I6348e5ae00776c2c01d91fa90a431b6ffe3da25d
2024-08-23 04:25:52 +00:00
"styles.less"
],
"templates": {
tests: Adopt private require() for skins.minerva.scripts (take 2) Resubmission of Ib68f45d93a (548e94da98), which caused an error due to `require('../../`)` not working outside the module base directory. This is fixed with regression test in T373065. Further confirmed in this repo by viewing `/wiki/Special:CreateAccount?campaign=loginCTA&useskin=minerva` with this patch applied. Without the T373065 fix, the console warns: > Error: Cannot require undefined file …/ToggleList.js ------- Support for private require() in tests is available since MW 1.41: https://mediawiki.org/wiki/RL/PKG#Private_export_and_import https://mediawiki.org/wiki/RL/PKG#Virtual_files_in_traditional_modules This fixes a confusing assertion in page-issues/index.test.js, where for "insertBannersOrNotice()" it was asserting that the HTML contain "⧼skin-minerva-issue-learn-more⧽", where the ⧼ character indicates the message is not found (i.e. an error). The test had to be written this way in order to pass, because the skins.minerva.scripts module was not actually loaded, and thus its templates and messages are not present either. This lack was filled in by index.js for mw.templates, but not mw.messages. By adopting private require(), these workarounds can all be removed. == Motivation == In change I3a4024ccf90e505581, I'm working on improving the testrunner config to enforce uselang=qqx on all tests. This is passing except for GrowthExperiments and Minerva, both of which have the above workarounds in place that caused a message to be undefined, and then kept in the assertion expectation. When using uselang=qqx, values are returned as (key) instead of ⧼key⧽, which exposes these message existence errors. By removing this workaround, the test will simply import the module in the test as normal, thus the messages will exist, and thus it will expect (key), and thus it will continue to pass even after enforcing uselang=qqx. Bug: T373482 Depends-On: I777f2c12e845a738edeac00e19818d4c939a1ef1 Change-Id: I6348e5ae00776c2c01d91fa90a431b6ffe3da25d
2024-08-23 04:25:52 +00:00
"IssueNotice.mustache": "page-issues/overlay/IssueNotice.mustache"
},
"packageFiles": [
tests: Adopt private require() for skins.minerva.scripts (take 2) Resubmission of Ib68f45d93a (548e94da98), which caused an error due to `require('../../`)` not working outside the module base directory. This is fixed with regression test in T373065. Further confirmed in this repo by viewing `/wiki/Special:CreateAccount?campaign=loginCTA&useskin=minerva` with this patch applied. Without the T373065 fix, the console warns: > Error: Cannot require undefined file …/ToggleList.js ------- Support for private require() in tests is available since MW 1.41: https://mediawiki.org/wiki/RL/PKG#Private_export_and_import https://mediawiki.org/wiki/RL/PKG#Virtual_files_in_traditional_modules This fixes a confusing assertion in page-issues/index.test.js, where for "insertBannersOrNotice()" it was asserting that the HTML contain "⧼skin-minerva-issue-learn-more⧽", where the ⧼ character indicates the message is not found (i.e. an error). The test had to be written this way in order to pass, because the skins.minerva.scripts module was not actually loaded, and thus its templates and messages are not present either. This lack was filled in by index.js for mw.templates, but not mw.messages. By adopting private require(), these workarounds can all be removed. == Motivation == In change I3a4024ccf90e505581, I'm working on improving the testrunner config to enforce uselang=qqx on all tests. This is passing except for GrowthExperiments and Minerva, both of which have the above workarounds in place that caused a message to be undefined, and then kept in the assertion expectation. When using uselang=qqx, values are returned as (key) instead of ⧼key⧽, which exposes these message existence errors. By removing this workaround, the test will simply import the module in the test as normal, thus the messages will exist, and thus it will expect (key), and thus it will continue to pass even after enforcing uselang=qqx. Bug: T373482 Depends-On: I777f2c12e845a738edeac00e19818d4c939a1ef1 Change-Id: I6348e5ae00776c2c01d91fa90a431b6ffe3da25d
2024-08-23 04:25:52 +00:00
"setup.js",
"reportIfNightModeWasDisabledOnPage.js",
"addPortletLink.js",
"initMobile.js",
"searchSuggestReveal.js",
"drawers.js",
"ctaDrawers.js",
"menu.js",
"preInit.js",
"downloadPageAction.js",
"page-issues/parser.js",
"AB.js",
"page-issues/overlay/IssueNotice.js",
"page-issues/overlay/IssueList.js",
"page-issues/overlay/pageIssuesOverlay.js",
"page-issues/page/PageIssueLearnMoreLink.js",
"page-issues/page/PageIssueLink.js",
"page-issues/page/pageIssueFormatter.js",
"page-issues/index.js",
"UriUtil.js",
"TitleUtil.js",
"../../includes/Skins/ToggleList/ToggleList.js",
"TabScroll.js",
"Toolbar.js",
"mobileRedirect.js",
"search.js",
"references.js",
"watchstar.js"
]
},
"skins.minerva.categories.styles": {
"class": "MediaWiki\\ResourceLoader\\SkinModule",
"features": [
"interface-category"
]
},
"skins.minerva.codex.styles": {
"class": "MediaWiki\\ResourceLoader\\CodexModule",
"codexStyleOnly": true,
"codexComponents": [
"CdxButton"
]
}
},
"QUnitTestModule": {
tests: Adopt private require() for skins.minerva.scripts (take 2) Resubmission of Ib68f45d93a (548e94da98), which caused an error due to `require('../../`)` not working outside the module base directory. This is fixed with regression test in T373065. Further confirmed in this repo by viewing `/wiki/Special:CreateAccount?campaign=loginCTA&useskin=minerva` with this patch applied. Without the T373065 fix, the console warns: > Error: Cannot require undefined file …/ToggleList.js ------- Support for private require() in tests is available since MW 1.41: https://mediawiki.org/wiki/RL/PKG#Private_export_and_import https://mediawiki.org/wiki/RL/PKG#Virtual_files_in_traditional_modules This fixes a confusing assertion in page-issues/index.test.js, where for "insertBannersOrNotice()" it was asserting that the HTML contain "⧼skin-minerva-issue-learn-more⧽", where the ⧼ character indicates the message is not found (i.e. an error). The test had to be written this way in order to pass, because the skins.minerva.scripts module was not actually loaded, and thus its templates and messages are not present either. This lack was filled in by index.js for mw.templates, but not mw.messages. By adopting private require(), these workarounds can all be removed. == Motivation == In change I3a4024ccf90e505581, I'm working on improving the testrunner config to enforce uselang=qqx on all tests. This is passing except for GrowthExperiments and Minerva, both of which have the above workarounds in place that caused a message to be undefined, and then kept in the assertion expectation. When using uselang=qqx, values are returned as (key) instead of ⧼key⧽, which exposes these message existence errors. By removing this workaround, the test will simply import the module in the test as normal, thus the messages will exist, and thus it will expect (key), and thus it will continue to pass even after enforcing uselang=qqx. Bug: T373482 Depends-On: I777f2c12e845a738edeac00e19818d4c939a1ef1 Change-Id: I6348e5ae00776c2c01d91fa90a431b6ffe3da25d
2024-08-23 04:25:52 +00:00
"localBasePath": "tests/qunit/skins.minerva.scripts",
"remoteSkinPath": "MinervaNeue/tests/qunit/skins.minerva.scripts",
"dependencies": [
"mediawiki.cookie",
tests: Adopt private require() for skins.minerva.scripts (take 2) Resubmission of Ib68f45d93a (548e94da98), which caused an error due to `require('../../`)` not working outside the module base directory. This is fixed with regression test in T373065. Further confirmed in this repo by viewing `/wiki/Special:CreateAccount?campaign=loginCTA&useskin=minerva` with this patch applied. Without the T373065 fix, the console warns: > Error: Cannot require undefined file …/ToggleList.js ------- Support for private require() in tests is available since MW 1.41: https://mediawiki.org/wiki/RL/PKG#Private_export_and_import https://mediawiki.org/wiki/RL/PKG#Virtual_files_in_traditional_modules This fixes a confusing assertion in page-issues/index.test.js, where for "insertBannersOrNotice()" it was asserting that the HTML contain "⧼skin-minerva-issue-learn-more⧽", where the ⧼ character indicates the message is not found (i.e. an error). The test had to be written this way in order to pass, because the skins.minerva.scripts module was not actually loaded, and thus its templates and messages are not present either. This lack was filled in by index.js for mw.templates, but not mw.messages. By adopting private require(), these workarounds can all be removed. == Motivation == In change I3a4024ccf90e505581, I'm working on improving the testrunner config to enforce uselang=qqx on all tests. This is passing except for GrowthExperiments and Minerva, both of which have the above workarounds in place that caused a message to be undefined, and then kept in the assertion expectation. When using uselang=qqx, values are returned as (key) instead of ⧼key⧽, which exposes these message existence errors. By removing this workaround, the test will simply import the module in the test as normal, thus the messages will exist, and thus it will expect (key), and thus it will continue to pass even after enforcing uselang=qqx. Bug: T373482 Depends-On: I777f2c12e845a738edeac00e19818d4c939a1ef1 Change-Id: I6348e5ae00776c2c01d91fa90a431b6ffe3da25d
2024-08-23 04:25:52 +00:00
"skins.minerva.scripts",
"mobile.startup",
"mediawiki.user",
"mediawiki.experiments",
"mediawiki.Uri"
],
tests: Adopt private require() for skins.minerva.scripts (take 2) Resubmission of Ib68f45d93a (548e94da98), which caused an error due to `require('../../`)` not working outside the module base directory. This is fixed with regression test in T373065. Further confirmed in this repo by viewing `/wiki/Special:CreateAccount?campaign=loginCTA&useskin=minerva` with this patch applied. Without the T373065 fix, the console warns: > Error: Cannot require undefined file …/ToggleList.js ------- Support for private require() in tests is available since MW 1.41: https://mediawiki.org/wiki/RL/PKG#Private_export_and_import https://mediawiki.org/wiki/RL/PKG#Virtual_files_in_traditional_modules This fixes a confusing assertion in page-issues/index.test.js, where for "insertBannersOrNotice()" it was asserting that the HTML contain "⧼skin-minerva-issue-learn-more⧽", where the ⧼ character indicates the message is not found (i.e. an error). The test had to be written this way in order to pass, because the skins.minerva.scripts module was not actually loaded, and thus its templates and messages are not present either. This lack was filled in by index.js for mw.templates, but not mw.messages. By adopting private require(), these workarounds can all be removed. == Motivation == In change I3a4024ccf90e505581, I'm working on improving the testrunner config to enforce uselang=qqx on all tests. This is passing except for GrowthExperiments and Minerva, both of which have the above workarounds in place that caused a message to be undefined, and then kept in the assertion expectation. When using uselang=qqx, values are returned as (key) instead of ⧼key⧽, which exposes these message existence errors. By removing this workaround, the test will simply import the module in the test as normal, thus the messages will exist, and thus it will expect (key), and thus it will continue to pass even after enforcing uselang=qqx. Bug: T373482 Depends-On: I777f2c12e845a738edeac00e19818d4c939a1ef1 Change-Id: I6348e5ae00776c2c01d91fa90a431b6ffe3da25d
2024-08-23 04:25:52 +00:00
"scripts": [
"integration.test.js",
"downloadPageAction.test.js",
"page-issues/parser.test.js",
"AB.test.js",
"page-issues/index.test.js",
"UriUtil.test.js",
"TitleUtil.test.js",
"watchstar.test.js"
]
},
"ServiceWiringFiles": [
"includes/ServiceWiring.php"
],
"attributes": {
"DarkMode": {
"Disabled": [
"minerva"
]
},
"MobileFrontend": {
"EditorAvailableSkins": [
"minerva"
]
},
"VisualEditor": {
"IconSkins": [
"minerva"
]
}
},
"DefaultUserOptions": {
"minerva-theme": "day"
},
"manifest_version": 2
}