Skip to content

Latest commit

 

History

History
121 lines (94 loc) · 4.18 KB

File metadata and controls

121 lines (94 loc) · 4.18 KB

Contributing to Shimmy

Thanks for your interest in contributing to Shimmy!

🚨 IMPORTANT: Maintainer-Only Pull Requests

Pull requests are restricted to approved maintainers only. Unsolicited PRs will be declined. To contribute code, you must first apply for maintainer status by emailing michaelallenkuykendall@gmail.com.

Non-maintainers can contribute by:

  • Opening issues for bugs or feature requests
  • Participating in GitHub Discussions
  • Providing feedback and testing

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. Sign off your commits (required): git commit -s -m "Your message"
  4. Run existing tests to ensure nothing breaks (cargo test)
  5. Ensure code quality (cargo fmt && cargo clippy)
  6. Open a Pull Request against main

Developer Certificate of Origin (DCO)

All contributions must be signed off with the Developer Certificate of Origin. This certifies that you have the right to contribute your code. See DCO.md for details.

Quick setup:

git config format.signoff true  # Auto sign-off all commits

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

IMPORTANT: Pull Request Access is Restricted

  • Only approved maintainers may submit pull requests
  • All contributions from non-maintainers will be declined
  • Code contributions require pre-approval via maintainer application process

For Approved Maintainers:

  • 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

Maintainer Process

Current Maintainer Structure

  • Lead Maintainer: Michael A. Kuykendall (@Michael-A-Kuykendall)
  • Additional Maintainers: Currently none (solo-maintained project)

Becoming a Maintainer

Currently, Shimmy is maintained by a single maintainer to ensure consistent vision and rapid iteration. Code contributions require pre-approved maintainer status.

To apply for maintainer status:

  1. Private Application: Email michaelallenkuykendall@gmail.com with:

    • Your GitHub username and relevant experience
    • Area of expertise (e.g., performance, platform support, API design)
    • Time commitment you can provide
    • Why you'd like to help maintain Shimmy
  2. Evaluation Process: Applications are reviewed when additional maintainers are needed

  3. No Unsolicited PRs: Code contributions without prior approval will be declined

Maintainer Responsibilities

When additional maintainers are added, they will:

  • Review and approve pull requests
  • Triage and respond to issues
  • Maintain code quality standards
  • Participate in release planning
  • Uphold the Shimmy philosophy and project direction

Note: The project may remain solo-maintained until contribution volume requires additional help.

Recognition

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

Questions?

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