Setting Up a Development Environment¶
Required Dependencies¶
Some optional dependencies for Windows are not available through conda
/mamba
clickhouse-cityhash
. Required for compression support in the ClickHouse backend.
Support Matrix¶
Python Version | Python 3.9 | Python 3.10 | Python 3.11 |
---|---|---|---|
Operating System | |||
Linux | |||
macOS (x86_64) | |||
macOS (aarch64) | |||
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:
# Create a dev environment for linux-64 cd ibis conda create -n ibis-dev --file=conda-lock/linux-64-3.10.lock
# Create a dev environment for osx-64 cd ibis conda create -n ibis-dev --file=conda-lock/osx-64-3.10.lock
# Create a dev environment for osx-arm64 cd ibis conda create -n ibis-dev --file=conda-lock/osx-arm64-3.10.lock
# Create a dev environment for win-64 cd ibis conda create -n ibis-dev --file=conda-lock/win-64-3.10.lock
-
Activate the environment
conda activate ibis-dev
-
Install your local copy of
ibis
into the Conda environment.cd ibis pip install -e .
-
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:
# Create a dev environment for linux-64 cd ibis mamba create -n ibis-dev --file=conda-lock/linux-64-3.10.lock
# Create a dev environment for osx-64 cd ibis mamba create -n ibis-dev --file=conda-lock/osx-64-3.10.lock
# Create a dev environment for osx-arm64 cd ibis mamba create -n ibis-dev --file=conda-lock/osx-arm64-3.10.lock
# Create a dev environment for win-64 cd ibis mamba create -n ibis-dev --file=conda-lock/win-64-3.10.lock
-
Activate the environment
mamba activate ibis-dev
-
Install your local copy of
ibis
into the Conda environment.cd ibis pip install -e .
pip
will not handle installation of system dependencies
pip
will not install system dependencies needed for some packages
such as psycopg2
and kerberos
.
For a better development experience see the conda
or nix
setup
instructions.
-
Fork and clone the ibis repository:
gh repo fork --clone --remote ibis-project/ibis
-
Change directory into
ibis
:cd ibis
-
Install development dependencies
pip install 'poetry>=1.3,<1.4' pip install -r requirements-dev.txt
-
Install ibis in development mode
pip install -e .
Support Matrix¶
Python Version | Python 3.9 | Python 3.10 | Python 3.11 |
---|---|---|---|
Operating System | |||
Linux | |||
macOS (x86_64) | |||
macOS (aarch64) | |||
Windows |
- 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 a while due to artifact download from the cache.
Building the Docs¶
Run
mkdocs serve --strict
to build and serve the documentation.
-
Tested in CI. If this doesn't work for you, please file an issue. ↩
-
Not tested in CI. Unknown if this setup works. ↩
-
Unlikely to ever be supported or no upstream support. ↩