botserver/docs/src/chapter-13-community/README.md

321 lines
6.5 KiB
Markdown
Raw Normal View History

# Contributing to General Bots
2025-11-24 13:02:30 -03:00
Welcome to the General Bots community! We appreciate your interest in contributing to this open-source project. This chapter provides comprehensive guidance for contributors.
2025-11-24 13:02:30 -03:00
## Overview
General Bots is an open-source conversational AI platform built in Rust, actively used in production since 2018. We welcome contributions of all kinds:
2025-11-24 13:02:30 -03:00
- Code improvements
- Documentation updates
- Bug reports
- Feature suggestions
- Testing
- Community support
## Getting Started
### Prerequisites
Before contributing, ensure you have:
- Rust 1.70 or later
- Git experience
- Basic understanding of General Bots architecture
2025-11-24 13:02:30 -03:00
### First Steps
1. **Fork the Repository**
```bash
git clone https://github.com/GeneralBots/BotServer.git
cd botserver
2025-11-24 13:02:30 -03:00
```
2. **Set Up Development Environment**
- Follow the [Development Setup](./setup.md) guide
- Run the bootstrap process
- Verify everything works
3. **Find Something to Work On**
- Check [good first issues](https://github.com/GeneralBots/BotServer/labels/good%20first%20issue)
- Ask in discussions
## Types of Contributions
### Code Contributions
**Bug Fixes:**
- Reproduce the issue
- Write a test case
- Implement the fix
- Submit a pull request
**New Features:**
- Discuss in an issue first
- Design the solution
- Implement with tests
- Document the feature
**Performance Improvements:**
- Benchmark existing code
- Implement optimization
- Prove improvement with metrics
- Ensure no regressions
### Documentation
**Areas Needing Help:**
- API documentation
- BASIC keyword examples
- Tutorial content
- Translation
**Documentation Standards:**
- Clear and concise
- Include examples
- Keep up-to-date
- Follow markdown conventions
### Testing
**Test Coverage:**
- Unit tests for new code
- Integration tests for features
- Regression tests for bugs
- Performance benchmarks
**Testing Guidelines:**
- Test edge cases
- Mock external dependencies
- Keep tests fast
- Use descriptive names
## Development Process
### 1. Planning
Before starting work:
- Check existing issues
- Discuss major changes
- Get feedback on approach
- Claim the issue
### 2. Development
While coding:
- Follow [Code Standards](./standards.md)
- Write tests first (TDD)
- Keep commits atomic
- Update documentation
### 3. Testing
Before submitting:
- Run all tests locally
- Check code formatting
- Verify no warnings
- Test manually
### 4. Submission
Creating a pull request:
- Clear description
- Reference related issues
- Include test results
- Update CHANGELOG if needed
## Communication
### GitHub Discussions
For questions and ideas:
- Feature proposals
- Architecture discussions
- Community support
- General questions
### Issue Tracker
For specific problems:
- Bug reports
- Feature requests
- Documentation issues
- Performance problems
### Pull Requests
For code review:
- Implementation feedback
- Design discussions
- Testing verification
- Merge coordination
## Contribution Guidelines
### Code Quality
**Requirements:**
- Pass all tests
- No compiler warnings
- Formatted with `cargo fmt`
- Clean `cargo clippy` output
**Best Practices:**
- Write self-documenting code
- Add comments for complex logic
- Keep functions small
- Follow SOLID principles
### Commit Messages
**Format:**
```
type(scope): brief description
Detailed explanation if needed.
Fixes #issue-number
```
**Types:**
- `feat`: New feature
- `fix`: Bug fix
- `docs`: Documentation
- `style`: Formatting
- `refactor`: Code restructuring
- `test`: Test additions
- `chore`: Maintenance
### Pull Request Process
1. **Create Feature Branch**
```bash
git checkout -b feature/your-feature
```
2. **Make Changes**
- Implement feature
- Add tests
- Update docs
3. **Submit PR**
- Push to your fork
- Open pull request
- Fill template
- Request review
4. **Code Review**
- Address feedback
- Update as needed
- Maintain discussion
5. **Merge**
- Squash if requested
- Ensure CI passes
- Maintainer merges
## Recognition
### Contributors
All contributors are recognized:
- Listed in CONTRIBUTORS.md
- Mentioned in release notes
- Community appreciation
### Core Team
Regular contributors may be invited to:
- Join core team
- Get merge permissions
- Mentor others
## Resources
### Documentation
- [Development Setup](./setup.md)
- [Code Standards](./standards.md)
- [Testing Guide](./testing.md)
- [Pull Request Guide](./pull-requests.md)
### Tools
- Rust toolchain
- VS Code with rust-analyzer
- Git and GitHub CLI
- LXC (optional)
### Learning
- Rust documentation
- BotServer architecture docs
- BASIC language reference
- Zitadel documentation
## Code of Conduct
We maintain a welcoming community:
- Be respectful
- Be inclusive
- Be collaborative
- Be professional
See our full [Code of Conduct](./code-of-conduct.md).
## Getting Help
### For Contributors
- Ask in pull requests
- Create discussion topics
- Review existing code
- Read documentation
### For Maintainers
- Provide clear feedback
- Be responsive
- Guide new contributors
- Maintain standards
## Legal
### Licensing
- BotServer uses AGPL-3.0 license
- Contributions must be compatible
- You retain copyright
- Grant project license rights
### Contributor Agreement
By contributing, you agree that:
- You have the right to contribute
- Your contribution is original
- You grant necessary licenses
- You follow the Code of Conduct
## Thank You!
Your contributions make BotServer better for everyone. Whether you're fixing a typo, adding a feature, or helping others, every contribution matters.
Welcome to the community!
## See Also
- [Development Setup](./development-setup.md) - Setting up your development environment
- [Testing](./testing.md) - Writing and running tests
- [Documentation](./documentation.md) - Contributing to documentation
- [IDE Extensions](./ide-extensions.md) - IDE integration and tooling
- [Chapter 1: Getting Started](../chapter-01/README.md) - Understanding the basics
- [Chapter 2: Packages](../chapter-02/README.md) - Bot package system
- [Chapter 5: BASIC Reference](../chapter-05/README.md) - Complete command reference
- [Chapter 6: Extensions](../chapter-06/README.md) - Extending BotServer
- [Chapter 9: Advanced Topics](../chapter-09/README.md) - Advanced features
- [Chapter 11: Infrastructure](../chapter-11/README.md) - Deployment and infrastructure
2025-11-24 14:15:01 -03:00
- [Chapter 12: Web API](../chapter-12/README.md) - REST and WebSocket APIs
---
<div align="center">
<img src="https://pragmatismo.com.br/icons/general-bots-text.svg" alt="General Bots" width="200">
</div>