diff --git a/.github/workflows/build-sphinx.yml b/.github/workflows/build-sphinx.yml index c34bf409aed9..e4280c70353a 100644 --- a/.github/workflows/build-sphinx.yml +++ b/.github/workflows/build-sphinx.yml @@ -135,11 +135,26 @@ jobs: environment-file: ${{ env.environment-file }} activate-environment: 'docs' - - name: Conda info - run: mamba info + # We can't install dpctl as a conda package when the environment is created through + # installing of Intel OneAPI packages because the dpctl conda package has a runtime + # dependency on DPC++ RT one. Whereas the DPC++ RT package has been already installed + # by the apt command above and its version has been matched with the DPC++ compiler. + # In case where we install the DPC++ compiler with the apt (including DPC++ RT) and + # install the DPC++ RT conda package while resolving dependencies, this can lead + # to a versioning error, i.e. compatibility issue as the DPC++ compiler only guarantees + # backwards compatibility, not forward compatibility (DPC++ RT may not run a binary built + # with a newer version of the DPC++ compiler). + # Installing dpctl via the pip manager has no such limitation, as the package has no + # run dependency on the DPC++ RT pip package, so this is why the step is necessary here. + - name: Install dpctl + if: env.oneapi-pkgs-env == '' + run: | + pip install -i https://pypi.anaconda.org/dppy/label/dev/simple dpctl==0.20.0dev0 - - name: Conda list - run: mamba list + - name: Conda info + run: | + mamba info + mamba list - name: Build library run: | diff --git a/.github/workflows/check-mkl-interfaces.yaml b/.github/workflows/check-mkl-interfaces.yaml index d1cb06b1cad2..2170cbc30acc 100644 --- a/.github/workflows/check-mkl-interfaces.yaml +++ b/.github/workflows/check-mkl-interfaces.yaml @@ -13,6 +13,7 @@ env: environment-file-name: 'environment.yml' environment-file-loc: '${{ github.workspace }}/environments' build-with-oneapi-env: 'environments/build_with_oneapi.yml' + dpctl-pkg-env: 'environments/dpctl_pkg.yml' oneapi-pkgs-env: 'environments/oneapi_pkgs.yml' test-env-name: 'test_onemkl_interfaces' rerun-tests-on-failure: 'true' @@ -47,7 +48,8 @@ jobs: - name: Merge conda env files run: | - conda-merge ${{ env.build-with-oneapi-env }} ${{ env.oneapi-pkgs-env }} > ${{ env.environment-file }} + conda-merge ${{ env.build-with-oneapi-env }} ${{ env.dpctl-pkg-env }} ${{ env.oneapi-pkgs-env }} > ${{ env.environment-file }} + cat ${{ env.environment-file }} - name: Upload artifact uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index 98402bd1e156..162479e85c6d 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -94,6 +94,22 @@ jobs: environment-file: ${{ env.environment-file }} activate-environment: 'coverage' + # We can't install dpctl as a conda package when the environment is created through + # installing of Intel OneAPI packages because the dpctl conda package has a runtime + # dependency on DPC++ RT one. Whereas the DPC++ RT package has beedn already installed + # by the apt command above and its version has been matched with the DPC++ compiler. + # In case where we install the DPC++ compiler with the apt (including DPC++ RT) and + # install the DPC++ RT conda package while resolving dependencies, this can lead + # to a versioning error, i.e. compatibility issue as the DPC++ compiler only guarantees + # backwards compatibility, not forward compatibility (DPC++ RT may not run a binary built + # with a newer version of the DPC++ compiler). + # Installing dpctl via the pip manager has no such limitation, as the package has no + # run dependency on the DPC++ RT pip package, so this is why the step is necessary here. + - name: Install dpctl + if: env.oneapi-pkgs-env == '' + run: | + pip install -i https://pypi.anaconda.org/dppy/label/dev/simple dpctl==0.20.0dev0 + - name: Conda info run: | mamba info diff --git a/environments/build_with_oneapi.yml b/environments/build_with_oneapi.yml index 715023ee48db..02f4624fc1e6 100644 --- a/environments/build_with_oneapi.yml +++ b/environments/build_with_oneapi.yml @@ -1,11 +1,9 @@ name: Packages to build DPNP with OneAPI env activated channels: - - dppy/label/dev - conda-forge dependencies: - cmake - cython - - dpctl>=0.19.0dev0 - ninja - numpy - pytest diff --git a/environments/dpctl_pkg.yml b/environments/dpctl_pkg.yml new file mode 100644 index 000000000000..ff0aecfa0bf7 --- /dev/null +++ b/environments/dpctl_pkg.yml @@ -0,0 +1,5 @@ +name: Install dpctl package +channels: + - dppy/label/dev +dependencies: + - dpctl>=0.20.0dev0