First off, thank you for considering contributions. We value community contributions!
You may already know what you want to contribute -- a fix for a bug you encountered, or a new feature your team wants to use.
If you don't know what to contribute, keep an open mind! Improving documentation, bug triaging, and writing tutorials are all examples of helpful contributions that mean less work for you.
Unsure where to begin contributing? You can start by looking through some of our issues listed here.
Here's how to get started with your code contribution:
- Create your own fork of this repo
- Set up your developer environment
- Apply the changes in your forked codebase / environment
- If you like the change and think the project could use it, send us a pull request.
RedisVL uses Poetry for dependency management.
Follow the instructions to install Poetry.
Then install the required libraries:
poetry install --all-extras
Check formatting, linting, and typing:
poetry run format
poetry run sort-imports
poetry run mypy
RedisVL uses Testcontainers Python for integration tests. Testcontainers is an open-source framework for provisioning throwaway, on-demand containers for development and testing use cases.
To run Testcontainers-based tests you need a local Docker installation such as:
Tests w/ vectorizers:
poetry run test-cov
Tests w/out vectorizers:
SKIP_VECTORIZERS=true poetry run test-cov
Tests w/out rerankers:
SKIP_RERANKERS=true poetry run test-cov
Docs are served from the docs/
directory.
Build the docs. Generates the _build/html
contents:
poetry run build-docs
Serve the documentation with a local webserver:
poetry run serve-docs
In order for your applications to use RedisVL, you must have Redis accessible with Search & Query features enabled on Redis Cloud or locally in docker with Redis Stack:
docker run -d --name redis-stack -p 6379:6379 -p 8001:8001 redis/redis-stack:latest
This will also spin up the FREE RedisInsight GUI at http://localhost:8001
.
NOTE: If you find a security vulnerability, do NOT open an issue. Email Redis OSS ([email protected]) instead.
In order to determine whether you are dealing with a security issue, ask yourself these two questions:
- Can I access something that's not mine, or something I shouldn't have access to?
- Can I disable something for other people?
If the answer to either of those two questions are yes, then you're probably dealing with a security issue. Note that even if you answer no to both questions, you may still be dealing with a security issue, so if you're unsure, just email us.
When filing an issue, make sure to answer these five questions:
- What version of python are you using?
- What version of
redis
andredisvl
are you using? - What did you do?
- What did you expect to see?
- What did you see instead?
If you'd like to contribute a new feature, make sure you check our issue list to see if someone has already proposed it. Work may already be under way on the feature you want -- or we may have rejected a feature like it already.
If you don't see anything, open a new issue that describes the feature you would like and how it should work.
The core team looks at Pull Requests on a regular basis. We will give feedback as as soon as possible. After feedback, we expect a response within two weeks. After that time, we may close your PR if it isn't showing any activity.