Thanks for taking the time to contribute! We really appreciate it.
The following is a set of guidelines for contributing to Craft CMS and its first party plugins, which are hosted in the Craft CMS organization on GitHub. These are just guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in an issue or pull request.
- What to Know Before You Contribute
- Security Disclosures
- Bug Reports & Feature Requests
- Documentation Edits
- Control Panel Translations
- Core Enhancements
- Pull Requests
Let’s get one thing out of the way: Craft CMS is 😈proprietary software😈. Everything in this repo, including community-contributed code, is the property of Pixel & Tonic.
That comes with some limitations on what you can do with the code:
- You can’t change anything related to licensing, purchasing, edition/feature-targeting, or anything else that could mess with our alcohol budget.
- You can’t publicly maintain a long-term fork of Craft. There is only One True Craft.
Please take a couple minutes to read through Craft’s code of conduct. By participating here, you are expected to uphold this code. Please report unacceptable behavior to us from craftcms.com/contact.
If you discover a security vulnerability, please review our Security Policy, then report the issue directly to us from craftcms.com/contact. We will review and respond privately via email.
Before submitting bug reports and feature requests, please search through open issues to see if yours has already been filed.
If you do find a similar issue, upvote it by adding a 👍 reaction. Only leave a comment if you have relevant information to add.
If no one has filed the issue yet, submit a new one. Please include a clear description of the issue, and as much relevant information as possible, including a code sample demonstrating the the issue.
Craft’s documentation lives in the https://github.com/craftcms/docs repository. Improvements or corrections to them can be submitted as a pull request.
The documentation is powered by VuePress. To preview documentation changes before committing them, clone the docs repo and from your terminal, run these commands:
# Install npm dependencies
npm install
# Build + run the VuePress dev server
npm run docs:dev
Once the VuePress dev server is up and running, you’ll be able to view the docs at http://localhost:8080/
. Changes you make to the .md
files will automatically trigger a live reload of the pages in the browser.
We manage Craft’s Control Panel translations with Crowdin.
If you want to help improve Craft’s translations, sign up to be a translator, or you can submit a pull request directly to the src/translations/ folder if you prefer.
If you would like to work on a new core feature or improvement, first create a GitHub issue for it if there’s not one already. As much as we appreciate community contributions, we are pretty selective about which sorts of features should make it into Craft itself rather than a plugin, so don’t take it the wrong way if we advise you to pursue the idea as a plugin instead.
Pull requests should clearly describe the problem and solution. Include the relevant issue number if there is one. If the pull request fixes a bug, it should include a new test case that demonstrates the issue, if possible.
Thanks for being awesome.
🍸