-
Notifications
You must be signed in to change notification settings - Fork 72
[REVIEW] Bump Arrow DataFusion Python dependency to 28.0.0 #1181
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
104 commits
Select commit
Hold shift + click to select a range
fa18499
Merge remote-tracking branch 'upstream/main'
jdye64 d6b470c
Merge remote-tracking branch 'upstream/main'
jdye64 856f7c0
Merge remote-tracking branch 'upstream/main'
jdye64 4b86547
Merge remote-tracking branch 'upstream/main'
jdye64 28fce59
Merge remote-tracking branch 'upstream/main'
jdye64 6637b84
Bump ADP -> 26.0.0
jdye64 c59cdbd
warn on optimization failure instead of erroring and exiting
jdye64 79a1f7c
Merge branch 'main' into adp_26
ayushdg ba585a5
Merge branch 'main' into adp_26
ayushdg 23af11d
Merge remote-tracking branch 'origin/main' into adp_26
charlesbluca 5c02c5a
Resolve initial build errors
charlesbluca 7c36bf5
Merge remote-tracking branch 'origin/main' into adp_26
charlesbluca 515dae6
Switch to crates release, add zlib to host/build deps
charlesbluca ef399e8
Add zlib to aarch build deps
charlesbluca 8fbd1ff
Merge remote-tracking branch 'origin/main' into adp_26
charlesbluca bca9911
Merge branch 'main' into adp_26
jdye64 6858578
Bump to ADP 27 and introduce support for wildcard expressions, a wild…
jdye64 24e0f90
remove bit of logic that is no longer needed to manually check the wi…
jdye64 d776229
experiment with removing zlib, hoping that fixes os x build
jdye64 99ec801
Change expected_df result to 1.5 from 1. 3/2 is in fact 1.5 and not 1
jdye64 8997f7f
Fix cargo test
jdye64 379a978
add .cargo/config.toml in hopes of fixing linker build issues on osx
jdye64 e030bef
Remove extra config.toml
charlesbluca b2e85df
Try overriding runner-installed toolchain
charlesbluca d01088d
Revert "Try overriding runner-installed toolchain"
charlesbluca ca70f0f
Initial migration to maturin build system
charlesbluca d900f0e
Make some modifications to Rust package name
charlesbluca 7d1be92
Adjust native library name from _.internal to dask_planner
jdye64 83fb5c3
Resolve initial conda build issues
charlesbluca c7bbbd7
Replace setuptools-rust with maturin in CI
charlesbluca 6dc6347
Constrain maturin, remove setuptools-rust from CI envs
charlesbluca 6dcf5e0
Update docs and Rust CI
charlesbluca b7c02c9
Remove more dask_planner appearances
charlesbluca a3e1a68
Bump pyarrow min version to resolve 3.8 conflicts
charlesbluca 3ff8240
test commit seeing how CI will respond without cmd_loop import
jdye64 ce56a08
Merge branch 'adp_26' of github.com:jdye64/dask-sql into adp_26
charlesbluca ae7a3d6
Rename module to _datafusion_lib
charlesbluca 0c2908c
Switch to maturin develop for CI installs
charlesbluca 849dc42
Fix failing cargo tests, changed output, from datafusion version bump
jdye64 1f73b56
Fix cargo test syntax issue
jdye64 79b6eac
Fix failing Rust tests
405470f
Remove linux config.toml options
jdye64 32e4613
Merge remote-tracking branch 'origin/main' into adp_26
charlesbluca 7870c96
Fix Rust object import
charlesbluca 2961cfa
Apply code suggestions
charlesbluca 9983700
Bump to recent ADP commit
charlesbluca 9fd4770
Initial unblocker for pyarrow string handling
charlesbluca 36c58ab
Compatibility code for old or no pyarrow installation
charlesbluca b4b2cdb
Added RexCall Operation to handle InSubquery Expr and also adjusted c…
jdye64 336b8ea
Add Sarah's fix for datetime.time error
jdye64 465e9df
Add condition to guard against complex function names that contain a …
jdye64 483bab5
unmarked xfail for queries 6, 9, & 54
jdye64 955bf4d
Quick fix for pydantic upstream breakage
charlesbluca 8757515
Update dask_sql/physical/utils/filter.py
charlesbluca 5271eea
Apply Sarah's suggestions
charlesbluca 69441fc
Attempt to unblock failures at parse_datetime
charlesbluca 7688f8b
Disable pyarrow strings for now
charlesbluca 19aed3f
Remove breakpoint
charlesbluca fe185ae
Merge remote-tracking branch 'origin/main' into adp_26
charlesbluca 62ba03b
Remove pydantic constraint now that fastapi is bumped
charlesbluca bbb0dc5
Apply pyproject suggestions
charlesbluca 3706115
Bump build system to maturin 1.1
charlesbluca 1fc8849
Move filter datetime handling, remove string datetime handling for now
charlesbluca 510b063
Actually check containment in InSubquery call
charlesbluca 3d4d948
bring back decorrelated_where_exists and decorrelate_when_in
jdye64 4fa155c
Checkstyle fixes
jdye64 3f23aed
Remove xfail for queries 58 and 61 which pass now
jdye64 bcd1f29
Fix pytest syntax issue
jdye64 d183976
whatever, have it your way black
jdye64 32f5adf
Remove debugging println
charlesbluca e2d4399
re-add support for ilike using the case_insensitive member of like
ayushdg 378d48a
Merge branch 'adp_26' of github.com:jdye64/dask-sql into adp_26
charlesbluca 67a5d86
Handle non-decimal scalar args for cuDF in RexCall
charlesbluca d767726
Try using maturin with zig for wheel builds
charlesbluca 294cd28
Install protoc for all wheel builds and zlib1g-dev in linux builds
charlesbluca 1bcb71e
Remove Cargo tests because that code is already being tested in DataF…
jdye64 caf6761
Adjust optimizer/utils test includes
jdye64 edbc669
Adjust import path for doctest
jdye64 f6411a4
Adjust import path for doctest (more)
jdye64 a94864a
Check if zlib is installed on ubuntu runners
charlesbluca 24f465f
Try invoking maturin directly for conda builds
charlesbluca a0acebc
Revert "Try invoking maturin directly for conda builds"
charlesbluca 488cbaf
Install protoc via apt
charlesbluca 6ca444b
Add zlib to conda environment so that conda install c-compiler can lo…
jdye64 4109b38
Remove pytest coalesce option for Sum(b) with a string conditional re…
jdye64 3cadd47
Revert "Install protoc via apt"
charlesbluca 276f2fa
Try not using zig for x86_64 builds
charlesbluca 66ebed4
Try installing protoc from apt again
charlesbluca 789dd35
Revert "Try installing protoc from apt again"
charlesbluca d154e66
Try explicitly setting PROTOC location for x86_64 builds
charlesbluca 3ac265c
Where is protoc?
charlesbluca 64411d4
Fix protoc binary location
charlesbluca 9ed0550
Disable docker container for linux x86_64 build
charlesbluca 1688ce0
Properly upload artifacts for ARM/intel
charlesbluca e3210f7
Disable aarch64 builds for now
charlesbluca 4efeb01
Constrain mlflow to avoid import error
charlesbluca 6020cdf
Set wheel tags to manylinux_2_17
charlesbluca d7d8413
Use manylinux docker container for x86_64 builds
charlesbluca 319e2ef
No sudo for protoc installation
charlesbluca 70dca3f
Install protoc directly from github
charlesbluca 7b7d7a9
Specify PROTOC environment variable for x86_64 runs
charlesbluca 60ef2e7
More doc updates to reflect new installation style
charlesbluca 8a49552
Fix docker builds
charlesbluca 6e7c451
Bump ADP to stable 28.0.0
charlesbluca File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
File renamed without changes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -15,111 +15,159 @@ concurrency: | |
| env: | ||
| upload: ${{ github.event_name == 'release' && github.repository == 'dask-contrib/dask-sql' }} | ||
|
|
||
| # Required shell entrypoint to have properly activated conda environments | ||
| defaults: | ||
| run: | ||
| shell: bash -l {0} | ||
|
|
||
| jobs: | ||
| wheels: | ||
| name: Build and publish py3.${{ matrix.python }} wheels on ${{ matrix.os }} | ||
| runs-on: ${{ matrix.os }} | ||
| linux: | ||
| name: Build and publish wheels for linux ${{ matrix.target }} | ||
| runs-on: ubuntu-latest | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| os: [ubuntu-latest, windows-latest, macos-latest] | ||
| python: ["8", "9", "10"] # 3.x | ||
| target: [x86_64, aarch64] | ||
| steps: | ||
| - uses: actions/checkout@v3 | ||
| - name: Install Protoc | ||
| uses: arduino/setup-protoc@v1 | ||
| if: matrix.target == 'aarch64' | ||
| with: | ||
| version: '3.x' | ||
| repo-token: ${{ secrets.GITHUB_TOKEN }} | ||
| - uses: actions/setup-python@v4 | ||
| with: | ||
| python-version: '3.10' | ||
| - name: Build wheels for x86_64 | ||
| if: matrix.target == 'x86_64' | ||
| uses: PyO3/maturin-action@v1 | ||
| with: | ||
| target: ${{ matrix.target }} | ||
| args: --release --out dist | ||
| sccache: 'true' | ||
| manylinux: '2_17' | ||
| before-script-linux: > | ||
| DOWNLOAD_URL=$(curl --retry 6 --retry-delay 10 -s https://api.github.com/repos/protocolbuffers/protobuf/releases/latest | grep -o '"browser_download_url": "[^"]*' | cut -d'"' -f4 | grep "\linux-x86_64.zip$") && | ||
| curl --retry 6 --retry-delay 10 -LO $DOWNLOAD_URL && | ||
| unzip protoc-*-linux-x86_64.zip -d $HOME/.local | ||
| docker-options: --env PROTOC=/root/.local/bin/protoc | ||
| - name: Build wheels for aarch64 | ||
| if: matrix.target == 'aarch64' | ||
| uses: PyO3/maturin-action@v1 | ||
| with: | ||
| target: ${{ matrix.target }} | ||
| args: --release --out dist --zig | ||
| sccache: 'true' | ||
| manylinux: '2_17' | ||
| - name: Check dist files | ||
| run: | | ||
| pip install twine | ||
|
|
||
| twine check dist/* | ||
| ls -lh dist/ | ||
| - name: Upload binary wheels | ||
| uses: actions/upload-artifact@v3 | ||
| with: | ||
| fetch-depth: 0 | ||
| name: wheels for linux ${{ matrix.target }} | ||
| path: dist/* | ||
| - name: Publish package | ||
| if: env.upload == 'true' | ||
| env: | ||
| TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} | ||
| TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} | ||
| run: twine upload dist/* | ||
|
|
||
| windows: | ||
| name: Build and publish wheels for windows | ||
| runs-on: windows-latest | ||
| steps: | ||
| - uses: actions/checkout@v3 | ||
| - name: Install Protoc | ||
| if: matrix.os != 'ubuntu-latest' | ||
| uses: arduino/setup-protoc@v1 | ||
| with: | ||
| version: '3.x' | ||
| repo-token: ${{ secrets.GITHUB_TOKEN }} | ||
| - name: Set up QEMU for linux-aarch64 | ||
| if: matrix.os == 'ubuntu-latest' | ||
| uses: docker/setup-qemu-action@v2 | ||
| - uses: actions/setup-python@v4 | ||
| with: | ||
| platforms: arm64 | ||
| - name: Add rust toolchain target for macos-aarch64 | ||
| if: matrix.os == 'macos-latest' | ||
| run: rustup target add aarch64-apple-darwin | ||
| python-version: '3.10' | ||
| architecture: x64 | ||
| - name: Build wheels | ||
| uses: pypa/[email protected] | ||
| uses: PyO3/maturin-action@v1 | ||
| with: | ||
| target: x64 | ||
| args: --release --out dist | ||
| sccache: 'true' | ||
| - name: Check dist files | ||
| run: | | ||
| pip install twine | ||
|
|
||
| twine check dist/* | ||
| ls dist/ | ||
| - name: Upload binary wheels | ||
| uses: actions/upload-artifact@v3 | ||
| with: | ||
| name: wheels for windows | ||
| path: dist/* | ||
| - name: Publish package | ||
| if: env.upload == 'true' | ||
| env: | ||
| CIBW_BUILD: 'cp3${{ matrix.python }}-*' | ||
| CIBW_SKIP: '*musllinux*' | ||
| CIBW_ARCHS_LINUX: 'aarch64 x86_64' | ||
| CIBW_ARCHS_WINDOWS: 'AMD64' | ||
| CIBW_ARCHS_MACOS: 'x86_64 arm64' | ||
| # Without CARGO_NET_GIT_FETCH_WITH_CLI we oom (https://github.com/rust-lang/cargo/issues/10583) | ||
| CIBW_ENVIRONMENT_LINUX: > | ||
| CARGO_NET_GIT_FETCH_WITH_CLI="true" | ||
| PATH="$HOME/.cargo/bin:$HOME/.local/bin:$PATH" | ||
| CIBW_ENVIRONMENT_WINDOWS: 'PATH="$UserProfile\.cargo\bin;$PATH"' | ||
| CIBW_BEFORE_BUILD: 'pip install -U setuptools-rust' | ||
| CIBW_BEFORE_BUILD_LINUX: > | ||
| ARCH=$([ $(uname -m) == x86_64 ] && echo x86_64 || echo aarch_64) && | ||
| DOWNLOAD_URL=$(curl --retry 6 --retry-delay 10 -s https://api.github.com/repos/protocolbuffers/protobuf/releases/latest | grep -o '"browser_download_url": "[^"]*' | cut -d'"' -f4 | grep "\linux-${ARCH}.zip$") && | ||
| curl --retry 6 --retry-delay 10 -LO $DOWNLOAD_URL && | ||
| unzip protoc-*-linux-$ARCH.zip -d $HOME/.local && | ||
| protoc --version && | ||
| pip install -U setuptools-rust && | ||
| pip list && | ||
| curl --retry 6 --retry-delay 10 https://sh.rustup.rs -sSf | sh -s -- --default-toolchain=stable --profile=minimal -y && | ||
| rustup show | ||
| TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} | ||
| TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} | ||
| run: twine upload dist/* | ||
|
|
||
| macos: | ||
| name: Build and publish wheels for macos ${{ matrix.target }} | ||
| runs-on: macos-latest | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| target: [x86_64, aarch64] | ||
| steps: | ||
| - uses: actions/checkout@v3 | ||
| - name: Install Protoc | ||
| uses: arduino/setup-protoc@v1 | ||
| with: | ||
| version: '3.x' | ||
| repo-token: ${{ secrets.GITHUB_TOKEN }} | ||
| - uses: actions/setup-python@v4 | ||
| with: | ||
| package-dir: . | ||
| output-dir: dist | ||
| config-file: "dask_planner/pyproject.toml" | ||
| - name: Set up Python | ||
| uses: conda-incubator/[email protected] | ||
| python-version: '3.10' | ||
| - name: Build wheels | ||
| uses: PyO3/maturin-action@v1 | ||
| with: | ||
| miniforge-variant: Mambaforge | ||
| use-mamba: true | ||
| python-version: "3.8" | ||
| channel-priority: strict | ||
| target: ${{ matrix.target }} | ||
| args: --release --out dist | ||
| sccache: 'true' | ||
| - name: Check dist files | ||
| run: | | ||
| mamba install twine | ||
| pip install twine | ||
|
|
||
| twine check dist/* | ||
| ls -lh dist/ | ||
| - name: Upload binary wheels | ||
| uses: actions/upload-artifact@v3 | ||
| with: | ||
| name: wheels for py3.${{ matrix.python }} on ${{ matrix.os }} | ||
| name: wheels for macos ${{ matrix.target }} | ||
| path: dist/* | ||
| - name: Publish package | ||
| if: env.upload == 'true' | ||
| env: | ||
| TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} | ||
| TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} | ||
| run: twine upload dist/* | ||
|
|
||
| sdist: | ||
| name: Build and publish source distribution | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v3 | ||
| - name: Build sdist | ||
| uses: PyO3/maturin-action@v1 | ||
| with: | ||
| fetch-depth: 0 | ||
| - name: Set up Python | ||
| uses: conda-incubator/setup-[email protected] | ||
| command: sdist | ||
| args: --out dist | ||
| - uses: actions/setup-python@v4 | ||
| with: | ||
| miniforge-variant: Mambaforge | ||
| use-mamba: true | ||
| python-version: "3.8" | ||
| channel-priority: strict | ||
| - name: Build source distribution | ||
| run: | | ||
| mamba install setuptools-rust twine | ||
|
|
||
| python setup.py sdist | ||
| python-version: '3.10' | ||
| - name: Check dist files | ||
| run: | | ||
| pip install twine | ||
|
|
||
| twine check dist/* | ||
| ls -lh dist/ | ||
| - name: Publish source distribution | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wonder if it makes sense to start adding teams to own portions of the code and then add people to those teams
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That makes sense to me - might be worth scoping out separately from this issue since IIUC those teams would need to be created at an org level which I don't have permissions to do