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 or GitHub. Then proceed appropriately:
- File a new issue
- Fork the main repo
- Create an issue branch, e.g., "Issue-XX-blah-foo-derp"
- Make commits of logical units (see below).
- Check for unnecessary whitespace with
git diff --check
before committing. - Make sure your commit messages summarize your changes well enough.
- Make sure you have added the necessary tests for your changes.
- Issue a proper pull request.
Commits, pull request, and commit message format
See this page for some excellent advice on structuring commits correctly.
- Please squash commits which relate to the same thing.
- Do not mix new features together, or with bug fixes.
- 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;
- Bump version number in dist.ini
- Bump $VERSION in all .pm files
- Run
dzil clean && dzil test && dzil build
- 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 estrabd@gmail.com.