PHPCS, a major PHP library, needs support

The PHP_CodeSniffer project (PHPCS in short) needs support to continue operating because it’s been abandoned by its long-time sponsor. PHPCS is a library used by almost every major PHP project (WordPress, Drupal, Joomla, Mediawiki, Doctrine, and many more). It helps companies and individual developers build better code and follow code styles.

The backstory

Juliette Reinders Folmer has been the solo maintainer or majority co-maintainer of many popular PHP and WordPress libraries that their corresponding communities rely on. PHP_CodeSniffer (PHPCS) has been historically owned/sponsored by a company called Squiz and primarily by one developer, Greg Sherwood.

Greg has been running releases, while Juliette has been providing the majority of code contributions for a few years now. Greg / Squiz have decided to abandon the PHPCS project. Unfortunately, while I think we as a community should be thankful for what Greg has done up until this point, this is where things get a bit bitter: Squiz has refused to give the project a lifeline by providing admin access or transferring ownership to Juliette to keep it alive.

The combined projects PHPCS, PHPCompatibility, and, specifically for the WordPress world, WordPress CS and PHPCompatibilityWP were already stretched extremely thin. The majority of Juliette’s time has been unpaid for years. 

I’ve personally been working with Juliette for just over a decade. First, she just did a ton of free work, and later on, we hired her to do even more work, including building the fantastic YoastCS and the incredibly important PHPUnit-Polyfills. Unfortunately, very few companies are willing to sponsor this kind of work. I think all of us should come together now and fix this.

How important are these tools?

I can say from personal experience that I use these tools in every project I work on, and each and every one of the companies I work with does. Without these tools, our code would have more security issues, stability issues, bugs, etc. I can’t stress enough how important these tools are.

I can guarantee that if we, as a community, don’t have these tools at our disposal, every host will spend more hours on support for weird issues that nobody’s seen before. Every development company will be spending more time on bug fixes for compatibility issues and other things that are just super painful to debug. All of us get a less safe, more bug-ridden web.

How you can help fund this project

As a community, we owe a great deal to Juliette for the work she’s done. A lot of gratitude, but gratitude alone doesn’t pay the bills. We need to get her funded, and we also need to make sure that she’s not running all of these incredibly important projects by herself. 

PHPCS is seeking funding for the project’s expenses, and Juliette continues to seek funding for her own income as the maintainer. Fund her yourself. Email your boss. If they want to talk to people who can explain to them why they should, let them talk to me, or even Juliette herself; you can reach her on X, Mastodon, or WordPress Slack.

Of course, this doesn’t stop with just funding Juliette. We need to make sure she’s not alone in maintaining all these super-important projects. I think the open-source ecosystem is yet to come up with a definitive answer to how we fix issues like these, and this project is important enough that I think we should start coming up with better solutions. But don’t let that stop you from funding using the two links above right now!

How can you switch to the newly forked project?

Juliette has forked the soon-to-be-abandoned PHPCS project. Once she releases version 3.8.0, you can switch your code to use the new PHPCS repository. The release notification/changelog will contain the information needed to make the switch.

PS Thanks to Courtney Robertson and Scott Kingsley Clark for pinging me to speak out on such an important topic.

This article, PHPCS, a major PHP library, needs support, was published at Post Status — the community for WordPress professionals.

Leave a Reply

Your email address will not be published. Required fields are marked *

Leave a comment

Your email address will not be published. Required fields are marked *