| .. | ||
| code-of-conduct-pt-br.md | ||
| code-of-conduct.md | ||
| community.md | ||
| contributing-guidelines.md | ||
| documentation.md | ||
| ide-extensions.md | ||
| pull-requests.md | ||
| README.md | ||
| setup.md | ||
| standards.md | ||
| testing.md | ||
Contributing to General Bots
Welcome to the General Bots community! We appreciate your interest in contributing to this open-source project. This chapter provides comprehensive guidance for contributors.
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:
- 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
First Steps
-
Fork the Repository
git clone https://github.com/GeneralBots/BotServer.git cd botserver -
Set Up Development Environment
- Follow the Development Setup guide
- Run the bootstrap process
- Verify everything works
-
Find Something to Work On
- Check good first issues
- 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
- 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 clippyoutput
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 featurefix: Bug fixdocs: Documentationstyle: Formattingrefactor: Code restructuringtest: Test additionschore: Maintenance
Pull Request Process
-
Create Feature Branch
git checkout -b feature/your-feature -
Make Changes
- Implement feature
- Add tests
- Update docs
-
Submit PR
- Push to your fork
- Open pull request
- Fill template
- Request review
-
Code Review
- Address feedback
- Update as needed
- Maintain discussion
-
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
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.
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 - Setting up your development environment
- Testing - Writing and running tests
- Documentation - Contributing to documentation
- IDE Extensions - IDE integration and tooling
- Chapter 1: Getting Started - Understanding the basics
- Chapter 2: Packages - Bot package system
- Chapter 5: BASIC Reference - Complete command reference
- Chapter 6: Extensions - Extending BotServer
- Chapter 9: Advanced Topics - Advanced features
- Chapter 11: Infrastructure - Deployment and infrastructure
- Chapter 12: Web API - REST and WebSocket APIs