Page MenuHomePhabricator

When local skin folder is empty, blank page is shown without further information
Open, Needs TriagePublic

Description

I think this is a feature request to help administrators. We just ran into another corner case issue using MediaWiki 1.30. Our MediaWiki uses extensions/ and skins/ from GitHub sources rather than release ZIPs because it is easy to keep them up to date with a 'git pull'.

Recently the skin VectorV2 (https://www.mediawiki.org/wiki/Skin:VectorV2) deleted all of its source files from GitHub. Confer, https://github.com/wikimedia/mediawiki-extensions-VectorV2 .

Our LocalSettings used VectorV2 as the default skin:

# cat LocalSettings.php | grep -i vector
$wgMFDefaultSkinClass = "SkinVector";
$wgDefaultSkin = 'VectorV2';
wfLoadSkin('Vector');
wfLoadSkin('VectorV2');
wfLoadSkin('DarkVector');

After updating out GitHub sources (and losing VectorV2 source files) our MediaWiki began serving empty pages.

We enabled all the customary logging but we still got an empty page with nothing in the warning or error logs:

# tail -n 7 LocalSettings.php
ini_set( 'display_errors', 1 );
$wgShowErrors = true;
$wgShowSQLErrors=true;
$wgShowExceptionDetails = true;
$wgShowDBErrorBacktrace = true;

To be clear, we still have a <wiki install>/skins/VectorV2/ in our wiki installation. It is just empty now because the authors deleted all of the source files.

The feature request is, when a skin is not available please serve a page that says "Skin VectorV2 is not available" rather than a blank page with no warnings or errors logged anywhere.


Here is a transcript of our script that updates the GitHub sources for extensions/ and skins/. Notice the deletions that occurred. It tipped us off the trouble was probably related to VectorV2 skin.

[root@ftpit ~]# bash /var/www/html/update-wiki.sh
Updating /var/www/html/w/skins/Refreshed/
HEAD is now at 613c8a6 Localisation updates from https://translatewiki.net.
Already up-to-date.
Updating /var/www/html/w/skins/Erudite/
HEAD is now at 6f02c83 Localisation updates from https://translatewiki.net.
Already up-to-date.
Updating /var/www/html/w/skins/Truglass/
HEAD is now at 175450c Localisation updates from https://translatewiki.net.
Already up-to-date.
Updating /var/www/html/w/skins/Nimbus/
HEAD is now at e70dce5 Localisation updates from https://translatewiki.net.
remote: Counting objects: 45, done.
remote: Compressing objects: 100% (44/44), done.
remote: Total 45 (delta 21), reused 0 (delta 0)
Unpacking objects: 100% (45/45), done.
From https://phabricator.wikimedia.org/diffusion/SNIM/nimbus
   e70dce5..6b98169  master     -> origin/master
Updating e70dce5..6b98169
Fast-forward
 i18n/tt-cyrl.json                                  |   1 +
 includes/NimbusTemplate.php                        |  36 +-
 nimbus/Nimbus.css                                  | 590 +--------------------
 nimbus/article_tab_off_left_ltr.gif                | Bin 133 -> 0 bytes
 nimbus/article_tab_off_left_rtl.gif                | Bin 134 -> 0 bytes
 nimbus/article_tab_off_right_ltr.gif               | Bin 78 -> 0 bytes
 nimbus/article_tab_off_right_rtl.gif               | Bin 78 -> 0 bytes
 nimbus/article_tab_on_left_ltr.gif                 | Bin 132 -> 0 bytes
 nimbus/article_tab_on_left_rtl.gif                 | Bin 132 -> 0 bytes
 nimbus/article_tab_on_right_ltr.gif                | Bin 83 -> 0 bytes
 nimbus/article_tab_on_right_rtl.gif                | Bin 82 -> 0 bytes
 nimbus/category_button_left_ltr.gif                | Bin 121 -> 0 bytes
 nimbus/category_button_left_rtl.gif                | Bin 121 -> 0 bytes
 nimbus/category_button_right_ltr.gif               | Bin 172 -> 0 bytes
 nimbus/category_button_right_rtl.gif               | Bin 169 -> 0 bytes
 nimbus/navigation_bottom.gif                       | Bin 432 -> 0 bytes
 nimbus/navigation_top.gif                          | Bin 406 -> 0 bytes
 nimbus/negative_button_left_ltr.gif                | Bin 121 -> 0 bytes
 nimbus/negative_button_left_rtl.gif                | Bin 121 -> 0 bytes
 nimbus/negative_button_right_ltr.gif               | Bin 172 -> 0 bytes
 nimbus/negative_button_right_rtl.gif               | Bin 169 -> 0 bytes
 nimbus/plus.gif                                    | Bin 81 -> 0 bytes
 nimbus/positive_button_left_ltr.gif                | Bin 121 -> 0 bytes
 nimbus/positive_button_left_rtl.gif                | Bin 121 -> 0 bytes
 nimbus/positive_button_right_ltr.gif               | Bin 172 -> 0 bytes
 nimbus/positive_button_right_rtl.gif               | Bin 171 -> 0 bytes
 nimbus/search_button.gif                           | Bin 511 -> 0 bytes
 .../extensions/BlogPage/articlesHome.css           |   0
 .../extensions/BlogPage/create.css                 |   0
 .../extensions/BlogPage}/ext.blogPage.css          |   0
 .../SocialProfile/userboard.boardblast.css         |   0
 .../extensions/SocialProfile/usergifts.css         |   0
 .../extensions/SocialProfile/userprofile.css       |   0
 .../extensions/SocialProfile/userrelationship.css  |   0
 .../extensions}/ext.miniInvite.css                 |   0
 .../extensions}/ext.pollNY.css                     |   0
 .../extensions}/ext.quizGame.css                   |   0
 resources/extensions/extensions.less               | 200 +++++++
 .../mediawiki/special.preferences.styles.less      |   0
 resources/styles/skin.nimbus.actiontabs.less       | 119 +++++
 resources/styles/skin.nimbus.buttons.less          |  41 ++
 resources/styles/skin.nimbus.footer.less           |  88 +++
 resources/styles/skin.nimbus.hacks.clear.less      |  21 +
 resources/styles/skin.nimbus.hacks.shoutwiki.less  |  23 +
 resources/styles/skin.nimbus.login.less            |  27 +
 resources/styles/skin.nimbus.navigation.less       |  32 ++
 skin.json                                          |  46 +-
 47 files changed, 606 insertions(+), 618 deletions(-)
 delete mode 100644 nimbus/article_tab_off_left_ltr.gif
 delete mode 100644 nimbus/article_tab_off_left_rtl.gif
 delete mode 100644 nimbus/article_tab_off_right_ltr.gif
 delete mode 100644 nimbus/article_tab_off_right_rtl.gif
 delete mode 100644 nimbus/article_tab_on_left_ltr.gif
 delete mode 100644 nimbus/article_tab_on_left_rtl.gif
 delete mode 100644 nimbus/article_tab_on_right_ltr.gif
 delete mode 100644 nimbus/article_tab_on_right_rtl.gif
 delete mode 100644 nimbus/category_button_left_ltr.gif
 delete mode 100644 nimbus/category_button_left_rtl.gif
 delete mode 100644 nimbus/category_button_right_ltr.gif
 delete mode 100644 nimbus/category_button_right_rtl.gif
 delete mode 100644 nimbus/navigation_bottom.gif
 delete mode 100644 nimbus/navigation_top.gif
 delete mode 100644 nimbus/negative_button_left_ltr.gif
 delete mode 100644 nimbus/negative_button_left_rtl.gif
 delete mode 100644 nimbus/negative_button_right_ltr.gif
 delete mode 100644 nimbus/negative_button_right_rtl.gif
 delete mode 100644 nimbus/plus.gif
 delete mode 100644 nimbus/positive_button_left_ltr.gif
 delete mode 100644 nimbus/positive_button_left_rtl.gif
 delete mode 100644 nimbus/positive_button_right_ltr.gif
 delete mode 100644 nimbus/positive_button_right_rtl.gif
 delete mode 100644 nimbus/search_button.gif
 rename skinStyles/ext.blogPage.articlesHome.css => resources/extensions/BlogPage/articlesHome.css (100%)
 rename skinStyles/ext.blogPage.create.css => resources/extensions/BlogPage/create.css (100%)
 rename {skinStyles => resources/extensions/BlogPage}/ext.blogPage.css (100%)
 rename skinStyles/ext.socialprofile.userboard.boardblast.css => resources/extensions/SocialProfile/userboard.boardblast.css (100%)
 rename skinStyles/ext.socialprofile.usergifts.css => resources/extensions/SocialProfile/usergifts.css (100%)
 rename skinStyles/ext.socialprofile.userprofile.css => resources/extensions/SocialProfile/userprofile.css (100%)
 rename skinStyles/ext.socialprofile.userrelationship.css => resources/extensions/SocialProfile/userrelationship.css (100%)
 rename {skinStyles => resources/extensions}/ext.miniInvite.css (100%)
 rename {skinStyles => resources/extensions}/ext.pollNY.css (100%)
 rename {skinStyles => resources/extensions}/ext.quizGame.css (100%)
 create mode 100644 resources/extensions/extensions.less
 rename skinStyles/mediawiki.special.preferences.styles.less => resources/mediawiki/special.preferences.styles.less (100%)
 create mode 100644 resources/styles/skin.nimbus.actiontabs.less
 create mode 100644 resources/styles/skin.nimbus.buttons.less
 create mode 100644 resources/styles/skin.nimbus.footer.less
 create mode 100644 resources/styles/skin.nimbus.hacks.clear.less
 create mode 100644 resources/styles/skin.nimbus.hacks.shoutwiki.less
 create mode 100644 resources/styles/skin.nimbus.login.less
 create mode 100644 resources/styles/skin.nimbus.navigation.less
