WP-CLI has hired Alain Schlesser as a new part-time co-maintainer. The position was made possible by sponsorships from Automattic, Bluehost, DreamHost, SiteGround, WP Engine, and more than 60 individuals who contributed to the project.
“With Alain joining the project as a co-maintainer, the WP-CLI project is restoring capacity to meet current demands (e.g. support), and ramping up on new feature development and evangelization,” WP-CLI co-maintainer Daniel Bachhuber said. “We’ve already improved the build time by 33%!”
Schlesser first became involved in the project after Bachhuber contacted him last March for input on solving some outstanding issues with Composer, which WP-CLI uses for external package management. Schlesser said he couldn’t afford the time to actively work on the issue at that time but tried to offer meaningful input for the right angle for solving the remaining issues.
“This short collaboration changed my perception about WP-CLI and helped me realize that there is a push to use modern and modular code to improve the tool and prepare it for future requirements,” Schlesser said. “So, already at that point, I wanted to contribute to the project. However, I was already involved in a different part of WordPress contribution (which is now the Nextgen Bootstrap/Load Feature Project), and I had to prioritize my volunteer work and keep a few hours left for paid client work as well.”
Schlesser said taking on the role of a maintainer became an option once it was a paid position made possible by the project’s 2017 sponsors. Prior to that he would not have been able to financially afford the additional time investment that WP-CLI requires. The new role enables him to work for 5-10 hours per week on general user support, development of new and improved features, writing documentation, managing the issue backlog, reviewing pull requests and working on the project’s infrastructure.
In joining WP-CLI as a co-maintainer, Schlesser brings a fresh perspective from developing for other platforms and years experience managing and contributing to dozens of open source projects.
“WP-CLI is in a unique place in terms of what it tries to achieve and how it does it (out of necessity),” Schlesser said. “For most other web platforms, the command line interface is a regular part of the core of the system itself, often building what is known as a Hexagonal Architecture. WP-CLI, on the other hand, achieves most of the same benefits even though it has no direct control over the Core source code, and that source code is not meant to support such an architecture. Given the obstacles, the current results are quite an achievement!”
After its 1.0.0 release, WP-CLI shifted to focus on its package ecosystem. New features are now built as standalone packages instead of rolling everything into WP-CLI core. The eventual goal is to better distribute the project’s maintenance burden among package maintainers.
“I think the most important change in the upcoming release is that all the bundled commands have been extracted into separate packages, and we’re currently in the process of getting rid of all the issues that this move has uncovered,” Schlesser said. “So, when it comes to making WP-CLI easily extensible and improving the tools and interfaces, we’re now eating our own dog food. In the longer term, I expect this change to have a significant impact on the onboarding experience for developers who want to create their own commands.”
During his years contributing to open source projects, Schlesser said he has become well-acquainted with the unique challenges and emotional toll of maintainership, a topic that Bachhuber has spoken about in the past.
“Maintenance of a popular open source project is at the intersection of the hard logic of technology and deeply human group dynamics,” Schlesser said. “I’ve become more aware of all the difficulties that come with such a role, but I wouldn’t necessarily state that I know anything more now on how to navigate around them. What I know for sure is that it is a burden that should be shared amongst several people when at all possible. It comes with constant pressure and churn, and doing this work as a single person puts both the project and the person at risk.”
Schlesser plans to keep an eye out for any avoidable friction points in hopes of making the experience of maintainership as smooth as possible for all involved.
“Daniel has already done a great job with this, and I can’t wait to see where the project will take us as a team,” Schlesser said.