woocommerce/.github/CONTRIBUTING.md

6.7 KiB

Contributing to WooCommerce

WooCommerce powers many online stores across the internet, and your help making it even more awesome will be greatly appreciated :)

There are many ways to contribute to the project!

If you wish to contribute code, please read the information in the sections below. Then fork WooCommerce, commit your changes, and submit a pull request 🎉

We use the good first issue label to mark issues that are suitable for new contributors. You can find all the issues with this label here.

WooCommerce is licensed under the GPLv3+, and all contributions to the project will be released under the same license. You maintain copyright over any contribution you make, and by submitting a pull request, you are agreeing to release that contribution under the GPLv3+ license.

If you have questions about the process to contribute code or want to discuss details of your contribution, you can contact WooCommerce core developers on the #core channel in the WooCommerce community Slack.

Getting started

Please take a moment to review the project readme and our development notes, which cover the basics needed to start working on this project. You may also be interested in the following resources:

Coding Guidelines and Development 🛠

  • Ensure you stick to the WordPress Coding Standards.
  • Run our build process described in the document on how to set up WooCommerce development environment, it will install our pre-commit hook, code sniffs, dependencies, and more.
  • Before pushing commits to GitHub, check your code against our code standards. For PHP code in the WooCommerce Core project you can do this by running pnpm --filter=woocommerce run lint:php:changes:branch.
  • Whenever possible, please fix pre-existing code standards errors in code that you change.
  • Please consider adding appropriate tests related to your change if applicable such as unit, API and E2E tests. You can check the following guides for this purpose:
  • Ensure you use LF line endings in your code editor. Use EditorConfig if your editor supports it so that indentation, line endings and other settings are auto configured.
  • When committing, reference your issue number (#1234) and include a note about the fix.
  • Ensure that your code supports the minimum supported versions of PHP and WordPress; this is shown at the top of the readme.txt file.
  • Push the changes to your fork and submit a pull request on the trunk branch of the WooCommerce repository.
  • Make sure to write good and detailed commit messages (see this post for more on this) and follow all the applicable sections of the pull request template.
  • Please create a change file for your changes by running pnpm --filter=<project> changelog add. For example, a change file for the WooCommerce Core project would be added by running pnpm --filter=woocommerce changelog add.
  • Please avoid modifying the changelog directly or updating the .pot files. These will be updated by the WooCommerce team.

If you are contributing code to our (Javascript-driven) Gutenberg blocks, please note that they are developed in their own repository and have their own issue tracker.

Feature Requests 🚀

The best place to submit feature requests is over on our dedicated feature request page. You can easily search and vote for existing requests, or create new requests if necessary.

Alternatively, if you wish to propose a straightforward technical enhancement that is unlikely to require much discussion, you can open a new issue right here on GitHub and, for any that may require more discussion, consider syncing with us during office hours or publishing a thread on GitHub Discussions.