Tag Archives: contributing

Does WP-CLI save you effort and time while working on the sites you manage?

Do you use WP-CLI to automate your infrastructure or deployments?

Do you feel positive about the WP-CLI project and its mission?

This guide will tell you about the many possibilities you have to get involved and play a role in this official WordPress team.

Introduction

First of all, thank you very much! If you’ve read this far, it must mean you are taking the initiative to contribute to WP-CLI. It’s because of you, and the community around you, that WP-CLI is such a great project. It not only makes for a fabulous tool people can use in a reliable manner, it also makes for a fun and rewarding project to collaborate on.

Contributing can take many forms, and we will discuss the most prominent ones. Before we start, though, here’s a list of what contributing is not:

Contributing is not limited to code.

Contributing does not require committing to a specific amount of time.

Contributing does not require expert knowledge in any of the areas it touches.

We encourage you to contribute in the way that best fits your interests and abilities. If at any point, you’re not sure how to proceed with whatever you are doing or feel you’re in over your head, help & support is just a chat message away! Please don’t hesitate at any point to just ask questions or let us know about the issue you’re facing.

Also, please do know that there are no expectations you need to fulfill or requirements you need to meet. This is meant to be an enjoyable, collaborative experience. So make sure you don’t put pressure on yourself and rectify your course of action if you feel that you’re not actually enjoying it anymore.

Now, with that clarification out of the way, let’s try to cover some of the most common ways of contributing to WP-CLI.

Spreading the message

Not everyone knows about WP-CLI or how it can help improve how you interact with a WordPress site.

There are multiple ways of how you can help spread the message about WP-CLI:

Post clever uses as tips to social media (tagging @wpcli on Twitter is always appreciated).

Supporting users

A great way to learn more about WP-CLI yourself and to help other people make progress is to jump into one of the support channels and try to answer questions other people have posted. Doing the detective’s work, understanding how the moving pieces work and finally getting to the bottom of a user’s problem can be very rewarding, and you learn all kinds of internal details along the way.

Any open issue/question/thread you can find in these locations are open for anyone to contribute an answer or to ask further questions to help diagnose the issue.

Improving documentation

Is documentation your strength? Take a look at the currently open documentation issues and see if you can tackle any of those, or create a new issue if you’ve read through the documentation and found it lacking in a specific area.

There are a couple different types of documentation currently part of WP-CLI:

Documentation for individual WP-CLI commands (anything underneath developer.wordpress.org/commands) is contained in the PHPDoc for each command. This means that to edit the documentation for a command, you will need to edit the file that actually provides the functionality for that command. The web documentation is generated from these files at the time of release, so you may not see your changes until the next release.

Individual documentation pages (anything under make.wordpress.org/cli/handbook) can be edited by contributing to the handbook repository on GitHub. You don’t necessarily need to navigate the Github repo though; any page that is part of this repository will have an Edit link in the top right of the page which will take you to the corresponding file on GitHub. Just clicking on that link brings you to a live editor which will generate a pull request out of your changes.

Localization

WP-CLI is in a special position when it comes to localization. Its main output is not supposed to be localized, as it is used for scripting purposes. If your scripts depend on a given string to be printed to the console, translating that string into a different language will, of course, break these scripts.

What should be translated, though, is the different types of documentation we have. Unfortunately, we are currently lacking the infrastructure support on make.wordpress.org/cli to properly support translated versions of the handbook or command reference.

What can be translated right now and is open for contributors is the README file shown as the frontpage on wp-cli.org. The different language versions can be found in subfolders in the wp-cli/wp-cli.github.com repository. Please use the English source version as the reference source, as it is the only one to be guaranteed to be up-to-date at any time.

Reporting security issues

Don’t publicly disclose a security issue you’ve just found!

The WP-CLI team and the WordPress community take security bugs seriously. We appreciate your efforts to responsibly disclose your findings and will make every effort to acknowledge your contributions.

To report a security issue in a responsible way, please visit the WordPress HackerOne program. You will be able to submit details about the security vulnerability in a confidential way, to avoid malicious users immediately exploiting the vulnerability on live sites. You will be contacted by the WordPress security team about next steps as soon as possible.

Requesting a new feature

This is the very first step that any new functionality should take. It will be further fleshed out within this issue until a decision has been made about whether the feature is a good fit for the official WP-CLI bundle and how the technical implementation should be handled. At that point, the issue will move into the repository where its code will finally reside.

Working on the code

Before you can start writing code, you need to decide what you plan on working on.

Good first issues
To get your feet wet with working on the WP-CLI codebase, you should star with one of the issues that are marked as good-first-issues. These issues usually require less historical knowledge and are very limited in scope and complexity. Often times, you’ll find the proper approach to solve the issue directly explained within the issue conversation.

Fixing a bug
Even though we spend a lot of time writing tests and reviewing code, we cannot completely avoid bugs in a codebase of this complexity.
If you want to see a list of known bugs and help fix them, you can use this GitHub search (*).

Implementing a new feature
You can find the collection of submitted feature requests in the issue tracker of the wp-cli/ideas repository. There are labels that define what the current state of a feature request is:

state:approved: This feature request has already been accepted in principle and only needs someone that can invest the time to make it happen.

state:considering: This feature request seems to be useful and a good fit for the project, but additional discussion and fleshing out is needed before a final decision can be made.

state:unlikely: This feature request was deemed not to be a good fit for the project. The reason for this is probably stated in the issue conversation. An implementation of this feature is unlikely to be accepted for bundling into an official release. Note: This might still be a useful third-party command in its own right.

In case there is no state label associated with the issue, it probably needs more extensive discussion still to find out how it relates to the official WP-CLI code.