Add conda-forge only build and test workflow - #3035
Draft
antonwolfy wants to merge 12 commits into
Draft
Conversation
antonwolfy
force-pushed
the
add-conda-forge-package-workflow
branch
from
August 20, 2026 11:59
cc38c04 to
8a4f416
Compare
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_17 ran successfully. |
Collaborator
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.
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.
…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.
Intel internal validation scans every recipe meta.yaml in the source tree and requires the LEGAL NOTICE / EULA block in about/description, so keep it in sync with conda-recipe/meta.yaml.
dpctl 0.23 changed get_devices() and SyclDevice.create_sub_devices() to return tuples instead of lists. Gate the affected tensor tests with with_requires so they skip on older dpctl (e.g. conda-forge 0.22.1).
antonwolfy
force-pushed
the
add-conda-forge-package-workflow
branch
from
August 21, 2026 10:16
e1b3b3c to
9fb2988
Compare
Unify the two test jobs into a single matrix job (ubuntu-latest, windows-2022) using bash for both OSes, keeping only Set Swap Space (Linux) and the OpenCL CPU driver registration (Windows) OS-specific. Also drop the unused cmd-only steps carried over from the legacy layout.
Move the build and test jobs into a reusable workflow_call workflow (conda-build-test.yml) parameterized by runner, conda subdir, channels and recipe dir. Reduce conda-package-cf.yml to thin per-OS callers with a concurrency group replacing the cancel-workflow action.
github.workspace and $CONDA are backslash paths on Windows that bash mangles. Use workspace-relative paths for the channel/version/repo dirs and convert $CONDA via cygpath before sourcing conda in the retry steps.
Under Git Bash on Windows the mamba wrapper mangles the -c ./channel
argument ('hannel' is not recognized), while conda parses it correctly.
Switch install/list to conda; keep use-mamba for the libmamba solver.
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.