Updating /var/www/html/w/skins/MonoBook/
HEAD is now at 916698d Localisation updates from https://translatewiki.net.
remote: Counting objects: 72, done.
remote: Compressing objects: 100% (72/72), done.
remote: Total 72 (delta 55), reused 0 (delta 0)
Unpacking objects: 100% (72/72), done.
From https://phabricator.wikimedia.org/diffusion/SMNB/monobook
   916698d..795f148  master     -> origin/master
 * [new branch]      wmf/1.32.0-wmf.7 -> origin/wmf/1.32.0-wmf.7
Updating 916698d..795f148
Fast-forward
 composer.json             |  2 +-
 i18n/ar.json              | 10 ++++++++--
 i18n/ast.json             | 10 +++++++++-
 i18n/be-tarask.json       |  3 ++-
 i18n/cs.json              | 14 +++++++++++--
 i18n/de.json              |  3 ++-
 i18n/en.json              |  3 ++-
 i18n/es.json              |  3 ++-
 i18n/fa.json              | 13 ++++++++++--
 i18n/he.json              |  3 ++-
 i18n/ko.json              |  3 ++-
 i18n/mk.json              |  3 ++-
 i18n/pt.json              |  3 ++-
 i18n/qqq.json             |  3 ++-
 i18n/sv.json              |  3 ++-
 i18n/tt-cyrl.json         | 10 +++++++++-
 i18n/zh-hans.json         |  3 ++-
 i18n/zh-hant.json         |  3 ++-
 includes/SkinMonoBook.php | 51 ++++++++++++++++++++++++++++++++---------------
 resources/mobile-echo.js  |  2 +-
 resources/mobile-uls.js   |  2 +-
 resources/mobile.js       |  2 +-
 resources/mobile.js.less  | 24 ++++++++++++----------
 skin.json                 | 20 ++++++++++++++++---
 24 files changed, 143 insertions(+), 53 deletions(-)
Updating /var/www/html/w/skins/WPtouch/
HEAD is now at e89feb3 Localisation updates from https://translatewiki.net.
Already up-to-date.
Updating /var/www/html/w/skins/Scepticismus/
HEAD is now at ab9ab3f Update README
Already up-to-date.
Updating /var/www/html/w/skins/Naiad/
HEAD is now at 5d703d2 Update naiad skin to MediaWiki 1.25
Already up-to-date.
Updating /var/www/html/w/skins/CologneBlue/
HEAD is now at 7d4df89 Localisation updates from https://translatewiki.net.
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 3), reused 0 (delta 0)
Unpacking objects: 100% (4/4), done.
From https://phabricator.wikimedia.org/diffusion/SCBL/cologneblue
   7d4df89..bfd627c  master     -> origin/master
 * [new branch]      wmf/1.32.0-wmf.7 -> origin/wmf/1.32.0-wmf.7
Updating 7d4df89..bfd627c
Fast-forward
 i18n/nap.json | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
Updating /var/www/html/w/skins/Splash/
HEAD is now at 550c7ae Localisation updates from https://translatewiki.net.
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 3), reused 0 (delta 0)
Unpacking objects: 100% (4/4), done.
From https://phabricator.wikimedia.org/diffusion/SSPL/splash
   550c7ae..4188224  master     -> origin/master
Updating 550c7ae..4188224
Fast-forward
 i18n/tt-cyrl.json | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
