Skip to content

Latest commit

 

History

History
59 lines (42 loc) · 2.28 KB

CONTRIBUTING.md

File metadata and controls

59 lines (42 loc) · 2.28 KB

Contributing to Sherlock

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!

Making contributions

Reporting issues

If you find a bug, please open an issue on the issue tracker. Be sure to include a detailed description of the problem.

Testing the limits of Sherlock

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 New feature or request .

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 Something isn't working .

Creating a new Sherlock rule

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 Good for newcomers and try to implement a new rule that captures the relevant position.

Code Style

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.

License

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!