Title: contributing – WP-CLI – WordPress.org

---

#  Tag Archives: contributing

 [  ](https://profiles.wordpress.org/schlessera/) [Alain Schlesser](https://profiles.wordpress.org/schlessera/)
10:16 am _on_ July 14, 2018     
Tags: contributing   

# 󠀁[Contributing to WP-CLI](https://make.wordpress.org/cli/2018/07/14/contributing-to-wp-cli/)󠁿

⌊Drawing of female freelancer sitting in front of their laptop⌉⌊Drawing of female
freelancer sitting in front of their laptop⌉Does WP-CLIWP-CLI WP-CLI is the Command
Line Interface for WordPress, used to do administrative and development tasks in
a programmatic way. The project page is [http://wp-cli.org/](http://wp-cli.org/)
[https://make.wordpress.org/cli/](https://make.wordpress.org/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.**

⌊Drawing of a man hanging from a rope to work on a computer.⌉⌊Drawing of a man hanging
from a rope to work on a computer.⌉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

⌊Drawing of a woman watering plants that look like social media network logos.⌉⌊
Drawing of a woman watering plants that look like social media network logos.⌉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](https://twitter.com/wpcli)
   is always appreciated).
 * Submit conference talks about usage and best practices.
 * Publish tutorials on your blog.
 * Give a demo at your local meetupMeetup All local/regional gatherings that are
   officially a part of the WordPress world but are not WordCamps are organized 
   through [https://www.meetup.com/](https://www.meetup.com/). A meetup is typically
   a chance for local WordPress users to get together and share new ideas and seek
   help from one another. Searching for ‘WordPress’ on meetup.com will help you 
   find options in your area..

WordPress.TV already contains [many examples of people sharing their knowledge about WP-CLI](https://wordpress.tv/?s=wp-cli).

**Note**: You can request free stickers to distribute at events → [read about the requirements](https://make.wordpress.org/cli/2017/08/16/free-wp-cli-stickers-for-your-event/).

### Supporting users

⌊Drawing of a typing indicator in a chat system.⌉⌊Drawing of a typing indicator 
in a chat system.⌉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.

There are three main avenues where people can request support:

 * [#cli](https://make.wordpress.org/chat/)[ channel in the WordPress.org Slack team](https://make.wordpress.org/chat/)
 * [Threads tagged ](https://wordpress.org/support/topic-tag/wp-cli/)[WP_CLI](https://wordpress.org/support/topic-tag/wp-cli/)
   [ in the WordPress.org support forum](https://wordpress.org/support/topic-tag/wp-cli/)
 * [Questions tagged](https://wordpress.stackexchange.com/questions/tagged/wp-cli)
   [‘WP-CLI’](https://wordpress.stackexchange.com/questions/tagged/wp-cli)[ in the WordPress StackExchange](https://wordpress.stackexchange.com/questions/tagged/wp-cli)

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

⌊Drawing of a woman filing notes.⌉⌊Drawing of a woman filing notes.⌉Is documentation
your strength? Take a look at the currently open [documentation issues](https://github.com/issues?q=is%3Aopen+sort%3Aupdated-desc+org%3Awp-cli+label%3Ascope%3Adocumentation)
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](https://developer.wordpress.org/cli/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](https://make.wordpress.org/cli/handbook/))
   can be edited by contributing to the [handbook repository on GitHub](https://github.com/wp-cli/handbook/).
   You don’t necessarily need to navigate the GithubGitHub GitHub is a website that
   offers online implementation of git repositories that can easily be shared, copied
   and modified by other developers. Public repositories are free to host, private
   repositories require a paid subscription. GitHub introduced the concept of the‘
   pull request’ where code changes done in branches by contributors can be reviewed
   and discussed before being merged by the repository owner. [https://github.com/](https://github.com/)
   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

⌊Drawing of multiple windows showing the same basic content.⌉⌊Drawing of multiple
windows showing the same basic content.⌉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.
orgWordPress.org The community site where WordPress code is created and shared by
the users. This is where you can download the source code for WordPress core, plugins
and themes as well as the central location for community conversations and organization.
[https://wordpress.org/](https://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](https://github.com/wp-cli/wp-cli.github.com).
Please use the [English source version](https://github.com/wp-cli/wp-cli.github.com/blob/master/index.md)
as the reference source, as it is the only one to be guaranteed to be up-to-date
at any time.

### Reporting security issues

⌊Drawing of a man manipulating a security shield.⌉⌊Drawing of a man manipulating
a security shield.⌉**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](https://hackerone.com/wordpress)
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.

### Reporting a bug

⌊Drawing of a computer screen showing an alert.⌉⌊Drawing of a computer screen showing
an alert.⌉Think you’ve found a bug? We’d love for you to help us get it fixed.

Before you create a new issue, you should [search existing issues](https://github.com/issues?utf8=%E2%9C%93&q=sort%3Aupdated-desc+org%3Awp-cli+label%3Abug)(*)
to see if there’s an existing resolution to it, or if it’s already been fixed in
a newer version of WP-CLI. You should also check our [documentation on common issues and their fixes](https://make.wordpress.org/cli/handbook/common-issues/).

Once you’ve done a bit of searching and discovered there isn’t an open or fixed 
issue for your bug, please [follow our guidelines for submitting a bug report](https://make.wordpress.org/cli/handbook/bug-reports/)
to make sure it gets addressed in a timely manner.

### Requesting a new feature

⌊Drawing of a man rearranging post-its on a whiteboard.⌉⌊Drawing of a man rearranging
post-its on a whiteboard.⌉To request a new feature, please create a new issue in
the [issue tracker of the wp-](https://github.com/wp-cli/ideas/issues)cli[/ideas repository](https://github.com/wp-cli/ideas/issues).

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 ](https://make.wordpress.org/cli/good-first-issues/)
   [good-first-issues](https://make.wordpress.org/cli/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](https://github.com/issues?utf8=%E2%9C%93&q=sort%3Aupdated-desc+org%3Awp-cli+label%3Abug)(*).
 * **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.

⌊Drawing of a software developer working on their laptop.⌉⌊Drawing of a software
developer working on their laptop.⌉Once you’ve decided to commit the time to seeing
your pull request through, please [follow our guidelines for creating a pull request](https://make.wordpress.org/cli/handbook/pull-requests/)
to make sure it’s a pleasant experience. See “[Setting](https://make.wordpress.org/cli/handbook/pull-requests/#setting-up)
[ up](https://make.wordpress.org/cli/handbook/pull-requests/#setting-up)” for details
on making local modifications to WP-CLI. Keep in mind pull requests are [expected to have tests](https://make.wordpress.org/cli/handbook/pull-requests/#running-and-writing-tests)
covering the scope of the change. Read through [our code review guidelines](https://make.wordpress.org/cli/handbook/code-review/)
for a better understanding of how your pull request will be evaluated.

### Anything missing?

Hopefully, this short guide has presented many different ways of how users and fans
of WP-CLI can contribute to the project’s continued success.

**If you think we missed anything, please tell us so in the comments below!** We’d
love to hear your feedback and are curious about yet other ways of contributing 
to WP-CLI.

---

_(*) Link requires you to be logged into Github, otherwise it will show a 404.
 
All images provided by [unDraw](https://undraw.co/illustrations) and [licensed under the MIT license](https://undraw.co/license).

[#contributing](https://make.wordpress.org/cli/tag/contributing/)

 * [Login to Reply](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcli%2F2018%2F07%2F14%2Fcontributing-to-wp-cli%2F%23respond&locale=en_US)