forked from WordPress/wordpress-develop
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Build/Test Tools: Introduce automated PHP compatibility checking.
This change introduces a new Composer script, `compat` that will scan the codebase for (detectable) potential PHP compatibility issues using the `PHP_CodeSniffer` and a custom ruleset based off of the `PHPCompayibilityWP` ruleset (`phpcompat.xml.dist`). The command will be run as a separate job within each Travis build. While many compatibility issues and false positives have already been corrected in this commit and other Trac tickets, there are still some remaining. For that reason, the job is allowed to fail while the remainder of the potential compatibility issues are investigated and addressed. After those are resolved, the job should be set as required to pass to help prevent new compatibility issues from being introduced. Props desrosj, jrf, all PHPCompatibilityWP and PHPCompatibility contributors. Fixes #46152. git-svn-id: https://develop.svn.wordpress.org/trunk@46290 602fd350-edb4-49c9-b593-d223f7449a82
- Loading branch information
Showing
12 changed files
with
251 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
<?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"/> | ||
|
||
<!-- 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> | ||
|
||
<!-- | ||
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"> | ||
<exclude-pattern>/src/wp-includes/wp-db\.php</exclude-pattern> | ||
</rule> | ||
</ruleset> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.