- Add comprehensive MLX engine implementation with Python MLX bindings - Implement MLX model discovery, loading, and native inference pipeline - Add MLX feature flag compilation and Apple Silicon hardware detection - Create dedicated GitHub Actions workflow for MLX testing on macos-14 ARM64 - Add MLX documentation to README and wiki with capability descriptions - Implement pre-commit hooks enforcing cargo fmt, clippy, and test validation - Fix GPU backend tests to properly force specific backends instead of auto-detection - Resolve property test race conditions with serial test execution - Update release workflow validation and platform-specific test expectations - Add MLX implementation plan and cross-compilation toolchain support 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
4.2 KiB
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
- Fork the repo and create a branch (
git checkout -b feature/foo) - Make your changes with clear commits and tests if applicable
- Sign off your commits (required):
git commit -s -m "Your message" - Run existing tests to ensure nothing breaks (
cargo test) - Ensure code quality (
cargo fmt && cargo clippy) - 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 fmtandcargo clippybefore 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:
-
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
-
Evaluation Process: Applications are reviewed when additional maintainers are needed
-
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.