129 lines
2.9 KiB
Markdown
129 lines
2.9 KiB
Markdown
# Contributing to Evo AI
|
|
|
|
Thank you for your interest in contributing to Evo AI! This document provides guidelines and instructions for contributing to the project.
|
|
|
|
## Getting Started
|
|
|
|
### Prerequisites
|
|
|
|
- Python 3.8+
|
|
- PostgreSQL
|
|
- Redis
|
|
- Git
|
|
|
|
### Setup Development Environment
|
|
|
|
1. Fork the repository
|
|
2. Clone your fork:
|
|
```bash
|
|
git clone https://github.com/YOUR-USERNAME/evo-ai.git
|
|
cd evo-ai
|
|
```
|
|
3. Create a virtual environment:
|
|
```bash
|
|
python -m venv .venv
|
|
source .venv/bin/activate # Linux/Mac
|
|
# or
|
|
.venv\Scripts\activate # Windows
|
|
```
|
|
4. Install dependencies:
|
|
```bash
|
|
pip install -r requirements.txt
|
|
pip install -r requirements-dev.txt
|
|
```
|
|
5. Set up environment variables:
|
|
```bash
|
|
cp .env.example .env
|
|
# Edit .env with your configuration
|
|
```
|
|
6. Run database migrations:
|
|
```bash
|
|
make alembic-upgrade
|
|
```
|
|
|
|
## Development Workflow
|
|
|
|
### Branching Strategy
|
|
|
|
- `main` - Main branch, contains stable code
|
|
- `feature/*` - For new features
|
|
- `bugfix/*` - For bug fixes
|
|
- `docs/*` - For documentation changes
|
|
|
|
### Creating a New Feature
|
|
|
|
1. Create a new branch from `main`:
|
|
```bash
|
|
git checkout -b feature/your-feature-name
|
|
```
|
|
2. Make your changes
|
|
3. Run tests:
|
|
```bash
|
|
make test
|
|
```
|
|
4. Commit your changes:
|
|
```bash
|
|
git commit -m "Add feature: description of your changes"
|
|
```
|
|
5. Push to your fork:
|
|
```bash
|
|
git push origin feature/your-feature-name
|
|
```
|
|
6. Create a Pull Request to the main repository
|
|
|
|
## Coding Standards
|
|
|
|
### Python Code Style
|
|
|
|
- Follow PEP 8
|
|
- Use 4 spaces for indentation
|
|
- Maximum line length of 79 characters
|
|
- Use descriptive variable names
|
|
- Write docstrings for all functions, classes, and modules
|
|
|
|
### Commit Messages
|
|
|
|
- Use the present tense ("Add feature" not "Added feature")
|
|
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
|
|
- First line should be a summary under 50 characters
|
|
- Reference issues and pull requests where appropriate
|
|
|
|
## Testing
|
|
|
|
- All new features should include tests
|
|
- All bug fixes should include tests that reproduce the bug
|
|
- Run the full test suite before submitting a PR
|
|
|
|
## Documentation
|
|
|
|
- Update documentation for any new features or API changes
|
|
- Documentation should be written in English
|
|
- Use Markdown for formatting
|
|
|
|
## Pull Request Process
|
|
|
|
1. Ensure your code follows the coding standards
|
|
2. Update the documentation as needed
|
|
3. Include tests for new functionality
|
|
4. Ensure the test suite passes
|
|
5. Update the CHANGELOG.md if applicable
|
|
6. The PR will be reviewed by maintainers
|
|
7. Once approved, it will be merged into the main branch
|
|
|
|
## Code Review Process
|
|
|
|
All submissions require review. We use GitHub pull requests for this purpose.
|
|
|
|
Reviewers will check for:
|
|
- Code quality and style
|
|
- Test coverage
|
|
- Documentation
|
|
- Appropriateness of the change
|
|
|
|
## Community
|
|
|
|
- Be respectful and considerate of others
|
|
- Help others who have questions
|
|
- Follow the code of conduct
|
|
|
|
Thank you for contributing to Evo AI! |