Skip to content

Latest commit

 

History

History
106 lines (68 loc) · 3.19 KB

CONTRIBUTING.md

File metadata and controls

106 lines (68 loc) · 3.19 KB

How To Contribute 🚀

Hello! 👋

Thank you for considering contributing to superduperdb. There are many ways to contribute, and they are not limited to writing code. We welcome all contributions such as:

  • bug reports
  • documentation improvements
  • enhancement suggestions
  • expanding the reusable-snippets and use-cases

This project is intended to be a community effort, and it won't be possible without your support and enthusiasm.

Where to Start?

If you're new to open-source development, we recommend going through the GitHub “issues” tab to find items that interest you. Once you’ve found something interesting, the next step is to create your development environment.

Installation and setup

Once you've 'forked' and 'cloned' the code to your local machine, please follow these steps:

Get the code on your local:

# Clone and change location directory of the superduperdb repository, change the `<FORKED_NAME>` to your GitHub id
git clone git@github.com:<FORKED_NAME>/superduperdb.git
cd superduperdb

Set up your python environment:

# Create your Python virtual environment
python3 -m venv .venv

# Activate the Python virtual environment
. .venv/bin/activate  

Install the dependencies:

# Install pip-tools and latest version of pip
python3 -m pip install --upgrade pip-tools

# Install the superduperdb project in editable mode along with the developer tools
python3 -m pip install -e '.'
python3 -m pip install -r deploy/testenv/optional_requirements.txt

(Optional) build the docker development environment:

make testenv_image

Branch workflow

We follow something called a "fork and pull request" workflow for collaborating on our project. See here for a great overview on what some of these mysterious terms mean!

Running the tests

Unittests

These tests check that there are no basic programming errors in how classes and functions work internally.

make unit-testing

Extension integration tests

These tests that package integrations, such as sklearn or openai work properly.

make ext-testing

Databackend integration tests

These tests check that data-backend integrations such as MongoDB or SQLite work as expected.

make databackend-testing

Smoke tests of cluster mode

These tests check that cluster mode works as expected (ray, vector-search, cdc, rest):

make smoke-testing

Getting Help 🙋

Slack Issues Wiki

If you have any problems please contact a maintainer or community volunteer. The GitHub issues or the Slack channel are a great place to start. We look forward to seeing you there! 💜