Skip to content

Debian/Ubuntu

This guide will help you to set up a Debian or Ubuntu workstation to work with the code and develop Opteryx.

Intel/x86 is the recommended environment, however Opteryx does run on ARM (e.g. a Raspberry Pi) and some parts of the guide may require additional steps in order to work correctly.

Setting Up

1. Install Python

3.11 recommended

We recommend using pyenv to install and manage Python environments, particularly in development and test environments.

We follow this guide to set up Python on our Raspberry Pi

2. Install pip

$ python3 -m ensurepip --upgrade

3. Install Git

$ sudo apt-get update
$ sudo apt-get install git

4. Install Rust

$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

5. Clone the Repository

$ git clone https://github.com/mabel-dev/opteryx

6. Install Dependencies

$ sudo apt-get install python3-dev 
$ python3 -m pip install --upgrade -r requirements.txt
$ python3 -m pip install --upgrade setuptools setuptools_rust numpy cython

7. Build Binaries

$ python3 setup.py build_ext --inplace

Running Tests

To run the regression and unit tests:

First, install the optional dependencies, on most devices:

$ python3 -m pip install --upgrade -r tests/requirements.txt

On ARM-based devices (like Raspberry Pi):

$ python3 -m pip install --upgrade -r tests/requirements_arm.txt

Then run the regression tests.

$ python3 -m pytest

Note

Some tests require external services like GCS and Memcached and may fail if these have not been configured.