diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 875d996..13b33cf 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -8,14 +8,47 @@ jobs: vmImage: ubuntu-latest strategy: matrix: - linux_64_: - CONFIG: linux_64_ + linux_64_python3.10.____cpython: + CONFIG: linux_64_python3.10.____cpython UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-alma-x86_64:8 + linux_64_python3.11.____cpython: + CONFIG: linux_64_python3.11.____cpython + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-alma-x86_64:8 + linux_64_python3.12.____cpython: + CONFIG: linux_64_python3.12.____cpython + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-alma-x86_64:8 + linux_64_python3.9.____cpython: + CONFIG: linux_64_python3.9.____cpython + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-alma-x86_64:8 timeoutInMinutes: 360 variables: {} steps: + - script: | + sudo mkdir -p /opt/empty_dir || true + for d in \ + /opt/ghc \ + /opt/hostedtoolcache \ + /usr/lib/jvm \ + /usr/local/.ghcup \ + /usr/local/lib/android \ + /usr/local/share/powershell \ + /usr/share/dotnet \ + /usr/share/swift \ + ; do + sudo rsync --stats -a --delete /opt/empty_dir/ $d || true + done + sudo apt-get purge -y -f firefox \ + google-chrome-stable \ + microsoft-edge-stable + sudo apt-get autoremove -y >& /dev/null + sudo apt-get autoclean -y >& /dev/null + df -h + displayName: Manage disk space # configure qemu binfmt-misc running. This allows us to run docker containers # embedded qemu-static - script: | diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 204327b..a41d96d 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -8,37 +8,32 @@ jobs: vmImage: windows-2022 strategy: matrix: - win_64_: - CONFIG: win_64_ + win_64_python3.10.____cpython: + CONFIG: win_64_python3.10.____cpython + UPLOAD_PACKAGES: 'True' + win_64_python3.11.____cpython: + CONFIG: win_64_python3.11.____cpython + UPLOAD_PACKAGES: 'True' + win_64_python3.12.____cpython: + CONFIG: win_64_python3.12.____cpython + UPLOAD_PACKAGES: 'True' + win_64_python3.9.____cpython: + CONFIG: win_64_python3.9.____cpython UPLOAD_PACKAGES: 'True' timeoutInMinutes: 360 variables: - CONDA_BLD_PATH: D:\\bld\\ + CONDA_BLD_PATH: C:\\bld\\ + MINIFORGE_HOME: C:\Miniforge + SET_PAGEFILE: 'True' UPLOAD_TEMP: D:\\tmp steps: - - task: PythonScript@0 - displayName: 'Download Miniforge' - inputs: - scriptSource: inline - script: | - import urllib.request - url = 'https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Windows-x86_64.exe' - path = r"$(Build.ArtifactStagingDirectory)/Miniforge.exe" - urllib.request.urlretrieve(url, path) - - - script: | - start /wait "" %BUILD_ARTIFACTSTAGINGDIRECTORY%\Miniforge.exe /InstallationType=JustMe /RegisterPython=0 /S /D=C:\Miniforge - displayName: Install Miniforge - - - powershell: Write-Host "##vso[task.prependpath]C:\Miniforge\Scripts" - displayName: Add conda to PATH - - script: | call ".scripts\run_win_build.bat" displayName: Run Windows build env: + MINIFORGE_HOME: $(MINIFORGE_HOME) PYTHONUNBUFFERED: 1 CONFIG: $(CONFIG) CI: azure diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml deleted file mode 100644 index 8440e64..0000000 --- a/.ci_support/linux_64_.yaml +++ /dev/null @@ -1,12 +0,0 @@ -cdt_name: -- cos7 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -mkl: -- '2023' -target_platform: -- linux-64 diff --git a/.ci_support/linux_64_python3.10.____cpython.yaml b/.ci_support/linux_64_python3.10.____cpython.yaml new file mode 100644 index 0000000..22423f1 --- /dev/null +++ b/.ci_support/linux_64_python3.10.____cpython.yaml @@ -0,0 +1,37 @@ +c_compiler: +- gcc +c_compiler_version: +- '13' +c_stdlib: +- sysroot +c_stdlib_sycl_version: +- '2.28' +c_stdlib_version: +- '2.17' +cdt_name: +- cos7 +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- gxx +cxx_compiler_version: +- '13' +docker_image: +- quay.io/condaforge/linux-anvil-alma-x86_64:8 +mkl: +- '2025' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +target_platform: +- linux-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version +- - c_stdlib_version + - cdt_name diff --git a/.ci_support/linux_64_python3.11.____cpython.yaml b/.ci_support/linux_64_python3.11.____cpython.yaml new file mode 100644 index 0000000..b0c9847 --- /dev/null +++ b/.ci_support/linux_64_python3.11.____cpython.yaml @@ -0,0 +1,37 @@ +c_compiler: +- gcc +c_compiler_version: +- '13' +c_stdlib: +- sysroot +c_stdlib_sycl_version: +- '2.28' +c_stdlib_version: +- '2.17' +cdt_name: +- cos7 +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- gxx +cxx_compiler_version: +- '13' +docker_image: +- quay.io/condaforge/linux-anvil-alma-x86_64:8 +mkl: +- '2025' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.11.* *_cpython +target_platform: +- linux-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version +- - c_stdlib_version + - cdt_name diff --git a/.ci_support/linux_64_python3.12.____cpython.yaml b/.ci_support/linux_64_python3.12.____cpython.yaml new file mode 100644 index 0000000..862784d --- /dev/null +++ b/.ci_support/linux_64_python3.12.____cpython.yaml @@ -0,0 +1,37 @@ +c_compiler: +- gcc +c_compiler_version: +- '13' +c_stdlib: +- sysroot +c_stdlib_sycl_version: +- '2.28' +c_stdlib_version: +- '2.17' +cdt_name: +- cos7 +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- gxx +cxx_compiler_version: +- '13' +docker_image: +- quay.io/condaforge/linux-anvil-alma-x86_64:8 +mkl: +- '2025' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.12.* *_cpython +target_platform: +- linux-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version +- - c_stdlib_version + - cdt_name diff --git a/.ci_support/linux_64_python3.9.____cpython.yaml b/.ci_support/linux_64_python3.9.____cpython.yaml new file mode 100644 index 0000000..793f4b1 --- /dev/null +++ b/.ci_support/linux_64_python3.9.____cpython.yaml @@ -0,0 +1,37 @@ +c_compiler: +- gcc +c_compiler_version: +- '13' +c_stdlib: +- sysroot +c_stdlib_sycl_version: +- '2.28' +c_stdlib_version: +- '2.17' +cdt_name: +- cos7 +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- gxx +cxx_compiler_version: +- '13' +docker_image: +- quay.io/condaforge/linux-anvil-alma-x86_64:8 +mkl: +- '2025' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.9.* *_cpython +target_platform: +- linux-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version +- - c_stdlib_version + - cdt_name diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml deleted file mode 100644 index f767e4d..0000000 --- a/.ci_support/win_64_.yaml +++ /dev/null @@ -1,8 +0,0 @@ -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -mkl: -- '2023' -target_platform: -- win-64 diff --git a/.ci_support/win_64_python3.10.____cpython.yaml b/.ci_support/win_64_python3.10.____cpython.yaml new file mode 100644 index 0000000..1b7da20 --- /dev/null +++ b/.ci_support/win_64_python3.10.____cpython.yaml @@ -0,0 +1,20 @@ +c_compiler: +- vs2019 +c_stdlib: +- vs +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- vs2019 +mkl: +- '2025' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +target_platform: +- win-64 diff --git a/.ci_support/win_64_python3.11.____cpython.yaml b/.ci_support/win_64_python3.11.____cpython.yaml new file mode 100644 index 0000000..7aa3c7e --- /dev/null +++ b/.ci_support/win_64_python3.11.____cpython.yaml @@ -0,0 +1,20 @@ +c_compiler: +- vs2019 +c_stdlib: +- vs +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- vs2019 +mkl: +- '2025' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.11.* *_cpython +target_platform: +- win-64 diff --git a/.ci_support/win_64_python3.12.____cpython.yaml b/.ci_support/win_64_python3.12.____cpython.yaml new file mode 100644 index 0000000..aaee4b7 --- /dev/null +++ b/.ci_support/win_64_python3.12.____cpython.yaml @@ -0,0 +1,20 @@ +c_compiler: +- vs2019 +c_stdlib: +- vs +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- vs2019 +mkl: +- '2025' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.12.* *_cpython +target_platform: +- win-64 diff --git a/.ci_support/win_64_python3.9.____cpython.yaml b/.ci_support/win_64_python3.9.____cpython.yaml new file mode 100644 index 0000000..cfbdf89 --- /dev/null +++ b/.ci_support/win_64_python3.9.____cpython.yaml @@ -0,0 +1,20 @@ +c_compiler: +- vs2019 +c_stdlib: +- vs +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- vs2019 +mkl: +- '2025' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.9.* *_cpython +target_platform: +- win-64 diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index af0b9ac..f8051ab 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -31,13 +31,13 @@ pkgs_dirs: solver: libmamba CONDARC +mv /opt/conda/conda-meta/history /opt/conda/conda-meta/history.$(date +%Y-%m-%d-%H-%M-%S) +echo > /opt/conda/conda-meta/history +micromamba install --root-prefix ~/.conda --prefix /opt/conda \ + --yes --override-channels --channel conda-forge --strict-channel-priority \ + pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 -mamba install --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \ - pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" -mamba update --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \ - pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" - # set up the condarc setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" @@ -73,8 +73,8 @@ else --extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}" ( startgroup "Inspecting artifacts" ) 2> /dev/null - # inspect_artifacts was only added in conda-forge-ci-setup 4.6.0 - command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0" + # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 + command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir "${RECIPE_ROOT}" -m "${CONFIG_FILE}" || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" ( endgroup "Inspecting artifacts" ) 2> /dev/null ( startgroup "Validating outputs" ) 2> /dev/null diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 33f3277..e0a7606 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -3,30 +3,50 @@ :: changes to this script, consider a proposal to conda-smithy so that other feedstocks can also :: benefit from the improvement. -:: Note: we assume a Miniforge installation is available - :: INPUTS (required environment variables) :: CONFIG: name of the .ci_support/*.yaml file for this job :: CI: azure, github_actions, or unset +:: MINIFORGE_HOME: where to install the base conda environment :: UPLOAD_PACKAGES: true or false :: UPLOAD_ON_BRANCH: true or false setlocal enableextensions enabledelayedexpansion +FOR %%A IN ("%~dp0.") DO SET "REPO_ROOT=%%~dpA" +if "%MINIFORGE_HOME%"=="" set "MINIFORGE_HOME=%USERPROFILE%\Miniforge3" +:: Remove trailing backslash, if present +if "%MINIFORGE_HOME:~-1%"=="\" set "MINIFORGE_HOME=%MINIFORGE_HOME:~0,-1%" +call :start_group "Provisioning base env with micromamba" +set "MAMBA_ROOT_PREFIX=%MINIFORGE_HOME%-micromamba-%RANDOM%" +set "MICROMAMBA_VERSION=1.5.10-0" +set "MICROMAMBA_URL=https://github.com/mamba-org/micromamba-releases/releases/download/%MICROMAMBA_VERSION%/micromamba-win-64" +set "MICROMAMBA_TMPDIR=%TMP%\micromamba-%RANDOM%" +set "MICROMAMBA_EXE=%MICROMAMBA_TMPDIR%\micromamba.exe" + +echo Downloading micromamba %MICROMAMBA_VERSION% +if not exist "%MICROMAMBA_TMPDIR%" mkdir "%MICROMAMBA_TMPDIR%" +certutil -urlcache -split -f "%MICROMAMBA_URL%" "%MICROMAMBA_EXE%" +if !errorlevel! neq 0 exit /b !errorlevel! + +echo Creating environment +call "%MICROMAMBA_EXE%" create --yes --root-prefix "%MAMBA_ROOT_PREFIX%" --prefix "%MINIFORGE_HOME%" ^ + --channel conda-forge ^ + pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" +if !errorlevel! neq 0 exit /b !errorlevel! +echo Removing %MAMBA_ROOT_PREFIX% +del /S /Q "%MAMBA_ROOT_PREFIX%" +del /S /Q "%MICROMAMBA_TMPDIR%" + call :start_group "Configuring conda" :: Activate the base conda environment -call activate base +echo Activating environment +call "%MINIFORGE_HOME%\Scripts\activate.bat" :: Configure the solver set "CONDA_SOLVER=libmamba" if !errorlevel! neq 0 exit /b !errorlevel! set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1" -:: Provision the necessary dependencies to build the recipe later -echo Installing dependencies -mamba.exe install pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" -c conda-forge --strict-channel-priority --yes -if !errorlevel! neq 0 exit /b !errorlevel! - :: Set basic configuration echo Setting up configuration setup_conda_rc .\ ".\recipe" .\.ci_support\%CONFIG%.yaml @@ -54,8 +74,8 @@ conda-build.exe "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTR if !errorlevel! neq 0 exit /b !errorlevel! call :start_group "Inspecting artifacts" -:: inspect_artifacts was only added in conda-forge-ci-setup 4.6.0 -WHERE inspect_artifacts >nul 2>nul && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0" +:: inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 +WHERE inspect_artifacts >nul 2>nul && inspect_artifacts --recipe-dir ".\recipe" -m .ci_support\%CONFIG%.yaml || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" call :end_group :: Prepare some environment variables for the upload step diff --git a/README.md b/README.md index f32fa57..abacbd6 100644 --- a/README.md +++ b/README.md @@ -346,17 +346,59 @@ Current build status - + - + + + + + + + + + + + + + + + + + + + diff --git a/azure-pipelines.yml b/azure-pipelines.yml index baa1c2b..773d216 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -2,6 +2,31 @@ # update the conda-forge.yml and/or the recipe/meta.yaml. # -*- mode: yaml -*- -jobs: - - template: ./.azure-pipelines/azure-pipelines-linux.yml - - template: ./.azure-pipelines/azure-pipelines-win.yml \ No newline at end of file +stages: +- stage: Check + jobs: + - job: Skip + pool: + vmImage: 'ubuntu-22.04' + variables: + DECODE_PERCENTS: 'false' + RET: 'true' + steps: + - checkout: self + fetchDepth: '2' + - bash: | + git_log=`git log --max-count=1 --skip=1 --pretty=format:"%B" | tr "\n" " "` + echo "##vso[task.setvariable variable=log]$git_log" + displayName: Obtain commit message + - bash: echo "##vso[task.setvariable variable=RET]false" + condition: and(eq(variables['Build.Reason'], 'PullRequest'), or(contains(variables.log, '[skip azp]'), contains(variables.log, '[azp skip]'), contains(variables.log, '[skip ci]'), contains(variables.log, '[ci skip]'))) + displayName: Skip build? + - bash: echo "##vso[task.setvariable variable=start_main;isOutput=true]$RET" + name: result + displayName: Export result +- stage: Build + condition: and(succeeded(), eq(dependencies.Check.outputs['Skip.result.start_main'], 'true')) + dependsOn: Check + jobs: + - template: ./.azure-pipelines/azure-pipelines-linux.yml + - template: ./.azure-pipelines/azure-pipelines-win.yml \ No newline at end of file diff --git a/conda-forge.yml b/conda-forge.yml index 2f501ce..826dba0 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -1,3 +1,10 @@ +azure: + free_disk_space: true + settings_win: + variables: + CONDA_BLD_PATH: C:\\bld\\ + SET_PAGEFILE: "True" + MINIFORGE_HOME: C:\Miniforge conda_forge_output_validation: true github: branch_name: main diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml new file mode 100644 index 0000000..b87e714 --- /dev/null +++ b/recipe/conda_build_config.yaml @@ -0,0 +1,10 @@ +# sycl runtime components depends on 2.28 glibc. +c_stdlib_sycl_version: # [linux] + - 2.28 # [linux] +c_stdlib_version: # [linux] + - 2.17 # [linux] +mkl: + - 2025 +# Use image with support of glibc 2.28 +docker_image: +- quay.io/condaforge/linux-anvil-alma-x86_64:8 # [linux and x86_64] diff --git a/recipe/meta.yaml b/recipe/meta.yaml index c3bdbd3..ba62944 100755 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,29 +1,29 @@ -{% set tbb_version = "2021.13.1" %} +{% set tbb_version = "2022.0.0" %} # this variable defines oneMKL specific version -{% set mkl_version = "2024.2.2" %} +{% set mkl_version = "2025.0.0" %} # this variable defines oneMKL specific buildnum {% set mkl_buildnum = "" %} -{% set mkl_buildnum = "15" %} # [linux] -{% set mkl_buildnum = "14" %} # [win] +{% set mkl_buildnum = "939" %} # [linux] +{% set mkl_buildnum = "928" %} # [win] # this variable defines oneDAL specific version -{% set dal_version = "2024.7.0" %} +{% set dal_version = "2025.0.0" %} # this variable defines oneDAL specific buildnum {% set dal_buildnum = "" %} -{% set dal_buildnum = "13" %} # [linux] -{% set dal_buildnum = "16" %} # [win] +{% set dal_buildnum = "957" %} # [linux] +{% set dal_buildnum = "947" %} # [win] # this variable defines openmp specific version -{% set openmp_version = "2024.2.0" %} +{% set openmp_version = "2025.0.0" %} # this variable defines openmp specific buildnum {% set openmp_buildnum = "" %} -{% set openmp_buildnum = "981" %} # [linux] -{% set openmp_buildnum = "978" %} # [win] +{% set openmp_buildnum = "1169" %} # [linux] +{% set openmp_buildnum = "1162" %} # [win] # this variable defines impi specific version -{% set impi_version = "2021.13.1" %} +{% set impi_version = "2021.14.0" %} # this variable defines impi specific buildnum {% set impi_buildnum = "" %} -{% set impi_buildnum = "767" %} # [linux] -{% set impi_buildnum = "766" %} # [win] +{% set impi_buildnum = "790" %} # [linux] +{% set impi_buildnum = "784" %} # [win] # this variable defines onedpl specific version {% set onedpl_version = "2022.6.1" %} @@ -36,7 +36,21 @@ {% set intel_ch = "https://software.repos.intel.com/python/conda" %} # use this if our build script changes and we need to increment beyond intel's version -{% set dstbuildnum = '1' %} +{% set dstbuildnum = '0' %} + +# We need intel-openmp because it contains VCOMP symbols on windows in order to +# pytorch work. Those are deprecated symbols and should be removed in the +# future. +# https://github.com/conda-forge/intel_repack-feedstock/issues/59#issuecomment-1790007397 +# More info about OpenMP mutex could be found on conda-forge wiki: +# https://conda-forge.org/docs/maintainer/knowledge_base/#openmp +{% set openmp_pkg ="llvm-openmp" %} +{% set openmp_mutex ="- _openmp_mutex * *_llvm" %} +{% if win or 'conda-forge' not in my_channel_targets %} +{% set openmp_pkg ="intel-openmp " ~ openmp_version.split('.')[0] ~ ".*" %} +# There is no mutex for intel-openmp, so we don't need it +{% set openmp_mutex ="" %} +{% endif %} package: name: intel_repack @@ -111,22 +125,6 @@ build: binary_relocation: false detect_binary_files_with_prefix: false skip: True # [not (linux64 or win)] - missing_dso_whitelist: - # normal linux stuff that would go away if we had libgcc-ng in the run deps - - /lib*/ld-linux.so.2 - - /lib64/ld-linux-x86-64.so.2 - - /lib*/libpthread.so.0 - - /lib*/libdl.so.2 - - /lib*/libgcc_s.so.1 - - /lib*/libc.so.6 - - /lib*/libm.so.6 - # these two really shouldn't be here. See mkl_repack_and_patchelf.sh - - libiomp5.so - - libcoi_device.so.0 - - /usr/lib/libstdc++.so.6 # [linux] - - /usr/lib64/libstdc++.so.6 # [linux] - # hooray, windows - - "C:\\Windows\\System32\\WINTRUST.dll" outputs: - name: mkl @@ -135,21 +133,15 @@ outputs: script: repack.bat # [win] number: {{ mkl_buildnum|int + dstbuildnum|int }} requirements: - {% if win or 'conda-forge' not in my_channel_targets %} - host: - - intel-openmp {{ openmp_version.split('.')[0] }}.* - - tbb {{ tbb_version.split('.')[0] }}.* - run: - - intel-openmp {{ openmp_version.split('.')[0] }}.* - - tbb {{ tbb_version.split('.')[0] }}.* - {% else %} + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - {{ c_stdlib }}_{{ target_platform }} >={{ c_stdlib_sycl_version }} # [linux] + - {{ stdlib('c') }} # [not linux] + - {{ openmp_pkg }} + {{ openmp_mutex }} host: - - llvm-openmp - - tbb {{ tbb_version.split('.')[0] }}.* - run: - - llvm-openmp - - tbb {{ tbb_version.split('.')[0] }}.* - {% endif %} + - tbb-devel {{ tbb_version.split('.')[0] }}.* about: home: https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html license: LicenseRef-IntelSimplifiedSoftwareOct2022 @@ -195,12 +187,34 @@ outputs: version: {{ mkl_version }} script: repack.sh # [linux] script: repack.bat # [win] + build: + ignore_run_exports_from: + {{ openmp_mutex }} number: {{ mkl_buildnum|int + dstbuildnum|int }} requirements: + build: + - {{ compiler('c') }} + - {{ c_stdlib }}_{{ target_platform }} >={{ c_stdlib_sycl_version }} # [linux] + - {{ stdlib('c') }} # [not linux] + {{ openmp_mutex }} + host: + - intel-sycl-rt {{ mkl_version.split('.')[0] }}.* + # cpu runtime + - intel-opencl-rt {{ mkl_version.split('.')[0] }}.* + {{ openmp_mutex }} + - ocl-icd # [linux] + - khronos-opencl-icd-loader # [win] + # We need mkl because onemkl-sycl-* packages uses symbols from mkl, but + # not linked directly so you can chose different implementations. + # More information could be found at: + # https://www.intel.com/content/www/us/en/docs/onemkl/developer-guide-linux/2025-0/layered-model-concept.html + - {{ pin_subpackage('mkl', exact=True) }} run: + # We need mkl because onemkl-sycl-* packages uses symbols from mkl, but + # not linked directly so you can chose different implementations. + # More information could be found at: + # https://www.intel.com/content/www/us/en/docs/onemkl/developer-guide-linux/2025-0/layered-model-concept.html - {{ pin_subpackage('mkl', exact=True) }} - - dpcpp-cpp-rt {{ mkl_version.split('.')[0] }}.* - - intel-opencl-rt {{ mkl_version.split('.')[0] }}.* about: home: https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html license: LicenseRef-IntelSimplifiedSoftwareOct2022 @@ -216,19 +230,41 @@ outputs: test: commands: - ls -A $PREFIX/lib/* # [linux] - - test -f $PREFIX/lib/libmkl_sycl_blas.so.4 # [linux] - - if not exist %LIBRARY_BIN%\\mkl_sycl_blas.4.dll exit 1 # [win] + - test -f $PREFIX/lib/libmkl_sycl_blas.so.5 # [linux] + - if not exist %LIBRARY_BIN%\\mkl_sycl_blas.5.dll exit 1 # [win] - name: onemkl-sycl-datafitting version: {{ mkl_version }} script: repack.sh # [linux] script: repack.bat # [win] + build: + ignore_run_exports_from: + {{ openmp_mutex }} number: {{ mkl_buildnum|int + dstbuildnum|int }} requirements: + build: + - {{ compiler('c') }} + - {{ c_stdlib }}_{{ target_platform }} >={{ c_stdlib_sycl_version }} # [linux] + - {{ stdlib('c') }} # [not linux] + {{ openmp_mutex }} + host: + - intel-sycl-rt {{ mkl_version.split('.')[0] }}.* + # cpu runtime + - intel-opencl-rt {{ mkl_version.split('.')[0] }}.* + {{ openmp_mutex }} + - ocl-icd # [linux] + - khronos-opencl-icd-loader # [win] + # We need mkl because onemkl-sycl-* packages uses symbols from mkl, but + # not linked directly so you can chose different implementations. + # More information could be found at: + # https://www.intel.com/content/www/us/en/docs/onemkl/developer-guide-linux/2025-0/layered-model-concept.html + - {{ pin_subpackage('mkl', exact=True) }} run: + # We need mkl because onemkl-sycl-* packages uses symbols from mkl, but + # not linked directly so you can chose different implementations. + # More information could be found at: + # https://www.intel.com/content/www/us/en/docs/onemkl/developer-guide-linux/2025-0/layered-model-concept.html - {{ pin_subpackage('mkl', exact=True) }} - - dpcpp-cpp-rt {{ mkl_version.split('.')[0] }}.* - - intel-opencl-rt {{ mkl_version.split('.')[0] }}.* about: home: https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html license: LicenseRef-IntelSimplifiedSoftwareOct2022 @@ -244,19 +280,41 @@ outputs: test: commands: - ls -A $PREFIX/lib/* # [linux] - - test -f $PREFIX/lib/libmkl_sycl_data_fitting.so.4 # [linux] - - if not exist %LIBRARY_BIN%\\mkl_sycl_data_fitting.4.dll exit 1 # [win] + - test -f $PREFIX/lib/libmkl_sycl_data_fitting.so.5 # [linux] + - if not exist %LIBRARY_BIN%\\mkl_sycl_data_fitting.5.dll exit 1 # [win] - name: onemkl-sycl-dft version: {{ mkl_version }} script: repack.sh # [linux] script: repack.bat # [win] + build: + ignore_run_exports_from: + {{ openmp_mutex }} number: {{ mkl_buildnum|int + dstbuildnum|int }} requirements: + build: + - {{ compiler('c') }} + - {{ c_stdlib }}_{{ target_platform }} >={{ c_stdlib_sycl_version }} # [linux] + - {{ stdlib('c') }} # [not linux] + {{ openmp_mutex }} + host: + - intel-sycl-rt {{ mkl_version.split('.')[0] }}.* + # cpu runtime + - intel-opencl-rt {{ mkl_version.split('.')[0] }}.* + {{ openmp_mutex }} + - ocl-icd # [linux] + - khronos-opencl-icd-loader # [win] + # We need mkl because onemkl-sycl-* packages uses symbols from mkl, but + # not linked directly so you can chose different implementations. + # More information could be found at: + # https://www.intel.com/content/www/us/en/docs/onemkl/developer-guide-linux/2025-0/layered-model-concept.html + - {{ pin_subpackage('mkl', exact=True) }} run: + # We need mkl because onemkl-sycl-* packages uses symbols from mkl, but + # not linked directly so you can chose different implementations. + # More information could be found at: + # https://www.intel.com/content/www/us/en/docs/onemkl/developer-guide-linux/2025-0/layered-model-concept.html - {{ pin_subpackage('mkl', exact=True) }} - - dpcpp-cpp-rt {{ mkl_version.split('.')[0] }}.* - - intel-opencl-rt {{ mkl_version.split('.')[0] }}.* about: home: https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html license: LicenseRef-IntelSimplifiedSoftwareOct2022 @@ -272,19 +330,42 @@ outputs: test: commands: - ls -A $PREFIX/lib/* # [linux] - - test -f $PREFIX/lib/libmkl_sycl_dft.so.4 # [linux] - - if not exist %LIBRARY_BIN%\\mkl_sycl_dft.4.dll exit 1 # [win] + - test -f $PREFIX/lib/libmkl_sycl_dft.so.5 # [linux] + - if not exist %LIBRARY_BIN%\\mkl_sycl_dft.5.dll exit 1 # [win] - name: onemkl-sycl-lapack version: {{ mkl_version }} script: repack.sh # [linux] script: repack.bat # [win] + build: + ignore_run_exports_from: + {{ openmp_mutex }} number: {{ mkl_buildnum|int + dstbuildnum|int }} requirements: + build: + - {{ compiler('c') }} + - {{ c_stdlib }}_{{ target_platform }} >={{ c_stdlib_sycl_version }} # [linux] + - {{ stdlib('c') }} # [not linux] + {{ openmp_mutex }} + host: + - intel-sycl-rt {{ mkl_version.split('.')[0] }}.* + # cpu runtime + - intel-opencl-rt {{ mkl_version.split('.')[0] }}.* + {{ openmp_mutex }} + - ocl-icd # [linux] + - khronos-opencl-icd-loader # [win] + # We need mkl because onemkl-sycl-* packages uses symbols from mkl, but + # not linked directly so you can chose different implementations. + # More information could be found at: + # https://www.intel.com/content/www/us/en/docs/onemkl/developer-guide-linux/2025-0/layered-model-concept.html + - {{ pin_subpackage('mkl', exact=True) }} + - {{ pin_subpackage('onemkl-sycl-blas', exact=True) }} run: + # We need mkl because onemkl-sycl-* packages uses symbols from mkl, but + # not linked directly so you can chose different implementations. + # More information could be found at: + # https://www.intel.com/content/www/us/en/docs/onemkl/developer-guide-linux/2025-0/layered-model-concept.html - {{ pin_subpackage('mkl', exact=True) }} - - dpcpp-cpp-rt {{ mkl_version.split('.')[0] }}.* - - intel-opencl-rt {{ mkl_version.split('.')[0] }}.* - {{ pin_subpackage('onemkl-sycl-blas', exact=True) }} about: home: https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html @@ -301,19 +382,41 @@ outputs: test: commands: - ls -A $PREFIX/lib/* # [linux] - - test -f $PREFIX/lib/libmkl_sycl_lapack.so.4 # [linux] - - if not exist %LIBRARY_BIN%\\mkl_sycl_lapack.4.dll exit 1 # [win] + - test -f $PREFIX/lib/libmkl_sycl_lapack.so.5 # [linux] + - if not exist %LIBRARY_BIN%\\mkl_sycl_lapack.5.dll exit 1 # [win] - name: onemkl-sycl-rng version: {{ mkl_version }} script: repack.sh # [linux] script: repack.bat # [win] + build: + ignore_run_exports_from: + {{ openmp_mutex }} number: {{ mkl_buildnum|int + dstbuildnum|int }} requirements: + build: + - {{ compiler('c') }} + - {{ c_stdlib }}_{{ target_platform }} >={{ c_stdlib_sycl_version }} # [linux] + - {{ stdlib('c') }} # [not linux] + {{ openmp_mutex }} + host: + - intel-sycl-rt {{ mkl_version.split('.')[0] }}.* + # cpu runtime + - intel-opencl-rt {{ mkl_version.split('.')[0] }}.* + {{ openmp_mutex }} + - ocl-icd # [linux] + - khronos-opencl-icd-loader # [win] + # We need mkl because onemkl-sycl-* packages uses symbols from mkl, but + # not linked directly so you can chose different implementations. + # More information could be found at: + # https://www.intel.com/content/www/us/en/docs/onemkl/developer-guide-linux/2025-0/layered-model-concept.html + - {{ pin_subpackage('mkl', exact=True) }} run: + # We need mkl because onemkl-sycl-* packages uses symbols from mkl, but + # not linked directly so you can chose different implementations. + # More information could be found at: + # https://www.intel.com/content/www/us/en/docs/onemkl/developer-guide-linux/2025-0/layered-model-concept.html - {{ pin_subpackage('mkl', exact=True) }} - - dpcpp-cpp-rt {{ mkl_version.split('.')[0] }}.* - - intel-opencl-rt {{ mkl_version.split('.')[0] }}.* about: home: https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html license: LicenseRef-IntelSimplifiedSoftwareOct2022 @@ -329,20 +432,43 @@ outputs: test: commands: - ls -A $PREFIX/lib/* # [linux] - - test -f $PREFIX/lib/libmkl_sycl_rng.so.4 # [linux] - - if not exist %LIBRARY_BIN%\\mkl_sycl_rng.4.dll exit 1 # [win] + - test -f $PREFIX/lib/libmkl_sycl_rng.so.5 # [linux] + - if not exist %LIBRARY_BIN%\\mkl_sycl_rng.5.dll exit 1 # [win] - name: onemkl-sycl-sparse version: {{ mkl_version }} script: repack.sh # [linux] script: repack.bat # [win] + build: + ignore_run_exports_from: + {{ openmp_mutex }} number: {{ mkl_buildnum|int + dstbuildnum|int }} requirements: - run: - - {{ pin_subpackage('mkl', exact=True) }} - - dpcpp-cpp-rt {{ mkl_version.split('.')[0] }}.* + build: + - {{ compiler('c') }} + - {{ c_stdlib }}_{{ target_platform }} >={{ c_stdlib_sycl_version }} # [linux] + - {{ stdlib('c') }} # [not linux] + {{ openmp_mutex }} + host: + - intel-sycl-rt {{ mkl_version.split('.')[0] }}.* + # cpu runtime - intel-opencl-rt {{ mkl_version.split('.')[0] }}.* + {{ openmp_mutex }} + - ocl-icd # [linux] + - khronos-opencl-icd-loader # [win] + - {{ pin_subpackage('onemkl-sycl-blas', exact=True) }} + # We need mkl because onemkl-sycl-* packages uses symbols from mkl, but + # not linked directly so you can chose different implementations. + # More information could be found at: + # https://www.intel.com/content/www/us/en/docs/onemkl/developer-guide-linux/2025-0/layered-model-concept.html + - {{ pin_subpackage('mkl', exact=True) }} + run: - {{ pin_subpackage('onemkl-sycl-blas', exact=True) }} + # We need mkl because onemkl-sycl-* packages uses symbols from mkl, but + # not linked directly so you can chose different implementations. + # More information could be found at: + # https://www.intel.com/content/www/us/en/docs/onemkl/developer-guide-linux/2025-0/layered-model-concept.html + - {{ pin_subpackage('mkl', exact=True) }} about: home: https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html license: LicenseRef-IntelSimplifiedSoftwareOct2022 @@ -358,19 +484,41 @@ outputs: test: commands: - ls -A $PREFIX/lib/* # [linux] - - test -f $PREFIX/lib/libmkl_sycl_sparse.so.4 # [linux] - - if not exist %LIBRARY_BIN%\\mkl_sycl_sparse.4.dll exit 1 # [win] + - test -f $PREFIX/lib/libmkl_sycl_sparse.so.5 # [linux] + - if not exist %LIBRARY_BIN%\\mkl_sycl_sparse.5.dll exit 1 # [win] - name: onemkl-sycl-stats version: {{ mkl_version }} script: repack.sh # [linux] script: repack.bat # [win] + build: + ignore_run_exports_from: + {{ openmp_mutex }} number: {{ mkl_buildnum|int + dstbuildnum|int }} requirements: + build: + - {{ compiler('c') }} + - {{ c_stdlib }}_{{ target_platform }} >={{ c_stdlib_sycl_version }} # [linux] + - {{ stdlib('c') }} # [not linux] + {{ openmp_mutex }} + host: + - intel-sycl-rt {{ mkl_version.split('.')[0] }}.* + # cpu runtime + - intel-opencl-rt {{ mkl_version.split('.')[0] }}.* + {{ openmp_mutex }} + - ocl-icd # [linux] + - khronos-opencl-icd-loader # [win] + # We need mkl because onemkl-sycl-* packages uses symbols from mkl, but + # not linked directly so you can chose different implementations. + # More information could be found at: + # https://www.intel.com/content/www/us/en/docs/onemkl/developer-guide-linux/2025-0/layered-model-concept.html + - {{ pin_subpackage('mkl', exact=True) }} run: + # We need mkl because onemkl-sycl-* packages uses symbols from mkl, but + # not linked directly so you can chose different implementations. + # More information could be found at: + # https://www.intel.com/content/www/us/en/docs/onemkl/developer-guide-linux/2025-0/layered-model-concept.html - {{ pin_subpackage('mkl', exact=True) }} - - dpcpp-cpp-rt {{ mkl_version.split('.')[0] }}.* - - intel-opencl-rt {{ mkl_version.split('.')[0] }}.* about: home: https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html license: LicenseRef-IntelSimplifiedSoftwareOct2022 @@ -386,19 +534,41 @@ outputs: test: commands: - ls -A $PREFIX/lib/* # [linux] - - test -f $PREFIX/lib/libmkl_sycl_stats.so.4 # [linux] - - if not exist %LIBRARY_BIN%\\mkl_sycl_stats.4.dll exit 1 # [win] + - test -f $PREFIX/lib/libmkl_sycl_stats.so.5 # [linux] + - if not exist %LIBRARY_BIN%\\mkl_sycl_stats.5.dll exit 1 # [win] - name: onemkl-sycl-vm version: {{ mkl_version }} script: repack.sh # [linux] script: repack.bat # [win] + build: + ignore_run_exports_from: + {{ openmp_mutex }} number: {{ mkl_buildnum|int + dstbuildnum|int }} requirements: + build: + - {{ compiler('c') }} + - {{ c_stdlib }}_{{ target_platform }} >={{ c_stdlib_sycl_version }} # [linux] + - {{ stdlib('c') }} # [not linux] + {{ openmp_mutex }} + host: + - intel-sycl-rt {{ mkl_version.split('.')[0] }}.* + # cpu runtime + - intel-opencl-rt {{ mkl_version.split('.')[0] }}.* + {{ openmp_mutex }} + - ocl-icd # [linux] + - khronos-opencl-icd-loader # [win] + # We need mkl because onemkl-sycl-* packages uses symbols from mkl, but + # not linked directly so you can chose different implementations. + # More information could be found at: + # https://www.intel.com/content/www/us/en/docs/onemkl/developer-guide-linux/2025-0/layered-model-concept.html + - {{ pin_subpackage('mkl', exact=True) }} run: + # We need mkl because onemkl-sycl-* packages uses symbols from mkl, but + # not linked directly so you can chose different implementations. + # More information could be found at: + # https://www.intel.com/content/www/us/en/docs/onemkl/developer-guide-linux/2025-0/layered-model-concept.html - {{ pin_subpackage('mkl', exact=True) }} - - dpcpp-cpp-rt {{ mkl_version.split('.')[0] }}.* - - intel-opencl-rt {{ mkl_version.split('.')[0] }}.* about: home: https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html license: LicenseRef-IntelSimplifiedSoftwareOct2022 @@ -414,8 +584,8 @@ outputs: test: commands: - ls -A $PREFIX/lib/* # [linux] - - test -f $PREFIX/lib/libmkl_sycl_vm.so.4 # [linux] - - if not exist %LIBRARY_BIN%\\mkl_sycl_vm.4.dll exit 1 # [win] + - test -f $PREFIX/lib/libmkl_sycl_vm.so.5 # [linux] + - if not exist %LIBRARY_BIN%\\mkl_sycl_vm.5.dll exit 1 # [win] {% if win or 'conda-forge' not in my_channel_targets %} - name: intel-openmp @@ -423,6 +593,14 @@ outputs: script: repack.bat # [win] number: {{ openmp_buildnum|int + dstbuildnum|int }} version: {{ openmp_version }} + build: + host: + - intel-cmplr-lib-ur {{ openmp_version.split('.')[0] }}.* + run_constrained: + # prevent clobbering if user tries to install llvm's implementation + # TODO: use intel mutex or build windows torch in conda-froge + # https://github.com/conda-forge/intel-graphics-compiler-feedstock/pull/59 + - llvm-openmp <0a0 about: home: https://www.intel.com/content/www/us/en/developer/tools/overview.html license: LicenseRef-IntelSimplifiedSoftwareOct2022 @@ -538,28 +716,19 @@ outputs: build: binary_relocation: false detect_binary_files_with_prefix: false - missing_dso_whitelist: - # normal linux stuff that would go away if we had libgcc-ng in the run deps - - /lib*/ld-linux.so.2 - - /lib64/ld-linux-x86-64.so.2 - - /lib*/libpthread.so.0 - - /lib*/libdl.so.2 - - /lib*/libgcc_s.so.1 - - /lib*/libc.so.6 - - /lib*/libm.so.6 - - lib/libgcc_s.so.1 - # these two really shouldn't be here. See mkl_repack_and_patchelf.sh - - libiomp5.so - - libcoi_device.so.0 - - /usr/lib/libstdc++.so.6 # [linux] - - /usr/lib64/libstdc++.so.6 # [linux] - # hooray, windows - - "C:\\Windows\\System32\\WINTRUST.dll" requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - {{ c_stdlib }}_{{ target_platform }} >={{ c_stdlib_sycl_version }} # [linux] + - {{ stdlib('c') }} # [not linux] host: - - tbb {{ tbb_version.split('.')[0] }}.* - run: - - tbb {{ tbb_version.split('.')[0] }}.* + - intel-sycl-rt {{ dal_version.split('.')[0] }}.* + - intel-cmplr-lib-rt {{ dal_version.split('.')[0] }}.* + - tbb-devel {{ tbb_version.split('.')[0] }}.* + # - libuuid # [linux] + - ocl-icd # [linux] + - khronos-opencl-icd-loader # [win] about: home: https://www.intel.com/content/www/us/en/developer/tools/oneapi/onedal.html summary: IntelĀ® oneDAL runtime libraries @@ -576,8 +745,8 @@ outputs: doc_url: http://oneapi-src.github.io/oneDAL/ test: commands: - - test -f $PREFIX/lib/libonedal.so.2 # [linux] - - if not exist %LIBRARY_BIN%\\onedal.2.dll exit 1 # [win] + - test -f $PREFIX/lib/libonedal.so.3 # [linux] + - if not exist %LIBRARY_BIN%\\onedal.3.dll exit 1 # [win] - name: dal-include version: {{ dal_version }} @@ -609,9 +778,10 @@ outputs: script: repack.bat # [win] number: {{ dal_buildnum|int + dstbuildnum|int }} requirements: + host: + - tbb-devel {{ tbb_version.split('.')[0] }}.* run: - {{ pin_subpackage('dal-include', exact=True) }} - - tbb {{ tbb_version.split('.')[0] }}.* about: home: https://www.intel.com/content/www/us/en/developer/tools/oneapi/onedal.html summary: Static libraries for IntelĀ® oneDAL @@ -675,24 +845,12 @@ outputs: number: {{ impi_buildnum|int + dstbuildnum|int }} # [linux or win] build: detect_binary_files_with_prefix: false - missing_dso_whitelist: - # normal linux stuff that would go away if we had libgcc-ng in the run deps - - /lib*/ld-linux.so.2 - - /lib64/ld-linux-x86-64.so.2 - - /lib*/libpthread.so.0 - - /lib*/libdl.so.2 - - /lib*/libgcc_s.so.1 - - /lib*/libc.so.6 - - /lib*/libm.so.6 - - lib/libgcc_s.so.1 - # these two really shouldn't be here. See mkl_repack_and_patchelf.sh - - libiomp5.so - - libcoi_device.so.0 - - /usr/lib/libstdc++.so.6 # [linux] - - /usr/lib64/libstdc++.so.6 # [linux] - # hooray, windows - - "C:\\Windows\\System32\\WINTRUST.dll" requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - {{ stdlib('c') }} + - {{ openmp_pkg }} run: - mpi 1.0 impi about:
VariantStatus
linux_64linux_64_python3.10.____cpython - variant + variant
win_64linux_64_python3.11.____cpython - variant + variant + +
linux_64_python3.12.____cpython + + variant + +
linux_64_python3.9.____cpython + + variant + +
win_64_python3.10.____cpython + + variant + +
win_64_python3.11.____cpython + + variant + +
win_64_python3.12.____cpython + + variant + +
win_64_python3.9.____cpython + + variant