102 lines
2.8 KiB
Markdown
102 lines
2.8 KiB
Markdown
# Contributing to Graphiti
|
|
|
|
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.
|
|
|
|
## Getting Started
|
|
|
|
1. Fork the repository on GitHub.
|
|
2. Clone your fork locally:
|
|
```
|
|
git clone https://github.com/getzep/graphiti
|
|
cd graphiti
|
|
```
|
|
3. 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=...
|
|
```
|
|
|
|
## Making Changes
|
|
|
|
1. Create a new branch for your changes:
|
|
```
|
|
git checkout -b your-branch-name
|
|
```
|
|
2. Make your changes in the codebase.
|
|
3. Write or update tests as necessary.
|
|
4. Run the tests to ensure they pass:
|
|
```
|
|
make test
|
|
```
|
|
5. Format your code:
|
|
```
|
|
make format
|
|
```
|
|
6. Run linting checks:
|
|
```
|
|
make lint
|
|
```
|
|
|
|
## Submitting Changes
|
|
|
|
1. Commit your changes:
|
|
```
|
|
git commit -m "Your detailed commit message"
|
|
```
|
|
2. Push to your fork:
|
|
```
|
|
git push origin your-branch-name
|
|
```
|
|
3. Submit a pull request through the GitHub website to https://github.com/getzep/graphiti.
|
|
|
|
## Pull Request Guidelines
|
|
|
|
- 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.
|
|
|
|
## Code Style and Quality
|
|
|
|
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.
|
|
|
|
## Reporting Bugs
|
|
|
|
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
|
|
|
|
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.
|
|
|
|
## Questions?
|
|
|
|
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!
|