wikimedia/mediawiki-extensions-Wikibase

View on GitHub
.phpcs.xml

Summary

Maintainability
Test Coverage
<?xml version="1.0"?>
<ruleset>
    <rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki">
        <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate" />
        <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected" />
        <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic" />
        <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamTag" />
        <exclude name="MediaWiki.Usage.StaticClosure.StaticClosure" />
    </rule>

    <!-- Starting a function's body with an empty line can be helpful after a very large header.
        The code is not guaranteed to be easier to read if this is disallowed. -->
    <rule ref="Squiz.WhiteSpace.FunctionOpeningBraceSpace">
        <severity>0</severity>
    </rule>

    <!-- Even if we encourage to use a space in "function ()", we don't think this sniff should
        block patches from being merged. -->
    <rule ref="MediaWiki.WhiteSpace.SpaceAfterClosure">
        <severity>0</severity>
    </rule>

    <!-- Even if we encourage to use spaces in comments, we don't think this sniff should block
        patches from being merged. -->
    <rule ref="MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment">
        <severity>0</severity>
    </rule>

    <!-- Disallows any content outside of <?php … ?> tags. -->
    <rule ref="Generic.Files.InlineHTML" />

    <rule ref="MediaWiki.NamingConventions.LowerCamelFunctionsName">
        <!-- Exclude test methods like "testGivenInvalidInput_methodThrowsException". -->
        <exclude-pattern>tests*Test*\.php</exclude-pattern>
    </rule>
    <rule ref="Generic.PHP.NoSilencedErrors.Discouraged">
        <exclude-pattern>tests/phpunit/*</exclude-pattern>
    </rule>

    <!-- NOTE: We can not use the Squiz.Arrays.ArrayBracketSpacing sniff because it conflicts with
        the MediaWiki style that encourages to use spaces inside brackets, see
        https://www.mediawiki.org/wiki/Manual:Coding_conventions/JavaScript#Whitespace -->

    <rule ref="Squiz.Functions.GlobalFunction" />

    <!-- NOTE: Do not add the Squiz.Strings.DoubleQuoteUsage sniff. Even if we encourage to prefer
        single quotes, we don't think double quotes should block patches from being merged. -->

    <rule ref="MediaWiki.Classes.FullQualifiedClassName">
        <severity>5</severity>
        <properties>
            <property name="allowFunctions" value="false" />
        </properties>
    </rule>

    <rule ref="MediaWiki.Commenting.ClassLevelLicense">
        <properties>
            <property name="license" value="GPL-2.0-or-later" />
        </properties>
    </rule>

    <rule ref="Generic.Files.LineLength">
        <properties>
            <property name="lineLimit" value="140" />
        </properties>
        <exclude-pattern>view/resources/templates\.php</exclude-pattern>
    </rule>

    <rule ref="Generic.Classes.DuplicateClassName">
        <exclude-pattern>WikibaseLibraryTestCase</exclude-pattern>
    </rule>
    <!-- NOTE: We purposely decided against additional Generic.CodeAnalysis.… sniffs, because they
        all have possible exceptions, and are not meant to block patches from being merged. -->
    <rule ref="Generic.CodeAnalysis.UnconditionalIfStatement">
        <exclude-pattern>WikibaseClient\.example\.php</exclude-pattern>
    </rule>
    <rule ref="Generic.Files.OneObjectStructurePerFile">
        <exclude-pattern>WikibaseLibraryTestCase</exclude-pattern>
    </rule>
    <rule ref="PSR1.Classes.ClassDeclaration.MultipleClasses">
        <exclude-pattern>WikibaseLibraryTestCase</exclude-pattern>
    </rule>
    <rule ref="MediaWiki.Commenting.LicenseComment.LicenseTagNonFileComment">
        <exclude-pattern>WikibaseLibraryTestCase\.php</exclude-pattern>
        <exclude-pattern>DispatchingQueryBuilderTest\.php</exclude-pattern>
    </rule>
    <rule ref="MediaWiki.Commenting.PhpunitAnnotations.NotClassTrait">
        <exclude-pattern>DispatchingQueryBuilderTest\.php</exclude-pattern>
    </rule>
    <rule ref="MediaWiki.Arrays.TrailingComma">
        <properties>
            <property name="singleLine" value="false" />
            <property name="multiLine" value="true" />
        </properties>
    </rule>

    <rule ref="Generic.Metrics.CyclomaticComplexity">
        <properties>
            <property name="complexity" value="16" />
        </properties>
        <exclude-pattern>(RdfWriterFactory|UrlSchemeValidators)</exclude-pattern>
    </rule>
    <rule ref="Generic.Metrics.NestingLevel" />

    <rule ref="SlevomatCodingStandard.TypeHints.ReturnTypeHintSpacing">
        <properties>
            <property name="spacesCountBeforeColon" value="0" />
        </properties>
    </rule>

    <file>.</file>
    <arg name="extensions" value="php" />
    <arg name="encoding" value="UTF-8" />
    <arg name="bootstrap" value="./vendor/mediawiki/mediawiki-codesniffer/utils/bootstrap-ci.php"/>
    <exclude-pattern>.phan/stubs</exclude-pattern>
    <exclude-pattern>repo/tests/browser</exclude-pattern>
    <exclude-pattern type="relative">^extensions/</exclude-pattern>
</ruleset>