Add conda-forge only build and test workflow - #3035
Draft
antonwolfy wants to merge 6 commits into
Draft
Conversation
Add a 'Conda package (conda-forge)' workflow with a dedicated conda-recipe-cf recipe that builds and tests dpnp using compiler, oneMKL, dpctl and NumPy dependencies resolved solely from conda-forge.
The host dependency on dpctl was missing, so find_package(Dpctl) had nothing to locate in the build environment.
antonwolfy
force-pushed
the
add-conda-forge-package-workflow
branch
from
August 20, 2026 11:59
cc38c04 to
8a4f416
Compare
A free-threaded (cp314t) dpctl is not yet available on conda-forge, so the free-threaded build/test entries fail to solve. Remove them from the build, test_linux and test_windows matrices with a TODO to restore them once conda-forge ships a free-threaded dpctl.
Contributor
|
View rendered docs @ https://intelpython.github.io/dpnp/pull/3035/index.html |
Contributor
|
Array API standard conformance tests for dpnp=0.21.0dev5=py314ha0e2e8e_10 ran successfully. |
Collaborator
…pe-cf conda-forge folds the Intel compiler runtime libraries (libircmt.lib on Windows, libirc.a on Linux) into the build-only dpcpp_impl package, so they land in the build prefix and are off the linker's default search path. Add that directory via LIB (Windows) / LIBRARY_PATH (Linux) so icx can link.
dpctl.get_devices() returns a list in dpctl < 0.23 and a tuple from 0.23 onwards, so gate the tuple-equality assertion with with_requires.
Everything in this lane comes from conda-forge, so the Intel-channel set-intel-ocl-icd-registry.ps1 helper and cl.cfg are never present. Drop the dead branches and keep only the manual ICD-loader registration of intelocl64.dll.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR adds a
Conda package (conda-forge)workflow that builds and tests dpnp using its build/runtime dependencies (compiler, oneMKL, dpctl and NumPy) resolved purely from conda-forge with--override-channels. It validates that dpnp works when built and installed solely from conda-forge, independently of the Intel channel.The workflow relies on a dedicated
conda-recipe-cfrecipe:gxx 15/sysroot 2.28/ NumPy 2);cmakeandninjaunderrequirements/buildand keeps the remaining host dependencies in sync withpyproject.toml;ocl-icd-systemon Linux,khronos-opencl-icd-loaderon Windows).Build and test stages follow the same naming and structure as the existing
Conda packageworkflow: a build matrix over Python 3.10-3.14 (including the free-threaded builds), retry-on-failure test runs, separate tensor tests, and OpenCL CPU driver registration on Windows.