288 lines
15 KiB
XML
288 lines
15 KiB
XML
<?xml version="1.0"?>
|
|
<ruleset name="MediaWiki">
|
|
<rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki">
|
|
<exclude name="Generic.ControlStructures.InlineControlStructure" />
|
|
<exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate" />
|
|
<exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected" />
|
|
<exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic" />
|
|
<exclude name="MediaWiki.Commenting.FunctionComment.WrongStyle" />
|
|
<exclude name="MediaWiki.Commenting.IllegalSingleLineComment.IllegalSingleLineCommentEnd" />
|
|
<exclude name="MediaWiki.Commenting.IllegalSingleLineComment.IllegalSingleLineCommentStart" />
|
|
<exclude name="MediaWiki.ControlStructures.AssignmentInControlStructures.AssignmentInControlStructures" />
|
|
<exclude name="MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName" />
|
|
<exclude name="MediaWiki.Usage.DbrQueryUsage.DbrQueryFound" />
|
|
<exclude name="MediaWiki.Usage.DeprecatedGlobalVariables.Deprecated$wgContLang" />
|
|
<exclude name="MediaWiki.Usage.DeprecatedGlobalVariables.Deprecated$wgTitle" />
|
|
<exclude name="MediaWiki.Usage.ForbiddenFunctions.passthru" />
|
|
<exclude name="MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment" />
|
|
<exclude name="MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.SingleSpaceBeforeSingleLineComment" />
|
|
<exclude name="PSR12.Properties.ConstantVisibility.NotFound" />
|
|
<exclude name="PSR2.Classes.ClassDeclaration.InterfaceWrongIndent" /><!-- Temporary: T243529 -->
|
|
</rule>
|
|
<!-- TODO Still to be done -->
|
|
<rule ref="Squiz.Scope.MethodScope.Missing">
|
|
<exclude-pattern>includes/actions/</exclude-pattern>
|
|
<exclude-pattern>includes/deferred/</exclude-pattern>
|
|
<exclude-pattern>includes/diff/</exclude-pattern>
|
|
<exclude-pattern>includes/export/</exclude-pattern>
|
|
<exclude-pattern>includes/filerepo/</exclude-pattern>
|
|
<exclude-pattern>includes/gallery/</exclude-pattern>
|
|
<exclude-pattern>includes/historyblob/</exclude-pattern>
|
|
<exclude-pattern>includes/htmlform/</exclude-pattern>
|
|
<exclude-pattern>includes/import/</exclude-pattern>
|
|
<exclude-pattern>includes/installer/</exclude-pattern>
|
|
<exclude-pattern>includes/language/</exclude-pattern>
|
|
<exclude-pattern>includes/libs/</exclude-pattern>
|
|
<exclude-pattern>includes/logging/</exclude-pattern>
|
|
<exclude-pattern>includes/media/</exclude-pattern>
|
|
<exclude-pattern>includes/page/</exclude-pattern>
|
|
<exclude-pattern>includes/pager/</exclude-pattern>
|
|
<exclude-pattern>includes/parser/</exclude-pattern>
|
|
<exclude-pattern>includes/poolcounter/</exclude-pattern>
|
|
<exclude-pattern>includes/Rest/</exclude-pattern>
|
|
<exclude-pattern>includes/search/</exclude-pattern>
|
|
<exclude-pattern>includes/skins/</exclude-pattern>
|
|
<exclude-pattern>includes/specialpage/</exclude-pattern>
|
|
<exclude-pattern>includes/specials/</exclude-pattern>
|
|
<exclude-pattern>includes/upload/</exclude-pattern>
|
|
<exclude-pattern>includes/user/</exclude-pattern>
|
|
<exclude-pattern>includes/utils/</exclude-pattern>
|
|
<exclude-pattern>includes/AjaxResponse\.php</exclude-pattern>
|
|
<exclude-pattern>includes/AutoLoader\.php</exclude-pattern>
|
|
<exclude-pattern>includes/CategoryViewer\.php</exclude-pattern>
|
|
<exclude-pattern>includes/ProtectionForm\.php</exclude-pattern>
|
|
<exclude-pattern>includes/Title\.php</exclude-pattern>
|
|
<exclude-pattern>includes/TitleArrayFromResult\.php</exclude-pattern>
|
|
</rule>
|
|
<!-- See T238572 -->
|
|
<rule ref="MediaWiki.Commenting.FunctionComment.MissingParamTag">
|
|
<exclude-pattern>tests/</exclude-pattern>
|
|
</rule>
|
|
<rule ref="MediaWiki.NamingConventions.PrefixedGlobalFunctions">
|
|
<properties>
|
|
<!--
|
|
includes/GlobalFunctions.php
|
|
* mimeTypeMatch
|
|
maintenance/language/transstat.php
|
|
* showUsage
|
|
maintenance/mcc.php
|
|
* mccGetHelp
|
|
* mccShowUsage
|
|
maintenance/storage/moveToExternal.php
|
|
* moveToExternal
|
|
maintenance/storage/resolveStubs.php
|
|
* resolveStub
|
|
* resolveStubs
|
|
tests/phpunit/includes/HooksTest.php
|
|
* NothingFunction
|
|
* NothingFunctionData
|
|
tests/qunit/data/styleTest.css.php
|
|
* cssfilter
|
|
-->
|
|
<property name="ignoreList" type="array" value="cssfilter,mccGetHelp,mccShowUsage,mimeTypeMatch,moveToExternal,NothingFunction,NothingFunctionData,resolveStub,resolveStubs,showUsage" />
|
|
</properties>
|
|
</rule>
|
|
<rule ref="MediaWiki.NamingConventions.ValidGlobalName">
|
|
<properties>
|
|
<property name="ignoreList" type="array" value="$IP" />
|
|
</properties>
|
|
</rule>
|
|
<rule ref="MediaWiki.NamingConventions.ValidGlobalName.allowedPrefix">
|
|
<exclude-pattern>maintenance/language/checkLanguage\.inc</exclude-pattern>
|
|
<exclude-pattern>maintenance/doMaintenance\.php</exclude-pattern>
|
|
<exclude-pattern>maintenance/mergeMessageFileList\.php</exclude-pattern>
|
|
<exclude-pattern>maintenance/commandLine\.inc</exclude-pattern>
|
|
<exclude-pattern>tests/phpunit/MediaWikiIntegrationTestCase\.php</exclude-pattern>
|
|
</rule>
|
|
<rule ref="Generic.Files.LineLength">
|
|
<exclude-pattern>*/languages/messages/Messages*\.php</exclude-pattern>
|
|
</rule>
|
|
<rule ref="MediaWiki.Files.ClassMatchesFilename.NotMatch">
|
|
<!--
|
|
Whitelist existing violations, but enable the sniff to prevent
|
|
any new occurrences.
|
|
-->
|
|
<exclude-pattern>*/includes/specials/SpecialMostimages\.php</exclude-pattern>
|
|
<exclude-pattern>*/includes/specials/SpecialMovepage\.php</exclude-pattern>
|
|
<exclude-pattern>*/includes/specials/SpecialRandompage\.php</exclude-pattern>
|
|
<exclude-pattern>*/includes/specials/SpecialUserrights\.php</exclude-pattern>
|
|
<exclude-pattern>*/includes/specials/SpecialWantedfiles\.php</exclude-pattern>
|
|
<exclude-pattern>*/includes/specials/SpecialWantedpages\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/CodeCleanerGlobalsPass.inc</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/archives/upgradeLogging\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/benchmarks/bench_HTTP_HTTPS\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/benchmarks/bench_Wikimedia_base_convert\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/benchmarks/bench_delete_truncate\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/benchmarks/bench_if_switch\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/benchmarks/bench_utf8_title_check\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/benchmarks/bench_wfIsWindows\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/cleanupTable.inc</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/cleanupTitles\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/commandLine.inc</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/edit\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/findDeprecated\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/getText\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/importDump\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/install\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/invalidateUserSessions\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/jsparse\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/lag\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/language/StatOutputs\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/language/checkLanguage.inc</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/language/date-formats\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/language/languages.inc</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/minify\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/mysql\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/parse\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/preprocessorFuzzTest\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/rebuildImages\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/renderDump\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/shell\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/sql\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/sqlite.inc</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/sqlite\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/term/MWTerm\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/update\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/userDupes.inc</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/userOptions\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/view\.php</exclude-pattern>
|
|
<!-- Language converters use the pattern of 2 classes in one file -->
|
|
<exclude-pattern>*/languages/*\.php</exclude-pattern>
|
|
<!-- Skip violations in some tests for now -->
|
|
<exclude-pattern>*/tests/parser/*\.php</exclude-pattern>
|
|
<exclude-pattern>*/tests/phan/*\.php</exclude-pattern>
|
|
<exclude-pattern>*/tests/phpunit/maintenance/*\.php</exclude-pattern>
|
|
<exclude-pattern>*/tests/phpunit/bootstrap\.php</exclude-pattern>
|
|
<exclude-pattern>*/tests/phpunit/phpunit\.php</exclude-pattern>
|
|
</rule>
|
|
<rule ref="MediaWiki.Files.ClassMatchesFilename.WrongCase">
|
|
<!--
|
|
Whitelist existing violations, but enable the sniff to prevent
|
|
any new occurrences.
|
|
-->
|
|
<exclude-pattern>*/maintenance/language/alltrans\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/language/digit2html\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/language/langmemusage\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/mctest\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/mergeMessageFileList\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/mwdocgen\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/rebuildall\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/rebuildmessages\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/rebuildrecentchanges\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/rebuildtextindex\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/storage/checkStorage\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/storage/recompressTracked\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/storage/trackBlobs\.php</exclude-pattern>
|
|
<!-- Skip violations in some tests for now -->
|
|
<exclude-pattern>*/tests/phpunit/unit/includes/GlobalFunctions/*\.php</exclude-pattern>
|
|
<exclude-pattern>*/tests/phpunit/includes/GlobalFunctions/*\.php</exclude-pattern>
|
|
<exclude-pattern>*/tests/phpunit/maintenance/*\.php</exclude-pattern>
|
|
<exclude-pattern>*/tests/phpunit/integration/includes/GlobalFunctions/*\.php</exclude-pattern>
|
|
</rule>
|
|
<rule ref="Generic.PHP.NoSilencedErrors.Discouraged">
|
|
<!--
|
|
Our normal policy of using Wikimedia\AtEase does not always make sense tests.
|
|
|
|
AtEase cannot be cleanly used in tests that also use expectException() as
|
|
the restoreWarnings() call would never be reached:
|
|
|
|
$this->expectException( PasswordError::class );
|
|
AtEase::suppressWarnings();
|
|
$password->crypt( 'whatever' );
|
|
AtEase::restoreWarnings();
|
|
|
|
The above will stop at crypt(), as expected, and leave AtEase in a dirty
|
|
state for unrelated tests.
|
|
|
|
TODO: Stop using PHPUnit TestCase directly. Require with a structure test
|
|
or with a high-level check in our run() hook, that all test cases use either
|
|
MediaWikiUnitTestCase or MediaWikiIntegrationTestCase. Otherwise the check
|
|
in MediaWikiTestCaseTrait can still be bypassed and cause a random failures.
|
|
|
|
-->
|
|
<exclude-pattern>*/tests/*\.php</exclude-pattern>
|
|
</rule>
|
|
<rule ref="Generic.Files.OneObjectStructurePerFile.MultipleFound">
|
|
<!--
|
|
Whitelist existing violations, but enable the sniff to prevent
|
|
any new occurrences.
|
|
-->
|
|
<exclude-pattern>*/maintenance/dumpIterator\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/findDeprecated\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/storage/recompressTracked\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/preprocessorFuzzTest\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/language/languages.inc</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/language/StatOutputs\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/language/checkLanguage.inc</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/language/generateCollationData\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/term/MWTerm\.php</exclude-pattern>
|
|
<!-- Language converters use the pattern of 2 classes in one file -->
|
|
<exclude-pattern>*/languages/*\.php</exclude-pattern>
|
|
<!-- We don't care that much about violations in tests -->
|
|
<exclude-pattern>*/tests/*\.php</exclude-pattern>
|
|
</rule>
|
|
<rule ref="PSR2.Methods.MethodDeclaration.Underscore">
|
|
<exclude-pattern>*/includes/StubObject\.php</exclude-pattern>
|
|
<exclude-pattern>*/includes/StubUserLang\.php</exclude-pattern>
|
|
</rule>
|
|
<rule ref="MediaWiki.Usage.AssignmentInReturn.AssignmentInReturn">
|
|
<exclude-pattern>*/tests/phpunit/*\.php</exclude-pattern>
|
|
</rule>
|
|
<rule ref="MediaWiki.Usage.ForbiddenFunctions.escapeshellarg">
|
|
<!--
|
|
Whitelist existing violations, but enable the sniff to prevent
|
|
any new occurrences.
|
|
-->
|
|
<exclude-pattern>*/includes/libs/filebackend/FSFileBackend\.php</exclude-pattern>
|
|
<exclude-pattern>*/includes/shell/Command\.php</exclude-pattern>
|
|
<exclude-pattern>*/includes/shell/Shell\.php</exclude-pattern>
|
|
</rule>
|
|
<rule ref="MediaWiki.Usage.ForbiddenFunctions.popen">
|
|
<!--
|
|
Whitelist existing violations, but enable the sniff to prevent
|
|
any new occurrences.
|
|
-->
|
|
<exclude-pattern>*/includes/GlobalFunctions\.php</exclude-pattern>
|
|
<exclude-pattern>*/includes/libs/filebackend/FSFileBackend\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/includes/SevenZipStream\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/populateImageSha1\.php</exclude-pattern>
|
|
</rule>
|
|
<rule ref="MediaWiki.Usage.ForbiddenFunctions.proc_open">
|
|
<!--
|
|
Whitelist existing violations, but enable the sniff to prevent
|
|
any new occurrences.
|
|
-->
|
|
<exclude-pattern>includes/export/DumpPipeOutput\.php</exclude-pattern>
|
|
<exclude-pattern>includes/resourceloader/ResourceLoaderImage\.php</exclude-pattern>
|
|
<exclude-pattern>includes/shell/Command\.php</exclude-pattern>
|
|
<exclude-pattern>maintenance/includes/TextPassDumper\.php</exclude-pattern>
|
|
<exclude-pattern>maintenance/mysql\.php</exclude-pattern>
|
|
<exclude-pattern>maintenance/storage/recompressTracked\.php</exclude-pattern>
|
|
<exclude-pattern>tests/parser/editTests\.php</exclude-pattern>
|
|
</rule>
|
|
<rule ref="MediaWiki.Usage.ForbiddenFunctions.shell_exec">
|
|
<!--
|
|
Whitelist existing violations, but enable the sniff to prevent
|
|
any new occurrences.
|
|
-->
|
|
<exclude-pattern>*/maintenance/mwdocgen\.php</exclude-pattern>
|
|
<exclude-pattern>*/maintenance/updateCredits\.php</exclude-pattern>
|
|
</rule>
|
|
<rule ref="MediaWiki.Usage.ForbiddenFunctions.system">
|
|
<!--
|
|
Whitelist existing violations, but enable the sniff to prevent
|
|
any new occurrences.
|
|
-->
|
|
<exclude-pattern>*/maintenance/mwdocgen\.php</exclude-pattern>
|
|
</rule>
|
|
<rule ref="MediaWiki.Commenting.MissingCovers.MissingCovers">
|
|
<exclude-pattern>tests/phpunit/structure/*</exclude-pattern>
|
|
</rule>
|
|
<file>.</file>
|
|
<arg name="encoding" value="UTF-8"/>
|
|
<arg name="extensions" value="php,php5,inc,sample"/>
|
|
<exclude-pattern type="relative">^extensions/</exclude-pattern>
|
|
<exclude-pattern type="relative">^skins/</exclude-pattern>
|
|
<exclude-pattern>AdminSettings\.php</exclude-pattern>
|
|
<exclude-pattern>LocalSettings\.php</exclude-pattern>
|
|
</ruleset>
|