CakePHP loves to welcome your contributions. There are several ways to help out:
- Create an issue on GitHub, if you have found a bug
- Write test cases for open bug issues
- Write patches for open bug/feature issues, preferably with test cases included
- Contribute to the documentation
There are a few guidelines that we need contributors to follow so that we have a chance of keeping on top of things.
Help us keep CakePHP open and inclusive. Please read and follow our Code of Conduct.
- Make sure you have a GitHub account.
- Submit an issue, assuming one does not already exist.
- Clearly describe the issue including steps to reproduce when it is a bug.
- Make sure you fill in the earliest version that you know has the issue.
- Fork the repository on GitHub.
- Create a topic branch from where you want to base your work.
- This is usually the master branch.
- Only target release branches if you are certain your fix must be on that branch.
- To quickly create a topic branch based on master;
git branch master/my_contribution master
then checkout the new branch withgit checkout master/my_contribution
. Better avoid working directly on themaster
branch, to avoid conflicts if you pull in updates from origin.
- Make commits of logical units.
- Check for unnecessary whitespace with
git diff --check
before committing. - Use descriptive commit messages and reference the #issue number.
- Core test cases should continue to pass. You can run tests locally or enable travis-ci for your fork, so all tests and codesniffs will be executed.
- Your work should apply the CakePHP coding standards.
- Bugfix branches will be based on master.
- New features that are backwards compatible will be based on next minor release branch.
- New features or other non backwards compatible changes will go in the next major release branch.
- Push your changes to a topic branch in your fork of the repository.
- Submit a pull request to the repository in the cakephp organization, with the correct target branch.
CakePHP tests requires PHPUnit 3.7, version 4 is not compatible. To run the test cases locally use the following command:
./lib/Cake/Console/cake test core AllTests --stderr
To run the sniffs for CakePHP coding standards:
phpcs -p --extensions=php --standard=CakePHP ./lib/Cake
Check the cakephp-codesniffer repository to setup the CakePHP standard. The README contains installation info for the sniff and phpcs.
If you've found a security related issue in CakePHP, please don't open an issue in GitHub. Instead contact us at security@cakephp.org. For more information on how we handle security issues, see the CakePHP Security Issue Process.
- CakePHP coding standards
- Existing issues
- Development Roadmaps
- General GitHub documentation
- GitHub pull request documentation
- #cakephp IRC channel on freenode.org