# Good reading - https://www.igvita.com/2011/12/19/dont-push-your-pull-requests/ - http://blog.adamspiers.org/2012/11/10/7-principles-for-contributing-patches-to-software-projects/ # NOTE: All changes must add/update tests (NO EXCEPTIONS) All new features should include new unit or integration tests to exercise them thoroughly. If fixing a bug, please add a regression test. # How to contribute Contributing is easy. First check your issue hasn't already been reported on [CPAN](https://rt.cpan.org/Public/Dist/Display.html?Name=MySQL-Diff) or [GitHub](https://github.com/aspiers/mysqldiff/issues). Then proceed appropriately: 1. [File a new issue](https://github.com/aspiers/mysqldiff/issues/new) 2. Fork the main repo 3. Create an issue branch, e.g., "Issue-XX-blah-foo-derp" 4. Make commits of logical units (see below). 5. Check for unnecessary whitespace with `git diff --check` before committing. 6. Make sure your commit messages summarize your changes well enough. 7. Make sure you have added the necessary tests for your changes. 8. Issue a proper pull request. # Commits, pull request, and commit message format See [this page](https://wiki.openstack.org/wiki/GitCommitMessages#Structural_split_of_changes) for some excellent advice on structuring commits correctly. 1. Please squash commits which relate to the same thing. 2. Do not mix new features together, or with bug fixes. 3. Use a structured commit messsage. For example, Fixed the foobar bug with the flim-flam. Issue-XX: Made changes to the flux memristor so that the space time continuum would remain consisitent for the key constraint mechanism. Added a few unit tests to ensure the inversion of time remained consistent in all past and future versions of this utility. # Using Dist::Zilla This module uses Dist::Zilla to manage releases. Please see `./dist.ini`; To roll a build; 1. Bump version number in dist.ini 2. Bump $VERSION in all .pm files 3. Run `dzil clean && dzil test && dzil build` 4. To push a release to CPAN, `dzil release` (but please ask a committer first). # Questions When in doubt, issue a pull request. Feel free to email B. Estrade <email@example.com>.