Removing the PHP 5.4 plugin directory linting
The plugin directory has linting against PHP 5.4 for quite some time now. It used to be a feature to prevent accidental bad commits, but today it’s now regarded by many as a bug.
We need to do one or more of the following:
- Upgrade the PHP linting to PHP-latest-stable (7.0)
- Upgrade the PHP linting to PHP 5.6 with a plan to move to PHP 7.0 (latest stable) and keep up with future releases
- Switch PHP linting to being a warning instead of a block
- Remove the linting all together
Simply upgrading the linting to PHP 5.6 only kicks the can down the road, and still blocks people from using PHP 7 syntaxes in plugins (which is totally okay, if the plugin specifies that as a requirement).
Removing the linting seems like a bad idea, as I believe authors should still be notified they’re committing code that may not be compatible (Unfortunately we currently don’t do php fatal error prevention checks on plugin upgrades, so I’d like to retain it to prevent an unexpected WSOD).
So, I personally feel we should leave the linting at PHP 5.4 (which is what the majority of WordPress sites run today) and make it a warning, not a block.
In order to warn instead of outright blocking, the linting needs to be moved from the
pre-commit hook to the
post-commit hook and the script exiting with a error-level code, STDERR will then be sent to the client after the commit is made.