Thank you for your interest in contributing to 0GMem! This document provides guidelines and instructions for contributing.
Please be respectful and constructive in all interactions. We're building something together.
-
Clone the repository
git clone https://github.com/loganionian/0gmem.git cd 0gmem -
Create a virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install in development mode
pip install -e ".[dev]" -
Download required models
python -m spacy download en_core_web_sm
-
Set up pre-commit hooks (optional but recommended)
pre-commit install
# Run all tests
pytest tests/ -v
# Run with coverage
pytest tests/ -v --cov=zerogmem
# Run specific test file
pytest tests/test_integration.py -vWe use the following tools for code quality:
- Black for code formatting (line length: 100)
- Ruff for linting
- MyPy for type checking
# Format code
black src/ tests/
# Check linting
ruff check src/
# Check types
mypy src/zerogmem/- Check if the bug has already been reported in Issues
- If not, create a new issue with:
- Clear description of the bug
- Steps to reproduce
- Expected vs actual behavior
- Python version and OS
- Check existing issues and discussions
- Create a new issue with:
- Clear description of the feature
- Use case / motivation
- Potential implementation approach (optional)
- Fork the repository and create a branch from
main - Make your changes following the code style guidelines
- Add tests for new functionality
- Update documentation if needed
- Run the test suite to ensure nothing is broken
- Create a pull request with:
- Clear description of changes
- Link to related issue (if any)
- Screenshots/examples if applicable
- Tests pass locally (
pytest tests/ -v) - Code is formatted (
black --check src/ tests/) - Linting passes (
ruff check src/) - Type hints are valid (
mypy src/zerogmem/) - Documentation is updated (if needed)
- CHANGELOG.md is updated (for significant changes)
0gmem/
├── src/zerogmem/ # Main package
│ ├── encoder/ # Text encoding
│ ├── memory/ # Memory hierarchy
│ ├── retriever/ # Memory retrieval
│ ├── graph/ # Unified Memory Graph
│ ├── reasoning/ # Advanced reasoning
│ └── evaluation/ # Benchmarking
├── tests/ # Test suite
├── examples/ # Usage examples
├── docs/ # Documentation
└── scripts/ # Utility scripts
Feel free to open an issue for any questions about contributing.
Thank you for contributing to 0GMem!