Updating /var/www/html/w/skins/Bouquet/
HEAD is now at e47d52d Localisation updates from https://translatewiki.net.
Already up-to-date.
Updating /var/www/html/w/skins/GreyStuff/
HEAD is now at a384e65 Localisation updates from https://translatewiki.net.
remote: Counting objects: 16, done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 16 (delta 9), reused 0 (delta 0)
Unpacking objects: 100% (16/16), done.
From https://phabricator.wikimedia.org/diffusion/SGRY/greystuff
   a384e65..d04dd39  master     -> origin/master
Updating a384e65..d04dd39
Fast-forward
 i18n/inh.json                                           | 8 ++++++++
 GreyStuffTemplate.php => includes/GreyStuffTemplate.php | 0
 GreyStuff.skin.php => includes/SkinGreyStuff.php        | 0
 resources/main.less                                     | 5 +++++
 skin.json                                               | 6 +++---
 5 files changed, 16 insertions(+), 3 deletions(-)
 create mode 100644 i18n/inh.json
 rename GreyStuffTemplate.php => includes/GreyStuffTemplate.php (100%)
 rename GreyStuff.skin.php => includes/SkinGreyStuff.php (100%)
Updating /var/www/html/w/skins/DarkVector/
HEAD is now at 276f677 German translation
Already up-to-date.
Updating /var/www/html/w/skins/Material/
HEAD is now at be24f2b Localisation updates from https://translatewiki.net.
Already up-to-date.
Updating /var/www/html/w/skins/Daddio/
HEAD is now at 3502453 Localisation updates from https://translatewiki.net.
Already up-to-date.
Updating /var/www/html/w/skins/Tweeki/
HEAD is now at d9438f2 Merge pull request #116 from djflux/master
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 6 (delta 4), reused 6 (delta 4), pack-reused 0
Unpacking objects: 100% (6/6), done.
From https://github.com/thaider/Tweeki
   d9438f2..bbe3cd4  master     -> origin/master
Updating d9438f2..bbe3cd4
Fast-forward
 Tweeki.hooks.php         |   5 +++
 components/carousel.less | 103 +++++++++++++++++++++++++++++++++++++++++++++++
 screen.less              |   1 +
 3 files changed, 109 insertions(+)
 create mode 100644 components/carousel.less
Updating /var/www/html/w/skins/Gamepress/
HEAD is now at 895c954 Remove leftover Modernizr fallback for CSS transitions
Already up-to-date.
Updating /var/www/html/w/skins/Metrolook/
HEAD is now at f2bd187 build: Updating mediawiki/mediawiki-codesniffer to 20.0.0
Already up-to-date.
Updating /var/www/html/w/skins/Timeless/
HEAD is now at 70b5f24 Fix condition for 'emptyPortlet' class
remote: Counting objects: 15, done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 15 (delta 11), reused 0 (delta 0)
Unpacking objects: 100% (15/15), done.
From https://phabricator.wikimedia.org/source/Timeless
   70b5f24..26c2f73  master     -> origin/master
 * [new branch]      wmf/1.32.0-wmf.7 -> origin/wmf/1.32.0-wmf.7
Updating 70b5f24..26c2f73
Fast-forward
 composer.json                | 2 +-
 i18n/inh.json                | 3 ++-
 resources/screen-common.less | 3 +--
 3 files changed, 4 insertions(+), 4 deletions(-)
Updating /var/www/html/w/skins/Pivot/
HEAD is now at 15cce18 Merge branch 'develop'
Already up-to-date.
Updating /var/www/html/w/skins/VectorV2/
HEAD is now at e9ec54f build: Updating mediawiki/mediawiki-codesniffer to 20.0.0
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From https://phabricator.wikimedia.org/diffusion/SVEV/vectorv
   e9ec54f..501ad65  master     -> origin/master
