Contribute to the Ibis Codebase¶
First, set up a development environment.
If you find an issue you want to work on, write a comment with the text
/take on the issue. GitHub will then assign the issue to you.
Running the test suite¶
To run tests that do not require a backend:
pytest -m core
Backend Test Suites¶
You may be able to skip this section
If you haven't made changes to the core of ibis (e.g.,
or any specific backends (
ibis/backends) this material isn't necessary to
follow to make a pull request.
First, we need to download example data to run the tests successfully:
To run the tests for a specific backend (e.g. sqlite):
pytest -m sqlite
Setting up non-trivial backends¶
These client-server backends need to be started before testing them.
They can be started with
docker-compose directly, or using the
just up clickhouse
just up postgres
just up mysql
just up impala
Test the backend locally¶
If anything seems amiss with a backend, you can of course test it locally:
export PGPASSWORD=postgres psql -t -A -h localhost -U postgres -d ibis_testing -c "select 'success'"
Writing the commit¶
Ibis follows the Conventional Commits structure. In brief, the commit summary should look like:
fix(types): make all floats doubles
The type (e.g.
fix) can be:
fix: A bug fix. Correlates with PATCH in SemVer
feat: A new feature. Correlates with MINOR in SemVer
docs: Documentation only changes
style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc) ` If the commit fixes a Github issue, add something like this to the bottom of the description:
Submit a PR¶
Ibis follows the standard Git Pull Request process. The team will review the PR and merge when it's ready.