Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 21 additions & 23 deletions .github/workflows/conda-package-cf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ jobs:

strategy:
matrix:
python_ver: ["3.10", "3.11", "3.12", "3.13", "3.14"]
python: ["3.10", "3.11", "3.12", "3.13", "3.14"]
numpy: ['numpy">=2"']
experimental: [false]
runner: [ubuntu-latest]
Expand All @@ -100,7 +100,7 @@ jobs:
- name: Download artifact
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
with:
name: ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python_ver }}
name: ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }}

- name: Add conda to system path
run: echo "$CONDA"/bin >> "$GITHUB_PATH"
Expand All @@ -119,7 +119,7 @@ jobs:
- name: Collect dependencies
run: |
CHANNELS=(-c "$GITHUB_WORKSPACE"/channel ${{ env.CHANNELS }})
conda create -n ${{ env.TEST_ENV_NAME }} "$PACKAGE_NAME" python=${{ matrix.python_ver }} ${{ matrix.numpy }} "${CHANNELS[@]}" --only-deps --dry-run > lockfile
conda create -n ${{ env.TEST_ENV_NAME }} "$PACKAGE_NAME" python=${{ matrix.python }} ${{ matrix.numpy }} "${CHANNELS[@]}" --only-deps --dry-run > lockfile

- name: Display lockfile
run: cat lockfile
Expand All @@ -135,15 +135,15 @@ jobs:
with:
path: ~/.conda/pkgs
key:
${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python_ver }}-${{hashFiles('lockfile') }}
${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-${{hashFiles('lockfile') }}
restore-keys: |
${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python_ver }}-
${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-
${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-

- name: Install mkl_fft
run: |
CHANNELS=(-c "$GITHUB_WORKSPACE"/channel ${{ env.CHANNELS }})
conda create -n ${{ env.TEST_ENV_NAME }} python=${{ matrix.python_ver }} ${{ matrix.numpy }} "$PACKAGE_NAME" pytest scipy "${CHANNELS[@]}"
conda create -n ${{ env.TEST_ENV_NAME }} python=${{ matrix.python }} ${{ matrix.numpy }} "$PACKAGE_NAME" pytest scipy "${CHANNELS[@]}"
# Test installed packages
conda list -n ${{ env.TEST_ENV_NAME }}

Expand All @@ -155,7 +155,9 @@ jobs:

build_windows:
runs-on: windows-latest

defaults:
run:
shell: cmd /C CALL {0}
strategy:
matrix:
include:
Expand Down Expand Up @@ -184,12 +186,13 @@ jobs:
with:
miniforge-version: latest
activate-environment: build
python-version: ${{ matrix.python }}
channels: conda-forge
conda-remove-defaults: 'true'
python-version: ${{ matrix.python }}

- name: Install conda-build
run: conda install -n base conda-build
run: |
conda install -n base -y conda-build
conda list -n base

- name: Cache conda packages
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
Expand All @@ -203,12 +206,8 @@ jobs:
${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-
${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-

- name: Setup MSVC
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0

- name: Build conda package with NumPy 2.x
run: |
conda activate
conda build --no-test --python ${{ matrix.python }} --numpy ${{ matrix.numpy }} -c conda-forge --override-channels conda-recipe-cf

- name: Store conda paths as envs
Expand All @@ -231,7 +230,7 @@ jobs:

strategy:
matrix:
python_ver: ["3.10", "3.11", "3.12", "3.13", "3.14"]
python: ["3.10", "3.11", "3.12", "3.13", "3.14"]
numpy: ['numpy">=2"']
experimental: [false]
runner: [windows-latest]
Expand All @@ -244,15 +243,14 @@ jobs:
- name: Download artifact
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
with:
name: ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python_ver }}
name: ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }}

- uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
with:
miniforge-version: latest
activate-environment: ${{ env.TEST_ENV_NAME }}
python-version: ${{ matrix.python_ver }}
channels: conda-forge
conda-remove-defaults: 'true'
activate-environment: ${{ env.TEST_ENV_NAME }}
python-version: ${{ matrix.python }}