Updating e9ec54f..501ad65
Fast-forward
 .jscsrc                                            |   3 -
 .jshintignore                                      |   1 -
 .jshintrc                                          |  24 -
 .phpcs.xml                                         |   9 -
 ARCHIVED                                           |   1 +
 CODE_OF_CONDUCT.md                                 |   1 -
 COPYING                                            | 339 -------------
 Gruntfile.js                                       |  36 --
 SkinVectorV2.php                                   |  76 ---
 VectorV2.php                                       |  14 -
 VectorV2Template.php                               | 556 ---------------------
 collapsibleTabs.js                                 | 209 --------
 components/common.less                             | 159 ------
 components/externalLinks.less                      |  10 -
 components/footer.less                             |  57 ---
 components/navigation.less                         | 145 ------
 components/personalMenu.less                       |  45 --
 components/search.less                             | 114 -----
 components/tabs.less                               | 265 ----------
 components/watchstar.less                          |  48 --
 composer.json                                      |  53 --
 hooks.txt                                          |   6 -
 i18n/ais.json                                      |   9 -
 i18n/ar.json                                       |  21 -
 i18n/ast.json                                      |  21 -
 i18n/atj.json                                      |  11 -
 i18n/ba.json                                       |  16 -
 i18n/be-tarask.json                                |  20 -
 i18n/bg.json                                       |  21 -
 i18n/bn.json                                       |  20 -
 i18n/bs.json                                       |  19 -
 i18n/ca.json                                       |  13 -
 i18n/ce.json                                       |  20 -
 i18n/cs.json                                       |  19 -
 i18n/da.json                                       |  20 -
 i18n/de.json                                       |  20 -
 i18n/diq.json                                      |  23 -
 i18n/dty.json                                      |  19 -
 i18n/el.json                                       |  20 -
 i18n/en.json                                       |  21 -
 i18n/es.json                                       |  21 -
 i18n/eu.json                                       |  22 -
 i18n/fa.json                                       |  20 -
 i18n/fi.json                                       |  20 -
 i18n/fr.json                                       |  20 -
 i18n/gl.json                                       |  20 -
 i18n/he.json                                       |  20 -
 i18n/hi.json                                       |  21 -
 i18n/hu.json                                       |  21 -
 i18n/ia.json                                       |  20 -
 i18n/id.json                                       |  21 -
 i18n/ig.json                                       |  11 -
 i18n/it.json                                       |  21 -
 i18n/ja.json                                       |  21 -
 i18n/jv.json                                       |  19 -
 i18n/kab.json                                      |  20 -
 i18n/km.json                                       |  19 -
 i18n/ko.json                                       |  21 -
 i18n/ksh.json                                      |  20 -
 i18n/ku-latn.json                                  |  19 -
 i18n/lag.json                                      |   8 -
 i18n/lb.json                                       |  20 -
 i18n/lij.json                                      |   9 -
 i18n/lt.json                                       |  19 -
 i18n/lv.json                                       |  20 -
 i18n/mk.json                                       |  23 -
 i18n/mr.json                                       |  20 -
 i18n/mwl.json                                      |  13 -
 i18n/nah.json                                      |   9 -
 i18n/nb.json                                       |  23 -
 i18n/nl.json                                       |  21 -
 i18n/oc.json                                       |  20 -
 i18n/pa.json                                       |  20 -
 i18n/pl.json                                       |  20 -
 i18n/ps.json                                       |  20 -
 i18n/pt-br.json                                    |  24 -
 i18n/pt.json                                       |  21 -
 i18n/qqq.json                                      |  30 --
 i18n/ro.json                                       |  20 -
 i18n/ru.json                                       |  21 -
 i18n/sah.json                                      |  11 -
 i18n/sgs.json                                      |  19 -
 i18n/shy-latn.json                                 |   9 -
 i18n/skr-arab.json                                 |  19 -
 i18n/sl.json                                       |  20 -
 i18n/sr-ec.json                                    |  21 -
 i18n/sr-el.json                                    |  20 -
 i18n/sv.json                                       |  23 -
 i18n/tay.json                                      |   8 -
 i18n/tcy.json                                      |  19 -
 i18n/tr.json                                       |   8 -
 i18n/tt-cyrl.json                                  |  20 -
 i18n/udm.json                                      |  10 -
 i18n/uk.json                                       |  21 -
 i18n/ur.json                                       |  20 -
 i18n/vi.json                                       |  23 -
 i18n/yi.json                                       |  19 -
 i18n/zgh.json                                      |  15 -
 i18n/zh-hans.json                                  |  22 -
 i18n/zh-hant.json                                  |  21 -
 images/arrow-collapsed-ltr.png                     | Bin 130 -> 0 bytes
 images/arrow-collapsed-ltr.svg                     |   1 -
 images/arrow-collapsed-rtl.png                     | Bin 132 -> 0 bytes
 images/arrow-collapsed-rtl.svg                     |   1 -
 images/arrow-down-focus-icon.png                   | Bin 133 -> 0 bytes
 images/arrow-down-focus-icon.svg                   |   1 -
 images/arrow-down-icon.png                         | Bin 133 -> 0 bytes
 images/arrow-down-icon.svg                         |   1 -
 images/arrow-expanded.png                          | Bin 133 -> 0 bytes
 images/arrow-expanded.svg                          |   1 -
 images/bullet-icon.png                             | Bin 105 -> 0 bytes
 images/bullet-icon.svg                             |   4 -
 images/external-link-ltr-icon.png                  | Bin 151 -> 0 bytes
 images/external-link-ltr-icon.svg                  |   1 -
 images/external-link-rtl-icon.png                  | Bin 146 -> 0 bytes
 images/external-link-rtl-icon.svg                  |   1 -
 images/link-icon.png                               | Bin 347 -> 0 bytes
 images/magnify-clip.png                            | Bin 148 -> 0 bytes
 images/page-fade.png                               | Bin 114 -> 0 bytes
 images/portal-break-ltr.png                        | Bin 166 -> 0 bytes
 images/portal-break-rtl.png                        | Bin 159 -> 0 bytes
 images/portal-break.png                            | Bin 96 -> 0 bytes
 images/preferences/break.png                       | Bin 102 -> 0 bytes
 images/preferences/fade.png                        | Bin 85 -> 0 bytes
 images/search-fade.png                             | Bin 94 -> 0 bytes
 images/search-ltr.png                              | Bin 176 -> 0 bytes
 images/search-ltr.svg                              |   1 -
 images/search-rtl.png                              | Bin 176 -> 0 bytes
 images/search-rtl.svg                              |   1 -
 images/tab-break.png                               | Bin 124 -> 0 bytes
 images/tab-current-fade.png                        | Bin 69 -> 0 bytes
 images/tab-normal-fade.png                         | Bin 116 -> 0 bytes
 images/unwatch-icon-hl.png                         | Bin 562 -> 0 bytes
 images/unwatch-icon-hl.svg                         |   1 -
 images/unwatch-icon.png                            | Bin 542 -> 0 bytes
 images/unwatch-icon.svg                            |   1 -
 images/user-icon.png                               | Bin 198 -> 0 bytes
 images/user-icon.svg                               |  11 -
 images/watch-icon-hl.png                           | Bin 453 -> 0 bytes
 images/watch-icon-hl.svg                           |   1 -
 images/watch-icon-loading.png                      | Bin 364 -> 0 bytes
 images/watch-icon-loading.svg                      |   1 -
 images/watch-icon.png                              | Bin 447 -> 0 bytes
 images/watch-icon.svg                              |   1 -
 package.json                                       |  13 -
 responsive.less                                    | 108 ----
 screen-hd.less                                     |  30 --
 screen.less                                        |   8 -
 skin.json                                          |  99 ----
 skinStyles/jquery.tipsy.less                       |   4 -
 skinStyles/jquery.ui/PATCHES                       |  25 -
 skinStyles/jquery.ui/images/close.png              | Bin 120 -> 0 bytes
 skinStyles/jquery.ui/images/titlebar-fade.png      | Bin 81 -> 0 bytes
 .../images/ui-bg_flat_100_000000_40x100.png        | Bin 71 -> 0 bytes
 .../images/ui-bg_flat_15_cd0a0a_40x100.png         | Bin 86 -> 0 bytes
 .../images/ui-bg_flat_70_000000_40x100.png         | Bin 71 -> 0 bytes
 .../ui-bg_highlight-hard_100_f2f5f7_1x100.png      | Bin 176 -> 0 bytes
 .../ui-bg_highlight-hard_80_d7ebf9_1x100.png       | Bin 182 -> 0 bytes
 .../ui-bg_highlight-soft_100_e4f1fb_1x100.png      | Bin 196 -> 0 bytes
 .../ui-bg_highlight-soft_100_ffffff_1x100.png      | Bin 69 -> 0 bytes
 .../ui-bg_highlight-soft_25_ffef8f_1x100.png       | Bin 159 -> 0 bytes
 .../images/ui-bg_inset-hard_100_f0f0f0_1x100.png   | Bin 117 -> 0 bytes
 .../jquery.ui/images/ui-icons_2694e8_256x240.png   | Bin 3756 -> 0 bytes
 .../jquery.ui/images/ui-icons_2e83ff_256x240.png   | Bin 3756 -> 0 bytes
 .../jquery.ui/images/ui-icons_3d80b3_256x240.png   | Bin 3756 -> 0 bytes
 .../jquery.ui/images/ui-icons_666666_256x240.png   | Bin 3756 -> 0 bytes
 .../jquery.ui/images/ui-icons_72a7cf_256x240.png   | Bin 3756 -> 0 bytes
 .../jquery.ui/images/ui-icons_ffffff_256x240.png   | Bin 3756 -> 0 bytes
 skinStyles/jquery.ui/jquery.ui.accordion.css       |  16 -
 skinStyles/jquery.ui/jquery.ui.autocomplete.css    |  19 -
 skinStyles/jquery.ui/jquery.ui.button.css          | 362 --------------
 skinStyles/jquery.ui/jquery.ui.core.css            |  39 --
 skinStyles/jquery.ui/jquery.ui.datepicker.css      |  67 ---
 skinStyles/jquery.ui/jquery.ui.dialog.css          |  48 --
 skinStyles/jquery.ui/jquery.ui.menu.css            |  30 --
 skinStyles/jquery.ui/jquery.ui.progressbar.css     |  12 -
 skinStyles/jquery.ui/jquery.ui.resizable.css       |  27 -
 skinStyles/jquery.ui/jquery.ui.selectable.css      |  11 -
 skinStyles/jquery.ui/jquery.ui.slider.css          |  25 -
 skinStyles/jquery.ui/jquery.ui.spinner.css         |  23 -
 skinStyles/jquery.ui/jquery.ui.tabs.css            |  18 -
 skinStyles/jquery.ui/jquery.ui.theme.css           | 247 ---------
 skinStyles/jquery.ui/jquery.ui.tooltip.css         |  21 -
 skinStyles/mediawiki.notification.less             |  34 --
 skinStyles/mediawiki.special.less                  |   7 -
 .../mediawiki.special.preferences.styles.less      | 112 -----
 skinStyles/ooui.less                               |   5 -
 variables.less                                     |  39 --
 vector.js                                          | 103 ----
 189 files changed, 1 insertion(+), 5210 deletions(-)
 delete mode 100644 .jscsrc
 delete mode 100644 .jshintignore
 delete mode 100644 .jshintrc
 delete mode 100644 .phpcs.xml
 create mode 100644 ARCHIVED
 delete mode 100644 CODE_OF_CONDUCT.md
 delete mode 100644 COPYING
 delete mode 100644 Gruntfile.js
 delete mode 100644 SkinVectorV2.php
 delete mode 100644 VectorV2.php
 delete mode 100644 VectorV2Template.php
 delete mode 100644 collapsibleTabs.js
 delete mode 100644 components/common.less
 delete mode 100644 components/externalLinks.less
 delete mode 100644 components/footer.less
 delete mode 100644 components/navigation.less
 delete mode 100644 components/personalMenu.less
 delete mode 100644 components/search.less
 delete mode 100644 components/tabs.less
 delete mode 100644 components/watchstar.less
 delete mode 100644 composer.json
 delete mode 100644 hooks.txt
 delete mode 100644 i18n/ais.json
 delete mode 100644 i18n/ar.json
 delete mode 100644 i18n/ast.json
 delete mode 100644 i18n/atj.json
 delete mode 100644 i18n/ba.json
 delete mode 100644 i18n/be-tarask.json
 delete mode 100644 i18n/bg.json
 delete mode 100644 i18n/bn.json
 delete mode 100644 i18n/bs.json
 delete mode 100644 i18n/ca.json
 delete mode 100644 i18n/ce.json
 delete mode 100644 i18n/cs.json
 delete mode 100644 i18n/da.json
 delete mode 100644 i18n/de.json
 delete mode 100644 i18n/diq.json
 delete mode 100644 i18n/dty.json
 delete mode 100644 i18n/el.json
 delete mode 100644 i18n/en.json
 delete mode 100644 i18n/es.json
 delete mode 100644 i18n/eu.json
 delete mode 100644 i18n/fa.json
 delete mode 100644 i18n/fi.json
 delete mode 100644 i18n/fr.json
 delete mode 100644 i18n/gl.json
 delete mode 100644 i18n/he.json
 delete mode 100644 i18n/hi.json
 delete mode 100644 i18n/hu.json
 delete mode 100644 i18n/ia.json
 delete mode 100644 i18n/id.json
 delete mode 100644 i18n/ig.json
 delete mode 100644 i18n/it.json
 delete mode 100644 i18n/ja.json
 delete mode 100644 i18n/jv.json
 delete mode 100644 i18n/kab.json
 delete mode 100644 i18n/km.json
 delete mode 100644 i18n/ko.json
 delete mode 100644 i18n/ksh.json
 delete mode 100644 i18n/ku-latn.json
 delete mode 100644 i18n/lag.json
 delete mode 100644 i18n/lb.json
 delete mode 100644 i18n/lij.json
 delete mode 100644 i18n/lt.json
 delete mode 100644 i18n/lv.json
 delete mode 100644 i18n/mk.json
 delete mode 100644 i18n/mr.json
 delete mode 100644 i18n/mwl.json
 delete mode 100644 i18n/nah.json
 delete mode 100644 i18n/nb.json
 delete mode 100644 i18n/nl.json
 delete mode 100644 i18n/oc.json
 delete mode 100644 i18n/pa.json
 delete mode 100644 i18n/pl.json
 delete mode 100644 i18n/ps.json
 delete mode 100644 i18n/pt-br.json
 delete mode 100644 i18n/pt.json
 delete mode 100644 i18n/qqq.json
 delete mode 100644 i18n/ro.json
 delete mode 100644 i18n/ru.json
 delete mode 100644 i18n/sah.json
 delete mode 100644 i18n/sgs.json
 delete mode 100644 i18n/shy-latn.json
 delete mode 100644 i18n/skr-arab.json
 delete mode 100644 i18n/sl.json
 delete mode 100644 i18n/sr-ec.json
 delete mode 100644 i18n/sr-el.json
 delete mode 100644 i18n/sv.json
 delete mode 100644 i18n/tay.json
 delete mode 100644 i18n/tcy.json
 delete mode 100644 i18n/tr.json
 delete mode 100644 i18n/tt-cyrl.json
 delete mode 100644 i18n/udm.json
 delete mode 100644 i18n/uk.json
 delete mode 100644 i18n/ur.json
 delete mode 100644 i18n/vi.json
 delete mode 100644 i18n/yi.json
 delete mode 100644 i18n/zgh.json
 delete mode 100644 i18n/zh-hans.json
 delete mode 100644 i18n/zh-hant.json
 delete mode 100644 images/arrow-collapsed-ltr.png
 delete mode 100644 images/arrow-collapsed-ltr.svg
 delete mode 100644 images/arrow-collapsed-rtl.png
 delete mode 100644 images/arrow-collapsed-rtl.svg
 delete mode 100644 images/arrow-down-focus-icon.png
 delete mode 100644 images/arrow-down-focus-icon.svg
 delete mode 100644 images/arrow-down-icon.png
 delete mode 100644 images/arrow-down-icon.svg
 delete mode 100644 images/arrow-expanded.png
 delete mode 100644 images/arrow-expanded.svg
 delete mode 100644 images/bullet-icon.png
 delete mode 100644 images/bullet-icon.svg
 delete mode 100644 images/external-link-ltr-icon.png
 delete mode 100644 images/external-link-ltr-icon.svg
 delete mode 100644 images/external-link-rtl-icon.png
 delete mode 100644 images/external-link-rtl-icon.svg
 delete mode 100644 images/link-icon.png
 delete mode 100644 images/magnify-clip.png
 delete mode 100644 images/page-fade.png
 delete mode 100644 images/portal-break-ltr.png
 delete mode 100644 images/portal-break-rtl.png
 delete mode 100644 images/portal-break.png
 delete mode 100644 images/preferences/break.png
 delete mode 100644 images/preferences/fade.png
 delete mode 100644 images/search-fade.png
 delete mode 100644 images/search-ltr.png
 delete mode 100644 images/search-ltr.svg
 delete mode 100644 images/search-rtl.png
 delete mode 100644 images/search-rtl.svg
 delete mode 100644 images/tab-break.png
 delete mode 100644 images/tab-current-fade.png
 delete mode 100644 images/tab-normal-fade.png
 delete mode 100644 images/unwatch-icon-hl.png
 delete mode 100644 images/unwatch-icon-hl.svg
 delete mode 100644 images/unwatch-icon.png
 delete mode 100644 images/unwatch-icon.svg
 delete mode 100644 images/user-icon.png
 delete mode 100644 images/user-icon.svg
 delete mode 100644 images/watch-icon-hl.png
 delete mode 100644 images/watch-icon-hl.svg
 delete mode 100644 images/watch-icon-loading.png
 delete mode 100644 images/watch-icon-loading.svg
 delete mode 100644 images/watch-icon.png
 delete mode 100644 images/watch-icon.svg
 delete mode 100644 package.json
 delete mode 100644 responsive.less
 delete mode 100644 screen-hd.less
 delete mode 100644 screen.less
 delete mode 100644 skin.json
 delete mode 100644 skinStyles/jquery.tipsy.less
 delete mode 100644 skinStyles/jquery.ui/PATCHES
 delete mode 100644 skinStyles/jquery.ui/images/close.png
 delete mode 100644 skinStyles/jquery.ui/images/titlebar-fade.png
 delete mode 100644 skinStyles/jquery.ui/images/ui-bg_flat_100_000000_40x100.png
 delete mode 100644 skinStyles/jquery.ui/images/ui-bg_flat_15_cd0a0a_40x100.png
 delete mode 100644 skinStyles/jquery.ui/images/ui-bg_flat_70_000000_40x100.png
 delete mode 100644 skinStyles/jquery.ui/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png
 delete mode 100644 skinStyles/jquery.ui/images/ui-bg_highlight-hard_80_d7ebf9_1x100.png
 delete mode 100644 skinStyles/jquery.ui/images/ui-bg_highlight-soft_100_e4f1fb_1x100.png
 delete mode 100644 skinStyles/jquery.ui/images/ui-bg_highlight-soft_100_ffffff_1x100.png
 delete mode 100644 skinStyles/jquery.ui/images/ui-bg_highlight-soft_25_ffef8f_1x100.png
 delete mode 100644 skinStyles/jquery.ui/images/ui-bg_inset-hard_100_f0f0f0_1x100.png
 delete mode 100644 skinStyles/jquery.ui/images/ui-icons_2694e8_256x240.png
 delete mode 100644 skinStyles/jquery.ui/images/ui-icons_2e83ff_256x240.png
 delete mode 100644 skinStyles/jquery.ui/images/ui-icons_3d80b3_256x240.png
 delete mode 100644 skinStyles/jquery.ui/images/ui-icons_666666_256x240.png
 delete mode 100644 skinStyles/jquery.ui/images/ui-icons_72a7cf_256x240.png
 delete mode 100644 skinStyles/jquery.ui/images/ui-icons_ffffff_256x240.png
 delete mode 100644 skinStyles/jquery.ui/jquery.ui.accordion.css
 delete mode 100644 skinStyles/jquery.ui/jquery.ui.autocomplete.css
 delete mode 100644 skinStyles/jquery.ui/jquery.ui.button.css
 delete mode 100644 skinStyles/jquery.ui/jquery.ui.core.css
 delete mode 100644 skinStyles/jquery.ui/jquery.ui.datepicker.css
 delete mode 100644 skinStyles/jquery.ui/jquery.ui.dialog.css
 delete mode 100644 skinStyles/jquery.ui/jquery.ui.menu.css
 delete mode 100644 skinStyles/jquery.ui/jquery.ui.progressbar.css
 delete mode 100644 skinStyles/jquery.ui/jquery.ui.resizable.css
 delete mode 100644 skinStyles/jquery.ui/jquery.ui.selectable.css
 delete mode 100644 skinStyles/jquery.ui/jquery.ui.slider.css
 delete mode 100644 skinStyles/jquery.ui/jquery.ui.spinner.css
 delete mode 100644 skinStyles/jquery.ui/jquery.ui.tabs.css
 delete mode 100644 skinStyles/jquery.ui/jquery.ui.theme.css
 delete mode 100644 skinStyles/jquery.ui/jquery.ui.tooltip.css
 delete mode 100644 skinStyles/mediawiki.notification.less
 delete mode 100644 skinStyles/mediawiki.special.less
 delete mode 100644 skinStyles/mediawiki.special.preferences.styles.less
 delete mode 100644 skinStyles/ooui.less
 delete mode 100644 variables.less
 delete mode 100644 vector.js
