Ask or search…
Comment on page

Project Setup

It is strongly recommended to use the development tool Docker. However, you are able to set the project up on a bare Linux or macOS as long as you have the required dependencies. You can see the required dependencies in Dockerfile.dev under docker directory.

Installing Python

Concrete-Numpy is a Python library, so Python should be installed to develop it. v3.8 and v3.9 are, currently, the only supported versions.
You probably have Python already, but in case you don't, or in case you have an unsupported version, you can google how to install python 3.8 and follow one of the results.

Installing Poetry

Poetry is our package manager. It drastically simplifies dependency and environment management.
You can follow this official guide to install it.

Installing make

make is used to launch various commands such as formatting and testing.
On Linux, you can install make using the package manager of your distribution.
On macOS, you can install gmake via brew:
brew install make
In the following sections, be sure to use the proper make tool for your system (i.e., make, gmake, etc).

Cloning the repository

Now, it's time to get the source code of Concrete-Numpy.
Clone the git repository from GitHub using the protocol of your choice (ssh or https).

Setting up the environment

Virtual environments are utilized to keep the project isolated from other Python projects in the system.
To create a new virtual environment and install dependencies, use the command:
make setup_env

Activating the environment

To activate the newly created environment, use:
source .venv/bin/activate

Syncing the environment

From time to time, new dependencies will be added to the project and old ones will be removed.mThe command below will make sure the project has the proper environment, so run it regularly.
make sync_env


In native setups.

If you are having issues in a native setup, you can try to re-create your environment like this:
rm -rf .venv
make setup_env
source .venv/bin/activate
If the problem persists, you should consider using Docker. If you are working on a platform specific feature and Docker is not an option, you should create an issue so that we can take a look at your problem.

In docker setups.

If you are having issues in a docker setup, you can try to re-build the docker image:
make docker_rebuild
make docker_start
If the problem persists, you should contact us for help.