Thank you for your interest in contributing to EverMemOS! We welcome contributions from the community.
- Python 3.10+
- Docker and Docker Compose
uvpackage manager
- Fork and clone the repository:
git clone https://github.com/YOUR_USERNAME/EverMemOS.git
cd EverMemOS- Install dependencies:
uv sync- Set up environment variables:
cp env.template .env
# Edit .env with your configuration- Start development services:
docker-compose up -d- Follow PEP 8 style guide
- Use type hints for function parameters and return values
- Add docstrings for classes and functions
- Maximum line length: 100 characters
- No relative imports: Use absolute imports from project root
- No wildcard imports: Avoid
from module import * - DateTime handling: Use
common_utils.datetime_utilsinstead of directdatetimemodule - No code in
__init__.py: Use only as package markers
feature/description- New featuresfix/description- Bug fixesdocs/description- Documentation updatesrefactor/description- Code refactoring
We use Gitmoji for commit messages.
Format: <emoji> <type>: <description>
Examples:
✨ feat: Add new memory retrieval algorithm
🐛 fix: Fix memory leak in vector indexing
📝 docs: Update API documentation
♻️ refactor: Simplify memory extraction logic
✅ test: Add tests for profile extraction
⚡ perf: Optimize vector search performance
Common Gitmoji:
| Emoji | Code | Usage |
|---|---|---|
| ✨ | :sparkles: |
New feature |
| 🐛 | :bug: |
Bug fix |
| 🚑 | :ambulance: |
Critical hotfix |
| 📝 | :memo: |
Documentation |
| ♻️ | :recycle: |
Refactor code |
| 🔥 | :fire: |
Remove code/files |
| ✅ | :white_check_mark: |
Add tests |
| ⚡ | :zap: |
Performance improvement |
| 🔧 | :wrench: |
Configuration changes |
| 🗃️ | :card_file_box: |
Database changes |
| ⬆️ | :arrow_up: |
Upgrade dependencies |
| 🐳 | :whale: |
Docker related |
| 🚀 | :rocket: |
Deployment |
See gitmoji.dev for full reference.
- Create a feature branch from
main:
git checkout -b feature/your-feature-name-
Make your changes following the code style guidelines
-
Test your changes:
# Run tests (if applicable)
pytest tests/
# Check code style
ruff check .-
Commit your changes with clear, descriptive commit messages
-
Push to your fork:
git push origin feature/your-feature-name-
Open a Pull Request with:
- Clear description of changes
- Reference to related issues (if any)
- Screenshots (if UI changes)
-
Address review feedback promptly
- Add tests for new features
- Ensure existing tests pass
- Maintain or improve code coverage
- Update relevant documentation when changing functionality
- Add docstrings to new functions and classes
- Update README.md if adding major features
- Keep API documentation in sync with code changes
Please report bugs by creating a bug report with:
- Clear, descriptive title
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, Python version, etc.)
- Relevant logs or error messages
Feature requests are welcome! Please submit a feature request with:
- Check if the feature is already requested
- Provide clear use cases
- Explain why this feature would be useful
- Consider backward compatibility
By contributing to EverMemOS, you agree that your contributions will be licensed under the Apache License 2.0.
- Be respectful and inclusive
- Welcome newcomers
- Focus on constructive feedback
- Maintain a professional environment
- Open a Discussion
- Join our community channels
- Email: evermind@shanda.com
Thank you for contributing to EverMemOS! 🎉