Updating /var/www/html/w/skins/Nostalgia/
HEAD is now at 66574ac build: Updating mediawiki/mediawiki-codesniffer to 20.0.0
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (4/4), done.
From https://phabricator.wikimedia.org/diffusion/SNOS/nostalgia
   66574ac..21b9eb7  master     -> origin/master
 * [new branch]      wmf/1.32.0-wmf.7 -> origin/wmf/1.32.0-wmf.7
Updating 66574ac..21b9eb7
Fast-forward
 i18n/tt-cyrl.json | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)
Updating /var/www/html/w/skins/Modern/
HEAD is now at ac39256 Localisation updates from https://translatewiki.net.
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From https://phabricator.wikimedia.org/diffusion/SMOD/modern
   ac39256..a723cc1  master     -> origin/master
 * [new branch]      wmf/1.32.0-wmf.7 -> origin/wmf/1.32.0-wmf.7
Updating ac39256..a723cc1
Fast-forward
 composer.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Updating /var/www/html/w/skins/ModernSkylight/
HEAD is now at 5540b7a Merge pull request #16 from cafeinlove/master
Already up-to-date.
Updating /var/www/html/w/skins/DeskMessMirrored/
HEAD is now at 2901046 Localisation updates from https://translatewiki.net.
Already up-to-date.
Updating /var/www/html/w/skins/BlueSky/
HEAD is now at d8fdff7 Localisation updates from https://translatewiki.net.
Already up-to-date.
Updating /var/www/html/w/skins/Vector/
HEAD is now at 9d7d4b4 Localisation updates from https://translatewiki.net.
remote: Counting objects: 21, done.
remote: Compressing objects: 100% (21/21), done.
remote: Total 21 (delta 16), reused 0 (delta 0)
Unpacking objects: 100% (21/21), done.
From https://phabricator.wikimedia.org/diffusion/SVEC/vector
   9d7d4b4..ef41c78  master     -> origin/master
 * [new branch]      wmf/1.32.0-wmf.7 -> origin/wmf/1.32.0-wmf.7
