WordPress Plugin Repository Now Rejects Commits With PHP Errors

In case you missed it over the holidays, an important notice was issued to WordPress.org plugin developers. The WordPress Plugin Repository will no longer allow developers to commit files with PHP syntax errors in them. Mika Epstein, one of the developers who helps to review incoming plugins, posted an example of what the kick-back error notice will look like:

As you can see here, if your commit is blocked, you’ll be notified of the file and line containing the error.

It’s important to note that the script performs a PHP 5.4 syntax check. In the comments on the notice, Andrew Nacin warns, “Please be careful if you are using 5.3 or 5.4-specific language features, like namespaces, closures, short array or ternary syntaxes, etc. These will break sites running PHP 5.2 (which is a majority of sites).”

Reasons for Rejecting Commits With PHP Errors

This new policy makes a lot of sense, not only for plugin developers but also for the millions of people who install these extensions and expect them to work. Epstein says, “Such an error would make the plugin fail when it tried to load the file anyway, so think of this as a ‘for your own protection’ kind of thing.” If somehow the errors were missed during testing, the script in place on the Subversion server is like a second checkpoint to help developers commit error free files.

Over time the plugin repository should improve for users as a result of having this policy in place. All new plugins and newly committed files will be free from PHP syntax errors. That means fewer plugin failures out in the wild. When hunting through the repo for a WordPress plugin to perform a specific function, it’s very disappointing to install the plugin only to find that there are errors that prevent it from working at all. Eventually, this new policy will help create a better experience for users installing plugins from the official WordPress.org repository.

6 Comments

99.9999% of bugs (for plugins 2011+) are not because of php errors (imho). So this enhancement in the repository will just prevent temporary and accident commits (that anyway you will unlikely to catch).

What is interesting – will they make a check of all currently available plugins in the repo? Not all versions of course, just the latest tagged version of each plugin.