suna/CONTRIBUTING.md

76 lines
2.1 KiB
Markdown
Raw Normal View History

2025-05-18 05:44:44 +08:00
# Contributing to Suna
Thank you for your interest in contributing to Suna! This document outlines the contribution process and guidelines.
## Contribution Workflow
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/your-feature`)
3. Commit your changes (`git commit -am 'feat(your_file): add some feature'`)
4. Push to the branch (`git push origin feature/your-feature`)
5. Open a Pull Request
## Development Setup
### Quick Setup
The easiest way to get started is using our setup wizard:
```bash
python setup.py
```
This will guide you through configuring all required services and dependencies.
### Detailed Setup Instructions
2025-05-18 05:44:44 +08:00
For detailed setup instructions, please refer to:
- [Self-Hosting Guide](docs/SELF-HOSTING.md) - Complete setup instructions
- [Backend Development Setup](backend/README.md) - Backend-specific development
- [Frontend Development Setup](frontend/README.md) - Frontend-specific development
### Required Services
Before contributing, ensure you have access to:
**Required:**
- Supabase project (database and auth)
- LLM provider API key (OpenAI, Anthropic, or OpenRouter)
- Daytona account (for agent execution)
- Tavily API key (for search)
- Firecrawl API key (for web scraping)
- QStash account (for background jobs)
**Optional:**
- RapidAPI key (for additional tools)
- Smithery API key (for custom agents)
2025-05-18 05:44:44 +08:00
## Code Style Guidelines
- Follow existing code style and patterns
- Use descriptive commit messages
- Keep PRs focused on a single feature or fix
- Add tests for new functionality
- Update documentation as needed
2025-05-18 05:44:44 +08:00
## Reporting Issues
When reporting issues, please include:
- Steps to reproduce
- Expected behavior
- Actual behavior
- Environment details (OS, Node/Docker versions, etc.)
- Relevant logs or screenshots
- Configuration details (redacted API keys)
## Development Tips
- Use the setup wizard to ensure consistent configuration
- Check the troubleshooting section in the Self-Hosting Guide
- Test both Docker and manual setup when making changes
- Ensure your changes work with the latest setup.py configuration