Development Contributions
We strive to make contributions easy, collaborative, and enjoyable. Follow the steps below to ensure a smooth contribution process.Submitting Your Contribution through PR
To contribute, follow these steps:- Fork & Clone the repository: Mem0 on GitHub
- Create a Feature Branch: Use a dedicated branch for your changes, e.g.,
feature/my-new-feature
- Implement Changes: If adding a feature or fixing a bug, ensure to:
- Write necessary tests
- Add documentation, docstrings, and runnable examples
- Code Quality Checks:
- Run linting to catch style issues
- Ensure all tests pass
- Submit a Pull Request
Dependency Management
We usehatch
as our package manager. Install it by following the official instructions.
Do NOT use pip
or conda
for dependency management. Instead, follow these steps in order:
Development Standards
Pre-commit Hooks
Ensurepre-commit
is installed before contributing:
Linting with ruff
Run the linter and fix any reported issues before submitting your PR:
Code Formatting
To maintain a consistent code style, format your code:Testing with pytest
Run tests to verify functionality before submitting your PR:
make install_all
to install necessary dependencies before running tests.
Release Process
Currently, releases are handled manually. We aim for frequent releases, typically when new features or bug fixes are introduced.Thank you for contributing to Mem0!