Skip to content

Latest commit

 

History

History
66 lines (54 loc) · 1.91 KB

File metadata and controls

66 lines (54 loc) · 1.91 KB

Contributing to Shimmy

Thanks for your interest in contributing to Shimmy!

How to Contribute

  1. Fork the repo and create a branch (git checkout -b feature/foo)
  2. Make your changes with clear commits and tests if applicable
  3. Run existing tests to ensure nothing breaks (cargo test)
  4. Ensure code quality (cargo fmt && cargo clippy)
  5. Open a Pull Request against main

Code Style

  • Rust 2021 edition
  • Use cargo fmt and cargo clippy before submitting
  • Keep PRs small and focused - large refactors may be rejected
  • Add tests for new functionality
  • Document public APIs with rustdoc comments

Contribution Scope

Features should align with the Shimmy philosophy:

  • Lightweight: ~5MB binary target
  • Zero-config: No setup, just works
  • OpenAI API compatibility: Drop-in replacement
  • Invisible infrastructure: Minimal surface area

What We Welcome

  • Bug fixes with test cases
  • Performance improvements
  • API compatibility enhancements
  • Documentation improvements
  • Platform-specific fixes
  • Test coverage improvements

What We Generally Reject

  • Features that bloat binary size significantly
  • Complex configuration systems
  • UI/dashboard components (use external tools)
  • Breaking changes to established APIs
  • Features not aligned with OpenAI compatibility

Review Process

  • All PRs require review and approval from the lead maintainer
  • Merge authority is reserved to maintain project direction
  • We aim to review PRs within 1-2 business days
  • Constructive feedback will be provided for rejected PRs

Development Setup

# Clone and setup
git clone https://github.com/Michael-A-Kuykendall/shimmy
cd shimmy
cargo build

# Run tests
cargo test

# Check formatting and linting
cargo fmt --check
cargo clippy -- -D warnings

Recognition

Contributors are acknowledged in AUTHORS.md after a merged PR.

Questions?

Open a GitHub Discussion or ping @Michael-A-Kuykendall in your PR.