Contributing to O1
We welcome contributions from the community! This guide will help you get started with contributing to the O1 project.How to Contribute
Reporting Issues
- Use our GitHub Issues page
- Provide detailed descriptions of bugs or feature requests
- Include relevant logs, screenshots, and reproduction steps
Code Contributions
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
Documentation Improvements
- Fix typos and improve clarity
- Add missing documentation
- Update outdated information
- Translate documentation to other languages
Development Setup
Prerequisites
- Node.js 16+
- Docker and Docker Compose
- Git
Local Development
Code Standards
Style Guide
- Use consistent indentation (2 spaces)
- Follow TypeScript/JavaScript best practices
- Write clear, descriptive variable and function names
- Add comments for complex logic
Testing
- Write unit tests for new features
- Ensure existing tests pass
- Add integration tests for API endpoints
- Test edge cases and error conditions
Documentation
- Update README files for significant changes
- Document new API endpoints
- Add code examples where helpful
- Keep changelogs updated
Pull Request Process
- Create an Issue: Discuss proposed changes before coding
- Fork and Branch: Create a feature branch from main
- Make Changes: Implement your feature or fix
- Test Thoroughly: Ensure all tests pass
- Submit PR: Create a pull request with clear description
- Review Process: Address feedback from maintainers
- Merge: Once approved, your changes will be merged
Communication
Discussion Channels
- GitHub Issues for technical discussions
- Discord for community chat
- Email for private matters
Code of Conduct
We expect all contributors to follow our code of conduct:- Be respectful and inclusive
- Focus on constructive feedback
- Help create a welcoming environment
Recognition
Contributors are recognized in our:- README file
- Release notes
- Community announcements
Getting Help
If you need help getting started:- Check existing documentation
- Ask questions in discussions
- Reach out to maintainers
