- Read CONTRIBUTING.md for guidelines on how to run tools
- ALWAYS attempt to add a test case for changed behavior
- PREFER integration tests, e.g., at
it/...over unit tests - When making changes for Windows from Unix, use
cargo xwin clippyto check compilation - NEVER perform builds with the release profile, unless asked or reproducing performance issues
- PREFER running specific tests over running the entire test suite
- AVOID using
panic!,unreachable!,.unwrap(), unsafe code, and clippy rule ignores - PREFER patterns like
if letto handle fallibility - ALWAYS write
SAFETYcomments following our usual style when writingunsafecode - PREFER
#[expect()]over[allow()]if clippy must be disabled - PREFER let chains (
if letcombined with&&) over nestedif letstatements - NEVER update all dependencies in the lockfile and ALWAYS use
cargo update --preciseto make lockfile changes - NEVER assume clippy warnings are pre-existing, it is very rare that
mainhas warnings - ALWAYS read and copy the style of similar tests when adding new cases
- PREFER top-level imports over local imports or fully qualified names
- AVOID shortening variable names, e.g., use
versioninstead ofver, andrequires_pythoninstead ofrp