CONTRIBUTING.mdโข5.91 kB
# Contributing to Continuo Memory System
Thank you for your interest in contributing to Continuo! We welcome contributions from the community.
## ๐ Getting Started
### Prerequisites
- Python 3.9 or higher
- Git
- A virtual environment tool (venv, virtualenv, etc.)
### Setup Development Environment
1. **Fork and clone the repository**
```bash
git clone https://github.com/GtOkAi/continuo-memory-mcp.git
cd continuo
```
2. **Run the setup script**
```bash
chmod +x scripts/setup_memory.sh
./scripts/setup_memory.sh
```
3. **Activate the virtual environment**
```bash
source venv_memory/bin/activate # On Linux/Mac
# or
venv_memory\Scripts\activate # On Windows
```
## ๐ How to Contribute
### Reporting Bugs
If you find a bug, please open an issue with:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- System information (OS, Python version)
- Relevant logs or error messages
### Suggesting Features
We welcome feature suggestions! Please open an issue describing:
- The problem you're trying to solve
- Your proposed solution
- Any alternatives you've considered
- How it benefits the project
### Submitting Code
1. **Create a feature branch**
```bash
git checkout -b feature/your-feature-name
```
2. **Make your changes**
- Follow the code style (see below)
- Add tests if applicable
- Update documentation as needed
3. **Test your changes**
```bash
# Run tests
python -m pytest tests/
# Test the MCP server
python src/mcp/memory/mcp_memory_server.py --provider local
```
4. **Commit your changes**
```bash
git add .
git commit -m "feat: add your feature description"
```
Follow [Conventional Commits](https://www.conventionalcommits.org/):
- `feat:` - New feature
- `fix:` - Bug fix
- `docs:` - Documentation changes
- `chore:` - Maintenance tasks
- `refactor:` - Code refactoring
- `test:` - Test additions/changes
5. **Push and create a Pull Request**
```bash
git push origin feature/your-feature-name
```
## ๐จ Code Style
### Python Code Standards
- **Encoding**: All Python files must declare UTF-8 encoding:
```python
# -*- coding: utf-8 -*-
```
- **Formatting**: Follow PEP 8 guidelines
- 4 spaces for indentation
- Maximum line length: 100 characters
- Use descriptive variable names
- **Documentation**:
- Add docstrings to all functions and classes
- Use English for all comments and documentation
- Include type hints where applicable
### Example
```python
# -*- coding: utf-8 -*-
"""
Module description here.
"""
from typing import List, Optional
def search_memory(query: str, top_k: int = 5) -> List[dict]:
"""
Search for relevant memories using semantic search.
Args:
query: Search query string
top_k: Number of results to return
Returns:
List of matching memory entries
"""
# Implementation here
pass
```
## ๐งช Testing
- Write tests for new features
- Ensure existing tests pass
- Place tests in the `tests/` directory
- Use descriptive test names
```python
def test_search_memory_returns_correct_results():
"""Test that search_memory returns expected results."""
# Test implementation
```
## ๐ Documentation
When adding features, please update:
- `README.md` - If it affects usage
- `SETUP.md` - If it changes setup process
- Code docstrings - Always
- Examples in `examples/memory/` - If applicable
## ๐ Code Review Process
1. All contributions require review
2. Address reviewer feedback
3. Ensure CI/CD checks pass
4. Maintain code quality and test coverage
## ๐ก Development Tips
### Running the MCP Server in Development
```bash
# With verbose logging
python src/mcp/memory/mcp_memory_server.py --provider local --db-path ./dev_db
# Run examples
python examples/memory/basic_usage.py
python examples/memory/auto_mode_demo.py
```
### IDE Configuration
For testing with Qoder/Cursor:
1. Copy the example config:
```bash
cp .qoder/mcp.json.example .qoder/mcp.json
```
2. Update paths to your absolute paths
3. Restart your IDE
### Debugging
- Use `--verbose` flag for detailed logs
- Check `~/.qoder/continuo_memory_db/` for database issues
- Test server standalone before IDE integration
## ๐ค Community Guidelines
- Be respectful and professional
- Follow our [Code of Conduct](CODE_OF_CONDUCT.md)
- Ask questions if you're unsure
- Help others when you can
## ๐ License
By contributing to Continuo, you agree that your contributions will be licensed under:
- **AGPL v3** for open source distribution
- **Commercial License** for proprietary use (dual-licensed by maintainers)
### Contributor License Agreement (CLA)
**First-time contributors** must sign the CLA by adding this to your first PR:
```
I have read and agree to the Contributor License Agreement (CLA).
Signed: [Your Full Name]
Date: [YYYY-MM-DD]
GitHub: @[your-username]
Email: [your-email]
```
See [CLA.md](CLA.md) for full terms.
### What This Means
โ
**You retain copyright** to your contributions
โ
**You can reuse** your code elsewhere
โ
Your code will be **dual-licensed**:
- Open source under **AGPL v3** (free for qualifying users)
- Available under **Commercial License** (revenue funds development)
### Commercial Benefits
Significant contributors may receive:
- ๐ฐ **Bounties**: $500-$5,000 for priority features
- ๐ **Revenue share**: 10% of commercial license revenue from your modules
- ๐ฏ **Consulting**: Paid engagements with enterprise customers
Contact maintainers to discuss commercial arrangements.
## ๐ Questions?
- Open an issue for general questions
- Check existing issues and pull requests
- Read the documentation in `continuo.markdown`
---
**Thank you for contributing to Continuo! ๐**
*Maintained by D.D. & Gustavo Porto*