From 9af7c576f7f0c25a4726cf440dee510d1f3d1e63 Mon Sep 17 00:00:00 2001 From: ekomarova Date: Mon, 17 Aug 2026 23:29:44 +0200 Subject: [PATCH 1/9] Migrate conda packaging to rattler-build (v1 recipe format) --- .github/workflows/conda-package.yml | 46 ++++++++++- conda-recipe/recipe.yaml | 119 ++++++++++++++++++++++++++++ environments/build_conda_pkg.yml | 3 +- 3 files changed, 163 insertions(+), 5 deletions(-) create mode 100644 conda-recipe/recipe.yaml diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index dd0175d74918..6d701fe69261 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -85,19 +85,59 @@ jobs: - name: Store conda paths as envs shell: bash -el {0} run: | - echo "CONDA_BLD=$CONDA_PREFIX/conda-bld/${{ runner.os == 'Linux' && 'linux' || 'win' }}-64/" | tr "\\\\" '/' >> "$GITHUB_ENV" + echo "CONDA_BLD=$GITHUB_WORKSPACE/output/${{ runner.os == 'Linux' && 'linux-64' || 'win-64' }}/" >> "$GITHUB_ENV" echo "WHEELS_OUTPUT_FOLDER=$GITHUB_WORKSPACE${{ runner.os == 'Linux' && '/' || '\\' }}" >> "$GITHUB_ENV" + - name: Compute version from git describe + shell: bash -el {0} + run: | + DESCRIBE=$(git describe --tags --long) + echo "GIT_DESCRIBE_TAG=$(echo "$DESCRIBE" | sed -E 's/-[0-9]+-g[0-9a-f]+$//')" >> "$GITHUB_ENV" + echo "GIT_DESCRIBE_NUMBER=$(echo "$DESCRIBE" | sed -E 's/^.*-([0-9]+)-g[0-9a-f]+$/\1/')" >> "$GITHUB_ENV" + + # rattler-build looks for build.bat on Windows (build.sh/build.bat is the + # symmetric naming it expects), while conda-build is still used for this + # recipe in non-GitHub CI and required bld.bat. + # Keep bld.bat as the single real source file and + # just copy it under the name rattler-build needs, so both build systems + # keep working off the same script without maintaining two duplicates + - name: Prepare build.bat for rattler-build + if: runner.os == 'Windows' + shell: bash -el {0} + run: cp conda-recipe/bld.bat conda-recipe/build.bat + - name: Build conda package id: build_conda_pkg continue-on-error: true - run: conda-build --no-test --python ${{ matrix.python }} --numpy 2.0 ${{ env.channels-list }} conda-recipe + shell: bash -el {0} + run: | + read -ra RATTLER_CHANNELS <<< "$(echo "${{ env.channels-list }}" | sed 's/--override-channels//')" + rattler-build build \ + --recipe conda-recipe \ + --no-include-recipe \ + --channel-priority disabled \ + --target-platform ${{ runner.os == 'Linux' && 'linux-64' || 'win-64' }} \ + --variant-config conda-recipe/conda_build_config.yaml \ + --variant python=${{ matrix.python }} \ + --variant numpy=2 \ + "${RATTLER_CHANNELS[@]}" env: MAX_BUILD_CMPL_MKL_VERSION: '2027.0a0' - name: ReBuild conda package if: steps.build_conda_pkg.outcome == 'failure' - run: conda-build --no-test --python ${{ matrix.python }} --numpy 2.0 ${{ env.channels-list }} conda-recipe + shell: bash -el {0} + run: | + read -ra RATTLER_CHANNELS <<< "$(echo "${{ env.channels-list }}" | sed 's/--override-channels//')" + rattler-build build \ + --recipe conda-recipe \ + --no-include-recipe \ + --channel-priority disabled \ + --target-platform ${{ runner.os == 'Linux' && 'linux-64' || 'win-64' }} \ + --variant-config conda-recipe/conda_build_config.yaml \ + --variant python=${{ matrix.python }} \ + --variant numpy=2 \ + "${RATTLER_CHANNELS[@]}" env: MAX_BUILD_CMPL_MKL_VERSION: '2027.0a0' diff --git a/conda-recipe/recipe.yaml b/conda-recipe/recipe.yaml new file mode 100644 index 000000000000..c4a334120b6a --- /dev/null +++ b/conda-recipe/recipe.yaml @@ -0,0 +1,119 @@ +schema_version: 1 + +context: + max_compiler_and_mkl_version: ${{ env.get("MAX_BUILD_CMPL_MKL_VERSION", default="2027.0a0") }} + required_compiler_version: ${{ env.get("MIN_BUILD_CMPL_VERSION", default="2026.1.1") }} + required_mkl_version: "2026.0" + required_dpctl_version: 0.23.0dev0 + +package: + name: dpnp + version: ${{ env.get("GIT_DESCRIBE_TAG") }} + +source: + path: .. + +build: + number: ${{ env.get("GIT_DESCRIBE_NUMBER") }} + script: + env: + WHEELS_OUTPUT_FOLDER: ${{ env.get("WHEELS_OUTPUT_FOLDER", default="") }} + OVERRIDE_INTEL_IPO: ${{ env.get("OVERRIDE_INTEL_IPO", default="") }} + dynamic_linking: + missing_dso_allowlist: + - "*DPCTLSyclInterface*" + - "*/dpnp_backend_c.dll" + +requirements: + host: + - python + - if: match(python, ">=3.14") + then: python-gil + - pip >=25.0 + - pybind11 >=2.13.6 + - python-build>=1.2.2 + - cmake>=3.31.6 + - cython>=3.0.12 + - dpctl >=${{ required_dpctl_version }} + - if: not win + then: ninja>=1.11.1 + - numpy + - scikit-build>=0.18.1 + - setuptools>=79.0.1 + - wheel>=0.45.1 + - versioneer ==0.29 + # versioneer dependency + - if: match(python, "<3.11") + then: tomli + # Do not use pyproject.toml for setting dependencies on OneAPI packages + - mkl-devel-dpcpp >=${{ required_mkl_version }},<${{ max_compiler_and_mkl_version }} + - onedpl-devel + - tbb-devel + - if: win + then: opencl-headers >=2025.06.13 + build: + - ${{ compiler('cxx') }} + - ${{ stdlib('c') }} + - ${{ compiler('dpcpp') }} >=${{ required_compiler_version }},<${{ max_compiler_and_mkl_version }} + run: + - python + - if: match(python, ">=3.14") + then: python-gil + - ${{ pin_compatible('dpctl', lower_bound='x.x.x', upper_bound=None) }} + - ${{ pin_compatible('dpcpp-cpp-rt', lower_bound='x.x', upper_bound='x') }} + - ${{ pin_compatible('intel-sycl-rt', lower_bound='x.x', upper_bound='x') }} + - ${{ pin_compatible('intel-cmplr-lib-rt', lower_bound='x.x', upper_bound='x') }} + - ${{ pin_compatible('mkl', lower_bound='x.x', upper_bound='x') }} + - ${{ pin_compatible('onemkl-sycl-blas', lower_bound='x.x', upper_bound='x') }} + - ${{ pin_compatible('onemkl-sycl-dft', lower_bound='x.x', upper_bound='x') }} + - ${{ pin_compatible('onemkl-sycl-lapack', lower_bound='x.x', upper_bound='x') }} + - ${{ pin_compatible('onemkl-sycl-rng', lower_bound='x.x', upper_bound='x') }} + - ${{ pin_compatible('onemkl-sycl-vm', lower_bound='x.x', upper_bound='x') }} + - numpy + - if: linux + then: ocl-icd-system + - if: win + then: khronos-opencl-icd-loader + ignore_run_exports: + by_name: + - dpctl + - numpy + - python + # building with Intel DPC++ and do not import the MSVC runtime DLLs + - if: win + then: vc14_runtime + - if: win + then: ucrt + +tests: + - script: + - python -c "import dpnp; print(dpnp.__version__)" + requirements: + run: + - pytest + - setuptools + - if: match(python, "<3.14") + then: scipy + +about: + license: BSD-3-Clause + license_file: LICENSE.txt + summary: Data Parallel Extension for NumPy + description: | + LEGAL NOTICE: Use of this software package is subject to the + software license agreement (as set forth above, in the license section of + the installed Conda package and/or the README file) and all notices, + disclaimers or license terms for third party or open source software + included in or with the software. +

