Skip to content

Setting Up a Development Environment

Required Dependencies

Some optional dependencies for Windows are not available through conda/mamba

  1. 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
  1. Install Miniconda

  2. Install gh

    conda install -c conda-forge gh
    
  3. Fork and clone the ibis repository:

    gh repo fork --clone --remote ibis-project/ibis
    
  4. 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
    
  5. Activate the environment

    conda activate ibis-dev
    
  6. Install your local copy of ibis into the Conda environment.

    cd ibis
    pip install -e .
    
  1. Install Mamba

  2. Install gh

    mamba install -c conda-forge gh
    
  3. Fork and clone the ibis repository:

    gh repo fork --clone --remote ibis-project/ibis
    
  4. 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
    
  5. Activate the environment

    mamba activate ibis-dev
    
  6. 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.

  1. Install gh

  2. Fork and clone the ibis repository:

    gh repo fork --clone --remote ibis-project/ibis
    
  3. Change directory into ibis:

    cd ibis
    
  4. Install development dependencies

    pip install 'poetry>=1.3,<1.4'
    pip install -r requirements-dev.txt
    
  5. 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
  1. Install nix
  2. Install gh:

    nix-shell -p gh
    
    nix-env -iA gh
    
  3. Fork and clone the ibis repository:

    gh repo fork --clone --remote ibis-project/ibis
    
  4. Set up the public ibis Cachix cache to pull pre-built dependencies:

    nix-shell -p cachix --run 'cachix use ibis'
    
  5. 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.


  1. Tested in CI. If this doesn't work for you, please file an issue

  2. Not tested in CI. Unknown if this setup works. 

  3. Unlikely to ever be supported or no upstream support. 


Last update: July 28, 2023