Setting up a development environment
Required dependencies
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.7.1' pip install -r requirements-dev.txt
Install ibis in development mode
pip install -e '.[all]'
Some optional dependencies for Windows are not available through conda
/mamba
Support matrix
Python Version | Python 3.9 | Python 3.10 | Python 3.11 |
---|---|---|---|
Operating System | |||
Linux | 1 | ||
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=ci/conda-lock/linux-64/3.10.lock
# Create a dev environment for osx-64
cd ibis
conda create -n ibis-dev --file=ci/conda-lock/osx-64/3.10.lock
# Create a dev environment for osx-arm64
cd ibis
conda create -n ibis-dev --file=ci/conda-lock/osx-arm64/3.10.lock
# Create a dev environment for win-64
cd ibis
conda create -n ibis-dev --file=ci/conda-lock/win-64/3.10.lock
Activate the environment
conda activate ibis-dev
Install your local copy of
ibis
into the Conda environmentcd ibis pip install -e '.[all]'
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=ci/conda-lock/linux-64/3.10.lock
# Create a dev environment for osx-64
cd ibis
mamba create -n ibis-dev --file=ci/conda-lock/osx-64/3.10.lock
# Create a dev environment for osx-arm64
cd ibis
mamba create -n ibis-dev --file=ci/conda-lock/osx-arm64/3.10.lock
# Create a dev environment for win-64
cd ibis
mamba create -n ibis-dev --file=ci/conda-lock/win-64/3.10.lock
Activate the environment
mamba activate ibis-dev
Install your local copy of
ibis
into the Conda environmentcd ibis pip install -e '.[all]'
Support Matrix
Python Version | Python 3.9 | Python 3.10 | Python 3.11 |
---|---|---|---|
Operating System | |||
Linux | 2 | ||
macOS (x86_64) | |||
macOS (aarch64) | 3 | ||
Windows | 4 |
Configure
nix
Edit/create your
nix.conf
file ($XDG_CONFIG_HOME/nix/nix.conf
) and add the lineexperimental-features = nix-command flakes
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 develop
in the checkout directory:cd ibis nix develop
This will launch a
bash
shell with all of the required dependencies installed. This may take a while due to artifact download from the cache.
Building the docs
Install just
and run
just docs-preview
to build and serve the documentation.
Footnotes
Tested in CI. If this doesn’t work for you, please file an issue.↩︎
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.↩︎