Welcome to the Sherlock project! Thank you so much for your interest in contributing. 😃
This library was initially developed in OCaml, see the original repository. I rewrote it entirely in Rust to make it better, faster and more accessible. I hope this effort captivates many new contributors like you!
If you find a bug, please open an issue on the issue tracker. Be sure to include a detailed description of the problem.
Sherlock is not complete (yet?). There are many illegal positions that are
not captured. Try to find one of them! If you do, please, open an issue and
label it as
enhancement
On the other hand, Sherlock is supposed to be sound, i.e. it should never
classify a legal position as illegal. If you find otherwise, please open an
issue and label it as
bug
Sherlock is made of multiple (usually very simple) deduction rules that allow us to derive new information about a position.
A great way to contribute is to add new rules to Sherlock. Every rule must implement the Rule trait, have a look at the existing rules for some examples.
You can pick one of our issues about improving Sherlock's expressivity, labeled
with
good first issue
We use rustfmt, the official Rust code formatter. Before committing your
changes, please run cargo +nightly fmt
to ensure your code aligns with the
project's style.
By contributing to Sherlock, you agree that your contributions will be licensed under the MIT License. See LICENSE for more details.
Thank you for contributing to Sherlock and helping us make it even better!