Updating 9d7d4b4..ef41c78
Fast-forward
 composer.json     | 2 +-
 i18n/ar.json      | 5 ++++-
 i18n/ary.json     | 5 +++--
 i18n/ast.json     | 2 ++
 i18n/ilo.json     | 2 ++
 i18n/mni.json     | 2 ++
 i18n/tt-cyrl.json | 2 ++
 7 files changed, 16 insertions(+), 4 deletions(-)
Updating /var/www/html/w/extensions/Nuke/
HEAD is now at 1dcfc10 Localisation updates from https://translatewiki.net.
remote: Counting objects: 11, done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 11 (delta 8), reused 0 (delta 0)
Unpacking objects: 100% (11/11), done.
From https://phabricator.wikimedia.org/diffusion/ENUK/extension-nuke
   1dcfc10..ee1a08f  master     -> origin/master
 * [new branch]      wmf/1.32.0-wmf.7 -> origin/wmf/1.32.0-wmf.7
Updating 1dcfc10..ee1a08f
Fast-forward
 composer.json | 2 +-
 i18n/ckb.json | 1 +
 i18n/ilo.json | 5 +++--
 3 files changed, 5 insertions(+), 3 deletions(-)
Updating /var/www/html/w/extensions/SyntaxHighlight_GeSHi/
HEAD is now at ccca6e1 Localisation updates from https://translatewiki.net.
remote: Counting objects: 8, done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 8 (delta 3), reused 0 (delta 0)
Unpacking objects: 100% (8/8), done.
From https://phabricator.wikimedia.org/diffusion/ESHG/extension-syntaxhighlight_geshi
   ccca6e1..1755781  master     -> origin/master
 * [new branch]      wmf/1.32.0-wmf.7 -> origin/wmf/1.32.0-wmf.7
