Setting Up a Development Environment¶
Required Dependencies¶
Python 3.10 is supported on a best-effort basis
As of 2022-02-17 there is support for Python 3.10 when using nix
for development.
conda-forge
is still in the process of migrating packages to Python
3.10.
Support Matrix¶
Python Version | Python 3.8 | Python 3.9 | Python 3.10 |
---|---|---|---|
Operating System | |||
Linux | 1 | ||
macOS (x86_64) | |||
Windows | 3 |
- Install
nix
-
Install
gh
:nix-shell -p gh
nix-env -iA gh
-
Fork and clone the ibis repository:
gh repo fork --clone --remote ibis-project/ibis
-
Set up the public
ibis
Cachix cache to pull pre-built dependencies:nix-shell -p cachix --run 'cachix use ibis'
-
Run
nix-shell
in the checkout directory:cd ibis nix-shell
This may take awhile due to artifact download from the cache.
Some optional dependencies for Windows are not available through conda
/mamba
python-duckdb
andduckdb-engine
. Required for the DuckDB backend.clickhouse-cityhash
. Required for compression support in the ClickHouse backend.
Support Matrix¶
Python Version | Python 3.8 | Python 3.9 | Python 3.10 |
---|---|---|---|
Operating System | |||
Linux | 1 | 2 | |
macOS | |||
Windows |
-
Install Miniconda
-
Install
gh
conda install -c conda-forge gh
-
Fork and clone the ibis repository:
gh repo fork --clone --remote ibis-project/ibis
-
Create a Conda environment from a lock file in the repo:
cd ibis conda create -n ibis-dev --file=conda-lock/linux-64-3.9.lock
cd ibis conda create -n ibis-dev --file=conda-lock/osx-64-3.9.lock
cd ibis conda create -n ibis-dev --file=conda-lock/win-64-3.9.lock
-
Activate the environment
conda activate ibis-dev
-
Install your local copy of
ibis
into the Conda environment.cd ibis pip install -e .
-
If you want to run the backend test suite you'll need to install
docker-compose
:conda install docker-compose -c conda-forge
-
Install Mamba
-
Install
gh
mamba install -c conda-forge gh
-
Fork and clone the ibis repository:
gh repo fork --clone --remote ibis-project/ibis
-
Create a Conda environment from a lock file in the repo:
cd ibis mamba create -n ibis-dev --file=conda-lock/linux-64-3.9.lock
cd ibis mamba create -n ibis-dev --file=conda-lock/osx-64-3.9.lock
cd ibis mamba create -n ibis-dev --file=conda-lock/win-64-3.9.lock
-
Activate the environment
mamba activate ibis-dev
-
Install your local copy of
ibis
into the Conda environment.cd ibis pip install -e .
-
If you want to run the backend test suite you'll need to install
docker-compose
:mamba install docker-compose -c conda-forge
Once you've set up an environment, try building the documentation:
mkdocs serve
-
Tested in CI. If this doesn't work for you, please file an issue. ↩↩
-
Should work but doesn't because upstream is broken. Supported on a best-effort basis. ↩
-
Unlikely to ever be supported or no upstream support. ↩