Showing 1,230 changed files with 62,778 additions and 41,625 deletions.
4 changes: 4 additions & 0 deletions .envrc
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
use flake

watch_file poetry.lock
watch_file nix/overlay.nix
watch_file nix/quarto/default.nix
watch_file poetry-overrides.nix

export CLOUDSDK_ACTIVE_CONFIG_NAME=ibis-gbq
export GOOGLE_CLOUD_PROJECT="$CLOUDSDK_ACTIVE_CONFIG_NAME"
Expand Down
1 change: 1 addition & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,4 @@ cd31389542561a94d9d0207e09c9c906c3831fe9 # refactor(ir): rename ops.AnalyticOp -
2673ac391c89b73fb97bb646eeef898b4d48fe30 # refactor(ir): rename ops.UnaryOp -> ops.Unary
4803894dcff2afced4a1fc651d40b235c862791a # refactor(ir): rename ops.ValueOp -> ops.Value
d36af084837d4d469efce060268295eec43139fb # style: format to the black default line length
45b07de8e1989cdd0983bd2a06da4506427cdbd1 # style: don't skip string normalization using Black
3 changes: 2 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ flake.lock linguist-generated=true
poetry.lock linguist-generated=true
requirements.txt linguist-generated=true
docs/backends/app/requirements.txt linguist-generated=false
docs/**/*.ipynb linguist-generated=true
docs/_freeze/**/html.json linguist-generated=true
docs/**/*.excalidraw linguist-generated=true
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/docs-issue.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Documentation Issue
description: Open an issue about the Ibis documentation
title: "docs: "
labels: ["docs"]
body:
- type: markdown
attributes:
value: Thanks for taking the time to open an issue about our documentation!
- type: textarea
id: docs-issue
attributes:
label: Please describe the issue
description: Include as much detail as possible and screenshots if relevant.
placeholder: Description of the issue
validations:
required: true
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/ibis-project/ibis/blob/master/CODE_OF_CONDUCT.md)
options:
- label: I agree to follow this project's Code of Conduct
required: true
22 changes: 14 additions & 8 deletions .github/renovate.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@
"automerge": true,
"autoApprove": true
},
{
"matchManagers": ["docker-compose"],
"matchPackagePatterns": ["postgres"],
"matchCurrentVersion": "/^13\\..+$/",
"allowedVersions": "/^13\\..+$/"
},
{
"matchPackagePrefixes": ["clickhouse"],
"addLabels": ["clickhouse"]
Expand All @@ -44,31 +50,31 @@
"addLabels": ["duckdb"]
},
{
"matchPackagePatterns": ["fsspec", "impyla"],
"matchPackagePatterns": ["fsspec", "impyla", "impala", "kudu"],
"addLabels": ["impala"]
},
{
"matchPackagePatterns": ["oracledb"],
"matchPackagePatterns": ["oracledb", "oracle-free"],
"addLabels": ["oracle"]
},
{
"matchPackagePatterns": ["polars"],
"addLabels": ["polars"]
},
{
"matchPackagePatterns": ["psycopg2"],
"matchPackagePatterns": ["psycopg2", "postgres"],
"addLabels": ["postgres"]
},
{
"matchPackagePatterns": ["pydruid"],
"matchPackagePatterns": ["pydruid", "zookeeper", "druid"],
"addLabels": ["druid"]
},
{
"matchPackagePatterns": ["pymssql"],
"addLabels": ["mssql"]
"matchPackagePatterns": ["pymysql", "mariadb"],
"addLabels": ["mysql"]
},
{
"matchPackagePatterns": ["pymssql"],
"matchPackagePatterns": ["pymssql", "mssql"],
"addLabels": ["mssql"]
},
{
Expand All @@ -83,7 +89,7 @@
"addLabels": ["snowflake"]
},
{
"matchPackagePatterns": ["trino"],
"matchPackagePatterns": ["trino", "minio"],
"addLabels": ["trino"]
},
{
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/check-generated-files.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: install python
uses: actions/setup-python@v4
Expand All @@ -39,7 +39,7 @@ jobs:
run: sudo apt-get install -y -q build-essential graphviz libgeos-dev libkrb5-dev krb5-config freetds-dev

- name: install poetry
run: pip install 'poetry<1.4'
run: pip install 'poetry==1.6.1'

- name: check consistency with pyproject.toml
run: poetry lock --check
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
- python

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/conda-lock.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
shell: bash -l {0}
steps:
- name: checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
repository: ${{ github.event.client_payload.pull_request.head.repo.full_name }}
ref: ${{ github.event.client_payload.pull_request.head.ref }}
Expand Down Expand Up @@ -61,19 +61,19 @@ jobs:
needs:
- condalock
steps:
- uses: tibdex/github-app-token@v1
- uses: tibdex/github-app-token@v2
id: generate_pr_token
with:
app_id: ${{ secrets.SQUAWK_BOT_APP_ID }}
private_key: ${{ secrets.SQUAWK_BOT_APP_PRIVATE_KEY }}

- uses: tibdex/github-app-token@v1
- uses: tibdex/github-app-token@v2
id: generate_pr_approval_token
with:
app_id: ${{ secrets.PR_APPROVAL_BOT_APP_ID }}
private_key: ${{ secrets.PR_APPROVAL_BOT_APP_PRIVATE_KEY }}

- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
token: ${{ steps.generate_pr_token.outputs.token }}

Expand Down Expand Up @@ -117,13 +117,13 @@ jobs:
needs:
- condalock
steps:
- uses: tibdex/github-app-token@v1
- uses: tibdex/github-app-token@v2
id: generate_token
with:
app_id: ${{ secrets.SQUAWK_BOT_APP_ID }}
private_key: ${{ secrets.SQUAWK_BOT_APP_PRIVATE_KEY }}

- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
token: ${{ steps.generate_token.outputs.token }}
repository: ${{ github.event.client_payload.pull_request.head.repo.full_name }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/create-rotate-key-issue.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Generate a GitHub token
uses: tibdex/github-app-token@v1
uses: tibdex/github-app-token@v2
id: generate_token
with:
app_id: ${{ secrets.SQUAWK_BOT_APP_ID }}
private_key: ${{ secrets.SQUAWK_BOT_APP_PRIVATE_KEY }}

- name: checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: create issue to rotate key
uses: peter-evans/create-issue-from-file@v4
Expand Down
38 changes: 28 additions & 10 deletions .github/workflows/ibis-backends-cloud.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@ on:
# Skip the backend suite if all changes are in the docs directory
paths-ignore:
- "docs/**"
- "mkdocs.yml"
- "**/*.md"
- "**/*.qmd"
- "codecov.yml"
- ".envrc"
branches:
- master

Expand All @@ -24,6 +27,11 @@ env:
jobs:
test_backends:
name: ${{ matrix.backend.title }} python-${{ matrix.python-version }}
# only a single bigquery or snowflake run at a time, otherwise test data is
# clobbered by concurrent runs
concurrency:
group: ${{ matrix.backend.name }}-${{ matrix.python-version }}
cancel-in-progress: false
runs-on: ubuntu-latest
strategy:
fail-fast: false
Expand All @@ -34,13 +42,21 @@ jobs:
backend:
- name: bigquery
title: BigQuery
serial: false
deps: []
- name: snowflake
title: Snowflake
serial: true
deps: []
include:
- python-version: "3.10"
backend:
name: snowflake
title: Snowflake with nanoarrow
deps:
- snowflake-connector-python[pandas]@3.3.0b1
- --optional
steps:
- name: checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: install python
uses: actions/setup-python@v4
Expand All @@ -49,13 +65,20 @@ jobs:
python-version: ${{ matrix.python-version }}

- uses: syphar/restore-virtualenv@v1
if: toJSON(matrix.backend.deps) == '[]'
with:
requirement_files: poetry.lock
custom_cache_key_element: ${{ matrix.backend.name }}-${{ steps.install_python.outputs.python-version }}

- run: python -m pip install --upgrade pip 'poetry<1.4'
- name: upgrade pip and install poetry
run: python -m pip install --upgrade pip 'poetry==1.6.1'

- name: install a prerelease version of `snowflake-connector-python`
if: toJSON(matrix.backend.deps) != '[]'
run: poetry add ${{ join(matrix.backend.deps, ' ') }}

- uses: syphar/restore-pip-download-cache@v1
if: toJSON(matrix.backend.deps) == '[]'
with:
requirement_files: poetry.lock
custom_cache_key_element: ${{ matrix.backend.name }}-${{ steps.install_python.outputs.python-version }}
Expand Down Expand Up @@ -96,13 +119,8 @@ jobs:
SNOWFLAKE_WAREHOUSE: ${{ secrets.SNOWFLAKE_WAREHOUSE }}

- name: "run parallel tests: ${{ matrix.backend.name }}"
if: ${{ !matrix.backend.serial }}
run: just ci-check -m ${{ matrix.backend.name }} --numprocesses auto --dist=loadgroup

- name: "run serial tests: ${{ matrix.backend.name }}"
if: matrix.backend.serial
run: just ci-check -m ${{ matrix.backend.name }}

- name: upload code coverage
if: success()
uses: codecov/codecov-action@v3
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/ibis-backends-skip-helper.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,20 @@ on:
push:
paths:
- "docs/**"
- "mkdocs.yml"
- "**/*.md"
- "**/*.qmd"
- "codecov.yml"
- ".envrc"
branches:
- master
- "*.x.x"
pull_request:
paths:
- "docs/**"
- "mkdocs.yml"
- "**/*.md"
- "**/*.qmd"
- "codecov.yml"
- ".envrc"
branches:
- master
- "*.x.x"
Expand Down
Loading