Skip to content

Conversation

evertlammerts
Copy link
Contributor

@evertlammerts evertlammerts commented Jul 16, 2025

Issue: https://github.com/duckdblabs/duckdb-internal/issues/5320

  • See this invokeCI run where cross compiling with emulation for Linux aarch64 build took 12023 seconds / 200 minutes.
  • See this test run on a native runner where Linux aarch64 builds take about 12 minutes. That's a 94% speedup for only the build (testing will also speed up significantly).

Note: I also changed the linux-python3-10 job to only run on manylinux and not on musllinux as well. This is the only place we build on musllinux (and only implicitly) and my guess is that this is by accident since we don't build wheels for musllinux.

@carlopi
Copy link
Contributor

carlopi commented Jul 16, 2025

Preliminary question: should we not just remove Python.yml? And have this handled at the duckdb/duckdb-python workflow level?

I think the rest looks to OK

@evertlammerts
Copy link
Contributor Author

Preliminary question: should we not just remove Python.yml? And have this handled at the duckdb/duckdb-python workflow level?

I think the rest looks to OK

Definitely, we should and will, but this job will probably still run for a few weeks so may as well save some CI time.

@evertlammerts evertlammerts marked this pull request as ready for review July 16, 2025 10:10
manylinux: [manylinux_2_28]
platform:
- { os: ubuntu-24.04, arch: x86_64 }
- { os: ubuntu-24.04-arm, arch: aarch64 }
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, nice that you've replaced QEMU with the GH arm runner!

python_build: 'cp312-*'
- isRelease: false
arch: aarch64
- { isRelease: false, python: cp310 }
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

May I ask a question, why do we switch from versions with sub-tag like cp310-* to versions without sub-tag cp310? It's just for information to me, otherwise I think the PR only makes thing better for python client.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, the result will be the same, but now we're explicit about what we want to build.

The value here is used to populate CIBW_BUILD and technically, if we set e.g. CIBW_BUILD=cp9-*, this tells cibuildwheel to build for Python 3.9 on all platforms that it knows and can. That includes manylinux, mussllinux, win, osx, etc on all archs it knows for these systems. The reason it only built for manylinux x86_64 and aarch64 was that 1. the runner is Ubuntu and on Ubuntu it can only build for Linux and 2. CIBW_SKIP was set to exclude musllinux.

So now we just set CIBW_BUILD to exactly that what we want to build, namely ${{ matrix.python }}-manylinux_${{ matrix.platform.arch }}.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for explaining it!

@Mytherin Mytherin merged commit 08bb4bc into duckdb:v1.3-ossivalis Jul 16, 2025
21 checks passed
@Mytherin
Copy link
Collaborator

Thanks!

github-actions bot pushed a commit to duckdb/duckdb-r that referenced this pull request Jul 17, 2025
backport 'Unit Tester Configuration' pt2 (duckdb/duckdb#18282)
Bump vcpkg-duckdb-ports to solve OSX linking (duckdb/duckdb#18268)
Move aarch64 / arm64 to native github runner (duckdb/duckdb#18269)
[Fix] Adjust test for smaller block sizes (duckdb/duckdb#18255)
Bump vcpkg-duckdb-ports and test extensions on Windows 10 default stdlib (duckdb/duckdb#18205)
github-actions bot added a commit to duckdb/duckdb-r that referenced this pull request Jul 17, 2025
backport 'Unit Tester Configuration' pt2 (duckdb/duckdb#18282)
Bump vcpkg-duckdb-ports to solve OSX linking (duckdb/duckdb#18268)
Move aarch64 / arm64 to native github runner (duckdb/duckdb#18269)
[Fix] Adjust test for smaller block sizes (duckdb/duckdb#18255)
Bump vcpkg-duckdb-ports and test extensions on Windows 10 default stdlib (duckdb/duckdb#18205)

Co-authored-by: krlmlr <krlmlr@users.noreply.github.com>
@evertlammerts evertlammerts mentioned this pull request Jul 21, 2025
Mytherin added a commit that referenced this pull request Jul 21, 2025
For some reason #18269 didn't make
it into the merge with main last week. These are the same two commits,
cherry picked onto main.
@evertlammerts evertlammerts deleted the aarch64 branch July 22, 2025 07:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants