Skip to content

Latest commit

 

History

History
51 lines (41 loc) · 1.64 KB

File metadata and controls

51 lines (41 loc) · 1.64 KB

Contributing to Chameleon

We welcome contributions of all kinds! Whether you are fixing bugs, improving documentation, or adding new backend plugins, your help is appreciated.

Getting Started

  1. Fork the repository on GitHub.
  2. Clone your fork locally.
  3. Install dependencies:
    # Rust
    cargo build
    # Python
    cd skills && pip install -e ".[dev]"
  4. Create a branch for your feature or fix: git checkout -b feat/my-cool-feature.

Development Workflow

Rust (Control Plane)

The core logic resides in crates/. Always run tests before submitting:

cargo test --workspace

Ensure your code is formatted with cargo fmt and follows clippy suggestions.

Python (Skills Layer)

Inference backends and the worker loop are in skills/.

pytest skills/tests/

Adding a New Backend

Chameleon is designed to be pluggable. If you want to add support for a new runtime (e.g., ExLlamaV2, MLC), add a new file in skills/chameleon_skills/backends/ and implement the BaseBackend interface.

Pull Request Process

  1. Ensure all tests pass.
  2. Update the README.md or API documentation if your change affects the public interface.
  3. Fill out the PR template with a clear description of the "why" and "how".
  4. One of the maintainers will review your PR and provide feedback.

Commit Messages

We follow the conventional commits specification:

  • feat: A new feature
  • fix: A bug fix
  • docs: Documentation changes
  • chore: Maintenance tasks
  • refactor: Code changes that neither fix a bug nor add a feature

Chameleon has no fixed identity. Neither does great software.