mirror of
git://develop.git.wordpress.org/
synced 2025-01-17 12:58:25 +01:00
ba620225c5
When the `PHP_CodeSniffer` runs, it produces a cache file. When a cache file is present, only changed files are rescanned, making subsequent scans significantly faster. This adds the needed steps to the corresponding GitHub Actions workflows to cache these files across runs. The cache keys include the date of the previous Monday to ensure that the cache is flushed at least weekly. Since GitHub Action caches cannot be updated once created, the scans will take slightly longer as the week progresses and more PHP files are updated. The date within the cache key can be updated to purge twice weekly if the scan time starts to approach the current scan times. This change also introduces a `.cache` directory for all caching files related to build/test tools. Props johnbillion, jrf. Fixes #49783. git-svn-id: https://develop.svn.wordpress.org/trunk@52179 602fd350-edb4-49c9-b593-d223f7449a82
90 lines
3.7 KiB
XML
90 lines
3.7 KiB
XML
<?xml version="1.0"?>
|
|
<ruleset name="WordPress PHP Compatibility">
|
|
<description>Apply PHP compatibility checks to all WordPress Core files</description>
|
|
|
|
<rule ref="PHPCompatibilityWP"/>
|
|
|
|
<!-- WordPress Core currently supports PHP 5.6+. -->
|
|
<config name="testVersion" value="5.6-"/>
|
|
|
|
<!-- Only scan PHP files. -->
|
|
<arg name="extensions" value="php"/>
|
|
|
|
<!-- Whenever possible, cache the scan results and re-use those for unchanged files on the next scan. -->
|
|
<arg name="cache" value=".cache/phpcompat.json"/>
|
|
|
|
<!-- Set the memory limit to 256M.
|
|
For most standard PHP configurations, this means the memory limit will temporarily be raised.
|
|
Ref: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#specifying-phpini-settings
|
|
-->
|
|
<ini name="memory_limit" value="256M"/>
|
|
|
|
<!-- Strip the filepaths down to the relevant bit. -->
|
|
<arg name="basepath" value="./"/>
|
|
|
|
<!-- Check up to 20 files simultaneously. -->
|
|
<arg name="parallel" value="20"/>
|
|
|
|
<!-- Show sniff codes in all reports. -->
|
|
<arg value="ps"/>
|
|
|
|
<!-- For now, only the files in src are scanned. -->
|
|
<file>./src/</file>
|
|
|
|
<!-- Code which doesn't go into production may have different requirements. -->
|
|
<exclude-pattern>/node_modules/*</exclude-pattern>
|
|
|
|
<!--
|
|
Currently, there are no dependencies managed by Composer.
|
|
This will need to be modified when that changes to ensure external packages meet compatibility requirements.
|
|
-->
|
|
<exclude-pattern>/vendor/*</exclude-pattern>
|
|
|
|
<!-- Must-Use plugins. -->
|
|
<exclude-pattern>/src/wp-content/mu-plugins/*</exclude-pattern>
|
|
|
|
<!-- Plugins. -->
|
|
<exclude-pattern>/src/wp-content/plugins/*</exclude-pattern>
|
|
|
|
<!-- Themes except the twenty* themes. -->
|
|
<exclude-pattern>/src/wp-content/themes/(?!twenty)*</exclude-pattern>
|
|
|
|
<!--
|
|
PHPCompatibilityParagonieSodiumCompat prevents false positives in `sodium_compat`.
|
|
However, because these files are included in a non-standard path, false positives are triggered in WordPress Core.
|
|
-->
|
|
<exclude-pattern>src/wp-includes/sodium_compat/lib/php72compat_const\.php$</exclude-pattern>
|
|
|
|
<rule ref="PHPCompatibility.FunctionUse.NewFunctions.sodium_crypto_sign_keypair_from_secretkey_and_publickeyFound">
|
|
<exclude-pattern>/sodium_compat/src/Compat\.php$</exclude-pattern>
|
|
</rule>
|
|
<rule ref="PHPCompatibility.FunctionUse.NewFunctions.sodium_padFound">
|
|
<exclude-pattern>/sodium_compat/src/Compat\.php$</exclude-pattern>
|
|
</rule>
|
|
<rule ref="PHPCompatibility.FunctionUse.NewFunctions.sodium_unpadFound">
|
|
<exclude-pattern>/sodium_compat/src/Compat\.php$</exclude-pattern>
|
|
</rule>
|
|
|
|
<!--
|
|
PHPCompatibilityParagonieRandomCompat prevents false positives in `random_compat`.
|
|
However, because these files are included in a non-standard path, false positives are triggered in WordPress Core.
|
|
-->
|
|
<rule ref="PHPCompatibility.IniDirectives.RemovedIniDirectives.mbstring_func_overloadDeprecated">
|
|
<exclude-pattern>/random_compat/byte_safe_strings\.php$</exclude-pattern>
|
|
</rule>
|
|
<rule ref="PHPCompatibility.Constants.RemovedConstants.mcrypt_dev_urandomDeprecatedRemoved">
|
|
<exclude-pattern>/random_compat/random_bytes_mcrypt\.php$</exclude-pattern>
|
|
</rule>
|
|
<rule ref="PHPCompatibility.Extensions.RemovedExtensions.mcryptDeprecatedRemoved">
|
|
<exclude-pattern>/random_compat/random_bytes_mcrypt\.php$</exclude-pattern>
|
|
</rule>
|
|
<rule ref="PHPCompatibility.FunctionUse.RemovedFunctions.mcrypt_create_ivDeprecatedRemoved">
|
|
<exclude-pattern>/random_compat/random_bytes_mcrypt\.php$</exclude-pattern>
|
|
</rule>
|
|
|
|
<!-- Whitelist the WP DB Class for use of `mysql_` extension in PHP < 7.0. -->
|
|
<rule ref="PHPCompatibility.Extensions.RemovedExtensions.mysql_DeprecatedRemoved">
|
|
<exclude-pattern>/src/wp-includes/wp-db\.php</exclude-pattern>
|
|
</rule>
|
|
</ruleset>
|