mirror of
https://github.com/zama-ai/concrete.git
synced 2026-02-08 19:44:57 -05:00
@@ -1,18 +1,16 @@
|
||||
```{warning}
|
||||
FIXME(Arthur): to check what needs to be updated here
|
||||
```
|
||||
|
||||
# Project Setup
|
||||
|
||||
```{note}
|
||||
You will need Zama's specific environment with zamalang module to have the project fully functional. It is currently only delivered via the docker image (see the [docker](./docker.md) guide).
|
||||
It is strongly recommended to use the development docker (see the [docker](./docker.md) guide). However you can setup the project on bare macOS and Linux provided you install the required dependencies (check Dockerfile.concretefhe-env for the required binary packages like make).
|
||||
|
||||
The project targets Python 3.8 through 3.10 inclusive.
|
||||
```
|
||||
|
||||
## Installing Python v3.8
|
||||
## Installing Python
|
||||
|
||||
**concretefhe** is a `Python` library. So `Python` should be installed to develop **concretefhe**. `v3.8` is the only supported version.
|
||||
**concretefhe** is a `Python` library. So `Python` should be installed to develop **concretefhe**. `v3.8`, `v3.9` and `v3.10` are the only supported versions.
|
||||
|
||||
You can follow [this](https://realpython.com/installing-python/) guide to install it (alternatively you can google `how to install python 3.8`).
|
||||
You can follow [this](https://realpython.com/installing-python/) guide to install it (alternatively you can google `how to install python 3.8 (or 3.9, 3.10)`).
|
||||
|
||||
## Installing Poetry
|
||||
|
||||
@@ -22,11 +20,11 @@ You can follow [this](https://python-poetry.org/docs/#installation) official gui
|
||||
|
||||
## Installing make
|
||||
|
||||
The dev tools use make to launch the various commands.
|
||||
The dev tools use `make` to launch the various commands.
|
||||
|
||||
On Linux you can install make from your distribution's preferred package manager.
|
||||
On Linux you can install `make` from your distribution's preferred package manager.
|
||||
|
||||
On Mac OS you can install a more recent version of make via brew:
|
||||
On Mac OS you can install a more recent version of `make` via brew:
|
||||
|
||||
```shell
|
||||
# check for gmake
|
||||
@@ -37,7 +35,7 @@ brew install make
|
||||
which gmake
|
||||
```
|
||||
|
||||
It is possible to install gmake as make, check this [StackOverflow post](https://stackoverflow.com/questions/38901894/how-can-i-install-a-newer-version-of-make-on-mac-os) for more infos.
|
||||
It is possible to install `gmake` as `make`, check this [StackOverflow post](https://stackoverflow.com/questions/38901894/how-can-i-install-a-newer-version-of-make-on-mac-os) for more infos.
|
||||
|
||||
On Windows check [this GitHub gist](https://gist.github.com/evanwill/0207876c3243bbb6863e65ec5dc3f058#make).
|
||||
|
||||
@@ -53,7 +51,7 @@ Now, it's time to get the source code of **concretefhe**. You can use the follow
|
||||
git clone https://github.com/zama-ai/concretefhe-internal.git
|
||||
```
|
||||
|
||||
## Setting up environment
|
||||
## Setting up environment on your host OS
|
||||
|
||||
We are going to make use of virtual environments. This helps to keep the project isolated from other `Python` projects in the system. The following commands will create a new virtual environment under the project directory and install dependencies to it.
|
||||
|
||||
@@ -78,6 +76,23 @@ source .venv/bin/activate
|
||||
source .venv/Scripts/activate
|
||||
```
|
||||
|
||||
## Setting up environment on docker
|
||||
|
||||
The docker automatically creates and sources a venv in ~/dev_venv/
|
||||
|
||||
The venv persists thanks to volumes. We also create a volume for ~/.cache to speed up later reinstallations. You can check which docker volumes exist with:
|
||||
|
||||
```shell
|
||||
docker volume ls
|
||||
```
|
||||
|
||||
You can still run all `make` commands inside the docker (to update the venv for example). Be mindful of the current venv being used (the name in parentheses at the beginning of your command prompt).
|
||||
|
||||
```shell
|
||||
# Here we have dev_venv sourced
|
||||
(dev_venv) dev_user@8e299b32283c:/src$ make setup_env
|
||||
```
|
||||
|
||||
## Leaving the environment
|
||||
|
||||
After your work is done you can simply run the following command to leave the environment.
|
||||
@@ -94,3 +109,55 @@ From time to time, new dependencies will be added to project or the old ones wil
|
||||
make sync_env
|
||||
```
|
||||
|
||||
## Troubleshooting your environment
|
||||
|
||||
### In your OS
|
||||
|
||||
If you are having issues consider starting using the dev docker exclusively (unless you are working on OS specific bug fixes or features).
|
||||
|
||||
Here are the steps you can take on your OS to try and fix issues:
|
||||
|
||||
```shell
|
||||
# Try to install the env normally
|
||||
make setup_env
|
||||
|
||||
# If you are still having issues, sync the environment
|
||||
make sync_env
|
||||
|
||||
# If you are still having issues on your OS delete the venv:
|
||||
rm -rf .venv
|
||||
|
||||
# And re-run the env setup
|
||||
make setup_env
|
||||
```
|
||||
|
||||
At this point you should consider using docker as nobody will have the exact same setup as you, unless you need to develop on your OS directly, in which case you can ask for help but may not get a solution right away.
|
||||
|
||||
### In docker
|
||||
|
||||
Here are the steps you can take in your docker to try and fix issues:
|
||||
|
||||
```shell
|
||||
# Try to install the env normally
|
||||
make setup_env
|
||||
|
||||
# If you are still having issues, sync the environment
|
||||
make sync_env
|
||||
|
||||
# If you are still having issues in docker delete the venv:
|
||||
rm -rf ~/dev_venv/*
|
||||
|
||||
# Disconnect from the docker
|
||||
exit
|
||||
|
||||
# And relaunch, the venv will be reinstalled
|
||||
make docker_start
|
||||
|
||||
# If you are still out of luck, force a rebuild which will also delete the volumes
|
||||
make docker_rebuild
|
||||
|
||||
# And start the docker which will reinstall the venv
|
||||
make docker_start
|
||||
```
|
||||
|
||||
If the problem persists at this point, you should consider asking for help.
|
||||
|
||||
Reference in New Issue
Block a user