+ EULA: BSD-3-Clause +

+ + + homepage: https://github.com/IntelPython/dpnp + +extra: + recipe-maintainers: + - antonwolfy + - vlad-perevezentsev + - ndgrigorian diff --git a/environments/build_conda_pkg.yml b/environments/build_conda_pkg.yml index de6579c776b2..b4c46bb36930 100644 --- a/environments/build_conda_pkg.yml +++ b/environments/build_conda_pkg.yml @@ -2,5 +2,4 @@ name: Build DPNP conda package channels: - conda-forge dependencies: - - conda-build=25.11.1 - - conda-verify=3.4.2 + - rattler-build From 9d616be9c83084fc9b89d82e4cd5cd3489fd848e Mon Sep 17 00:00:00 2001 From: ekomarova Date: Tue, 18 Aug 2026 14:20:20 +0200 Subject: [PATCH 2/9] Fix Windows build: pass GIT_DESCRIBE_NUMBER into rattler-build script env --- conda-recipe/recipe.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/conda-recipe/recipe.yaml b/conda-recipe/recipe.yaml index c4a334120b6a..195222b1a454 100644 --- a/conda-recipe/recipe.yaml +++ b/conda-recipe/recipe.yaml @@ -19,6 +19,12 @@ build: env: WHEELS_OUTPUT_FOLDER: ${{ env.get("WHEELS_OUTPUT_FOLDER", default="") }} OVERRIDE_INTEL_IPO: ${{ env.get("OVERRIDE_INTEL_IPO", default="") }} + # conda-build used to forward GIT_DESCRIBE_NUMBER into the build script + # automatically; rattler-build does not, so bld.bat's + # `wheel tags --remove --build %GIT_DESCRIBE_NUMBER%` was silently + # getting an empty value on Windows, which made that command fail and + # broke the wheel install step further down the script. + GIT_DESCRIBE_NUMBER: ${{ env.get("GIT_DESCRIBE_NUMBER") }} dynamic_linking: missing_dso_allowlist: - "*DPCTLSyclInterface*" From ee3ec67240552dcc103176abceaa79287327b24d Mon Sep 17 00:00:00 2001 From: ekomarova Date: Tue, 18 Aug 2026 16:28:56 +0200 Subject: [PATCH 3/9] Fix build variant for free-threaded Python 3.14t --- .github/workflows/conda-package.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index f3dd10975ec4..aac4d4a29cfc 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -133,7 +133,7 @@ jobs: --channel-priority disabled \ --target-platform ${{ runner.os == 'Linux' && 'linux-64' || 'win-64' }} \ --variant-config conda-recipe/conda_build_config.yaml \ - --variant python=${{ matrix.python }} \ + --variant "python=${{ env.python-conda-spec }}" \ --variant numpy=2 \ "${RATTLER_CHANNELS[@]}" env: @@ -150,7 +150,7 @@ jobs: --channel-priority disabled \ --target-platform ${{ runner.os == 'Linux' && 'linux-64' || 'win-64' }} \ --variant-config conda-recipe/conda_build_config.yaml \ - --variant python=${{ matrix.python }} \ + --variant "python=${{ env.python-conda-spec }}" \ --variant numpy=2 \ "${RATTLER_CHANNELS[@]}" env: From b2a68e26e176baf98ba0aa7901ddfe2c6b6070fc Mon Sep 17 00:00:00 2001 From: ekomarova Date: Tue, 18 Aug 2026 19:11:45 +0200 Subject: [PATCH 4/9] Sync recipe.yaml deps with meta.yaml --- conda-recipe/recipe.yaml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/conda-recipe/recipe.yaml b/conda-recipe/recipe.yaml index 195222b1a454..a049fed2d61d 100644 --- a/conda-recipe/recipe.yaml +++ b/conda-recipe/recipe.yaml @@ -33,13 +33,11 @@ build: requirements: host: - python - - if: match(python, ">=3.14") - then: python-gil - pip >=25.0 - - pybind11 >=2.13.6 + - pybind11 >=3.0.2 - python-build>=1.2.2 - cmake>=3.31.6 - - cython>=3.0.12 + - cython>=3.1.0 - dpctl >=${{ required_dpctl_version }} - if: not win then: ninja>=1.11.1 @@ -63,8 +61,6 @@ requirements: - ${{ compiler('dpcpp') }} >=${{ required_compiler_version }},<${{ max_compiler_and_mkl_version }} run: - python - - if: match(python, ">=3.14") - then: python-gil - ${{ pin_compatible('dpctl', lower_bound='x.x.x', upper_bound=None) }} - ${{ pin_compatible('dpcpp-cpp-rt', lower_bound='x.x', upper_bound='x') }} - ${{ pin_compatible('intel-sycl-rt', lower_bound='x.x', upper_bound='x') }} From b2bf4a8fbff09198f5d864d2bfa9cafea894f6f8 Mon Sep 17 00:00:00 2001 From: ekomarova Date: Tue, 18 Aug 2026 21:22:55 +0200 Subject: [PATCH 5/9] Replace miniconda with rattler-build-action in the build job --- .github/workflows/conda-package.yml | 34 +++++++++-------------------- 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index aac4d4a29cfc..d9a26970e871 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -57,8 +57,6 @@ jobs: shell: ${{ matrix.os == 'windows-2022' && 'cmd /C CALL {0}' || 'bash -el {0}' }} env: - build-conda-pkg-env: 'environments/build_conda_pkg.yml' - build-env-name: 'build' python-label: ${{ endsWith(matrix.python_spec, 't') && format('{0}t', matrix.python) || matrix.python }} python-conda-spec: ${{ matrix.python_spec || matrix.python }} @@ -73,31 +71,19 @@ jobs: with: fetch-depth: 0 - - name: Setup miniconda - id: setup_miniconda - continue-on-error: true - uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1 - with: - miniforge-version: latest - use-mamba: 'true' - conda-remove-defaults: 'true' - environment-file: ${{ env.build-conda-pkg-env }} - activate-environment: ${{ env.build-env-name }} - - - name: ReSetup miniconda - if: steps.setup_miniconda.outcome == 'failure' - uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1 + # rattler-build is a standalone binary with no conda/Python dependency, + # so building conda packages with it doesn't need a full conda + # distribution on the runner - only rattler-build itself needs to be on + # PATH + - name: Setup rattler-build + uses: prefix-dev/rattler-build-action@v0.2.39 with: - miniforge-version: latest - use-mamba: 'true' - conda-remove-defaults: 'true' - environment-file: ${{ env.build-conda-pkg-env }} - activate-environment: ${{ env.build-env-name }} + setup-only: true - - name: List installed packages - run: mamba list + - name: Check rattler-build version + run: rattler-build --version - - name: Store conda paths as envs + - name: Store build output paths shell: bash -el {0} run: | echo "CONDA_BLD=$GITHUB_WORKSPACE/output/${{ runner.os == 'Linux' && 'linux-64' || 'win-64' }}/" >> "$GITHUB_ENV" From 8ba4cc1ce67b5221aeba3b8fc4e293ab048d1cab Mon Sep 17 00:00:00 2001 From: ekomarova Date: Fri, 28 Aug 2026 18:42:27 +0200 Subject: [PATCH 6/9] Rename recipe to rattler_recipe to fix internal CI --- .github/workflows/conda-package.yml | 4 ++-- conda-recipe/{recipe.yaml => rattler_recipe.yaml} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename conda-recipe/{recipe.yaml => rattler_recipe.yaml} (100%) diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index d9a26970e871..c5565d57ccf8 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -114,7 +114,7 @@ jobs: run: | read -ra RATTLER_CHANNELS <<< "$(echo "${{ env.channels-list }}" | sed 's/--override-channels//')" rattler-build build \ - --recipe conda-recipe \ + --recipe conda-recipe/rattler_recipe.yaml \ --no-include-recipe \ --channel-priority disabled \ --target-platform ${{ runner.os == 'Linux' && 'linux-64' || 'win-64' }} \ @@ -131,7 +131,7 @@ jobs: run: | read -ra RATTLER_CHANNELS <<< "$(echo "${{ env.channels-list }}" | sed 's/--override-channels//')" rattler-build build \ - --recipe conda-recipe \ + --recipe conda-recipe/rattler_recipe.yaml \ --no-include-recipe \ --channel-priority disabled \ --target-platform ${{ runner.os == 'Linux' && 'linux-64' || 'win-64' }} \ diff --git a/conda-recipe/recipe.yaml b/conda-recipe/rattler_recipe.yaml similarity index 100% rename from conda-recipe/recipe.yaml rename to conda-recipe/rattler_recipe.yaml From da53abb2c1b659fde05e52dec3ed0e06ee6d332a Mon Sep 17 00:00:00 2001 From: ekomarova Date: Fri, 28 Aug 2026 18:46:46 +0200 Subject: [PATCH 7/9] Use hash instead of version to install rattler-build --- .github/workflows/conda-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index c5565d57ccf8..808a719e0706 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -76,7 +76,7 @@ jobs: # distribution on the runner - only rattler-build itself needs to be on # PATH - name: Setup rattler-build - uses: prefix-dev/rattler-build-action@v0.2.39 + uses: prefix-dev/rattler-build-action@1ca5f45832f419a46d1326ccc5861d7e14d67c44 # v0.2.39 with: setup-only: true From 93215532cac180b47dec55dd680f9992143d39c6 Mon Sep 17 00:00:00 2001 From: ekomarova Date: Fri, 28 Aug 2026 19:05:44 +0200 Subject: [PATCH 8/9] Revert build_conda_pkg.yml --- environments/build_conda_pkg.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/environments/build_conda_pkg.yml b/environments/build_conda_pkg.yml index b4c46bb36930..de6579c776b2 100644 --- a/environments/build_conda_pkg.yml +++ b/environments/build_conda_pkg.yml @@ -2,4 +2,5 @@ name: Build DPNP conda package channels: - conda-forge dependencies: - - rattler-build + - conda-build=25.11.1 + - conda-verify=3.4.2 From 8082a58106481688af38e1ebae75f990c3bee23f Mon Sep 17 00:00:00 2001 From: ekomarova Date: Tue, 15 Sep 2026 18:28:46 +0200 Subject: [PATCH 9/9] Address PR review comments --- .github/workflows/conda-package.yml | 47 +++++++++-------------------- CHANGELOG.md | 1 + conda-recipe/bld.bat | 2 +- conda-recipe/rattler_recipe.yaml | 12 ++++++-- 4 files changed, 26 insertions(+), 36 deletions(-) diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index 5625cd5a60ed..a82193d641c0 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -98,49 +98,30 @@ jobs: echo "GIT_DESCRIBE_TAG=$(echo "$DESCRIBE" | sed -E 's/-[0-9]+-g[0-9a-f]+$//')" >> "$GITHUB_ENV" echo "GIT_DESCRIBE_NUMBER=$(echo "$DESCRIBE" | sed -E 's/^.*-([0-9]+)-g[0-9a-f]+$/\1/')" >> "$GITHUB_ENV" - # rattler-build looks for build.bat on Windows (build.sh/build.bat is the - # symmetric naming it expects), while conda-build is still used for this - # recipe in non-GitHub CI and required bld.bat. - # Keep bld.bat as the single real source file and - # just copy it under the name rattler-build needs, so both build systems - # keep working off the same script without maintaining two duplicates - - name: Prepare build.bat for rattler-build - if: runner.os == 'Windows' + - name: Compute rattler-build arguments shell: bash -el {0} - run: cp conda-recipe/bld.bat conda-recipe/build.bat + run: | + read -ra RATTLER_CHANNELS <<< "$(echo "${{ env.channels-list }}" | sed 's/--override-channels//')" + echo "RATTLER_BUILD_ARGS=--no-include-recipe --test skip --channel-priority disabled --target-platform ${{ runner.os == 'Linux' && 'linux-64' || 'win-64' }} --variant-config conda-recipe/conda_build_config.yaml --variant \"python=${{ env.python-conda-spec }}\" --variant numpy=2 ${RATTLER_CHANNELS[*]}" >> "$GITHUB_ENV" - name: Build conda package id: build_conda_pkg continue-on-error: true - shell: bash -el {0} - run: | - read -ra RATTLER_CHANNELS <<< "$(echo "${{ env.channels-list }}" | sed 's/--override-channels//')" - rattler-build build \ - --recipe conda-recipe/rattler_recipe.yaml \ - --no-include-recipe \ - --channel-priority disabled \ - --target-platform ${{ runner.os == 'Linux' && 'linux-64' || 'win-64' }} \ - --variant-config conda-recipe/conda_build_config.yaml \ - --variant "python=${{ env.python-conda-spec }}" \ - --variant numpy=2 \ - "${RATTLER_CHANNELS[@]}" + uses: prefix-dev/rattler-build-action@1ca5f45832f419a46d1326ccc5861d7e14d67c44 # v0.2.39 + with: + recipe-path: conda-recipe/rattler_recipe.yaml + build-args: ${{ env.RATTLER_BUILD_ARGS }} + upload-artifact: false env: MAX_BUILD_CMPL_MKL_VERSION: '2027.0a0' - name: ReBuild conda package if: steps.build_conda_pkg.outcome == 'failure' - shell: bash -el {0} - run: | - read -ra RATTLER_CHANNELS <<< "$(echo "${{ env.channels-list }}" | sed 's/--override-channels//')" - rattler-build build \ - --recipe conda-recipe/rattler_recipe.yaml \ - --no-include-recipe \ - --channel-priority disabled \ - --target-platform ${{ runner.os == 'Linux' && 'linux-64' || 'win-64' }} \ - --variant-config conda-recipe/conda_build_config.yaml \ - --variant "python=${{ env.python-conda-spec }}" \ - --variant numpy=2 \ - "${RATTLER_CHANNELS[@]}" + uses: prefix-dev/rattler-build-action@1ca5f45832f419a46d1326ccc5861d7e14d67c44 # v0.2.39 + with: + recipe-path: conda-recipe/rattler_recipe.yaml + build-args: ${{ env.RATTLER_BUILD_ARGS }} + upload-artifact: false env: MAX_BUILD_CMPL_MKL_VERSION: '2027.0a0' diff --git a/CHANGELOG.md b/CHANGELOG.md index 09961c7ccd34..7587a2a1d3bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ This release is compatible with NumPy 2.5. * Added `dpnp.broadcast` class implementation [#2901](https://github.com/IntelPython/dpnp/pull/2901) * Added the `ndmax` keyword to `dpnp.array` for compatibility with NumPy [#3044](https://github.com/IntelPython/dpnp/pull/3044) * Added `UsmNDArray_RemoveQueueRef` C API function to release a queue reference obtained from `UsmNDArray_GetQueueRef` [#3042](https://github.com/IntelPython/dpnp/pull/3042) +* Added a `rattler-build`-compatible conda recipe (`conda-recipe/rattler_recipe.yaml`) alongside the existing `conda-build` recipe [#3031](https://github.com/IntelPython/dpnp/pull/3031) ### Changed diff --git a/conda-recipe/bld.bat b/conda-recipe/bld.bat index 25003de8f855..71d17ef976a3 100644 --- a/conda-recipe/bld.bat +++ b/conda-recipe/bld.bat @@ -5,7 +5,7 @@ set "TBB_ROOT_HINT=%PREFIX%/Library" set "DPL_ROOT_HINT=%PREFIX%/Library" REM Overriding IPO is useful for building in resources constrained VMs (public CI) -if DEFINED OVERRIDE_INTEL_IPO ( +if not "%OVERRIDE_INTEL_IPO%"=="" ( set "CMAKE_ARGS=%CMAKE_ARGS% -DCMAKE_INTERPROCEDURAL_OPTIMIZATION:BOOL=FALSE" ) diff --git a/conda-recipe/rattler_recipe.yaml b/conda-recipe/rattler_recipe.yaml index a049fed2d61d..e1e6e2bef9c1 100644 --- a/conda-recipe/rattler_recipe.yaml +++ b/conda-recipe/rattler_recipe.yaml @@ -16,9 +16,10 @@ source: build: number: ${{ env.get("GIT_DESCRIBE_NUMBER") }} script: + file: ${{ "bld.bat" if win else "build.sh" }} env: WHEELS_OUTPUT_FOLDER: ${{ env.get("WHEELS_OUTPUT_FOLDER", default="") }} - OVERRIDE_INTEL_IPO: ${{ env.get("OVERRIDE_INTEL_IPO", default="") }} + OVERRIDE_INTEL_IPO: ${{ env.get("OVERRIDE_INTEL_IPO", default="") if win else "" }} # conda-build used to forward GIT_DESCRIBE_NUMBER into the build script # automatically; rattler-build does not, so bld.bat's # `wheel tags --remove --build %GIT_DESCRIBE_NUMBER%` was silently @@ -28,7 +29,8 @@ build: dynamic_linking: missing_dso_allowlist: - "*DPCTLSyclInterface*" - - "*/dpnp_backend_c.dll" + - if: win + then: "*/dpnp_backend_c.dll" requirements: host: @@ -89,7 +91,13 @@ requirements: tests: - script: + - pip check - python -c "import dpnp; print(dpnp.__version__)" + - python -m dpctl -f + requirements: + run: + - pip + - script: ${{ "run_test.bat" if win else "run_test.sh" }} requirements: run: - pytest