diff --git a/.github/workflows/conda-package-cf.yml b/.github/workflows/conda-package-cf.yml index 524136f..382feb8 100644 --- a/.github/workflows/conda-package-cf.yml +++ b/.github/workflows/conda-package-cf.yml @@ -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] @@ -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" @@ -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 @@ -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 }} @@ -155,7 +155,9 @@ jobs: build_windows: runs-on: windows-latest - + defaults: + run: + shell: cmd /C CALL {0} strategy: matrix: include: @@ -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 @@ -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 @@ -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] @@ -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} @@ -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 @@ -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 @@ -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} diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index 8f64dda..696aa2d 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -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"] @@ -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 @@ -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 @@ -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' - name: Create conda channel with the artifact bit shell: cmd /C CALL {0} diff --git a/conda-recipe-cf/bld.bat b/conda-recipe-cf/bld.bat index becc8af..d93a0cd 100644 --- a/conda-recipe-cf/bld.bat +++ b/conda-recipe-cf/bld.bat @@ -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 diff --git a/conda-recipe-cf/build.sh b/conda-recipe-cf/build.sh index d2a9c69..6a8fc6d 100644 --- a/conda-recipe-cf/build.sh +++ b/conda-recipe-cf/build.sh @@ -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 diff --git a/conda-recipe-cf/conda_build_config.yaml b/conda-recipe-cf/conda_build_config.yaml new file mode 100644 index 0000000..822fd77 --- /dev/null +++ b/conda-recipe-cf/conda_build_config.yaml @@ -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] +c_stdlib: # [win] + - vs # [win] +cxx_compiler: # [win] + - vs2022 # [win] +c_compiler: # [win] + - vs2022 # [win] diff --git a/conda-recipe-cf/meta.yaml b/conda-recipe-cf/meta.yaml index 5943880..9e2602c 100644 --- a/conda-recipe-cf/meta.yaml +++ b/conda-recipe-cf/meta.yaml @@ -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 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 @@ -36,11 +40,18 @@ test: imports: - mkl_fft - mkl_fft.interfaces - - mkl_fft.interfaces.numpy_fft - - 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: | + 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 +

diff --git a/conda-recipe/conda_build_config.yaml b/conda-recipe/conda_build_config.yaml index d6b54bb..822fd77 100644 --- a/conda-recipe/conda_build_config.yaml +++ b/conda-recipe/conda_build_config.yaml @@ -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]