If you have used WordPress for at least a few months, you have probably used a plugin by scribu or at least heard a discussion over one of the tools or plugins he is involved with.
Recently Cristi (scribu) announced his “retirement” from the WordPress industry and he’s currently involved in just a few projects, mostly WP-CLI (which involves mostly some custom PHP, server-related tasks and playing with cool stuff such as Travis, Composer, Behat).
However, I’ve been monitoring his work on the WordPress Core and his plugins over the Trac/support forums/GitHub and I am happy to outline my top 5 tips that I learned from his contributing activities.
- All contributors are welcome. Not only direct patches, but any sort of contributions. You can see Scribu asking for all communication going through social networks/IRC/whatever to be published as GitHub issues or tickets. Also, pull requests are being paid attention to in the best possible manner.
- Improve the patches too. Not too many developers are active on GitHub and working with contributors, but even most of them are either negligent to any attempts of contributions (or too busy to take care of them) or just accepting them “as is”. Scribu might look like a pain in the ass for not getting your patches all the time, but it’s just a way to only get quality code in.
- Test everything. Running a Continuous Integration platform and using PHPUnit/Behat or other tools/libraries (Selenium, Mink, Grunt) is the best way to test the overall product after a new patch proposal gets in. When a product gets larger and maintained for a longer time, new updates could affect all sort of functionality, one way or the other, especially serious refactoring attempts targeting the product quality and scalability. Requiring tests for new functionality could only improve the product and test it again when new related code is being submitted.
- Always look at the big picture. Some great features don’t get in a product and it’s a fact. Whether being a feature that’s not popular, or affecting another feature, or just slowing some feature down, there is probably a reason to leave it as is for now (while keeping the ticket/issue in mind for future discussions). It’s often for the best.
- Say “Thanks”. I’ve been unfortunate to spend hours and sending hundreds of lines of code to improve products and getting zero feedback or no appreciation at all. Scribu is always greeting new committers and is helping to build a community around a product. I am always happy when I get patches from other developers – they do it for free and all they look forward to is improving a product that they would like to use again – and make it better. Be grateful for that.