diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000..04abb3e1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,43 @@ +--- +name: Bug Report +about: Create a report to help us improve +title: '[BUG] ' +labels: bug +assignees: '' +--- + +## Describe the bug + +A clear and concise description of what the bug is. + +## To Reproduce + +Steps to reproduce the behavior: +1. +2. +3. + +## Expected behavior + +A clear and concise description of what you expected to happen. + +## Actual behavior + +A clear and concise description of what actually happened. + +## Environment + +- macOS Version: +- EXO Version: +- Hardware: + - Device 1: (e.g., MacBook Pro M1 Max, 32GB RAM) + - Device 2: (e.g., Mac Mini M2, 16GB RAM) + - Additional devices: +- Interconnection: + - (e.g., Thunderbolt 4 cable between Device 1 and 2) + - (e.g., WiFi 6 for Device 3) + - (e.g., 10GbE Ethernet between all devices) + +## Additional context + +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000..9a030e4b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,11 @@ +--- +name: Feature Request +about: Suggest an idea for this project +title: '' +labels: enhancement +assignees: '' +--- + + + +Describe what you'd like to see added to EXO. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..0a924f88 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,23 @@ +## Motivation + + + + +## Changes + + + +## Why It Works + + + +## Test Plan + +### Manual Testing + + + + +### Automated Testing + + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..0df6a5b0 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,54 @@ +# Contributing to EXO + +Thank you for your interest in contributing to EXO! + +## Getting Started + +To run EXO from source: +```bash +git clone https://github.com/exo-explore/exo.git +cd exo +uv run exo +``` + +## Development + +EXO is built with a mix of Rust, Python, and TypeScript (Svelte for the dashboard), and the codebase is actively evolving. Before starting work: + +- Pull the latest source to ensure you're working with the most recent code +- Keep your changes focused - implement one feature or fix per pull request +- Avoid combining unrelated changes, even if they seem small + +This makes reviews faster and helps us maintain code quality as the project evolves. + +## Code Style + +Write pure functions where possible. When adding new code, prefer Rust unless there's a good reason otherwise. Leverage the type systems available to you - Rust's type system, Python type hints, and TypeScript types. Comments should explain why you're doing something, not what the code does - especially for non-obvious decisions. + +Run `nix fmt` to auto-format your code before submitting. + +## Testing + +EXO relies heavily on manual testing at this point in the project, but this is evolving. Before submitting a change, test both before and after to demonstrate how your change improves behavior. Do the best you can with the hardware you have available - if you need help testing, ask and we'll do our best to assist. Add automated tests where possible - we're actively working to substantially improve our automated testing story. + +## Submitting Changes + +1. Fork the repository +2. Create a feature branch (`git checkout -b feature/your-feature`) +3. Commit your changes (`git commit -am 'Add some feature'`) +4. Push to the branch (`git push origin feature/your-feature`) +5. Open a Pull Request and follow the PR template + +## Reporting Issues + +If you find a bug or have a feature request, please open an issue on GitHub with: +- A clear description of the problem or feature +- Steps to reproduce (for bugs) +- Expected vs actual behavior +- Your environment (macOS version, hardware, etc.) + +## Questions? + +Join our community: +- [Discord](https://discord.gg/EUnjGpsmWw) +- [X](https://x.com/exolabs) diff --git a/README.md b/README.md index ef097f9b..03a7fc13 100644 --- a/README.md +++ b/README.md @@ -10,12 +10,12 @@ exo: Run your own AI cluster at home with everyday devices. Maintained by [exo l