-
Notifications
You must be signed in to change notification settings - Fork 590
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
Support CPython 3.11, 3.12, and aarch64 processors #2331
base: master
Are you sure you want to change the base?
Changes from 31 commits
1e175c9
8ea928d
a210a40
3395947
b6c6925
9134301
65e1fd8
c1c15e6
0d0b272
7817433
f556f56
34b0209
8573502
b614cd3
39eed15
0e37c40
63acdb6
ba4943b
a346454
d7023a7
021e60f
a44e464
915d977
658816d
afa6225
eb2afa3
1f04e2e
167e500
100a13f
d32a9a5
310087c
12e2478
a19eb7e
5a34fee
a32d9cb
00d6c3a
a50ddca
66a4500
3d078ae
9bb7964
1dbdb19
27d34e2
c4f234c
0d9a3ce
08da37b
8ba6441
d46edbc
d4964f7
976b73f
4cf3f94
eacef43
3fdd98e
8fb9b3e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||
---|---|---|---|---|---|---|---|---|
|
@@ -4,86 +4,111 @@ on: | |||||||
push: | ||||||||
tags: | ||||||||
- core-* | ||||||||
release: | ||||||||
types: [released, prereleased] | ||||||||
workflow_dispatch: # allows running workflow manually from the Actions tab | ||||||||
|
||||||||
jobs: | ||||||||
build_wheels_matrix: | ||||||||
runs-on: ubuntu-latest | ||||||||
outputs: | ||||||||
include: ${{ steps.set-matrix.outputs.include }} | ||||||||
|
||||||||
steps: | ||||||||
- uses: actions/checkout@v4 | ||||||||
with: | ||||||||
submodules: true | ||||||||
|
||||||||
- uses: actions/setup-python@v5 | ||||||||
with: | ||||||||
python-version: "3.x" | ||||||||
|
||||||||
- run: pip install cibuildwheel==2.17.0 # sync version with pypa/cibuildwheel below | ||||||||
|
||||||||
- id: set-matrix | ||||||||
run: | | ||||||||
MATRIX_INCLUDE=$( | ||||||||
{ | ||||||||
cibuildwheel --print-build-identifiers --platform linux --arch x86_64,aarch64 | grep cp | jq -nRc '{"only": inputs, "os": "ubuntu-latest"}' \ | ||||||||
&& cibuildwheel --print-build-identifiers --platform macos --arch x86_64 | grep cp | jq -nRc '{"only": inputs, "os": "macos-13"}' \ | ||||||||
&& cibuildwheel --print-build-identifiers --platform macos --arch arm64 | grep cp | jq -nRc '{"only": inputs, "os": "macos-14"}' \ | ||||||||
&& cibuildwheel --print-build-identifiers --platform windows --arch AMD64 | grep cp | jq -nRc '{"only": inputs, "os": "windows-latest"}' | ||||||||
} | jq -sc | ||||||||
) | ||||||||
echo "include=$MATRIX_INCLUDE" >> $GITHUB_OUTPUT | ||||||||
cat $GITHUB_OUTPUT | ||||||||
working-directory: packages/vaex-core/ | ||||||||
|
||||||||
build_wheels: | ||||||||
name: Build wheel on ${{ matrix.os }} | ||||||||
needs: build_wheels_matrix | ||||||||
runs-on: ${{ matrix.os }} | ||||||||
name: Build ${{ matrix.only }} | ||||||||
|
||||||||
strategy: | ||||||||
fail-fast: false | ||||||||
matrix: | ||||||||
os: [ubuntu-20.04, macOS-11, windows-latest] | ||||||||
python-version: [36, 37, 38, 39, 310] | ||||||||
include: ${{ fromJson(needs.build_wheels_matrix.outputs.include) }} | ||||||||
|
||||||||
permissions: | ||||||||
contents: write # for uploading release assets | ||||||||
|
||||||||
steps: | ||||||||
- uses: actions/checkout@v1 | ||||||||
- uses: actions/checkout@v4 | ||||||||
with: | ||||||||
submodules: true | ||||||||
|
||||||||
- name: Copy dll | ||||||||
if: (matrix.os == 'windows-latest') | ||||||||
if: matrix.os == 'windows-latest' | ||||||||
uses: ./ci/actions/windll | ||||||||
|
||||||||
- uses: actions/setup-python@v2 | ||||||||
name: Install Python | ||||||||
with: | ||||||||
python-version: '3.7' | ||||||||
|
||||||||
- name: Install cibuildwheel | ||||||||
run: | | ||||||||
python -m pip install cibuildwheel==2.8.1 | ||||||||
|
||||||||
- name: Install twine/wheel | ||||||||
run: | | ||||||||
python -m pip install twine wheel | ||||||||
|
||||||||
- name: chores | ||||||||
if: matrix.os != 'windows-latest' | ||||||||
run: | | ||||||||
mkdir dist | ||||||||
mkdir packages/vaex-core/bin | ||||||||
cp bin/install_pcre.sh packages/vaex-core/bin/ | ||||||||
|
||||||||
- name: Build vaex-core (windows) | ||||||||
if: (matrix.os == 'windows-latest') | ||||||||
env: | ||||||||
CIBW_BUILD: cp${{ matrix.python-version }}*64 | ||||||||
CIBW_ENVIRONMENT_LINUX: "CFLAGS='-Wl,-strip-all' CXXFLAGS='-Wl,-strip-all'" | ||||||||
run: | | ||||||||
python -m cibuildwheel --output-dir dist packages/vaex-core | ||||||||
- name: Set up QEMU | ||||||||
if: runner.os == 'Linux' | ||||||||
uses: docker/setup-qemu-action@v3 | ||||||||
|
||||||||
- name: Build vaex-core (linux, osx) | ||||||||
if: (matrix.os != 'windows-latest') | ||||||||
- uses: pypa/[email protected] # sync version with pip install cibuildwheel above | ||||||||
with: | ||||||||
only: ${{ matrix.only }} | ||||||||
package-dir: packages/vaex-core/ | ||||||||
output-dir: packages/vaex-core/dist/ | ||||||||
env: | ||||||||
CIBW_BEFORE_BUILD: bin/install_pcre.sh | ||||||||
CIBW_BUILD: "cp${{ matrix.python-version }}*64 cp${{ matrix.python-version }}-macosx-*" | ||||||||
CIBW_ENVIRONMENT_LINUX: "CFLAGS='-Wl,-strip-all' CXXFLAGS='-Wl,-strip-all'" | ||||||||
CIBW_BEFORE_BUILD: ${{ ( matrix.os != 'windows-latest' && 'bin/install_pcre.sh' ) || '' }} | ||||||||
CIBW_BUILD_VERBOSITY: 2 | ||||||||
# needed for m1 builds | ||||||||
CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_28 | ||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
maybe this won't work because cibuildwheel only installed vaex-core (and it's dependencies) at this point |
||||||||
CIBW_MANYLINUX_AARCH64_IMAGE: manylinux_2_28 | ||||||||
CIBW_ENVIRONMENT_LINUX: "CFLAGS='-Wl,-strip-all' CXXFLAGS='-Wl,-strip-all'" | ||||||||
CIBW_ENVIRONMENT_MACOS: "CFLAGS='-I/usr/local/include -L/usr/local/lib' CXXFLAGS='-I/usr/local/include -L/usr/local/lib' LDFLAGS='-L/usr/local/lib'" | ||||||||
CIBW_ARCHS_MACOS: "x86_64 arm64" | ||||||||
run: | | ||||||||
python -m cibuildwheel --output-dir dist packages/vaex-core | ||||||||
|
||||||||
- name: Make source distribution | ||||||||
shell: bash | ||||||||
run: | | ||||||||
cd packages/vaex-core && python setup.py sdist | ||||||||
- name: Upload release assets | ||||||||
if: github.event_name == 'release' | ||||||||
uses: softprops/[email protected] | ||||||||
with: | ||||||||
files: packages/vaex-core/dist/* | ||||||||
Comment on lines
+96
to
+100
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We are not using the release feature of github, but release on tags, looking at the docs, it seems we should have a similar if as 'Publish a Python distribution to PyPI' right? |
||||||||
|
||||||||
- name: Copy build artifacts | ||||||||
shell: bash | ||||||||
run: | | ||||||||
cp packages/vaex-core/dist/* dist/ | ||||||||
- uses: actions/setup-python@v5 | ||||||||
with: | ||||||||
python-version: "3.x" | ||||||||
|
||||||||
- name: Make source distribution | ||||||||
run: python setup.py sdist | ||||||||
working-directory: packages/vaex-core/ | ||||||||
|
||||||||
- uses: actions/upload-artifact@v1 | ||||||||
- uses: actions/upload-artifact@v4 | ||||||||
with: | ||||||||
name: distributions | ||||||||
path: ./dist | ||||||||
name: distribution-${{ matrix.only }} | ||||||||
path: packages/vaex-core/dist | ||||||||
|
||||||||
- name: Publish a Python distribution to PyPI | ||||||||
env: | ||||||||
TWINE_USERNAME: __token__ | ||||||||
TWINE_PASSWORD: ${{ secrets.pypi_password_vaex_core }} | ||||||||
run: | | ||||||||
pip install twine wheel | ||||||||
openssl sha256 dist/* | ||||||||
twine upload --skip-existing dist/vaex?core* | ||||||||
twine upload --skip-existing | ||||||||
working-directory: packages/vaex-core/ |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,6 +10,7 @@ dependencies: | |
- cython | ||
- cachetools | ||
- catboost | ||
- dask<2024.2.0 | ||
- diskcache | ||
- filelock | ||
- fsspec<2022.2.0 | ||
|
@@ -20,7 +21,6 @@ dependencies: | |
- h5py | ||
- httpx # for testing with starlette/fastapi | ||
- ipyvolume=0.6.0a6 | ||
- lightgbm | ||
- matplotlib-base | ||
- nest-asyncio<1.5.2 | ||
- notebook | ||
|
@@ -54,3 +54,5 @@ dependencies: | |
- python-utils | ||
- progressbar2 | ||
- zipp<3.16.0 | ||
- pip: | ||
- lightgbm>=4.0.0 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. re: flaky micromamba I could replace setup-micromamba with setup-python: you often see packages go on a side-note: shouldn't the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This file was there to quickly and reliably create a conda environment. This previously was impossible to do with pip. |
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.
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.
Weird that this happened, I'll try an older version instead.