We welcome all kinds of contributions to EvaDB.
Setting up the Development Environment#
First, you will need to checkout the repository from GitHub and build EvaDB from the source. Follow the following instructions to build EvaDB locally. We recommend using a virtual environment and the pip package manager.
git clone https://github.com/georgia-tech-db/eva.git && cd eva
python3 -m venv test_evadb # create a virtual environment
source test_evadb/bin/activate # activate the virtual environment
pip install --upgrade pip # upgrade pip
pip install -e ".[dev]" # build and install the EvaDB package
bash script/test/test.sh # run the EvaDB test suite
After installing the package locally, you can make changes and run the test cases to check their impact.
pip install . # reinstall EvaDB package to include local changes
pkill -9 evadb_server # kill running EvaDB server (if any)
evadb_server& # launch EvaDB server with newly installed package
Check if your local changes broke any unit or integration tests by running the following script:
If you want to run a specific test file, use the following command.
python -m pytest test/integration_tests/test_select_executor.py
Use the following command to run a specific test case within a specific test file.
python -m pytest test/integration_tests/test_select_executor.py -k 'test_should_load_and_select_in_table'
Submitting a Contribution#
Follow the following steps to contribute to EvaDB:
Merge the most recent changes from the master branch
git remote add origin firstname.lastname@example.org:georgia-tech-db/eva.git
git pull . origin/master
Run the test script to ensure that all the test cases pass.
If you are adding a new EvaDB command, add an illustrative example usage in the documentation.
Run the following command to ensure that code is properly formatted.
def function_with_types_in_docstring(param1, param2) -> bool:
"""Example function with types documented in the docstring.
Additional explanatory text can be added in paragraphs.
param1 (int): The first parameter.
param2 (str): The second parameter.
bool: The return value. True for success, False otherwise.
We recommend using Visual Studio Code with a debugger for developing EvaDB. Here are the steps for setting up the development environment:
3. Follow these instructions to run a particular test case from the file: Getting started.
If the test suite fails with a PermissionDenied exception, update the path_prefix attribute under the storage section in the EvaDB configuration file (
~/.evadb/evadb.yml) to a directory where you have write privileges.