Contributing

Contribution to Color is encouraged: bug reports, feature requests, or code contributions. New features should be proposed and discussed in an issue.

Before contributing patches, please read the Licence.

Color is governed under the Contributor Covenant Code of Conduct.

Code Guidelines

I have several guidelines to contributing code through pull requests:

AI Contribution Policy

Color is a library full of complex math and subtle decisions (some of them possibly even wrong). It is extremely important that contributions of any sort be well understood by the submitter and that the developer can attest to the Developer Certificate of Origin for each pull request (see LICENCE).

Any contribution (bug, feature request, or pull request) that uses undeclared AI output will be rejected.

Test Dependencies

Color uses Ryan Davis’s [Hoe] to manage the release process, and it adds a number of rake tasks. You will mostly be interested in rake, which runs the tests the same way that rake test will do.

To assist with the installation of the development dependencies for color, I have provided the simplest possible Gemfile pointing to the (generated) color.gemspec file. This will permit you to do bundle install to get the development dependencies.

You can run tests with code coverage analysis by running rake coverage.

Commit Conventions

Color has adopted a variation of the Conventional Commits format for commit messages. The following types are permitted:

Type Purpose
feat A new feature
fix A bug fix
chore A code change that is neither a bug fix nor a feature
docs Documentation updates
deps Dependency updates, including GitHub Actions.

I encourage the use of Tim Pope’s or Chris Beam’s guidelines on the writing of commit messages

I require the use of git trailers for specific additional metadata and strongly encourage it for others. The conditionally required metadata trailers are: