Showing 323 changed files with 14,962 additions and 6,267 deletions.
2 changes: 1 addition & 1 deletion .devcontainer/updateContent.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

# install ibis
python3 -m pip install ipython
python3 -m pip install -e '.[duckdb]'
python3 -m pip install -e '.[duckdb,examples]'
2 changes: 1 addition & 1 deletion .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +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
8fda6eec76220be87c477a4e40a423a0c91b2390 # style: don't skip string normalization using Black
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ body:
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)
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/ibis-project/ibis/blob/main/CODE_OF_CONDUCT.md)
options:
- label: I agree to follow this project's Code of Conduct
required: true
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/docs-issue.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ body:
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)
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/ibis-project/ibis/blob/main/CODE_OF_CONDUCT.md)
options:
- label: I agree to follow this project's Code of Conduct
required: true
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/feature-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ body:
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)
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/ibis-project/ibis/blob/main/CODE_OF_CONDUCT.md)
options:
- label: I agree to follow this project's Code of Conduct
required: true
30 changes: 30 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<!--
Thanks for taking the time to contribute to Ibis!
Please ensure that your pull request title matches the conventional commits
specification: https://www.conventionalcommits.org/en/v1.0.0/
-->

## Description of changes

<!--
Write a description of the changes commensurate with the pull request's scope.
Extremely small changes such as fixing typos do not need a description.
-->

## Issues closed

<!--
Please add Resolves #<issue number> (no angle brackets) if this pull request
resolves any outstanding issues.
For example, if your pull requests resolves issues 1000, 2000 and 3000 write:
* Resolves #1000
* Resolves #2000
* Resolves #3000
If your pull request doesn't resolve any issues, you can delete this section
entirely, including the `## Issues closed` section header.
-->
5 changes: 3 additions & 2 deletions .github/renovate.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"rangeStrategy": "widen",
"extends": ["config:base", ":enablePreCommit"],
"extends": ["config:base", ":enablePreCommit", ":disableDependencyDashboard"],
"schedule": ["after 10pm and before 5am every weekday", "every weekend"],
"semanticCommits": "enabled",
"lockFileMaintenance": { "enabled": true },
Expand All @@ -12,6 +12,7 @@
],
"automerge": false,
"labels": ["dependencies"],
"nix": { "enabled": true },
"packageRules": [
{
"matchManagers": ["docker-compose", "dockerfile", "github-actions"],
Expand Down Expand Up @@ -50,7 +51,7 @@
"addLabels": ["duckdb"]
},
{
"matchPackagePatterns": ["fsspec", "impyla", "impala", "kudu"],
"matchPackagePatterns": ["impyla", "impala", "kudu"],
"addLabels": ["impala"]
},
{
Expand Down
29 changes: 13 additions & 16 deletions .github/workflows/check-generated-files.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,27 +19,34 @@ concurrency:
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}
cancel-in-progress: true

env:
FORCE_COLOR: "1"
SQLALCHEMY_WARN_20: "1"
HYPOTHESIS_PROFILE: "ci"

jobs:
check_setuptools_install:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4

- name: install poetry
run: pipx install 'poetry==1.7.1'

- name: install python
uses: actions/setup-python@v5
id: install_python
with:
python-version: "3.11"
cache: pip
cache-dependency-path: requirements-dev.txt

- name: update apt-get
run: sudo apt-get update -y -q

- name: install system dependencies
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.7.1'
run: sudo apt-get install -y -q build-essential graphviz libgeos-dev freetds-dev unixodbc-dev

- name: check consistency with pyproject.toml
run: poetry check --lock
Expand All @@ -65,27 +72,17 @@ jobs:
- name: check requirements-dev.txt
run: git diff --exit-code requirements-dev.txt

- uses: syphar/restore-virtualenv@v1
with:
requirement_files: requirements-dev.txt
custom_cache_key_element: check-setuptools-install

- uses: syphar/restore-pip-download-cache@v1
with:
requirement_files: requirements-dev.txt
custom_cache_key_element: check-setuptools-install-${{ steps.install_python.outputs.python-version }}

- name: install using requirements-dev.txt
run: pip install -r requirements-dev.txt

- name: install ibis in development mode
run: pip install -e .

- name: run tests
run: pytest -m core --cov-report=xml:coverage.xml --cov=ibis
run: pytest -m core -n auto --cov-report=xml:coverage.xml --cov=ibis

- name: upload code coverage
if: success()
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v4
with:
flags: core,${{ runner.os }},python-${{ steps.install_python.outputs.python-version }}
6 changes: 3 additions & 3 deletions .github/workflows/conda-lock.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
run: mamba create --name ibis${{ matrix.python-version }} --file conda-lock/linux-64/${{ matrix.python-version }}.lock

- name: upload conda lock files
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v3
with:
name: conda-lock-files-${{ github.run_attempt }}
path: ci/conda-lock/*/${{ matrix.python-version }}.lock
Expand Down Expand Up @@ -72,12 +72,12 @@ jobs:
token: ${{ steps.generate_pr_token.outputs.token }}

- name: download conda lock files
uses: actions/download-artifact@v4
uses: actions/download-artifact@v3
with:
name: conda-lock-files-${{ github.run_attempt }}
path: ci/conda-lock

- uses: peter-evans/create-pull-request@v5
- uses: peter-evans/create-pull-request@v6
id: create_pr
with:
token: ${{ steps.generate_pr_token.outputs.token }}
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 @@ -21,10 +21,10 @@ jobs:
uses: actions/checkout@v4

- name: create issue to rotate key
uses: peter-evans/create-issue-from-file@v4
uses: peter-evans/create-issue-from-file@v5
with:
token: ${{ steps.generate_token.outputs.token }}
title: "chore: rotate ibis bot keys"
content-filepath: .github/rotate-key-template.md
labels: ci
assignees: cpcloud,jreback
assignees: cpcloud
6 changes: 3 additions & 3 deletions .github/workflows/docs-preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@ jobs:
github_token: ${{ steps.generate_token.outputs.token }}

- name: install nix
uses: cachix/install-nix-action@v24
uses: cachix/install-nix-action@v25
with:
extra_nix_config: |
access-tokens = github.com=${{ steps.generate_token.outputs.token }}
- name: setup cachix
uses: cachix/cachix-action@v13
uses: cachix/cachix-action@v14
with:
name: ibis
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
Expand Down Expand Up @@ -60,7 +60,7 @@ jobs:

- name: create preview link comment
if: success()
uses: peter-evans/create-or-update-comment@v3
uses: peter-evans/create-or-update-comment@v4
with:
token: ${{ steps.generate_token.outputs.token }}
issue-number: ${{ github.event.pull_request.number }}
Expand Down
23 changes: 8 additions & 15 deletions .github/workflows/ibis-backends-cloud.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:
- "codecov.yml"
- ".envrc"
branches:
- master
- main

permissions:
# this allows extractions/setup-just to list releases for `just` at a higher
Expand All @@ -23,6 +23,8 @@ concurrency:

env:
FORCE_COLOR: "1"
SQLALCHEMY_WARN_20: "1"
HYPOTHESIS_PROFILE: "ci"

jobs:
test_backends:
Expand All @@ -48,24 +50,15 @@ jobs:
- name: checkout
uses: actions/checkout@v4

- name: install poetry
run: pipx install 'poetry==1.7.1'

- name: install python
uses: actions/setup-python@v5
id: install_python
with:
python-version: ${{ matrix.python-version }}

- uses: syphar/restore-virtualenv@v1
with:
requirement_files: poetry.lock
custom_cache_key_element: ${{ matrix.backend.name }}-${{ steps.install_python.outputs.python-version }}

- name: upgrade pip and install poetry
run: python -m pip install --upgrade pip 'poetry==1.7.1'

- uses: syphar/restore-pip-download-cache@v1
with:
requirement_files: poetry.lock
custom_cache_key_element: ${{ matrix.backend.name }}-${{ steps.install_python.outputs.python-version }}
cache: poetry

- name: install ibis
run: poetry install --without dev --without docs --extras ${{ matrix.backend.name }}
Expand Down Expand Up @@ -106,6 +99,6 @@ jobs:

- name: upload code coverage
if: success()
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v4
with:
flags: backend,${{ matrix.backend.name }},${{ runner.os }},python-${{ steps.install_python.outputs.python-version }}
4 changes: 2 additions & 2 deletions .github/workflows/ibis-backends-skip-helper.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ on:
- "codecov.yml"
- ".envrc"
branches:
- master
- main
- "*.x.x"
pull_request:
paths:
Expand All @@ -21,7 +21,7 @@ on:
- "codecov.yml"
- ".envrc"
branches:
- master
- main
- "*.x.x"
merge_group:
jobs:
Expand Down
Loading