Phinx relies heavily on external contributions in order to make it the best database migration tool possible. Without the support of our 115+ contributors we wouldn't be where we are today! We encourage anyone to submit documentation enhancements and code.
Issues, feature requests and bugs should be submitted using the Github issue tool: https://github.com/robmorgan/phinx/issues.
This document briefly outlines the requirements to contribute code to Phinx.
Before you submit your pull request take a moment to answer the following questions.
Answering 'YES' to all questions will increase the likelihood of your PR being accepted!
- Have I implemented my feature for as many database adapters as possible?
- Does my new feature improve Phinx's performance or keep it consistent?
- Does my feature fit within the database migration space?
- Is the code entirely my own and free from any commercial licensing?
- Am I happy to release my code under the MIT license?
- Is my code formatted using the PSR-2 coding standard?
Note: We accept bug fixes much faster into our development branch than features.
Great, so you want to contribute. Let's get started:
-
Start by forking Phinx on GitHub: https://github.com/robmorgan/phinx
-
Clone your repository to a local directory on your development box.
-
If you do not have Composer set up already, install it:
curl -sS https://getcomposer.org/installer | php
-
Change to your Phinx clone directory and pull the necessary dependencies:
php composer.phar install
-
Copy the
phpunit.xml.dist
template tophpunit.xml
and change the configuration to suit your environment. If you are not using any particular adapter you can disable it in thephpunit.xml
file. -
Run the unit tests locally to ensure they pass:
php vendor/bin/phpunit --config phpunit.xml
-
Write the code and unit tests for your bug fix or feature.
-
Add any relevant documentation.
-
Run the unit tests again and ensure they pass.
-
Open a pull request on the Github project page. Ensure the code is being merged into the latest development branch (e.g:
0.5.x-dev
) and notmaster
.
The Phinx documentation is stored in the docs directory using the RestructedText format. All documentation merged to master
is automatically published to the Phinx documentation site available
at: http://docs.phinx.org. Keep this in mind when submitting your PR, or ask someone to merge the development branch back down to master.