General Developer Setup

Clang Setup

Sometimes when you install clang via the package manager, it won’t be recognized by cmake as a C++ alternative. Here is an example to change gcc to clang as the default c++ compiler in Ubuntu/Linux Mint (you may use different versions instead of clang-15 and libstdc++-12-dev):

sudo apt install clang-15 libstdc++-12-dev
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-15 10
sudo update-alternatives --config c++

VSCode Setup

If VSCode does not prompt you to install the recommended extensions you can go to the extensions section in the sidebar and search for @recommended to show all the extensions recommended by the workspace.

Running Tests

To run the tests Python >= 3.8 with venv is needed. On Debian and Ubuntu based distributions venv is not included with Python and has to be installed separately:

apt-get -y install python3 python3-venv

To compile and run all the tests run:

./scripts/run-tests

Official Docker Image

These instructions are for building and publishing the official MillenniumDB Docker image.

To push to the DockerHub IMFD account:

docker login

To build and push the Docker image run the respective commands:

To build the Docker image run:

docker build -t imfd/millenniumdb-amd64-linux:latest .

Then push the image to DockerHub as follows:

docker push imfd/millenniumdb-amd64-linux:latest

To create a new manifest run:

docker manifest create imfd/millenniumdb:latest \
                       imfd/millenniumdb-arm64-linux:latest \
                       imfd/millenniumdb-amd64-linux:latest

To push the manifest to DockerHub run:

docker manifest push imfd/millenniumdb:latest

Tip

To clean all Docker data and cache you can run:

docker container prune -f
docker image     prune -f --all
docker builder   prune -f
docker network   prune -f