Page MenuHomePhorge

No OneTemporary

Size
45 KB
Referenced Files
None
Subscribers
None
diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml
new file mode 100644
index 00000000000..c108bdfa227
--- /dev/null
+++ b/.github/workflows/workflow.yml
@@ -0,0 +1,36 @@
+on:
+ push:
+ pull_request:
+
+jobs:
+ php-lint:
+ name: "PHPLint v9"
+
+ runs-on: "${{ matrix.operating-system }}"
+
+ strategy:
+ fail-fast: false
+
+ matrix:
+ operating-system:
+ - "ubuntu-24.04"
+ - "ubuntu-22.04"
+
+ php-version:
+ - "8.3"
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Setup PHP runtime
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: "${{ matrix.php-version }}"
+ coverage: "none"
+
+ - name: Run tests
+ run: |
+ curl -Ls https://github.com/overtrue/phplint/releases/latest/download/phplint.phar -o /usr/local/bin/phplint
+ chmod +x /usr/local/bin/phplint
+ /usr/local/bin/phplint --no-cache --no-progress -v
diff --git a/.gitignore b/.gitignore
index bd4140b945b..c65b8c67449 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,7 +47,6 @@ sftp-config.json
/images/tmp
/maintenance/.mweval_history
/maintenance/.mwsql_history
-/LocalSettings.php
/includes/PlatformSettings.php
# Building & testing
diff --git a/.gitmodules b/.gitmodules
index 42892fd94da..c541015232f 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,160 +1,12 @@
-[submodule "extensions/AbuseFilter"]
- path = extensions/AbuseFilter
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/AbuseFilter
- branch = REL1_44
-[submodule "extensions/CategoryTree"]
- path = extensions/CategoryTree
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/CategoryTree
- branch = REL1_44
-[submodule "extensions/CheckUser"]
- path = extensions/CheckUser
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/CheckUser
- branch = REL1_44
-[submodule "extensions/Cite"]
- path = extensions/Cite
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Cite
- branch = REL1_44
-[submodule "extensions/CiteThisPage"]
- path = extensions/CiteThisPage
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/CiteThisPage
- branch = REL1_44
-[submodule "extensions/CodeEditor"]
- path = extensions/CodeEditor
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/CodeEditor
- branch = REL1_44
-[submodule "extensions/ConfirmEdit"]
- path = extensions/ConfirmEdit
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/ConfirmEdit
- branch = REL1_44
-[submodule "extensions/DiscussionTools"]
- path = extensions/DiscussionTools
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/DiscussionTools
- branch = REL1_44
-[submodule "extensions/Echo"]
- path = extensions/Echo
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Echo
- branch = REL1_44
-[submodule "extensions/Gadgets"]
- path = extensions/Gadgets
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Gadgets
- branch = REL1_44
-[submodule "extensions/ImageMap"]
- path = extensions/ImageMap
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/ImageMap
- branch = REL1_44
-[submodule "extensions/InputBox"]
- path = extensions/InputBox
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/InputBox
- branch = REL1_44
-[submodule "extensions/Interwiki"]
- path = extensions/Interwiki
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Interwiki
- branch = REL1_44
-[submodule "extensions/Linter"]
- path = extensions/Linter
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Linter
- branch = REL1_44
-[submodule "extensions/LoginNotify"]
- path = extensions/LoginNotify
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/LoginNotify
- branch = REL1_44
-[submodule "extensions/Math"]
- path = extensions/Math
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Math
- branch = REL1_44
-[submodule "extensions/MultimediaViewer"]
- path = extensions/MultimediaViewer
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/MultimediaViewer
- branch = REL1_44
-[submodule "extensions/Nuke"]
- path = extensions/Nuke
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Nuke
- branch = REL1_44
-[submodule "extensions/OATHAuth"]
- path = extensions/OATHAuth
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/OATHAuth
- branch = REL1_44
-[submodule "extensions/PageImages"]
- path = extensions/PageImages
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/PageImages
- branch = REL1_44
-[submodule "extensions/ParserFunctions"]
- path = extensions/ParserFunctions
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/ParserFunctions
- branch = REL1_44
-[submodule "extensions/PdfHandler"]
- path = extensions/PdfHandler
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/PdfHandler
- branch = REL1_44
-[submodule "extensions/Poem"]
- path = extensions/Poem
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Poem
- branch = REL1_44
-[submodule "extensions/ReplaceText"]
- path = extensions/ReplaceText
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/ReplaceText
- branch = REL1_44
-[submodule "extensions/Scribunto"]
- path = extensions/Scribunto
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Scribunto
- branch = REL1_44
-[submodule "extensions/SecureLinkFixer"]
- path = extensions/SecureLinkFixer
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/SecureLinkFixer
- branch = REL1_44
-[submodule "extensions/SpamBlacklist"]
- path = extensions/SpamBlacklist
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/SpamBlacklist
- branch = REL1_44
-[submodule "extensions/SyntaxHighlight_GeSHi"]
- path = extensions/SyntaxHighlight_GeSHi
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/SyntaxHighlight_GeSHi
- branch = REL1_44
-[submodule "extensions/TemplateData"]
- path = extensions/TemplateData
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/TemplateData
- branch = REL1_44
-[submodule "extensions/TemplateStyles"]
- path = extensions/TemplateStyles
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/TemplateStyles
- branch = REL1_44
-[submodule "extensions/TextExtracts"]
- path = extensions/TextExtracts
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/TextExtracts
- branch = REL1_44
-[submodule "extensions/Thanks"]
- path = extensions/Thanks
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Thanks
- branch = REL1_44
-[submodule "extensions/TitleBlacklist"]
- path = extensions/TitleBlacklist
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/TitleBlacklist
- branch = REL1_44
-[submodule "extensions/VisualEditor"]
- path = extensions/VisualEditor
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
- branch = REL1_44
-[submodule "extensions/WikiEditor"]
- path = extensions/WikiEditor
- url = https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiEditor
- branch = REL1_44
-[submodule "skins/MinervaNeue"]
- path = skins/MinervaNeue
- url = https://gerrit.wikimedia.org/r/mediawiki/skins/MinervaNeue
- branch = REL1_44
-[submodule "skins/MonoBook"]
- path = skins/MonoBook
- url = https://gerrit.wikimedia.org/r/mediawiki/skins/MonoBook
- branch = REL1_44
-[submodule "skins/Timeless"]
- path = skins/Timeless
- url = https://gerrit.wikimedia.org/r/mediawiki/skins/Timeless
- branch = REL1_44
-[submodule "skins/Vector"]
- path = skins/Vector
- url = https://gerrit.wikimedia.org/r/mediawiki/skins/Vector
- branch = REL1_44
+[submodule "extensions"]
+ path = extensions
+ url = https://github.com/test-wiki/extensions
+ branch = master
+[submodule "skins"]
+ path = skins
+ url = https://github.com/test-wiki/skins
+ branch = master
[submodule "vendor"]
path = vendor
- url = https://gerrit.wikimedia.org/r/mediawiki/vendor
+ url = https://github.com/wikimedia/mediawiki-vendor
branch = REL1_44
diff --git a/LocalSettings.php b/LocalSettings.php
new file mode 100644
index 00000000000..f5d869178e9
--- /dev/null
+++ b/LocalSettings.php
@@ -0,0 +1,687 @@
+<?php
+# This file was automatically generated by the MediaWiki 1.28.0
+# installer. If you make manual changes, please keep track in case you
+# need to recreate them later.
+#
+# See includes/DefaultSettings.php for all configurable settings
+# and their default values, but don't forget to make changes in _this_
+# file, not there.
+#
+# Further documentation for configuration settings may be found at:
+# https://www.mediawiki.org/wiki/Manual:Configuration_settings
+# Protect against web entry
+if ( !defined( 'MEDIAWIKI' ) ) {
+ exit;
+}
+
+require_once( "/var/www/PrivateSettings.php" );
+
+## Uncomment this to disable output compression
+# $wgDisableOutputCompression = true;
+$wgSitename = "Test Wiki";
+$wgMetaNamespace = "Test_Wiki";
+
+## The URL base path to the directory containing the wiki;
+## defaults for all runtime URL paths are based off of this.
+## For more information on customizing the URLs
+## (like /w/index.php/Page_title to /wiki/Page_title) please see:
+## https://www.mediawiki.org/wiki/Manual:Short_URL
+$wgScriptPath = "";
+$wgArticlePath = "/wiki/$1";
+
+## The protocol and server name to use in fully-qualified URLs
+$wgServer = "https://testwiki.wiki";
+
+## The URL path to static resources (images, scripts, etc.)
+$wgResourceBasePath = $wgScriptPath;
+$wgLoadScript = "https://bits.testwiki.wiki/load.php";
+$wgUploadPath = "https://static.testwiki.wiki";
+
+## The URL path to the logo. Make sure you change this from the default,
+## or else you'll overwrite your logo when you upgrade!
+$wgLogo = "$wgResourceBasePath/images/9/9b/TestWiki_Logo.svg";
+$wgLogos = [
+ 'icon' => "$wgUploadPath/8/88/TestWiki_Icon.svg", // A version of the logo without wordmark and tagline
+ 'wordmark' => [
+ 'src' => "$wgUploadPath/7/7a/TestWiki_Wordmark.svg",
+ 'width' => 125,
+ 'height' => 24,
+ ],
+];
+$wgFavicon = "$wgUploadPath/d/d7/TestWiki_Favicon.png";
+$wgAppleTouchIcon = "$wgUploadPath/d/d7/TestWiki_Favicon.png";
+## UPO means: this is also a user preference option
+$wgEnableEmail = true;
+$wgAllowHTMLEmail = true;
+$wgEnableUserEmail = true; # UPO
+$wgEmergencyContact = "noreply@testwiki.wiki";
+$wgPasswordSender = "noreply@testwiki.wiki";
+$wgEnotifUserTalk = false; # UPO
+$wgEnotifWatchlist = false; # UPO
+$wgEmailAuthentication = true;
+# MySQL specific settings
+$wgDBprefix = "mw_";
+# MySQL table options to use during installation or update
+$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary";
+# Experimental charset support for MySQL 5.0.
+$wgDBmysql5 = false;
+## Shared memory settings
+$wgMainCacheType = CACHE_ACCEL;
+$wgSessionCacheType = CACHE_DB;
+$wgParserCacheType = CACHE_DB;
+$wgParserCacheExpireTime = 2592000;
+$wgEnableSidebarCache = true;
+$wgUseGzip = true;
+$wgMemCachedServers = [];
+## To enable image uploads, make sure the 'images' directory
+## is writable, then set this to true:
+$wgUploadDirectory = "$IP/images";
+$wgEnableUploads = true;
+$wgUseImageMagick = true;
+$wgImageMagickConvertCommand = "/usr/bin/convert";
+$wgSVGConverters['inkscape'] = '$path/inkscape -w $width -o $output $input';
+$wgSVGConverter = 'rsvg';
+$wgFileExtensions = [
+ 'png',
+ 'gif',
+ 'jpg',
+ 'jpeg',
+ 'webp',
+ 'svg' ];
+# InstantCommons allows wiki to use images from https://commons.wikimedia.org
+$wgUseInstantCommons = true;
+# Periodically send a pingback to https://www.mediawiki.org/ with basic data
+# about this MediaWiki instance. The Wikimedia Foundation shares this data
+# with MediaWiki developers to help guide future development efforts.
+$wgPingback = true;
+## If you use ImageMagick (or any other shell command) on a
+## Linux server, this will need to be set to the name of an
+## available UTF-8 locale
+$wgShellLocale = "en_US.utf8";
+## Set $wgCacheDirectory to a writable directory on the web server
+## to make your wiki go slightly faster. The directory should not
+## be publically accessible from the web.
+$wgCacheDirectory = "$IP/cache";
+$wgUseFileCache = true;
+# Site language code, should be one of the list in ./languages/data/Names.php
+$wgLanguageCode = "en";
+# Changing this will log out all existing sessions.
+$wgAuthenticationTokenVersion = "1";
+## For attaching licensing metadata to pages, and displaying an
+## appropriate copyright notice / icon. GNU Free Documentation
+## License and Creative Commons licenses are supported so far.
+$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
+$wgRightsUrl = "";
+$wgRightsText = "";
+$wgRightsIcon = "";
+# Path to the GNU diff3 utility. Used for conflict resolution.
+$wgDiff3 = "";
+## Default skin: you can change the default skin. Use the internal symbolic
+## names, ie 'vector', 'monobook':
+$wgDefaultSkin = "vector";
+
+wfLoadSkins( array(
+ 'CologneBlue',
+ 'Cosmos',
+ 'Modern',
+ 'MonoBook',
+ 'Vector' ,
+ 'Refreshed',
+ 'Timeless',
+));
+
+wfLoadExtensions( array(
+ 'AbuseFilter',
+ 'AntiSpoof',
+ 'Babel',
+ 'CategoryTree',
+ 'CheckUser',
+ 'CharInsert',
+ 'CodeEditor',
+ 'ConfirmEdit',
+ 'ConfirmEdit/QuestyCaptcha',
+ 'CookieWarning',
+ 'DiscordNotifications',
+ 'DiscussionTools',
+ 'DismissableSiteNotice',
+ 'Echo',
+ 'Editcount',
+ 'FlaggedRevs',
+ 'Gadgets',
+ 'InputBox',
+ 'Linter',
+ 'LoginNotify',
+ 'MassMessage',
+ 'MatomoAnalytics',
+ 'MediaWikiChat',
+ 'MobileFrontend',
+ 'Newsletter',
+ 'Nuke',
+ 'NewUserMessage',
+ 'OAuth',
+ 'OATHAuth',
+ 'ParserFunctions',
+ 'PdfHandler',
+ 'Purge',
+ 'Report',
+ 'ReplaceText',
+ 'Scribunto',
+ 'SecurePoll',
+ 'SpamBlacklist',
+ 'StopForumSpam',
+ 'StaffPowers',
+ 'SyntaxHighlight_GeSHi',
+ 'TemplateStyles',
+ 'Thanks',
+ 'TitleBlacklist',
+ 'TorBlock',
+ 'Translate',
+ 'UniversalLanguageSelector',
+ 'UnusedRedirects',
+ 'VisualEditor',
+ 'WebAuthn',
+ 'WikiEditor',
+ 'WikiLove',
+));
+
+wfLoadExtension(
+ 'Parsoid', __DIR__ .'/vendor/wikimedia/parsoid/extension.json'
+);
+
+$wgMWOAuthSecureTokenTransfer = true;
+$wgOAuth2RequireCodeChallengeForPublicClients = false;
+$wgScribuntoDefaultEngine = 'luasandbox';
+
+// Chat
+$wgChatKicks = true;
+$wgChatMeCommand = true;
+$wgChatLinkUsernames = true;
+
+// Other
+$wgDefaultMobileSkin = 'timeless';
+$wgULSGeoService = false;
+$wgAllowUserCss = true;
+$wgAllowUserJs = true;
+$wgAllowCopyUploads = true;
+$wgCopyUploadsFromSpecialUpload = true;
+$wgMassMessageAccountUsername = 'Test Wiki message delivery';
+$wgLocaltimezone = "UTC";
+date_default_timezone_set( $wgLocaltimezone );
+
+$wgAutoConfirmAge = 86400;
+$wgAutoConfirmCount = 1;
+$wgEnableScaryTranscluding = true;
+$wgDefaultUserOptions['wikilove-enabled'] = 1;
+$wgFlaggedRevsStatsAge = false;
+$wgFlaggedRevsProtection = true;
+$wgFlaggedRevsAutoReview = true;
+$wgFlaggedRevsNamespaces = array( NS_MAIN, NS_FILE, NS_TEMPLATE, NS_PROJECT );
+$wgScribuntoUseCodeEditor = true;
+$wgDefaultUserOptions['visualeditor-enable'] = 1;
+$wgDefaultUserOptions['visualeditor-editor'] = "visualeditor";
+$wgVirtualRestConfig['modules']['parsoid'] = [
+ 'url' => 'https://testwiki.wiki/rest.php',
+ 'domain' => 'testwiki.wiki',
+];
+$wgStaffPowersShoutWikiMessages = false;
+$wgTitleBlacklistSources = array(
+ array(
+ 'type' => 'localpage',
+ 'src' => 'MediaWiki:Titleblacklist'
+ )
+);
+
+// MatomoAnalytics
+$wgMatomoAnalyticsServerURL = 'https://piwik.testwiki.wiki/';
+$wgMatomoAnalyticsSiteID = 3;
+
+// WikiEditor
+$wgDefaultUserOptions['usebetatoolbar'] = 1;
+$wgDefaultUserOptions['usebetatoolbar-cgd'] = 1;
+$wgDefaultUserOptions['wikieditor-preview'] = 0;
+$wgDefaultUserOptions['wikieditor-publish'] = 0;
+
+// User rights
+/// All
+$wgGroupPermissions['*']['abusefilter-log'] = true;
+$wgGroupPermissions['*']['abusefilter-view'] = true;
+$wgGroupPermissions['*']['oathauth-enable'] = false;
+$wgGroupPermissions['*']['patrolmarks'] = true;
+$wgGroupPermissions['*']['abusefilter-log-detail'] = true;
+
+/// User
+$wgGroupPermissions['user']['createpage'] = false;
+$wgGroupPermissions['user']['createtalk'] = false;
+$wgGroupPermissions['user']['edit'] = false;
+$wgGroupPermissions['user']['movefile'] = false;
+$wgGroupPermissions['user']['move'] = false;
+$wgGroupPermissions['user']['move-categorypages'] = false;
+$wgGroupPermissions['user']['move-rootuserpages'] = false; // can move root userpages
+$wgGroupPermissions['user']['move-subpages'] = false;
+$wgGroupPermissions['user']['read'] = false;
+$wgGroupPermissions['user']['translate'] = true;
+$wgGroupPermissions['user']['translate-groupreview'] = true;
+$wgGroupPermissions['user']['translate-import'] = true;
+$wgGroupPermissions['user']['translate-messagereview'] = true;
+$wgGroupPermissions['user']['user'] = true;
+$wgGroupPermissions['user']['writeapi'] = false;
+$wgGroupPermissions['user']['sfsblock-bypass'] = true;
+
+/// Confirmed
+$wgGroupPermissions['confirmed']['autoconfirmed'] = true;
+$wgGroupPermissions['confirmed']['editsemiprotected'] = true;
+$wgGroupPermissions['confirmed']['movefile'] = true;
+$wgGroupPermissions['confirmed']['move'] = true;
+$wgGroupPermissions['confirmed']['move-categorypages'] = true;
+$wgGroupPermissions['confirmed']['move-rootuserpages'] = true; // can move root userpages
+$wgGroupPermissions['confirmed']['move-subpages'] = true;
+$wgGroupPermissions['confirmed']['skipcaptcha'] = true;
+
+/// Auto confirmed users
+$wgGroupPermissions['autoconfirmed']['movefile'] = true;
+$wgGroupPermissions['autoconfirmed']['move'] = true;
+$wgGroupPermissions['autoconfirmed']['move-categorypages'] = true;
+$wgGroupPermissions['autoconfirmed']['move-rootuserpages'] = true; // can move root userpages
+$wgGroupPermissions['autoconfirmed']['move-subpages'] = true;
+$wgGroupPermissions['autoconfirmed']['skipcaptcha'] = true;
+
+/// Auto patrollers
+$wgGroupPermissions['autopatrol']['autopatrol'] = true;
+
+/// Patrollers
+$wgGroupPermissions['patroller']['autopatrol'] = true;
+$wgGroupPermissions['patroller']['noratelimit'] = true;
+$wgGroupPermissions['patroller']['patrol'] = true;
+$wgGroupPermissions['patroller']['rollback'] = true;
+$wgGroupPermissions['patroller']['suppressredirect'] = true;
+$wgGroupPermissions['patroller']['upload_by_url'] = true;
+
+/// Translation administrators
+$wgGroupPermissions['translateadmin']['pagelang'] = true;
+$wgGroupPermissions['translateadmin']['pagetranslation'] = true;
+$wgGroupPermissions['translateadmin']['translate-manage'] = true;
+
+/// Chat moderators
+$wgGroupPermissions['chatmod']['chat'] = false;
+
+/// Interwiki administrators
+$wgGroupPermissions['interwiki-admin']['interwiki'] = true;
+
+/// Bot
+$wgGroupPermissions['bot']['writeapi'] = false;
+
+/// Abusefilter restricted users
+$wgRevokePermissions['abusefilter-restricted']['abusefilter-log'] = true;
+$wgRevokePermissions['abusefilter-restricted']['abusefilter-log-detail'] = true;
+$wgRevokePermissions['abusefilter-restricted']['abusefilter-log-private'] = true;
+$wgRevokePermissions['abusefilter-restricted']['abusefilter-modify'] = true;
+$wgRevokePermissions['abusefilter-restricted']['abusefilter-modify-restricted'] = true;
+$wgRevokePermissions['abusefilter-restricted']['abusefilter-revert'] = true;
+$wgRevokePermissions['abusefilter-restricted']['abusefilter-view'] = true;
+$wgRevokePermissions['abusefilter-restricted']['abusefilter-view-private'] = true;
+
+/// Abusefilter administrators
+$wgGroupPermissions['abusefilter-admin']['abusefilter-modify-restricted'] = true;
+$wgGroupPermissions['abusefilter-admin']['abusefilter-access-protected-vars'] = true;
+$wgGroupPermissions['abusefilter-admin']['abusefilter-protected-vars-log'] = true;
+
+/// Administrators
+$wgGroupPermissions['sysop']['abusefilter-log-detail'] = true;
+$wgGroupPermissions['sysop']['abusefilter-modify'] = true;
+$wgGroupPermissions['sysop']['abusefilter-modify-restricted'] = false;
+$wgGroupPermissions['sysop']['abusefilter-revert'] = true;
+$wgGroupPermissions['sysop']['abusefilter-access-protected-vars'] = false;
+$wgGroupPermissions['sysop']['abusefilter-protected-vars-log'] = false;
+$wgGroupPermissions['sysop']['avatarremove'] = false;
+$wgGroupPermissions['sysop']['chat'] = false;
+$wgGroupPermissions['sysop']['checkuser-limited'] = true;
+$wgGroupPermissions['sysop']['createaccount'] = false;
+$wgGroupPermissions['sysop']['deleterevision'] = true;
+$wgGroupPermissions['sysop']['editinterface'] = false;
+$wgGroupPermissions['sysop']['editsitejson'] = false;
+$wgGroupPermissions['sysop']['edituserjson'] = false;
+$wgGroupPermissions['sysop']['importupload'] = false;
+$wgGroupPermissions['sysop']['import'] = true;
+$wgGroupPermissions['sysop']['handle-reports'] = false;
+$wgGroupPermissions['sysop']['interwiki'] = false;
+$wgGroupPermissions['sysop']['mwoauthproposeconsumer'] = true;
+$wgGroupPermissions['sysop']['mwoauthupdateownconsumer'] = true;
+$wgGroupPermissions['sysop']['nuke'] = false;
+$wgGroupPermissions['sysop']['oathauth-disable-for-user'] = false;
+$wgGroupPermissions['sysop']['oathauth-enable'] = true;
+$wgGroupPermissions['sysop']['pagelang'] = true;
+$wgGroupPermissions['sysop']['pagetranslation'] = true;
+$wgGroupPermissions['sysop']['replacetext'] = false;
+$wgGroupPermissions['sysop']['reupload'] = false;
+$wgGroupPermissions['sysop']['reupload-shared'] = false;
+$wgGroupPermissions['sysop']['review'] = true;
+$wgGroupPermissions['sysop']['translate-manage'] = true;
+$wgGroupPermissions['sysop']['unblockself'] = false;
+$wgGroupPermissions['sysop']['unreviewedpages'] = true;
+$wgGroupPermissions['sysop']['upload'] = false;
+$wgGroupPermissions['sysop']['upload_by_url'] = true;
+$wgGroupPermissions['sysop']['validate'] = true;
+$wgGroupPermissions['sysop']['sfsblock-bypass'] = false;
+
+/// Bureaucrats
+$wgGroupPermissions['bureaucrat']['bureaucrat'] = true;
+$wgGroupPermissions['bureaucrat']['deletelogentry'] = true;
+$wgGroupPermissions['bureaucrat']['editinterface'] = true;
+$wgGroupPermissions['bureaucrat']['editprotected'] = true;
+$wgGroupPermissions['bureaucrat']['editsitejson'] = true;
+$wgGroupPermissions['bureaucrat']['edituserjson'] = true;
+$wgGroupPermissions['bureaucrat']['importupload'] = true;
+$wgGroupPermissions['bureaucrat']['import'] = true;
+$wgGroupPermissions['bureaucrat']['noratelimit'] = false;
+$wgGroupPermissions['bureaucrat']['nuke'] = true;
+$wgGroupPermissions['bureaucrat']['renameuser'] = false;
+$wgGroupPermissions['bureaucrat']['unblockself'] = true;
+$wgGroupPermissions['bureaucrat']['userrights'] = false;
+
+
+/// electionadmin
+
+$wgGroupPermissions['electionadmin']['securepoll-create-poll'] = true;
+$wgGroupPermissions['electionadmin']['securepoll-edit-poll'] = true;
+
+/// Checkusers
+$wgGroupPermissions['checkuser']['abusefilter-privatedetails'] = true;
+$wgGroupPermissions['checkuser']['abusefilter-privatedetails-log'] = true;
+$wgGroupPermissions['checkuser']['securepoll-view-voter-pii'] = true;
+/// Rights-bot
+$wgGroupPermissions['rights-bot']['userrights'] = false;
+$wgGroupPermissions['rights-bot']['edit'] = true;
+$wgGroupPermissions['rights-bot']['createpage'] = true;
+$wgGroupPermissions['rights-bot']['createtalk'] = true;
+$wgGroupPermissions['rights-bot']['read'] = true;
+$wgGroupPermissions['rights-bot']['noratelimit'] = true;
+$wgGroupPermissions['rights-bot']['bot'] = true;
+
+/// Suppressors
+$wgGroupPermissions['suppress']['abusefilter-log-detail'] = true;
+$wgGroupPermissions['suppress']['abusefilter-log-private'] = true;
+$wgGroupPermissions['suppress']['abusefilter-view-private'] = true;
+$wgGroupPermissions['suppress']['blockemail'] = true;
+$wgGroupPermissions['suppress']['block'] = true;
+$wgGroupPermissions['suppress']['browsearchive'] = true;
+$wgGroupPermissions['suppress']['deletedhistory'] = true;
+$wgGroupPermissions['suppress']['deletedtext'] = true;
+
+/// Stewards
+$wgGroupPermissions['steward']['abusefilter-log-private'] = true;
+$wgGroupPermissions['steward']['abusefilter-modify-restricted'] = true;
+$wgGroupPermissions['steward']['abusefilter-view-private'] = true;
+$wgGroupPermissions['steward']['abusefilter-access-protected-vars'] = true;
+$wgGroupPermissions['steward']['abusefilter-protected-vars-log'] = true;
+$wgGroupPermissions['steward']['abusefilter-privatedetails-log'] = true;
+$wgGroupPermissions['steward']['checkuser-log'] = true;
+$wgGroupPermissions['steward']['editsitecss'] = true;
+$wgGroupPermissions['steward']['editsitejs'] = true;
+$wgGroupPermissions['steward']['interwiki'] = true;
+$wgGroupPermissions['steward']['mwoauthmanageconsumer'] = true;
+$wgGroupPermissions['steward']['mwoauthproposeconsumer'] = true;
+$wgGroupPermissions['steward']['mwoauthsuppress'] = true;
+$wgGroupPermissions['steward']['mwoauthupdateownconsumer'] = true;
+$wgGroupPermissions['steward']['mwoauthviewprivate'] = true;
+$wgGroupPermissions['steward']['mwoauthviewsuppressed'] = true;
+$wgGroupPermissions['steward']['handle-reports'] = true;
+$wgGroupPermissions['steward']['override-export-depth'] = true;
+$wgGroupPermissions['steward']['renameuser'] = true;
+$wgGroupPermissions['steward']['replacetext'] = true;
+$wgGroupPermissions['steward']['steward'] = true;
+$wgGroupPermissions['steward']['suppressionlog'] = true;
+$wgGroupPermissions['steward']['unblockable'] = true;
+$wgGroupPermissions['steward']['unblockself'] = true;
+$wgGroupPermissions['steward']['viewpmlog'] = true;
+
+/// System administrators
+$wgGroupPermissions['sysadmin']['editsitecss'] = true;
+$wgGroupPermissions['sysadmin']['editsitejs'] = true;
+$wgGroupPermissions['sysadmin']['oathauth-disable-for-user'] = true;
+$wgGroupPermissions['sysadmin']['siteadmin'] = true;
+$wgGroupPermissions['sysadmin']['unblockable'] = true;
+$wgGroupPermissions['sysadmin']['unblockself'] = true;
+$wgGroupPermissions['sysadmin']['userrights'] = true;
+
+// Permission assignments
+/// Administrators
+$wgAddGroups['sysop'] = array(
+ 'autopatrol',
+ 'autoreview',
+ 'blockedfromchat',
+ 'chatmod',
+ 'confirmed',
+ 'editor',
+ 'patroller',
+ 'researcher',
+ 'reviewer',
+ 'translateadmin'
+);
+$wgRemoveGroups['sysop'] = array(
+ 'autopatrol',
+ 'autoreview',
+ 'blockedfromchat',
+ 'chatmod',
+ 'confirmed',
+ 'editor',
+ 'patroller',
+ 'researcher',
+ 'reviewer',
+ 'translateadmin'
+);
+
+/// Bureaucrats
+$wgAddGroups['bureaucrat'] = array(
+ 'bureaucrat',
+ 'bot',
+ 'sysop',
+ 'interwiki-admin',
+ 'electionadmin'
+);
+$wgRemoveGroups['bureaucrat'] = array(
+ 'bureaucrat',
+ 'bot',
+ 'sysop',
+ 'interwiki-admin',
+ 'electionadmin'
+ );
+
+/// Rights-bot
+$wgRemoveGroups['rights-bot'] = array(
+ 'sysop',
+ 'bureaucrat',
+);
+
+/// Stewards
+$wgAddGroups['steward'] = array(
+ 'abusefilter-admin',
+ 'abusefilter-restricted',
+ 'bureaucrat',
+ 'checkuser',
+ 'interface-admin',
+ 'steward',
+ 'suppress',
+ 'sysop',
+ 'rights-bot',
+);
+$wgRemoveGroups['steward'] = array(
+ 'abusefilter-admin',
+ 'abusefilter-restricted',
+ 'bureaucrat',
+ 'checkuser',
+ 'interface-admin',
+ 'steward',
+ 'suppress',
+ 'sysop',
+ 'rights-bot',
+);
+
+// Restriction settings
+$wgRestrictionLevels = array(
+ '',
+ 'user',
+ 'autoconfirmed',
+ 'sysop',
+ 'bureaucrat',
+ 'steward',
+);
+
+$wgRestrictionTypes = array(
+ 'create',
+ 'edit',
+ 'move',
+ 'upload',
+ 'delete',
+ 'protect',
+);
+
+$wgCascadingRestrictionLevels = array(
+ 'sysop',
+ 'bureaucrat',
+ 'steward'
+);
+
+$wgSemiprotectedRestrictionLevels = array(
+ 'user',
+ 'autoconfirmed',
+);
+
+// Grants
+$wgGrantPermissions['editprotected']['bureaucrat'] = true;
+// Unsets
+unset( $wgGroupPermissions['staff'] );
+
+unset( $wgGroupPermissions['editor'] );
+
+$wgExtensionFunctions[] = function() use ( &$wgGroupPermissions ) {
+ unset( $wgGroupPermissions['staff']
+);
+ unset( $wgGroupPermissions['editor']
+);
+
+};
+
+// RC feed settings
+$wgRCFeeds['irc'] = [
+ 'uri' =>
+ 'udp://129.80.101.65:9872',
+ 'formatter' => IRCColourfulRCFeedFormatter::class,
+ 'add_interwiki_prefix' => false,
+ 'omit_bots' => true,
+];
+//Custom rate limits (specifically for badcaptcha)
+$wgRateLimits = [
+ // Page edits
+ 'edit' => [
+ 'ip' => [ 8, 60 ],
+ 'newbie' => [ 8, 60 ],
+ 'user' => [ 90, 60 ],
+ ],
+ // Page moves
+ 'move' => [
+ 'newbie' => [ 2, 120 ],
+ 'user' => [ 8, 60 ],
+ ],
+ // File uploads
+ 'upload' => [
+ 'ip' => [ 8, 60 ],
+ 'newbie' => [ 8, 60 ],
+ ],
+ // Page rollbacks
+ 'rollback' => [
+ 'user' => [ 10, 60 ],
+ 'newbie' => [ 5, 120 ]
+ ],
+ // Triggering password resets emails
+ 'mailpassword' => [
+ 'ip' => [ 5, 3600 ],
+ ],
+ // Emailing other users using MediaWiki
+ 'sendemail' => [
+ 'ip' => [ 5, 86400 ],
+ 'newbie' => [ 5, 86400 ],
+ 'user' => [ 20, 86400 ],
+ ],
+ 'changeemail' => [
+ 'ip-all' => [ 10, 3600 ],
+ 'user' => [ 4, 86400 ]
+ ],
+ // since 1.33 - rate limit email confirmations
+ 'confirmemail' => [
+ 'ip-all' => [ 10, 3600 ],
+ 'user' => [ 4, 86400 ]
+ ],
+ // Purging pages
+ 'purge' => [
+ 'ip' => [ 30, 60 ],
+ 'user' => [ 30, 60 ],
+ ],
+ // Purges of link tables
+ 'linkpurge' => [
+ 'ip' => [ 30, 60 ],
+ 'user' => [ 30, 60 ],
+ ],
+ // Files rendered via thumb.php or thumb_handler.php
+ 'renderfile' => [
+ 'ip' => [ 700, 30 ],
+ 'user' => [ 700, 30 ],
+ ],
+ // Same as above but for non-standard thumbnails
+ 'renderfile-nonstandard' => [
+ 'ip' => [ 70, 30 ],
+ 'user' => [ 70, 30 ],
+ ],
+ // Stashing edits into cache before save
+ 'stashedit' => [
+ 'ip' => [ 30, 60 ],
+ 'newbie' => [ 30, 60 ],
+ ],
+ // Stash base HTML for VE edits
+ 'stashbasehtml' => [
+ 'ip' => [ 5, 60 ],
+ 'newbie' => [ 5, 60 ],
+ ],
+ // Adding or removing change tags
+ 'changetags' => [
+ 'ip' => [ 8, 60 ],
+ 'newbie' => [ 8, 60 ],
+ ],
+ // Failing the CAPTCHA
+ 'badcaptcha' => [
+ 'ip' => [ 15, 60 ],
+ 'newbie' => [ 15, 60 ],
+ 'user' => [ 30, 60 ],
+ ],
+];
+
+// Other settings
+
+$wgShowExceptionDetails = true;
+$wgVisualEditorEnableWikitext = true;
+$wgShowDBErrorBacktrace = true;
+$wgCookieWarningEnabled = true;
+$wgCookieWarningGeoIPLookup = 'php';
+$wgCookieWarningGeoIp2 = true;
+$wgCookieWarningGeoIp2Path = '/var/www/html/piwik/misc/DBIP-City.mmdb';
+$wgEnablePartialBlocks = true;
+$wgEnablePartialActionBlocks = true;
+$wgParsoidSettings = [
+ 'linting' => true
+];
+$wgAbuseFilterLogPrivateDetailsAccess = true;
+$wgNamespaceAliases['TW'] = NS_PROJECT;
+$wgNamespaceAliases['TWT'] = NS_PROJECT_TALK;
+$wgNamespaceAliases['TM'] = NS_TEMPLATE;
+$wgPygmentizePath = "/usr/local/bin/pygmentize";
+$wgSFSDenyListCacheDuration = '3600';
+
+$wgCaptchaWhitelist =
+ '#^(https?:)?//([.a-z0-9-]+\\.)?((wikimedia|wikipedia|wiktionary|wikiquote|wikibooks|wikisource|wikispecies|mediawiki|wikinews|wikiversity|wikivoyage|wikidata|wikifunctions|wmflabs)\.org'
+ . '|dnsstuff\.com|completewhois\.com|wikimedia\.de)([?/\#]|$)#i';
+$wgPageLanguageUseDB = true;
+$wgCheckUserLogLogins = true;
+
+// DiscordNotifications
+$wgDiscordFromName = "RCBot";
+$wgDiscordAvatarUrl = 'https://static.testwiki.wiki/b/ba/TestWiki_Icon.png';
+$wgDiscordNotificationWikiUrl = 'https://testwiki.wiki/';
diff --git a/README.md b/README.md
index 9774bc04138..1db3f23496a 100644
--- a/README.md
+++ b/README.md
@@ -1,35 +1,3 @@
# MediaWiki
-MediaWiki is a free and open-source wiki software package written in PHP. It
-serves as the platform for Wikipedia and the other Wikimedia projects, used
-by hundreds of millions of people each month. MediaWiki is localised in over
-350 languages and its reliability and robust feature set have earned it a large
-and vibrant community of third-party users and developers.
-
-MediaWiki is:
-
-* feature-rich and extensible, both on-wiki and with hundreds of extensions;
-* scalable and suitable for both small and large sites;
-* simple to install, working on most hardware/software combinations; and
-* available in your language.
-
-For system requirements, installation, and upgrade details, see the files
-RELEASE-NOTES, INSTALL, and UPGRADE.
-
-* Ready to get started?
- * https://www.mediawiki.org/wiki/Special:MyLanguage/Download
-* Setting up your local development environment?
- * https://www.mediawiki.org/wiki/Local_development_quickstart
-* Looking for the technical manual?
- * https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents
-* Seeking help from a person?
- * https://www.mediawiki.org/wiki/Special:MyLanguage/Communication
-* Looking to file a bug report or a feature request?
- * https://bugs.mediawiki.org/
-* Interested in helping out?
- * https://www.mediawiki.org/wiki/Special:MyLanguage/How_to_contribute
-
-MediaWiki is the result of global collaboration and cooperation. The CREDITS
-file lists technical contributors to the project. The COPYING file explains
-MediaWiki's copyright and license (GNU General Public License, version 2 or
-later). Many thanks to the Wikimedia community for testing and suggestions.
+MediaWiki is a free and open-source wiki software package written in PHP. It serves as the platform for Wikipedia and the other Wikimedia projects. This repository hosts the public configuration settings and code of MediaWiki and extensions for testwiki.wiki.
diff --git a/extensions b/extensions
new file mode 160000
index 00000000000..38d733b1ac3
--- /dev/null
+++ b/extensions
@@ -0,0 +1 @@
+Subproject commit 38d733b1ac3ebca8165f699d0d5dd61feb7d5e97
diff --git a/extensions/.gitignore b/extensions/.gitignore
deleted file mode 100644
index df80c2a660b..00000000000
--- a/extensions/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-!README
-!.gitignore
-!/.vsls.json
diff --git a/extensions/.vsls.json b/extensions/.vsls.json
deleted file mode 100644
index 1a9d1ab1ea7..00000000000
--- a/extensions/.vsls.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "$schema": "http://json.schemastore.org/vsls",
- "gitignore":"hide",
- "excludeFiles":[
- "!*"
- ],
- "hideFiles":[
- "!*"
- ]
-}
diff --git a/extensions/AbuseFilter b/extensions/AbuseFilter
deleted file mode 160000
index a21000c10bc..00000000000
--- a/extensions/AbuseFilter
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit a21000c10bce86ef985f1cdec8763458921b0440
diff --git a/extensions/CategoryTree b/extensions/CategoryTree
deleted file mode 160000
index 78451d96055..00000000000
--- a/extensions/CategoryTree
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 78451d96055229165d99bd8a0d53ffeac98c4e35
diff --git a/extensions/CheckUser b/extensions/CheckUser
deleted file mode 160000
index 383ea0e151d..00000000000
--- a/extensions/CheckUser
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 383ea0e151d1873924b789012747422f31e752bc
diff --git a/extensions/Cite b/extensions/Cite
deleted file mode 160000
index 70d22772aa0..00000000000
--- a/extensions/Cite
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 70d22772aa09990fda253536a08df61aeb11f27e
diff --git a/extensions/CiteThisPage b/extensions/CiteThisPage
deleted file mode 160000
index 455a23b9acd..00000000000
--- a/extensions/CiteThisPage
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 455a23b9acd9fe05103ba682557c826f126fe600
diff --git a/extensions/CodeEditor b/extensions/CodeEditor
deleted file mode 160000
index 6dcd5e05e6a..00000000000
--- a/extensions/CodeEditor
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 6dcd5e05e6ab87691e82f6f0c92d7fe3f2c6dabb
diff --git a/extensions/ConfirmEdit b/extensions/ConfirmEdit
deleted file mode 160000
index 6ed419711b1..00000000000
--- a/extensions/ConfirmEdit
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 6ed419711b127e261eb89e9f5998d42a941ac971
diff --git a/extensions/DiscussionTools b/extensions/DiscussionTools
deleted file mode 160000
index e08e27ff4dd..00000000000
--- a/extensions/DiscussionTools
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit e08e27ff4dd964344469ab21d8c951605cbaf5df
diff --git a/extensions/Echo b/extensions/Echo
deleted file mode 160000
index c9a0f90609b..00000000000
--- a/extensions/Echo
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit c9a0f90609b99066832f636d18733a4a27b751df
diff --git a/extensions/Gadgets b/extensions/Gadgets
deleted file mode 160000
index 518cd856640..00000000000
--- a/extensions/Gadgets
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 518cd856640962e34a04b71a0c9cce31e5f2464d
diff --git a/extensions/ImageMap b/extensions/ImageMap
deleted file mode 160000
index 01cb6c0fde1..00000000000
--- a/extensions/ImageMap
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 01cb6c0fde1c1dbf09da6d574d83c89023304ff2
diff --git a/extensions/InputBox b/extensions/InputBox
deleted file mode 160000
index 05cf520e344..00000000000
--- a/extensions/InputBox
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 05cf520e34430ae6e66646795c490e58cf9ab331
diff --git a/extensions/Interwiki b/extensions/Interwiki
deleted file mode 160000
index b6c0e35bcc3..00000000000
--- a/extensions/Interwiki
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit b6c0e35bcc3dbf967c2d70f53b3e0850b12aad8e
diff --git a/extensions/Linter b/extensions/Linter
deleted file mode 160000
index 53c8b1b6fcf..00000000000
--- a/extensions/Linter
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 53c8b1b6fcf66639f600bc737d6e23384af3de25
diff --git a/extensions/LoginNotify b/extensions/LoginNotify
deleted file mode 160000
index 25395f94e10..00000000000
--- a/extensions/LoginNotify
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 25395f94e10d4907b6eecd929958aff6d914a51c
diff --git a/extensions/Math b/extensions/Math
deleted file mode 160000
index 17ee21475d6..00000000000
--- a/extensions/Math
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 17ee21475d606e1a0c3ce38edf11925226543825
diff --git a/extensions/MultimediaViewer b/extensions/MultimediaViewer
deleted file mode 160000
index bdbf0aef124..00000000000
--- a/extensions/MultimediaViewer
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit bdbf0aef12487f6518c49eb8109d1ddfd9db9ae1
diff --git a/extensions/Nuke b/extensions/Nuke
deleted file mode 160000
index ac62c396184..00000000000
--- a/extensions/Nuke
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit ac62c396184b1c40e313c82268d909592e9b5959
diff --git a/extensions/OATHAuth b/extensions/OATHAuth
deleted file mode 160000
index 44fc3ba25ed..00000000000
--- a/extensions/OATHAuth
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 44fc3ba25ed0c9bb72cef7a9d7b4858dc4350770
diff --git a/extensions/PageImages b/extensions/PageImages
deleted file mode 160000
index 3afaf8f3756..00000000000
--- a/extensions/PageImages
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 3afaf8f37568ad38a29f963e87fd6edde4981801
diff --git a/extensions/ParserFunctions b/extensions/ParserFunctions
deleted file mode 160000
index 44f3b82ea77..00000000000
--- a/extensions/ParserFunctions
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 44f3b82ea77cbed64adc0a4f11a09361f8573ecd
diff --git a/extensions/PdfHandler b/extensions/PdfHandler
deleted file mode 160000
index b80bfec038b..00000000000
--- a/extensions/PdfHandler
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit b80bfec038bce82e4e8bb85004d9820e0e1ef7b2
diff --git a/extensions/Poem b/extensions/Poem
deleted file mode 160000
index 72f1429d365..00000000000
--- a/extensions/Poem
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 72f1429d36529bee4d6f88d669ded09da0114660
diff --git a/extensions/README b/extensions/README
deleted file mode 100644
index 51dfce31b73..00000000000
--- a/extensions/README
+++ /dev/null
@@ -1,30 +0,0 @@
-== User Information ==
-
-Extensions are distributed separately. Drop them into this directory and enable
-as per the extension's installation instructions.
-
-You can find a list of extensions and documentation at
-<https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions>.
-
-== Development Information ==
-
-If you are a developer, you might want to fetch the extension tree in another
-directory and make a symbolic link:
-
- mediawiki/extensions$ ln -s ../../extensions-trunk/FooBar
-
-Most extensions are available through Git:
- https://gerrit.wikimedia.org/g/mediawiki/extensions
-
-
-Please note that under POSIX systems (Linux...), parent of a symbolic path
-refers to the link source, NOT to the target! You should check the env
-variable MW_INSTALL_PATH in case the extension is not in the default location.
-
-The following code snippet lets you override the default path:
-
- $IP = getenv( 'MW_INSTALL_PATH' );
- if ( $IP === false ) {
- $IP = __DIR__ . '/../..';
- }
- require_once "$IP/maintenance/Maintenance.php"; // a MediaWiki core file
diff --git a/extensions/ReplaceText b/extensions/ReplaceText
deleted file mode 160000
index 9b645b76fe8..00000000000
--- a/extensions/ReplaceText
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 9b645b76fe88cd7e38d83ca921cccd2c0e2b1509
diff --git a/extensions/Scribunto b/extensions/Scribunto
deleted file mode 160000
index 7f35d530851..00000000000
--- a/extensions/Scribunto
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 7f35d530851a92beb2eb3d18110c99bf20dc318a
diff --git a/extensions/SecureLinkFixer b/extensions/SecureLinkFixer
deleted file mode 160000
index fe5f79cc7fd..00000000000
--- a/extensions/SecureLinkFixer
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit fe5f79cc7fdf8028ad6ecfb255a1ee884503d305
diff --git a/extensions/SpamBlacklist b/extensions/SpamBlacklist
deleted file mode 160000
index 0668c33bbb4..00000000000
--- a/extensions/SpamBlacklist
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 0668c33bbb44ba4c80b575bcb522cdb89468d664
diff --git a/extensions/SyntaxHighlight_GeSHi b/extensions/SyntaxHighlight_GeSHi
deleted file mode 160000
index 316ffd63a5d..00000000000
--- a/extensions/SyntaxHighlight_GeSHi
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 316ffd63a5dc0fc6952e11c3fa5dbf9d346cb770
diff --git a/extensions/TemplateData b/extensions/TemplateData
deleted file mode 160000
index 8e3d13977dc..00000000000
--- a/extensions/TemplateData
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 8e3d13977dc304e79855c4a59f4a359d71430fd1
diff --git a/extensions/TemplateStyles b/extensions/TemplateStyles
deleted file mode 160000
index 826965983b7..00000000000
--- a/extensions/TemplateStyles
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 826965983b7e532a7e256c7f9b32aded2e671615
diff --git a/extensions/TextExtracts b/extensions/TextExtracts
deleted file mode 160000
index b121250d340..00000000000
--- a/extensions/TextExtracts
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit b121250d340cc0282e5f1887c27795ac9223e9cf
diff --git a/extensions/Thanks b/extensions/Thanks
deleted file mode 160000
index 28eb5452246..00000000000
--- a/extensions/Thanks
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 28eb5452246475f5d67303464bc7625e977e3a3a
diff --git a/extensions/TitleBlacklist b/extensions/TitleBlacklist
deleted file mode 160000
index fadaa913cbb..00000000000
--- a/extensions/TitleBlacklist
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit fadaa913cbb2383a052fcad39052b12ddcffb7cb
diff --git a/extensions/VisualEditor b/extensions/VisualEditor
deleted file mode 160000
index 9e1f41d3fbc..00000000000
--- a/extensions/VisualEditor
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 9e1f41d3fbca445a8eaf23e742a8f007ee49d4b5
diff --git a/extensions/WikiEditor b/extensions/WikiEditor
deleted file mode 160000
index 6ced1057398..00000000000
--- a/extensions/WikiEditor
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 6ced105739861e9b57706288e6a6ed19748db6d7
diff --git a/phplint.sh b/phplint.sh
new file mode 100644
index 00000000000..4a67c3f7530
--- /dev/null
+++ b/phplint.sh
@@ -0,0 +1,13 @@
+#! /bin/bash
+# Author Addshore
+
+find ./ -type f -name 'LocalSettings.php' -exec php -l {} \; | grep
+"Errors parsing ";
+
+# Flip the exit code
+if [ $? -ne 0 ]
+then
+ exit 0
+else
+ exit 1
+fi
diff --git a/skins b/skins
new file mode 160000
index 00000000000..bd450645c7e
--- /dev/null
+++ b/skins
@@ -0,0 +1 @@
+Subproject commit bd450645c7e50d7021fa120842c677d5a2d517b3
diff --git a/skins/.gitignore b/skins/.gitignore
deleted file mode 100644
index 8d09425ed72..00000000000
--- a/skins/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-/*
-!/.gitignore
-!/.vsls.json
-!/README
diff --git a/skins/.vsls.json b/skins/.vsls.json
deleted file mode 100644
index 1a9d1ab1ea7..00000000000
--- a/skins/.vsls.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "$schema": "http://json.schemastore.org/vsls",
- "gitignore":"hide",
- "excludeFiles":[
- "!*"
- ],
- "hideFiles":[
- "!*"
- ]
-}
diff --git a/skins/MinervaNeue b/skins/MinervaNeue
deleted file mode 160000
index 92c9760a26e..00000000000
--- a/skins/MinervaNeue
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 92c9760a26e3bcf359f77decedcd17433f879716
diff --git a/skins/MonoBook b/skins/MonoBook
deleted file mode 160000
index 42624fa85d9..00000000000
--- a/skins/MonoBook
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 42624fa85d90bfa7656c36307039ac17c7e78fd7
diff --git a/skins/README b/skins/README
deleted file mode 100644
index 0547c61f670..00000000000
--- a/skins/README
+++ /dev/null
@@ -1,33 +0,0 @@
-== User Information ==
-
-Skins, such as the default skin Vector, are distributed separately. Drop them
-into this directory and enable as per the skin's installation instructions.
-
-You can find a list of available skins at
-<https://www.mediawiki.org/wiki/Special:MyLanguage/Category:All_skins>,
-and more information about installing and configuring skins at
-<https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Skin_configuration>.
-
-If you are a developer, you might want to fetch the skin tree in another
-directory and make a symbolic link:
-
- mediawiki/skins$ ln -s ../../skins-trunk/FooBar
-
-The default skin Vector can be installed by cloning from Git:
- git clone https://gerrit.wikimedia.org/g/mediawiki/extensions/Vector
-
-Other skins are also available:
- https://gerrit.wikimedia.org/g/mediawiki/extensions
-
-
-Please note that under POSIX systems (Linux...), parent of a symbolic path
-refers to the link source, NOT to the target! You should check the env
-variable MW_INSTALL_PATH in case the extension is not in the default location.
-
-The following code snippet lets you override the default path:
-
- $IP = getenv( 'MW_INSTALL_PATH' );
- if ( $IP === false ) {
- $IP = __DIR__ . '/../..';
- }
- require_once "$IP/maintenance/Maintenance.php"; // a MediaWiki core file
diff --git a/skins/Timeless b/skins/Timeless
deleted file mode 160000
index b0f7215ab09..00000000000
--- a/skins/Timeless
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit b0f7215ab092d17e43527d3dba9787c1a4f0f109
diff --git a/skins/Vector b/skins/Vector
deleted file mode 160000
index f7399329b6c..00000000000
--- a/skins/Vector
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit f7399329b6c82d7c4149fd298f51dcb1bbb752ea
diff --git a/vendor b/vendor
index fe3afb1f410..5fc55a9b0fd 160000
--- a/vendor
+++ b/vendor
@@ -1 +1 @@
-Subproject commit fe3afb1f41047865bfe2463038d8d2ce9b2a8e43
+Subproject commit 5fc55a9b0fd6de356d2bd0338a42132e548f5c43

File Metadata

Mime Type
text/x-diff
Expires
Sat, Jul 5, 5:33 AM (1 d, 7 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
227904
Default Alt Text
(45 KB)

Event Timeline