Contributing to Cistell

The project is in early development and not yet open for external contributions. Once the API stabilises, this guide will be updated with contribution instructions.

In the meantime, feel free to open issues or participate in discussions on the repository.

Setting Up the Development Environment

  1. Fork and clone the repository:

    git clone https://github.com/pynenc/cistell.git
    cd cistell
    
  2. Install uv (dependency manager): see https://docs.astral.sh/uv/getting-started/installation/\.

  3. Install dependencies:

    uv sync
    
  4. Install Rust toolchain (needed for the native extension): see https://rustup.rs/\.

  5. Build the native extension (development mode):

    maturin develop
    
  6. Install pre-commit hooks:

    uv run pre-commit install
    
  7. Run tests:

    uv run pytest tests/
    cargo test --workspace --exclude cistell-py
    

Running Tests with Coverage

uv run coverage run -m pytest
uv run coverage report