We're excited you're interested in contributing to Graphiti! This document outlines the process for contributing to our project. We welcome contributions from everyone, whether you're fixing a typo, improving documentation, or adding a new feature.
- Fork the repository on GitHub.
- Clone your fork locally:
git clone https://github.com/getzep/graphiti cd graphiti
- Set up your development environment:
- Ensure you have Python 3.10+ installed.
- Install Poetry: https://python-poetry.org/docs/#installation
- Install project dependencies:
make install
- To run integration tests, set the appropriate environment variables
export TEST_OPENAI_API_KEY=... export TEST_OPENAI_MODEL=... export NEO4J_URI=neo4j://... export NEO4J_USER=... export NEO4J_PASSWORD=...
- Create a new branch for your changes:
git checkout -b your-branch-name
- Make your changes in the codebase.
- Write or update tests as necessary.
- Run the tests to ensure they pass:
make test
- Format your code:
make format
- Run linting checks:
make lint
- Commit your changes:
git commit -m "Your detailed commit message"
- Push to your fork:
git push origin your-branch-name
- Submit a pull request through the GitHub website to https://github.com/getzep/graphiti.
- Provide a clear title and description of your changes.
- Include any relevant issue numbers in the PR description.
- Ensure all tests pass and there are no linting errors.
- Update documentation if you're changing functionality.
We use several tools to maintain code quality:
- Ruff for linting and formatting
- Mypy for static type checking
- Pytest for testing
Before submitting a pull request, please run:
make check
This command will format your code, run linting checks, and execute tests.
Use the GitHub issue tracker at https://github.com/getzep/graphiti/issues to report bugs. When filing an issue, please include:
- A clear title and description
- As much relevant information as possible
- A code sample or an executable test case demonstrating the expected behavior that is not occurring
Feature requests are welcome. Please provide a clear description of the feature and why it would be beneficial to the project. You can submit feature requests through the GitHub issue tracker.
If you have any questions, feel free to open an issue or reach out to the maintainers through the GitHub repository.
Thank you for contributing to Graphiti!