Updating ccca6e1..1755781
Fast-forward
 composer.json         | 2 +-
 tests/phan/config.php | 5 +----
 2 files changed, 2 insertions(+), 5 deletions(-)
Updating /var/www/html/w/extensions/ConfirmEdit/
HEAD is now at 123a157 Localisation updates from https://translatewiki.net.
remote: Counting objects: 20, done.
remote: Compressing objects: 100% (20/20), done.
remote: Total 20 (delta 14), reused 0 (delta 0)
Unpacking objects: 100% (20/20), done.
From https://phabricator.wikimedia.org/diffusion/ECOE/extension-confirmedit
   123a157..fdcc1bf  master     -> origin/master
 * [new branch]      wmf/1.32.0-wmf.7 -> origin/wmf/1.32.0-wmf.7
Updating 123a157..fdcc1bf
Fast-forward
 FancyCaptcha/i18n/ilo.json |  1 +
 FancyCaptcha/i18n/mni.json |  8 ++++++++
 i18n/ko.json               | 14 ++++++++------
 i18n/mni.json              |  8 ++++++++
 i18n/nap.json              |  5 +++--
 5 files changed, 28 insertions(+), 8 deletions(-)
 create mode 100644 FancyCaptcha/i18n/mni.json
 create mode 100644 i18n/mni.json
Updating /var/www/html/w/extensions/Gadgets/
HEAD is now at 41c45ce Localisation updates from https://translatewiki.net.
remote: Counting objects: 8, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 8 (delta 6), reused 0 (delta 0)
Unpacking objects: 100% (8/8), done.
From https://phabricator.wikimedia.org/diffusion/EGAD/extension-gadgets
   41c45ce..b1a7eb2  master     -> origin/master
 * [new branch]      wmf/1.32.0-wmf.7 -> origin/wmf/1.32.0-wmf.7
Updating 41c45ce..b1a7eb2
Fast-forward
 composer.json |  2 +-
 i18n/ilo.json | 10 ++++++----
 i18n/inh.json |  5 +++--
 3 files changed, 10 insertions(+), 7 deletions(-)
Updating /var/www/html/w/extensions/ParserFunctions/
HEAD is now at 51113b6 Localisation updates from https://translatewiki.net.
remote: Counting objects: 8, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 8 (delta 4), reused 0 (delta 0)
Unpacking objects: 100% (8/8), done.
From https://phabricator.wikimedia.org/diffusion/EPFN/extension-parserfunctions
   51113b6..ace5a2a  master     -> origin/master
 * [new branch]      wmf/1.32.0-wmf.7 -> origin/wmf/1.32.0-wmf.7
Updating 51113b6..ace5a2a
Fast-forward
 composer.json | 2 +-
 i18n/cv.json  | 6 ++++--
 i18n/mni.json | 2 ++
 3 files changed, 7 insertions(+), 3 deletions(-)
Updating /var/www/html/w/extensions/Bootstrap/
HEAD is now at 23677e7 Release Bootstrap 1.2.4
Already up-to-date.
Updating /var/www/html/w/extensions/SpamBlacklist/
HEAD is now at 3ae236b Localisation updates from https://translatewiki.net.
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From https://phabricator.wikimedia.org/diffusion/ESPB/extension-spamblacklist
   3ae236b..3d22b2d  master     -> origin/master
 * [new branch]      wmf/1.32.0-wmf.7 -> origin/wmf/1.32.0-wmf.7
Updating 3ae236b..3d22b2d
Fast-forward
 composer.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Updating /var/www/html/w/extensions/AllTimeZones/
