Skip to content

Latest commit

 

History

History
70 lines (53 loc) · 3.32 KB

CONTRIBUTING.md

File metadata and controls

70 lines (53 loc) · 3.32 KB

Contributing to Cot

Cot welcomes contribution from everyone in the form of suggestions, bug reports, pull requests, and feedback. This document gives some guidance if you are thinking of helping us.

Questions, feedback, and feature requests

If you have a question, feedback, or feature request, please open an issue, a discussion, or join our Discord server to talk with us directly.

Submitting issues

When reporting a bug or asking for help, please include enough details so that the people helping you can reproduce the behavior you are seeing. For some tips on how to approach this, read about how to produce a Minimal, Complete, and Verifiable example.

When making a feature request, please make it clear what problem you intend to solve with the feature, any ideas for how Cot could support solving that problem, any possible alternatives, and any disadvantages.

Pull requests

We're happy to help you get started contributing to Cot. If you're looking for a place to start, check out the good first issue label on the issue tracker. If you're looking for something more challenging, check out the help wanted label, or just talk to us directly. We're happy to help you get started.

Test suites, CI, and code style

We encourage you to check that the test suite passes locally before submitting a pull request with your changes. If anything does not pass, typically it will be easier to iterate and fix it locally than waiting for the CI servers to run tests for you.

We are also using pre-commit hooks to handle formatting and linting. See the pre-commit website for installation instructions. This handles formatting of all the files in the repository.

Dependencies

When adding a new dependency to the project, please consider if it's actually needed and if it's possible to avoid it. If it's not plausible, make sure that the dependency is well-maintained and has a permissive license.

When adding a new dependency, please add it to the Cargo.toml file of the workspace root, not to the Cargo.toml file of the crate, even if it's not being used in any other crate. This way, all the dependencies are in one place, and it's easier to manage them. The only exception to this rule is the examples directory – examples should have all their dependencies (except for the cot crate) listed in their own Cargo.toml file, so it's easier to copy them to a new project.

The dependency's version should be pinned to the least specific version possible. This means you should avoid specifying the patch and minor version, as long as it works with your patch. The CI will check if the project builds with the minimum version specified in the Cargo.toml file. By doing this, we ensure that the project is not tied to a specific version of the dependencies, potentially avoiding duplicate dependencies in the tree, and, more importantly, avoiding problems when one of the dependencies is yanked.

Conduct

We follow the Code of Conduct.