- name: Create conda channel with the artifact bit
shell: cmd /C CALL {0}
Expand Down Expand Up @@ -291,7 +289,7 @@ jobs:
FOR /F "tokens=* USEBACKQ" %%F IN (`python -c "%SCRIPT%"`) DO (
SET PACKAGE_VERSION=%%F
)
conda install -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=%PACKAGE_VERSION% python=${{ matrix.python_ver }} ${{ matrix.numpy }} -c ${{ env.workdir }}/channel ${{ env.CHANNELS }} --only-deps --dry-run > lockfile
conda install -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=%PACKAGE_VERSION% python=${{ matrix.python }} ${{ matrix.numpy }} -c ${{ env.workdir }}/channel ${{ env.CHANNELS }} --only-deps --dry-run > lockfile

- name: Display lockfile content
shell: pwsh
Expand All @@ -304,9 +302,9 @@ jobs:
with:
path: /home/runner/conda_pkgs_dir
key:
${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python_ver }}-${{hashFiles('lockfile') }}
${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-${{hashFiles('lockfile') }}
restore-keys: |
${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python_ver }}-
${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-
${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-

- name: Install mkl_fft
Expand All @@ -321,7 +319,7 @@ jobs:
SET PACKAGE_VERSION=%%F
)
SET "TEST_DEPENDENCIES=pytest scipy"
conda install -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=%PACKAGE_VERSION% %TEST_DEPENDENCIES% python=${{ matrix.python_ver }} ${{ matrix.numpy }} -c ${{ env.workdir }}/channel ${{ env.CHANNELS }}
conda install -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=%PACKAGE_VERSION% %TEST_DEPENDENCIES% python=${{ matrix.python }} ${{ matrix.numpy }} -c ${{ env.workdir }}/channel ${{ env.CHANNELS }}

- name: Report content of test environment
shell: cmd /C CALL {0}
Expand Down
18 changes: 7 additions & 11 deletions .github/workflows/conda-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,9 @@ jobs:

build_windows:
runs-on: windows-latest

defaults:
run:
shell: cmd /C CALL {0}
strategy:
matrix:
python: ["3.10", "3.11", "3.12", "3.13", "3.14"]
Expand All @@ -173,14 +175,13 @@ jobs:
with:
miniforge-version: latest
activate-environment: build
python-version: ${{ matrix.python }}
channels: conda-forge
conda-remove-defaults: 'true'
python-version: ${{ matrix.python }}

- name: Install conda-build
run: |
conda activate
conda install -n base conda-build
conda install -n base -y conda-build
conda list -n base

- name: Cache conda packages
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
Expand All @@ -194,12 +195,8 @@ jobs:
${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-
${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-

- name: Setup MSVC
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0

- name: Build conda package
run: |
conda activate
conda build --no-test --python ${{ matrix.python }} -c https://software.repos.intel.com/python/conda -c conda-forge --override-channels conda-recipe

- name: Store conda paths as envs
Expand Down Expand Up @@ -239,10 +236,9 @@ jobs:
- uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
with:
miniforge-version: latest
channels: conda-forge
activate-environment: ${{ env.TEST_ENV_NAME }}
python-version: ${{ matrix.python }}
channels: conda-forge
conda-remove-defaults: 'true'
Copy link
Collaborator

Choose a reason for hiding this comment

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

conda-remove-defaults: still used in .github/workflows/build_pip.yaml, but can be removed


- name: Create conda channel with the artifact bit
shell: cmd /C CALL {0}
Expand Down
2 changes: 1 addition & 1 deletion conda-recipe-cf/bld.bat
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
set MKLROOT=%PREFIX%
%PYTHON% -m pip install --no-build-isolation --no-deps .
%PYTHON% setup.py build --force install --old-and-unmanageable
if errorlevel 1 exit 1
7 changes: 4 additions & 3 deletions conda-recipe-cf/build.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#!/bin/bash -x

export MKLROOT=$PREFIX
export CFLAGS="-I$PREFIX/include $CFLAGS"
$PYTHON -m pip install --no-build-isolation --no-deps .
# make sure that compiler has been sourced, if necessary

export MKLROOT=${PREFIX}
$PYTHON setup.py build --force install --old-and-unmanageable
16 changes: 16 additions & 0 deletions conda-recipe-cf/conda_build_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
c_compiler: # [linux]
- gcc # [linux]
cxx_compiler: # [linux]
- gxx # [linux]
cxx_compiler_version: # [linux]
- '14' # [linux]
c_stdlib: # [linux]
- sysroot # [linux]
c_stdlib_version: # [linux]
- '2.28' # [linux]
Copy link
Collaborator

Choose a reason for hiding this comment

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

It's set to 2.17 in the feedstock. But I wonder if we need to align here...

c_stdlib: # [win]
- vs # [win]
cxx_compiler: # [win]
- vs2022 # [win]
c_compiler: # [win]
- vs2022 # [win]
Copy link
Collaborator

Choose a reason for hiding this comment

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

As an option we can list all python versions:

Suggested change
- vs2022 # [win]
- vs2022 # [win]
numpy:
- '2'
python:
- 3.10.* *_cpython
- 3.11.* *_cpython
- 3.12.* *_cpython
- 3.13.* *_cp313
- 3.14.* *_cp314

it would mean if we run conda build --no-test -c conda-forge --override-channels conda-recipe-cf command (without numpy and python options passed) and remove strategy matrix from build jobs, each Linux and Windows will build mkl_fft packages with all supported python versions at once.
And then we will be able to remove python-gil from conda-recipe-cf/meta.yaml aligning with the feedstock in more details.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Also, the feedstock adds:

pin_run_as_build:
  python:
    min_pin: x.x
    max_pin: x.x

which we would probably able to do as well.

27 changes: 19 additions & 8 deletions conda-recipe-cf/meta.yaml
Original file line number Diff line number Diff line change
@@ -1,29 +1,33 @@
{% set version = "2.2.0dev1" %}
{% set buildnumber = 0 %}

package:
name: mkl_fft
version: {{ version }}
version: {{ GIT_DESCRIBE_TAG }}

source:
path: ../

build:
number: {{ buildnumber }}
number: {{ GIT_DESCRIBE_NUMBER }}
script_env:
- WHEELS_OUTPUT_FOLDER
Comment on lines +10 to +11
Copy link

Copilot AI Mar 6, 2026

Choose a reason for hiding this comment

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

build.script_env now forwards WHEELS_OUTPUT_FOLDER, but the conda-forge recipe’s build scripts (conda-recipe-cf/build.sh and conda-recipe-cf/bld.bat) don’t reference this variable, so this setting is currently dead/unused and may confuse future maintainers. Either remove WHEELS_OUTPUT_FOLDER from script_env for this recipe or update the conda-forge build scripts to honor it (similar to conda-recipe/).

Suggested change
script_env:
- WHEELS_OUTPUT_FOLDER

Copilot uses AI. Check for mistakes.
Copy link
Collaborator

Choose a reason for hiding this comment

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

It sounds as a valid comment. We don't pass WHEELS_OUTPUT_FOLDER env to the scripts. Probably we should remove that env here.

ignore_run_exports:
- blas

requirements:
build:
- {{ compiler('c') }}
- {{ stdlib('c') }}
host:
- python
- python-gil # [py>=314]
- pip
- setuptools >=77
- mkl-devel
- cython
- numpy
- wheel >=0.41.3
run:
- python
- python-gil # [py>=314]
- mkl-service
- numpy

Expand All @@ -36,11 +40,18 @@ test:
imports:
- mkl_fft
- mkl_fft.interfaces
- mkl_fft.interfaces.numpy_fft
Copy link
Collaborator

Choose a reason for hiding this comment

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

It's present in the feedstock repo. Why do we plan to remove that?

- mkl_fft.interfaces.scipy_fft

about:
home: http://github.com/IntelPython/mkl_fft
license: BSD-3-Clause
license_file: LICENSE.txt
summary: NumPy-based implementation of Fast Fourier Transform using Intel® oneAPI Math Kernel Library (OneMKL)
summary: NumPy-based implementation of Fast Fourier Transform using Intel® oneAPI Math Kernel Library (oneMKL)
description: |
<strong>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.</strong>
<br/><br/>
EULA: <a href="https://opensource.org/licenses/BSD-3-Clause" target="_blank">BSD-3-Clause</a>
<br/><br/>
4 changes: 2 additions & 2 deletions conda-recipe/conda_build_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ c_stdlib_version: # [linux]
c_stdlib: # [win]
- vs # [win]
cxx_compiler: # [win]
- vs2017 # [win]
- vs2022 # [win]
c_compiler: # [win]
- vs2017 # [win]
- vs2022 # [win]
Loading