Contributing to DBIx::Fast

Thanks for helping! This file explains how the project is organised and what a change needs before it can be merged.

Where the code lives

Security issues: never open a public issue - see SECURITY.md.

Development setup

Perl 5.38+ and the dependencies from Makefile.PL (cpanm --installdeps .), plus the optional ones for full coverage:

cpanm LRU::Cache Cpanel::JSON::XS Term::ANSIColor CHI \
      DBD::SQLite DBD::MariaDB DBD::Pg \
      Test::Pod Test::Pod::Coverage Pod::Coverage Test::CPAN::Changes

The SQLite suite needs nothing else. ./dev/test.sh (repository only, not in the CPAN tarball) starts throwaway MariaDB, PostgreSQL and MySQL containers and runs everything:

./dev/test.sh          # containers + full suite (4 drivers + author tests)
./dev/test.sh release  # the pre-release gate

See dev/README.md for the details (driver client libraries, DBD::mysql on Debian, the release and full_release gates).

What a change needs

Code conventions

Commit messages

Say what changed and why; reference the test that covers it.