HEAD is now at 6e312a4 build: Updating mediawiki/mediawiki-codesniffer to 20.0.0
Already up-to-date.
Updating /var/www/html/w/extensions/SimpleMathJax/
HEAD is now at 565e655 no message on local
Already up-to-date.
Updating /var/www/html/w/extensions/AntiSpoof/
HEAD is now at d1c9fd4 Localisation updates from https://translatewiki.net.
remote: Counting objects: 7, done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 7 (delta 5), reused 0 (delta 0)
Unpacking objects: 100% (7/7), done.
From https://phabricator.wikimedia.org/diffusion/EANS/extension-antispoof
   d1c9fd4..50117ee  master     -> origin/master
 * [new branch]      wmf/1.32.0-wmf.7 -> origin/wmf/1.32.0-wmf.7
Updating d1c9fd4..50117ee
Fast-forward
 composer.json | 2 +-
 i18n/ko.json  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
Updating /var/www/html/w/extensions/BlockAndNuke/
HEAD is now at c9329b3 build: Updating mediawiki/mediawiki-codesniffer to 20.0.0
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (4/4), done.
From https://phabricator.wikimedia.org/diffusion/EBAN/extension-blockandnuke
   c9329b3..13e7e6b  master     -> origin/master
Updating c9329b3..13e7e6b
Fast-forward
 i18n/inh.json | 8 ++++++++
 1 file changed, 8 insertions(+)
 create mode 100644 i18n/inh.json
Updating /var/www/html/w/extensions/reCaptcha/
HEAD is now at ef83262 Merge pull request #5 from simison/patch-1
Already up-to-date.
Updating /var/www/html/w/extensions/Math/
HEAD is now at 9b2ba59 Move icons to RL image module and generate variants
remote: Counting objects: 28, done.
remote: Compressing objects: 100% (18/18), done.
remote: Total 28 (delta 22), reused 14 (delta 9)
Unpacking objects: 100% (28/28), done.
From https://phabricator.wikimedia.org/diffusion/EMAT/extension-math
   9b2ba59..0e47032  master     -> origin/master
 * [new branch]      wmf/1.32.0-wmf.7 -> origin/wmf/1.32.0-wmf.7
Updating 9b2ba59..0e47032
Fast-forward
 maintenance/MathGenerateTests.php         |  2 +-
 modules/ve-math/ve.ui.MWLatexDialog.css   | 13 +++++++----
 modules/ve-math/ve.ui.MWLatexDialog.js    |  5 ++--
 src/MathHooks.php                         |  8 +++----
 tests/phpunit/MathInputCheckTest.php      |  6 ++---
 tests/phpunit/MathLaTeXMLDatabaseTest.php |  2 +-
 tests/phpunit/MathLaTeXMLTest.php         |  2 +-
 tests/phpunit/MathMathMLTest.php          | 39 +++++++++++++++++++------------
 tests/phpunit/MathPngTest.php             | 29 +++++++++++++++++++++++
 tests/phpunit/MathRendererTest.php        | 16 ++++++-------
 10 files changed, 82 insertions(+), 40 deletions(-)
 create mode 100644 tests/phpunit/MathPngTest.php

Fixing MediaWiki permissions
Fixing MediaWiki images/ permissions
Fixing Apache logging permissions
Fixing MariaDB logging permissions
Cleaning backup files
Running update.php
Restarting Apache service
[root@ftpit ~]#

Event Timeline

Aklapper renamed this task from Now page output when skin is empty to When local skin folder is empty, blank page is shown without further information.Jun 9 2018, 5:03 PM
Aklapper added a project: MediaWiki-General.

If you configure your PHP/server to display error messages (https://www.mediawiki.org/wiki/Manual:How_to_debug#PHP_errors), you do get a message like this instead of a blank page:

<br />
<b>Fatal error</b>:  Uncaught Exception: /var/www/html/w/skins/Vector/skin.json does not exist! in /var/www/html/w/includes/registration/ExtensionRegistry.php:105
Stack trace:
#0 /var/www/html/w/includes/GlobalFunctions.php(87): ExtensionRegistry-&gt;queue('/var/www/html/w...')
#1 /var/www/html/w/LocalSettings.php(147): wfLoadSkin('Vector')
#2 /var/www/html/w/includes/Setup.php(100): require_once('/var/www/html/w...')
#3 /var/www/html/w/includes/WebStart.php(77): require_once('/var/www/html/w...')
#4 /var/www/html/w/index.php(39): require('/var/www/html/w...')
#5 {main}
  thrown in <b>/var/www/html/w/includes/registration/ExtensionRegistry.php</b> on line <b>105</b><br />

We have a pretty error message for the case where the default skin is not available, but if loading any skin/extension fails, we don't reach that. If you removed the wfLoadSkin('VectorV2'), you'd see a message like this:

image.png (980×1 px, 139 KB)

This behavior may be a bit confusing, but ultimately I think it is the best option. We don't really want to special-case skins (they work just like extensions, except loaded from the skins/ directory rather than extensions/), and if the files for an extension are missing, it is better to fail immediately rather than try to load the page and possibly corrupt existing content belonging to that extension.

…, and if the files for an extension are missing, it is better to fail immediately rather than try to load the page and possibly corrupt existing content belonging to that extension.

(Skins don't usually have "content", but that can still cause issues. For example, skins can be reasonably expected to have preferences, and uninstalling a skin – or randomly "losing" it – will cause its saved preferences to be deleted when the user modifies their preferences.)

@Noloader: Is Matmarex' comment helpful? Or do you expect MediaWiki to somehow behave differently?

If you configure your PHP/server to display error messages (https://www.mediawiki.org/wiki/Manual:How_to_debug#PHP_errors), you do get a message like this instead of a blank page:

Thanks.

As far as I know we have all the error reporting turned on:

# tail -n 7 LocalSettings.php
ini_set( 'display_errors', 1 );
$wgShowErrors = true;
$wgShowSQLErrors=true;
$wgShowExceptionDetails = true;
$wgShowDBErrorBacktrace = true;

The debug/error stuff is "on" all the time. We want the information readily available so we can quickly troubleshoot problems.

Vvjjkkii renamed this task from When local skin folder is empty, blank page is shown without further information to 7bbaaaaaaa.Jul 1 2018, 1:05 AM
Vvjjkkii triaged this task as High priority.
Vvjjkkii updated the task description. (Show Details)
Vvjjkkii removed a subscriber: Aklapper.
CommunityTechBot renamed this task from 7bbaaaaaaa to When local skin folder is empty, blank page is shown without further information.Jul 2 2018, 3:00 PM
CommunityTechBot raised the priority of this task from High to Needs Triage.
CommunityTechBot updated the task description. (Show Details)
CommunityTechBot added a subscriber: Aklapper.