From 5bea1e0b660d3df72405169b85230aade20031a5 Mon Sep 17 00:00:00 2001 From: Nikita Grigorian Date: Wed, 15 Apr 2026 13:35:11 -0700 Subject: [PATCH 01/13] add new pre-commit linters --- .pre-commit-config.yaml | 53 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a3777a0975..f2cb4fbd86 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -10,8 +10,45 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v6.0.0 hooks: + # Git + - id: check-added-large-files + - id: no-commit-to-branch + name: "ensure no direct commit to master/maintenance branches" + args: [--branch, "master", --pattern, "maintenance/.*"] + - id: check-case-conflict + - id: check-illegal-windows-names + - id: check-ast + - id: check-builtin-literals + - id: check-case-conflict + - id: check-executables-have-shebangs + - id: check-merge-conflict + - id: check-toml + - id: debug-statements + - id: destroyed-symlinks - id: end-of-file-fixer + - id: fix-byte-order-marker + - id: mixed-line-ending - id: trailing-whitespace +- repo: https://github.com/pre-commit/pygrep-hooks + rev: v1.10.0 + hooks: + - id: python-check-blanket-noqa + - id: python-check-blanket-type-ignore + - id: python-check-mock-methods + - id: python-no-eval + - id: python-no-log-warn + - id: python-use-type-annotations + - id: rst-backticks + - id: rst-directive-colons + - id: rst-inline-touching-normal + - id: text-unicode-replacement-char +- repo: https://github.com/codespell-project/codespell + rev: v2.4.1 + hooks: + - id: codespell + args: ["-L", "nd,hart,elemente,wirth"] + additional_dependencies: + - tomli - repo: https://github.com/psf/black rev: 26.3.1 hooks: @@ -47,3 +84,19 @@ repos: hooks: - id: cython-lint - id: double-quote-cython-strings + +- repo: https://github.com/jumanjihouse/pre-commit-hooks + rev: 3.0.0 + hooks: + - id: shellcheck + +- repo: https://github.com/gitleaks/gitleaks + rev: v8.30.0 + hooks: + - id: gitleaks + +- repo: https://github.com/rhysd/actionlint + rev: v1.7.11 + hooks: + - id: actionlint + args: ["-ignore", "SC2317"] From 27a91367b772a502e38bc208fc3bb58dfe74015b Mon Sep 17 00:00:00 2001 From: Nikita Grigorian Date: Wed, 15 Apr 2026 14:01:28 -0700 Subject: [PATCH 02/13] pre-commit and codespell tweaks --- .pre-commit-config.yaml | 4 +++- pyproject.toml | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f2cb4fbd86..08fe5cee1a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,5 +1,6 @@ # See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks +exclude: "docs/_legacy/" repos: - repo: https://github.com/PyCQA/bandit rev: '1.9.4' @@ -46,9 +47,10 @@ repos: rev: v2.4.1 hooks: - id: codespell - args: ["-L", "nd,hart,elemente,wirth"] + args: ["-L", "ba,som,xWindows"] # ignore some variable names additional_dependencies: - tomli + exclude: "docs/doxyrest-config.lua.in" - repo: https://github.com/psf/black rev: 26.3.1 hooks: diff --git a/pyproject.toml b/pyproject.toml index 92be4c0771..019dd178c6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -86,6 +86,12 @@ Repository = "https://github.com/IntelPython/dpctl.git" exclude = "dpctl/_version.py" line-length = 80 +[tool.codespell] +builtin = "clear,rare,informal,names" +check-filenames = true +ignore-words-list = "nd" +quiet-level = 3 + [tool.coverage.report] omit = [ "dpctl/tests/*", From 21491c42a42eb23d8062a4031d371deebe2e2572 Mon Sep 17 00:00:00 2001 From: Nikita Grigorian Date: Wed, 15 Apr 2026 14:02:53 -0700 Subject: [PATCH 03/13] update pre-commit workflow --- .github/workflows/pre-commit.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 7a136e5903..8c8f6fc9a9 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -9,13 +9,20 @@ permissions: read-all jobs: pre-commit: + name: pre-commit + runs-on: ubuntu-24.04 timeout-minutes: 30 + steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: - python-version: '3.12' + python-version: '3.14' + - name: Install from PyPI + shell: bash -l {0} + run: | + pip install codespell pylint - name: Version of clang-format run: | clang-format --version From 5cf074899f226726d07026db9899bb7632d8c1de Mon Sep 17 00:00:00 2001 From: Nikita Grigorian Date: Wed, 15 Apr 2026 18:51:03 -0700 Subject: [PATCH 04/13] make adjustments to pass pre-commit --- .github/workflows/conda-package.yml | 196 +++++++++--------- .github/workflows/generate-coverage.yaml | 16 +- .github/workflows/generate-docs.yml | 18 +- .github/workflows/os-llvm-sycl-build.yml | 45 ++-- .../workflows/run-tests-from-dppy-bits.yaml | 20 +- README.md | 2 +- cmake/IntelSYCLConfig.cmake | 4 +- conda-recipe/build.sh | 6 +- docs/CMakeLists.txt | 4 +- .../docfiles/user_guides/QuickStart.rst | 2 +- docs/doc_sources/_static/dpctl.svg | 0 .../dpctl/filter_selector_string.rst | 2 +- .../doc_sources/api_reference/dpctl_cmake.rst | 2 +- .../beginners_guides/installation.rst | 2 +- .../beginners_guides/managing_devices.rst | 2 +- .../contributor_guides/building.rst | 2 +- docs/doc_sources/extlinks_gen.py | 2 +- docs/doc_sources/index.rst | 2 +- .../user_guides/basic_concepts.rst | 2 +- dpctl/_host_task_util.hpp | 2 +- dpctl/_sycl_device.pyx | 8 +- dpctl/_sycl_device_factory.pyx | 2 +- dpctl/_sycl_queue.pyx | 2 +- dpctl/_sycl_queue_manager.pyx | 2 +- dpctl/_sycl_timer.py | 2 +- dpctl/apis/include/dpctl4pybind11.hpp | 6 +- dpctl/tests/helper/_helper.py | 2 +- dpctl/tests/test_sycl_device.py | 4 +- dpctl/tests/test_sycl_event.py | 2 +- dpctl/tests/test_sycl_queue.py | 10 +- dpctl/tests/test_sycl_usm.py | 12 +- dpctl/tests/test_utils.py | 2 +- dpctl/utils/CMakeLists.txt | 2 +- dpctl/utils/_intel_device_info.py | 2 +- examples/cython/README.md | 2 +- examples/cython/sycl_buffer/README.md | 2 +- examples/cython/sycl_buffer/scripts/bench.py | 2 +- .../pybind11/onemkl_gemv/sycl_gemm/build.sh | 19 +- examples/python/_runner.py | 2 +- examples/python/subdevices.py | 4 +- examples/python/usm_memory_host_access.py | 2 +- .../cmake/modules/GetProjectVersion.cmake | 6 +- libsyclinterface/dbg_build.bat | 2 +- libsyclinterface/dbg_build.sh | 9 +- libsyclinterface/dbg_build_custom.sh | 18 +- .../helper/source/dpctl_error_handlers.cpp | 2 +- .../include/syclinterface/Support/DllExport.h | 2 +- .../syclinterface/dpctl_sycl_device_manager.h | 2 +- .../dpctl_sycl_platform_manager.h | 2 +- libsyclinterface/tests/test_service.cpp | 2 +- 50 files changed, 246 insertions(+), 221 deletions(-) mode change 100755 => 100644 cmake/IntelSYCLConfig.cmake mode change 100755 => 100644 docs/doc_sources/_static/dpctl.svg diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index ae6ff28610..8924245c78 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -50,13 +50,13 @@ jobs: ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}- ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}- - name: Add conda to system path - run: echo $CONDA/bin >> $GITHUB_PATH + run: echo "$CONDA/bin" >> "$GITHUB_PATH" - name: Install conda-build run: conda install conda-build -c conda-forge --override-channels - name: Store conda paths as envs shell: bash -l {0} run: | - echo "WHEELS_OUTPUT_FOLDER=$GITHUB_WORKSPACE${{ runner.os == 'Linux' && '/' || '\\' }}" >> $GITHUB_ENV + echo "WHEELS_OUTPUT_FOLDER=$GITHUB_WORKSPACE${{ runner.os == 'Linux' && '/' || '\\' }}" >> "$GITHUB_ENV" - name: Build conda package run: | # use bootstrap channel to pull NumPy linked with OpenBLAS @@ -64,9 +64,9 @@ jobs: VERSIONS="--python ${{ matrix.python }} --numpy 2.0" TEST="--no-test" conda build \ - $TEST \ - $VERSIONS \ - $CHANNELS \ + "$TEST" \ + "$VERSIONS" \ + "$CHANNELS" \ conda-recipe - name: Upload artifact uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -126,8 +126,8 @@ jobs: - name: Store conda paths as envs shell: bash -l {0} run: | - echo "CONDA_BLD=$CONDA/conda-bld/win-64/" | tr "\\\\" '/' >> $GITHUB_ENV - echo "WHEELS_OUTPUT_FOLDER=$GITHUB_WORKSPACE${{ runner.os == 'Linux' && '/' || '\\' }}" >> $GITHUB_ENV + echo "CONDA_BLD=$CONDA/conda-bld/win-64/" | tr "\\\\" '/' >> "$GITHUB_ENV" + echo "WHEELS_OUTPUT_FOLDER=$GITHUB_WORKSPACE${{ runner.os == 'Linux' && '/' || '\\' }}" >> "$GITHUB_ENV" - name: Build conda package env: @@ -163,16 +163,16 @@ jobs: steps: - name: Construct channels line run: | - echo "CHANNELS=-c ${{ env.INTEL_CHANNEL }} -c conda-forge --override-channels" >> $GITHUB_ENV + echo "CHANNELS=-c ${{ env.INTEL_CHANNEL }} -c conda-forge --override-channels" >> "$GITHUB_ENV" - name: Display channels line run: | - echo ${{ env.CHANNELS }} + echo "${{ env.CHANNELS }}" - name: Download artifact uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }} - name: Add conda to system path - run: echo $CONDA/bin >> $GITHUB_PATH + run: echo "$CONDA/bin" >> "$GITHUB_PATH" - name: Install conda-index # Needed to be able to run conda index run: | @@ -180,18 +180,20 @@ jobs: conda install conda-index -c conda-forge --override-channels - name: Create conda channel run: | - mkdir -p $GITHUB_WORKSPACE/channel/linux-64 - conda index $GITHUB_WORKSPACE/channel || exit 1 - mv ${PACKAGE_NAME}-*.conda $GITHUB_WORKSPACE/channel/linux-64 || exit 1 - conda index $GITHUB_WORKSPACE/channel || exit 1 + mkdir -p "$GITHUB_WORKSPACE/channel/linux-64" + conda index "$GITHUB_WORKSPACE/channel" || exit 1 + mv "${PACKAGE_NAME}"-*.conda "$GITHUB_WORKSPACE/channel/linux-64" || exit 1 + conda index "$GITHUB_WORKSPACE/channel" || exit 1 # Test channel - conda search $PACKAGE_NAME -c $GITHUB_WORKSPACE/channel --override-channels --info --json > $GITHUB_WORKSPACE/ver.json + conda search "$PACKAGE_NAME" -c "$GITHUB_WORKSPACE/channel" --override-channels --info --json > "$GITHUB_WORKSPACE/ver.json" cat ver.json - name: Collect dependencies run: | CHANNELS="-c $GITHUB_WORKSPACE/channel ${{ env.CHANNELS }}" - export PACKAGE_VERSION=$(python -c "${VER_SCRIPT1} ${VER_SCRIPT2}") - conda create -n ${{ env.TEST_ENV_NAME }} $PACKAGE_NAME=${PACKAGE_VERSION} python=${{ matrix.python }} $CHANNELS --only-deps --dry-run > lockfile + export CHANNELS + PACKAGE_VERSION=$(python -c "${VER_SCRIPT1} ${VER_SCRIPT2}") + export PACKAGE_VERSION + conda create -n "${{ env.TEST_ENV_NAME }}" "${{ env.PACKAGE_NAME }}=${PACKAGE_VERSION}" python=${{ matrix.python }} "$CHANNELS" --only-deps --dry-run > lockfile cat lockfile - name: Set pkgs_dirs run: | @@ -209,16 +211,19 @@ jobs: ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}- - name: Install dpctl run: | - export CHANNELS="-c $GITHUB_WORKSPACE/channel ${{ env.CHANNELS }}" - export TEST_DEPENDENCIES="pytest pytest-cov cython setuptools" - export PACKAGE_VERSION=$(python -c "${VER_SCRIPT1} ${VER_SCRIPT2}") - conda create -n ${{ env.TEST_ENV_NAME }} $PACKAGE_NAME=${PACKAGE_VERSION} ${TEST_DEPENDENCIES} python=${{ matrix.python }} ${CHANNELS} + CHANNELS="-c $GITHUB_WORKSPACE/channel ${{ env.CHANNELS }}" + export CHANNELS + TEST_DEPENDENCIES="pytest pytest-cov cython setuptools" + export TEST_DEPENDENCIES + PACKAGE_VERSION=$(python -c "${VER_SCRIPT1} ${VER_SCRIPT2}") + export PACKAGE_VERSION + conda create -n "${{ env.TEST_ENV_NAME }}" "${{ env.PACKAGE_NAME }}=${PACKAGE_VERSION}" "${TEST_DEPENDENCIES}" python=${{ matrix.python }} "${CHANNELS}" # Test installed packages - conda list -n ${{ env.TEST_ENV_NAME }} + conda list -n "${{ env.TEST_ENV_NAME }}" - name: Smoke test run: | - . $CONDA/etc/profile.d/conda.sh - conda activate ${{ env.TEST_ENV_NAME }} + . "$CONDA/etc/profile.d/conda.sh" + conda activate "${{ env.TEST_ENV_NAME }}" python -c "import dpctl; dpctl.lsplatform(verbosity=2)" - name: Install gdb run: | @@ -226,21 +231,21 @@ jobs: sudo apt-get install -y gdb - name: Run test_elementwise under gdb run: | - . $CONDA/etc/profile.d/conda.sh - conda activate ${{ env.TEST_ENV_NAME }} - gdb --batch -ex r -ex 'info sharedlibrary' -ex 'set print elements 1000' -ex bt --args ${CONDA_PREFIX}/bin/python -m pytest -q -ra --disable-warnings --pyargs dpctl.tests.elementwise.test_trigonometric::test_trig_order -vv || true + . "$CONDA/etc/profile.d/conda.sh" + conda activate "${{ env.TEST_ENV_NAME }}" + gdb --batch -ex r -ex 'info sharedlibrary' -ex 'set print elements 1000' -ex bt --args "${CONDA_PREFIX}/bin/python" -m pytest -q -ra --disable-warnings --pyargs dpctl.tests.elementwise.test_trigonometric::test_trig_order -vv || true - name: Create test temp dir # create temporary empty folder to runs tests from # https://github.com/pytest-dev/pytest/issues/11904 - run: mkdir -p ${GITHUB_WORKSPACE}/test_tmp + run: mkdir -p "${GITHUB_WORKSPACE}/test_tmp" - name: Run tests working-directory: ${{ github.workspace }}/test_tmp env: SYCL_CACHE_PERSISTENT: 1 run: | - . $CONDA/etc/profile.d/conda.sh - conda activate ${{ env.TEST_ENV_NAME }} - python -m pytest -v --pyargs $MODULE_NAME + . "$CONDA/etc/profile.d/conda.sh" + conda activate "${{ env.TEST_ENV_NAME }}" + python -m pytest -v --pyargs "${{ env.MODULE_NAME }}" test_windows: needs: build_windows @@ -266,7 +271,7 @@ jobs: - name: Display channels line run: | - echo ${{ env.CHANNELS }} + echo "${{ env.CHANNELS }}" - name: Download artifact uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 @@ -366,8 +371,8 @@ jobs: - name: Report content of test environment shell: cmd /C CALL {0} run: | - echo "Value of CONDA enviroment variable was: " %CONDA% - echo "Value of CONDA_PREFIX enviroment variable was: " %CONDA_PREFIX% + echo "Value of CONDA environment variable was: " %CONDA% + echo "Value of CONDA_PREFIX environment variable was: " %CONDA_PREFIX% conda info && conda list -n ${{ env.TEST_ENV_NAME }} - name: Configure Intel OpenCL CPU RT @@ -436,9 +441,9 @@ jobs: - name: Install anaconda-client run: conda install anaconda-client -c conda-forge --override-channels - name: Add conda to system path - run: echo $CONDA/bin >> $GITHUB_PATH + run: echo "$CONDA/bin" >> "$GITHUB_PATH" - name: Package version - run: echo "PACKAGE_VERSION=$(basename ${{ env.PACKAGE_NAME }}-*.conda | sed 's/^${{ env.PACKAGE_NAME }}-\([^-]*\).*/\1/')" >> $GITHUB_ENV + run: echo "PACKAGE_VERSION=$(basename ${{ env.PACKAGE_NAME }}-*.conda | sed 's/^${{ env.PACKAGE_NAME }}-\([^-]*\).*/\1/')" >> "$GITHUB_ENV" - name: Upload env: @@ -447,14 +452,14 @@ jobs: ANACONDA_CLIENT_FORCE_STANDALONE: true if: ${{ env.ANACONDA_TOKEN != '' }} run: | - anaconda --token ${{ env.ANACONDA_TOKEN }} upload --user dppy --label dev ${PACKAGE_NAME}-*.conda + anaconda --token "${{ env.ANACONDA_TOKEN }}" upload --user dppy --label dev "${{ env.PACKAGE_NAME }}"-*.conda - name: Upload Wheels env: ANACONDA_TOKEN: ${{ secrets.ANACONDA_TOKEN }} # remove when anaconda-client 1.13.1 is available ANACONDA_CLIENT_FORCE_STANDALONE: true - run: anaconda --token ${{ env.ANACONDA_TOKEN }} upload --user dppy --label dev ${{ env.PACKAGE_NAME }}-*.whl --version ${{ env.PACKAGE_VERSION }} + run: anaconda --token "${{ env.ANACONDA_TOKEN }}" upload --user dppy --label dev "${{ env.PACKAGE_NAME }}"-*.whl --version "${{ env.PACKAGE_VERSION }}" upload_windows: needs: test_windows @@ -491,18 +496,18 @@ jobs: - name: Package version shell: bash -el {0} - run: echo "PACKAGE_VERSION=$(basename ${{ env.PACKAGE_NAME }}-*.conda | sed 's/^${{ env.PACKAGE_NAME }}-\([^-]*\).*/\1/')" >> $GITHUB_ENV + run: echo "PACKAGE_VERSION=$(basename ${{ env.PACKAGE_NAME }}-*.conda | sed 's/^${{ env.PACKAGE_NAME }}-\([^-]*\).*/\1/')" >> "$GITHUB_ENV" - name: Upload env: ANACONDA_TOKEN: ${{ secrets.ANACONDA_TOKEN }} run: | - anaconda --token ${{ env.ANACONDA_TOKEN }} upload --user dppy --label dev ${{ env.PACKAGE_NAME }}-*.conda + anaconda --token "${{ env.ANACONDA_TOKEN }}" upload --user dppy --label dev "${{ env.PACKAGE_NAME }}"-*.conda - name: Upload Wheels env: ANACONDA_TOKEN: ${{ secrets.ANACONDA_TOKEN }} - run: anaconda --token ${{ env.ANACONDA_TOKEN }} upload --user dppy --label dev ${{ env.PACKAGE_NAME }}-*.whl --version ${{ env.PACKAGE_VERSION }} + run: anaconda --token "${{ env.ANACONDA_TOKEN }}" upload --user dppy --label dev "${{ env.PACKAGE_NAME }}"-*.whl --version "${{ env.PACKAGE_VERSION }}" test_examples_linux: needs: build_linux @@ -521,7 +526,7 @@ jobs: steps: - name: Construct channels line run: | - echo "CHANNELS=-c ${{ env.INTEL_CHANNEL }} -c conda-forge --override-channels" >> $GITHUB_ENV + echo "CHANNELS=-c ${{ env.INTEL_CHANNEL }} -c conda-forge --override-channels" >> "$GITHUB_ENV" - name: Display channels line run: | echo ${{ env.CHANNELS }} @@ -539,21 +544,23 @@ jobs: with: name: ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }} - name: Add conda to system path - run: echo $CONDA/bin >> $GITHUB_PATH + run: echo "$CONDA/bin" >> "$GITHUB_PATH" - name: Create conda channel run: | - mkdir -p $GITHUB_WORKSPACE/channel/linux-64 - conda index $GITHUB_WORKSPACE/channel || exit 1 - mv ${PACKAGE_NAME}-*.conda $GITHUB_WORKSPACE/channel/linux-64 || exit 1 - conda index $GITHUB_WORKSPACE/channel || exit 1 + mkdir -p "$GITHUB_WORKSPACE/channel/linux-64" + conda index "$GITHUB_WORKSPACE/channel" || exit 1 + mv "${{ env.PACKAGE_NAME }}"-*.conda "$GITHUB_WORKSPACE/channel/linux-64" || exit 1 + conda index "$GITHUB_WORKSPACE/channel" || exit 1 # Test channel - conda search $PACKAGE_NAME -c $GITHUB_WORKSPACE/channel --override-channels --info --json > $GITHUB_WORKSPACE/ver.json + conda search "$PACKAGE_NAME" -c "$GITHUB_WORKSPACE/channel" --override-channels --info --json > "$GITHUB_WORKSPACE/ver.json" cat ver.json - name: Collect dependencies run: | CHANNELS="-c $GITHUB_WORKSPACE/channel ${{ env.CHANNELS }}" - export PACKAGE_VERSION=$(python -c "${VER_SCRIPT1} ${VER_SCRIPT2}") - conda create -n ${{ env.EXAMPLES_ENV_NAME }} $PACKAGE_NAME=${PACKAGE_VERSION} python=${{ matrix.python }} $CHANNELS --only-deps --dry-run > lockfile + export CHANNELS + PACKAGE_VERSION=$(python -c "${VER_SCRIPT1} ${VER_SCRIPT2}") + export PACKAGE_VERSION + conda create -n "${{ env.EXAMPLES_ENV_NAME }}" "${{ env.PACKAGE_NAME }}=${PACKAGE_VERSION}" python=${{ matrix.python }} "$CHANNELS" --only-deps --dry-run > lockfile cat lockfile - name: Set pkgs_dirs run: | @@ -574,96 +581,93 @@ jobs: env: DPCPP_CMPLR: "dpcpp_linux-64>=2025.0" run: | - CHANNELS="${{ env.CHANNELS }}" - . $CONDA/etc/profile.d/conda.sh + export CHANNELS="${{ env.CHANNELS }}" + . "$CONDA/etc/profile.d/conda.sh" DPCTL_DEPENDS="$(python -c "${VER_SCRIPT1} ${VER_SCRIPT3}")" echo "Dpctl dependencies: ${DPCTL_DEPENDS}" - conda create -n ${{ env.EXAMPLES_ENV_NAME }} -y pytest python=${{ matrix.python }} "setuptools<72.2.0" $CHANNELS + conda create -n "${{ env.EXAMPLES_ENV_NAME }}" -y pytest python="${{ matrix.python }}" "setuptools<72.2.0" "$CHANNELS" echo "Environment created" - conda install -n ${{ env.EXAMPLES_ENV_NAME }} -y cmake ninja $CHANNELS || exit 1 + conda install -n "${{ env.EXAMPLES_ENV_NAME }}" -y cmake ninja "$CHANNELS" || exit 1 echo "Cmake and Ninja installed" - conda install -n ${{ env.EXAMPLES_ENV_NAME }} -y pybind11 cython scikit-build $CHANNELS || exit 1 + conda install -n "${{ env.EXAMPLES_ENV_NAME }}" -y pybind11 cython scikit-build "$CHANNELS" || exit 1 echo "scikit-build installed" - conda install -n ${{ env.EXAMPLES_ENV_NAME }} -y mkl-dpcpp \ + conda install -n "${{ env.EXAMPLES_ENV_NAME }}" -y mkl-dpcpp \ mkl-devel-dpcpp dpcpp_cpp_rt "${DPCTL_DEPENDS}" \ - $CHANNELS || exit 1 + "$CHANNELS" || exit 1 echo "IPL installed" - conda create -y -n ${{ env.BUILD_ENV_NAME }} $CHANNELS gcc_linux-64 gxx_linux-64 \ - ${{ env.DPCPP_CMPLR }} "${DPCTL_DEPENDS}" \ + conda create -y -n "${{ env.BUILD_ENV_NAME }}" "$CHANNELS" gcc_linux-64 gxx_linux-64 \ + "${{ env.DPCPP_CMPLR }}" "${DPCTL_DEPENDS}" \ "sysroot_linux-64>=2.28" echo "Compiler installed" - conda list -n ${{ env.BUILD_ENV_NAME }} + conda list -n "${{ env.BUILD_ENV_NAME }}" - name: Install dpctl shell: bash -l {0} run: | - source $CONDA/etc/profile.d/conda.sh + source "$CONDA/etc/profile.d/conda.sh" CHANNELS="-c $GITHUB_WORKSPACE/channel -c dppy/label/dev -c ${{ env.INTEL_CHANNEL }} -c conda-forge --override-channels" - export PACKAGE_VERSION=$(python -c "${VER_SCRIPT1} ${VER_SCRIPT2}") - conda install -n ${{ env.EXAMPLES_ENV_NAME }} -y ${CHANNELS} dpctl=${PACKAGE_VERSION} dpnp || exit 1 + export CHANNELS + PACKAGE_VERSION=$(python -c "${VER_SCRIPT1} ${VER_SCRIPT2}") + export PACKAGE_VERSION + conda install -n "${{ env.EXAMPLES_ENV_NAME }}" -y "${CHANNELS}" "${{ env.PACKAGE_NAME }}=${PACKAGE_VERSION}" dpnp || exit 1 - name: Build and run examples of pybind11 extensions shell: bash -l {0} run: | - source $CONDA/etc/profile.d/conda.sh - conda activate ${{ env.EXAMPLES_ENV_NAME }} + source "$CONDA/etc/profile.d/conda.sh" + conda activate "${{ env.EXAMPLES_ENV_NAME }}" conda list cd examples/pybind11 - for d in $(find . -maxdepth 1 -type d -not -path ".") - do - pushd $d + while IFS= read -r d; do + pushd "$d" > /dev/null conda activate --stack build_env CC=icx CXX=icpx python setup.py build_ext --inplace -G Ninja || exit 1 conda deactivate - if [ -e tests ] - then - LD_LIBRARY_PATH=${CONDA_PREFIX}/lib python -m pytest tests || exit 1 + if [ -e tests ]; then + LD_LIBRARY_PATH="${CONDA_PREFIX}/lib" python -m pytest tests || exit 1 else - LD_LIBRARY_PATH=${CONDA_PREFIX}/lib python example.py || exit 1 + LD_LIBRARY_PATH="${CONDA_PREFIX}/lib" python example.py || exit 1 fi - popd - done + popd > /dev/null + done < <(find . -maxdepth 1 -type d -not -path ".") - name: Build and run examples of Cython extensions shell: bash -l {0} run: | - source $CONDA/etc/profile.d/conda.sh - conda activate ${{ env.EXAMPLES_ENV_NAME }} + source "$CONDA/etc/profile.d/conda.sh" + conda activate "${{ env.EXAMPLES_ENV_NAME }}" conda list cd examples/cython - for d in $(find . -maxdepth 1 -type d -not -path ".") - do - pushd $d - conda activate --stack ${{ env.BUILD_ENV_NAME }} + while IFS= read -r d; do + pushd "$d" > /dev/null + conda activate --stack "${{ env.BUILD_ENV_NAME }}" CC=icx CXX=icpx python setup.py build_ext --inplace -G Ninja || exit 1 conda deactivate python -m pytest tests || exit 1 - popd - done + popd > /dev/null + done < <(find . -maxdepth 1 -type d -not -path ".") - name: Build and run examples of C-extensions shell: bash -l {0} run: | - source $CONDA/etc/profile.d/conda.sh - conda activate ${{ env.EXAMPLES_ENV_NAME }} + source "$CONDA/etc/profile.d/conda.sh" + conda activate "${{ env.EXAMPLES_ENV_NAME }}" conda list cd examples/c - for d in $(find . -maxdepth 1 -type d -not -path ".") - do - pushd $d - conda activate --stack ${{ env.BUILD_ENV_NAME }} + while IFS= read -r d; do + pushd "$d" > /dev/null + conda activate --stack "${{ env.BUILD_ENV_NAME }}" python setup.py build_ext --inplace || exit 1 conda deactivate python -m pytest tests || exit 1 - popd - done + popd > /dev/null + done < <(find . -maxdepth 1 -type d -not -path ".") - name: Run Python examples shell: bash -l {0} run: | cd examples/python - source $CONDA/etc/profile.d/conda.sh - conda activate ${{ env.EXAMPLES_ENV_NAME }} - for script in $(find . \( -not -name "_*" -and -name "*.py" \)) - do + source "$CONDA/etc/profile.d/conda.sh" + conda activate "${{ env.EXAMPLES_ENV_NAME }}" + while IFS= read -r script; do echo "Executing ${script}" - python ${script} || exit 1 - done + python "${script}" || exit 1 + done < <(find . \( -not -name "_*" -and -name "*.py" \)) cleanup_packages: name: Clean up anaconda packages diff --git a/.github/workflows/generate-coverage.yaml b/.github/workflows/generate-coverage.yaml index 0032966518..d29cba85a3 100644 --- a/.github/workflows/generate-coverage.yaml +++ b/.github/workflows/generate-coverage.yaml @@ -111,15 +111,17 @@ jobs: shell: bash -l {0} run: | echo "Processing c-api-coverage" - export DPCTL_LCOV_FN=$(find _skbuild -name dpctl.lcov) - grep "/tmp" $DPCTL_LCOV_FN + DPCTL_LCOV_FN=$(find _skbuild -name dpctl.lcov) + export DPCTL_LCOV_FN + grep "/tmp" "$DPCTL_LCOV_FN" coveralls-lcov -v -n \ - $DPCTL_LCOV_FN > dpctl-c-api-coverage.json + "$DPCTL_LCOV_FN" > dpctl-c-api-coverage.json echo "Processing pytest-coverage" - export DPCTL_PYTEST_LCOV=$(find . -name dpctl_pytest.lcov) - grep "/tmp" $DPCTL_PYTEST_LCOV + DPCTL_PYTEST_LCOV=$(find . -name dpctl_pytest.lcov) + export DPCTL_PYTEST_LCOV + grep "/tmp" "$DPCTL_PYTEST_LCOV" coveralls-lcov -v -n \ - $DPCTL_PYTEST_LCOV > pytest-dpctl-c-api-coverage.json + "$DPCTL_PYTEST_LCOV" > pytest-dpctl-c-api-coverage.json echo "Merging JSON files" python -c "import json; \ fh1 = open('dpctl-c-api-coverage.json', 'r'); \ @@ -132,7 +134,7 @@ jobs: # merge combined file with coverage data and upload ls -lh dpctl-c-api-coverage.json pytest-dpctl-c-api-coverage.json \ combined-dpctl-c-api-coverage.json \ - $(find _skbuild -name dpctl.lcov) $(find . -name dpctl_pytest.lcov) + "$DPCTL_LCOV_FN" "$DPCTL_PYTEST_LCOV" echo "Merging combined files with coverage data" coveralls --service=github --merge=combined-dpctl-c-api-coverage.json env: diff --git a/.github/workflows/generate-docs.yml b/.github/workflows/generate-docs.yml index 6295e9aa3b..cd47d7a3ea 100644 --- a/.github/workflows/generate-docs.yml +++ b/.github/workflows/generate-docs.yml @@ -75,7 +75,7 @@ jobs: source /opt/intel/oneapi/setvars.sh wget https://github.com/vovkos/doxyrest/releases/download/doxyrest-2.1.2/doxyrest-2.1.2-linux-amd64.tar.xz tar xf doxyrest-2.1.2-linux-amd64.tar.xz - python scripts/gen_docs.py --doxyrest-root=`pwd`/doxyrest-2.1.2-linux-amd64 --verbose --multiversion --clean || exit 1 + python scripts/gen_docs.py --doxyrest-root="$(pwd)/doxyrest-2.1.2-linux-amd64" --verbose --multiversion --clean || exit 1 python -c "import dpctl; print(dpctl.__version__)" || exit 1 mv "$(find _skbuild -type d -path "*/cmake-install/docs/docs" | head -n 1)" ~/docs git clean -dfx @@ -87,9 +87,9 @@ jobs: git remote add tokened_docs https://IntelPython:${{ secrets.GITHUB_TOKEN }}@github.com/IntelPython/dpctl.git git fetch tokened_docs git checkout --track tokened_docs/gh-pages - echo `pwd` + pwd cd master - git rm -rf * + git rm -rf ./* mv ~/docs/* . || exit 1 git add . git config --global user.name 'github-actions[doc-deploy-bot]' @@ -112,10 +112,10 @@ jobs: git remote add tokened_docs https://IntelPython:${{ secrets.GITHUB_TOKEN }}@github.com/IntelPython/dpctl.git git fetch tokened_docs git checkout --track tokened_docs/gh-pages - echo `pwd` - [ -d pulls/${PR_NUM} ] && git rm -rf pulls/${PR_NUM} - mkdir -p pulls/${PR_NUM} - cd pulls/${PR_NUM} + pwd + [ -d "pulls/${PR_NUM}" ] && git rm -rf "pulls/${PR_NUM}" + mkdir -p "pulls/${PR_NUM}" + cd "pulls/${PR_NUM}" mv ~/docs/* . git add . git config --global user.name 'github-actions[doc-deploy-bot]' @@ -131,10 +131,10 @@ jobs: git remote add tokened_docs https://IntelPython:${{ secrets.GITHUB_TOKEN }}@github.com/IntelPython/dpctl.git git fetch tokened_docs git checkout --track tokened_docs/gh-pages - echo `pwd` + pwd ls [ -d pulls ] && ls pulls && echo "This is pull/${PR_NUM}" - [ -d pulls/${PR_NUM} ] && git rm -rf pulls/${PR_NUM} + [ -d "pulls/${PR_NUM}" ] && git rm -rf "pulls/${PR_NUM}" git config --global user.name 'github-actions[doc-deploy-bot]' git config --global user.email 'github-actions[doc-deploy-bot]@users.noreply.github.com' git commit -m "Removing docs for closed pull request ${PR_NUM}" diff --git a/.github/workflows/os-llvm-sycl-build.yml b/.github/workflows/os-llvm-sycl-build.yml index 571b651524..b0bbe9f2df 100644 --- a/.github/workflows/os-llvm-sycl-build.yml +++ b/.github/workflows/os-llvm-sycl-build.yml @@ -59,28 +59,35 @@ jobs: cd sycl_bundle if [[ "${USE_LATEST_SYCLOS:-0}" -eq "1" ]]; then # get list of shas and tags from remote, filter nightly tags and reverse order - export LLVM_TAGS=$(git -c 'versionsort.suffix=-' ls-remote --tags --sort='v:refname' https://github.com/intel/llvm.git | \ + LLVM_TAGS=$(git -c 'versionsort.suffix=-' ls-remote --tags --sort='v:refname' https://github.com/intel/llvm.git | \ grep 'refs/tags/nightly-' | awk '{a[i++]=$0} END {for (j=i-1; j>=0;) print a[j--] }') + export LLVM_TAGS # initialize unset DEPLOY_NIGHTLY_TAG unset DEPLOY_NIGHTLY_TAG_SHA # go through tags and find the most recent one where nighly build binary is available while IFS= read -r NEXT_LLVM_TAG; do - export NEXT_LLVM_TAG_SHA=$(echo ${NEXT_LLVM_TAG} | awk '{print $1}') - export NEXT_NIGHTLY_TAG=$(python3 -c "import sys, urllib.parse as ul; print (ul.quote_plus(sys.argv[1]))" \ - $(echo ${NEXT_LLVM_TAG} | awk '{gsub(/^refs\/tags\//, "", $2)} {print $2}')) - if [[ `wget -S --spider ${DOWNLOAD_URL_PREFIX}/${NEXT_NIGHTLY_TAG}/${ARTIFACT_NAME}.tar.gz 2>&1 | grep 'HTTP/1.1 200 OK'` ]]; + NEXT_LLVM_TAG_SHA=$(echo "${NEXT_LLVM_TAG}" | awk '{print $1}') + export NEXT_LLVM_TAG_SHA + NEXT_NIGHTLY_TAG=$(python3 -c "import sys, urllib.parse as ul; print(ul.quote_plus(sys.argv[1]))" \ + "$(echo "${NEXT_LLVM_TAG}" | awk '{gsub(/^refs\/tags\//, "", $2)} {print $2}')") + export NEXT_NIGHTLY_TAG + if wget -S --spider "${DOWNLOAD_URL_PREFIX}/${NEXT_NIGHTLY_TAG}/${ARTIFACT_NAME}.tar.gz" 2>&1 | grep -q 'HTTP/1.1 200 OK'; then - export DEPLOY_NIGHTLY_TAG=${NEXT_NIGHTLY_TAG} - export DEPLOY_LLVM_TAG_SHA=${NEXT_LLVM_TAG_SHA} + DEPLOY_NIGHTLY_TAG="${NEXT_NIGHTLY_TAG}" + export DEPLOY_NIGHTLY_TAG + DEPLOY_LLVM_TAG_SHA="${NEXT_LLVM_TAG_SHA}" + export DEPLOY_LLVM_TAG_SHA break fi done <<< "${LLVM_TAGS}" else # Use latest known to work tag instead - export DEPLOY_NIGHTLY_TAG="sycl-nightly%2F20230606" - export DEPLOY_LLVM_TAG_SHA=f44d0133d4b0077298f034697a1f3818ff1d6134 + DEPLOY_NIGHTLY_TAG="sycl-nightly%2F20230606" + export DEPLOY_NIGHTLY_TAG + DEPLOY_LLVM_TAG_SHA=f44d0133d4b0077298f034697a1f3818ff1d6134 + export DEPLOY_LLVM_TAG_SHA fi [[ -n "${DEPLOY_NIGHTLY_TAG}" ]] || exit 1 @@ -90,16 +97,20 @@ jobs: if [[ -f bundle_id.txt && ( "$(cat bundle_id.txt)" == "${DEPLOY_LLVM_TAG_SHA}" ) ]]; then echo "Using cached download of ${DEPLOY_LLVM_TAG_SHA}" else - rm -rf ${ARTIFACT_NAME}.tar.gz - wget ${DOWNLOAD_URL_PREFIX}/${DEPLOY_NIGHTLY_TAG}/${ARTIFACT_NAME}.tar.gz && echo ${DEPLOY_LLVM_TAG_SHA} > bundle_id.txt || rm -rf bundle_id.txt - [ -f ${OCLCPUEXP_FN} ] || wget ${DOWNLOAD_URL_PREFIX}/${DRIVER_PATH}/${OCLCPUEXP_FN} || rm -rf bundle_id.txt - [ -f ${TBB_FN} ] || wget ${TBB_URL}/${TBB_FN} || rm -rf bundle_id.txt + rm -rf "${ARTIFACT_NAME}.tar.gz" + if wget "${DOWNLOAD_URL_PREFIX}/${DEPLOY_NIGHTLY_TAG}/${ARTIFACT_NAME}.tar.gz"; then + echo "${DEPLOY_LLVM_TAG_SHA}" > bundle_id.txt + else + rm -rf bundle_id.txt + fi + [ -f "${OCLCPUEXP_FN}" ] || wget "${DOWNLOAD_URL_PREFIX}/${DRIVER_PATH}/${OCLCPUEXP_FN}" || rm -rf bundle_id.txt + [ -f "${TBB_FN}" ] || wget "${TBB_URL}/${TBB_FN}" || rm -rf bundle_id.txt rm -rf dpcpp_compiler mkdir -p dpcpp_compiler - tar xf ${ARTIFACT_NAME}.tar.gz -C dpcpp_compiler + tar xf "${ARTIFACT_NAME}.tar.gz" -C dpcpp_compiler mkdir -p oclcpuexp - [ -d oclcpuexp/x64 ] || tar xf ${OCLCPUEXP_FN} -C oclcpuexp - [ -d ${TBB_INSTALL_DIR}/lib ] || tar xf ${TBB_FN} + [ -d oclcpuexp/x64 ] || tar xf "${OCLCPUEXP_FN}" -C oclcpuexp + [ -d "${TBB_INSTALL_DIR}/lib" ] || tar xf "${TBB_FN}" cp oclcpuexp/x64/libOpenCL.so* dpcpp_compiler/lib/ fi @@ -152,7 +163,7 @@ jobs: run: | source set_allvars.sh python scripts/build_locally.py --c-compiler=clang --cxx-compiler=clang++ \ - --compiler-root=${SYCL_BUNDLE_FOLDER}/dpcpp_compiler/bin || exit 1 + --compiler-root="${SYCL_BUNDLE_FOLDER}/dpcpp_compiler/bin" || exit 1 - name: Run lsplatforms shell: bash -l {0} diff --git a/.github/workflows/run-tests-from-dppy-bits.yaml b/.github/workflows/run-tests-from-dppy-bits.yaml index 3a883cf1f1..9172902b51 100644 --- a/.github/workflows/run-tests-from-dppy-bits.yaml +++ b/.github/workflows/run-tests-from-dppy-bits.yaml @@ -35,11 +35,11 @@ jobs: steps: - name: Construct channels line run: | - echo "CHANNELS=-c ${{ env.INTEL_CHANNEL }} -c conda-forge --override-channels" >> $GITHUB_ENV + echo "CHANNELS=-c ${{ env.INTEL_CHANNEL }} -c conda-forge --override-channels" >> "$GITHUB_ENV" - name: Display channels line run: | - echo ${{ env.CHANNELS }} + echo "${{ env.CHANNELS }}" - name: Set pkgs_dirs run: | @@ -47,27 +47,27 @@ jobs: - name: Install dpctl run: | - conda create -n ${{ env.TEST_ENV_NAME }} -c dppy/label/dev ${{ env.CHANNELS }} dpctl pytest pytest-cov cython setuptools c-compiler cxx-compiler + conda create -n "${{ env.TEST_ENV_NAME }}" -c dppy/label/dev "${{ env.CHANNELS }}" dpctl pytest pytest-cov cython setuptools c-compiler cxx-compiler - name: Smoke test run: | - . $CONDA/etc/profile.d/conda.sh - conda activate ${{ env.TEST_ENV_NAME }} + . "$CONDA/etc/profile.d/conda.sh" + conda activate "${{ env.TEST_ENV_NAME }}" python -m dpctl -f - name: Create test temp dir # create temporary empty folder to runs tests from # https://github.com/pytest-dev/pytest/issues/11904 - run: mkdir -p ${GITHUB_WORKSPACE}/test_tmp + run: mkdir -p "${GITHUB_WORKSPACE}/test_tmp" - name: Run tests working-directory: ${{ github.workspace }}/test_tmp env: SYCL_CACHE_PERSISTENT: 1 run: | - . $CONDA/etc/profile.d/conda.sh - conda activate ${{ env.TEST_ENV_NAME }} - python -m pytest -v --pyargs $MODULE_NAME + . "$CONDA/etc/profile.d/conda.sh" + conda activate "${{ env.TEST_ENV_NAME }}" + python -m pytest -v --pyargs "${{ env.MODULE_NAME }}" test_windows: @@ -94,7 +94,7 @@ jobs: - name: Display channels line run: | - echo ${{ env.CHANNELS }} + echo "${{ env.CHANNELS }}" - uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0 with: diff --git a/README.md b/README.md index 428fd0410f..04507fe063 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ To get the library from the latest oneAPI release, follow the instructions from Intel(R) [oneAPI installation guide](https://www.intel.com/content/www/us/en/developer/articles/guide/installation-guide-for-oneapi-toolkits.html). -> **NOTE:** You need to install the Intel(R) oneAPI AI Analytics Tookit to get +> **NOTE:** You need to install the Intel(R) oneAPI AI Analytics Toolkit to get >IDP and `dpctl`. diff --git a/cmake/IntelSYCLConfig.cmake b/cmake/IntelSYCLConfig.cmake old mode 100755 new mode 100644 index c51e47290c..7a4721dd6a --- a/cmake/IntelSYCLConfig.cmake +++ b/cmake/IntelSYCLConfig.cmake @@ -18,7 +18,7 @@ IntelSYCLConfig ------- -Library to verify SYCL compatability of CMAKE_CXX_COMPILER +Library to verify SYCL compatibility of CMAKE_CXX_COMPILER and passes relevant compiler flags. Result Variables @@ -290,7 +290,7 @@ if(nosycllang) set(IntelSYCL_NOT_FOUND_MESSAGE "${SYCL_REASON_FAILURE}") endif() -# Placeholder for identifying various implemenations of SYCL compilers. +# Placeholder for identifying various implementations of SYCL compilers. # for now, set to the CMAKE_CXX_COMPILER_ID set(SYCL_IMPLEMENTATION_ID "${CMAKE_CXX_COMPILER_ID}") diff --git a/conda-recipe/build.sh b/conda-recipe/build.sh index 1ca6329e3a..e892602ede 100755 --- a/conda-recipe/build.sh +++ b/conda-recipe/build.sh @@ -5,8 +5,10 @@ export LIBRARY_PATH="$LIBRARY_PATH:${BUILD_PREFIX}/lib" # Intel LLVM must cooperate with compiler and sysroot from conda echo "--gcc-toolchain=${BUILD_PREFIX} --sysroot=${BUILD_PREFIX}/${HOST}/sysroot -target ${HOST}" > icpx_for_conda.cfg -export ICPXCFG="$(pwd)/icpx_for_conda.cfg" -export ICXCFG="$(pwd)/icpx_for_conda.cfg" +ICPXCFG="$(pwd)/icpx_for_conda.cfg" +export ICPXCFG +ICXCFG="$(pwd)/icpx_for_conda.cfg" +export ICXCFG read -r GLIBC_MAJOR GLIBC_MINOR <<<"$(conda list '^sysroot_linux-64$' \ | tail -n 1 | awk '{print $2}' | grep -oP '\d+' | head -n 2 | tr '\n' ' ')" diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index d2053d106c..0bd31e059c 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -4,10 +4,10 @@ option(DPCTL_ENABLE_DOXYREST OFF ) -# Option to add verion links to the side bar. This option is primarily +# Option to add version links to the side bar. This option is primarily # intended to generate dpctl's docs for our github.io page. option(DPCTL_USE_MULTIVERSION_TEMPLATE - "Enable adding verion links to side bar" + "Enable adding version links to side bar" OFF ) diff --git a/docs/_legacy/docfiles/user_guides/QuickStart.rst b/docs/_legacy/docfiles/user_guides/QuickStart.rst index 57c443e543..382528cc98 100644 --- a/docs/_legacy/docfiles/user_guides/QuickStart.rst +++ b/docs/_legacy/docfiles/user_guides/QuickStart.rst @@ -262,7 +262,7 @@ library. pushd build || exit 1 INSTALL_PREFIX=$(pwd)/../install - rm -rf ${INSTALL_PREFIX} + rm -rf "${INSTALL_PREFIX}" export ONEAPI_ROOT=/opt/intel/oneapi DPCPP_ROOT=${ONEAPI_ROOT}/compiler/latest/linux diff --git a/docs/doc_sources/_static/dpctl.svg b/docs/doc_sources/_static/dpctl.svg old mode 100755 new mode 100644 diff --git a/docs/doc_sources/api_reference/dpctl/filter_selector_string.rst b/docs/doc_sources/api_reference/dpctl/filter_selector_string.rst index b31edbf789..f96a8764df 100644 --- a/docs/doc_sources/api_reference/dpctl/filter_selector_string.rst +++ b/docs/doc_sources/api_reference/dpctl/filter_selector_string.rst @@ -24,7 +24,7 @@ least one component. ``Backend`` specifies the desired backend of targeted devices, while ``DeviceType`` specifies the type of targeted devices. ``RelativeDeviceNumber`` refers to the number of the device that matches -any other given requirements, starting from `0` to marking the +any other given requirements, starting from 0 to marking the "first device that matches the requirements". Attempting to use a non-conforming string in places where filter selector diff --git a/docs/doc_sources/api_reference/dpctl_cmake.rst b/docs/doc_sources/api_reference/dpctl_cmake.rst index 62a9135e5f..e72b5dc23c 100644 --- a/docs/doc_sources/api_reference/dpctl_cmake.rst +++ b/docs/doc_sources/api_reference/dpctl_cmake.rst @@ -3,7 +3,7 @@ CMake support ============= -:py:mod:`dpctl` comes with the configuration file `dpctl-config.cmake` which is installed +:py:mod:`dpctl` comes with the configuration file :file:`dpctl-config.cmake` which is installed on the `standard search path CMake uses to search for packages `_. To build your extension that leverages :py:mod:`dpctl`, include the following line in your CMake script: diff --git a/docs/doc_sources/beginners_guides/installation.rst b/docs/doc_sources/beginners_guides/installation.rst index 75fab31e02..c3d41bf658 100644 --- a/docs/doc_sources/beginners_guides/installation.rst +++ b/docs/doc_sources/beginners_guides/installation.rst @@ -211,7 +211,7 @@ AMD build python scripts/build_locally.py --verbose --target-hip= -Note that the `oneAPI for AMD GPUs` plugin requires the architecture be specified and only +Note that the oneAPI for AMD GPUs plugin requires the architecture be specified and only one architecture can be specified at a time. To determine the architecture code (````) for your AMD GPU, run: diff --git a/docs/doc_sources/beginners_guides/managing_devices.rst b/docs/doc_sources/beginners_guides/managing_devices.rst index 4e7ec12cca..9389f47fc3 100644 --- a/docs/doc_sources/beginners_guides/managing_devices.rst +++ b/docs/doc_sources/beginners_guides/managing_devices.rst @@ -310,7 +310,7 @@ For Intel GPU devices, additional architectural information can be access with : In [2]: d_gpu = dpctl.SyclDevice() - # Output for Iris Xe integerate GPU, with PCI ID 0x9a49 + # Output for Iris Xe integrate GPU, with PCI ID 0x9a49 # (corresponding decimal value: 39497) In [3]: dpctl.utils.intel_device_info(d_gpu) Out[3]: diff --git a/docs/doc_sources/contributor_guides/building.rst b/docs/doc_sources/contributor_guides/building.rst index f1681c6c6a..df2a8c35b2 100644 --- a/docs/doc_sources/contributor_guides/building.rst +++ b/docs/doc_sources/contributor_guides/building.rst @@ -209,7 +209,7 @@ library. pushd build || exit 1 INSTALL_PREFIX=$(pwd)/../install - rm -rf ${INSTALL_PREFIX} + rm -rf "${INSTALL_PREFIX}" export ONEAPI_ROOT=/opt/intel/oneapi # Values are set as appropriate for oneAPI DPC++ 2024.0 # or later. diff --git a/docs/doc_sources/extlinks_gen.py b/docs/doc_sources/extlinks_gen.py index 6e61624cda..789e3a433a 100644 --- a/docs/doc_sources/extlinks_gen.py +++ b/docs/doc_sources/extlinks_gen.py @@ -19,7 +19,7 @@ def create_extlinks(): """Reads a JSON file to create a dictionary of urls in the format supported - by the sphinx.ect.extlinks extension. + by the sphinx.ext.extlinks extension. Returns: dict: A dictionary that is understood by the extlinks Sphinx extension. diff --git a/docs/doc_sources/index.rst b/docs/doc_sources/index.rst index e69559f7f6..3923b716b5 100644 --- a/docs/doc_sources/index.rst +++ b/docs/doc_sources/index.rst @@ -56,7 +56,7 @@ Intel(R) oneAPI :dpcpp_compiler:`DPC++ compiler <>`. Access API Reference - .. grid-item-card:: Contibutor Guides + .. grid-item-card:: Contributor Guides The contributing guidelines will suggest a process of contributing to :mod:`dpctl`. diff --git a/docs/doc_sources/user_guides/basic_concepts.rst b/docs/doc_sources/user_guides/basic_concepts.rst index d2438e4a38..ebec1d6377 100644 --- a/docs/doc_sources/user_guides/basic_concepts.rst +++ b/docs/doc_sources/user_guides/basic_concepts.rst @@ -111,7 +111,7 @@ backend. The context is required to map unified address space pointer to the dev where it was allocated unambiguously. In order for two DPC++-based Python extensions to share USM allocations, they each -must use the `same` SYCL context when submitting for execution programs that would +must use the *same* SYCL context when submitting for execution programs that would access this allocation. Since ``sycl::context`` is dynamically constructed by each extension sharing a USM allocation, diff --git a/dpctl/_host_task_util.hpp b/dpctl/_host_task_util.hpp index 4db07e1cb1..5a2ea19645 100644 --- a/dpctl/_host_task_util.hpp +++ b/dpctl/_host_task_util.hpp @@ -65,7 +65,7 @@ DPCTLSyclEventRef async_dec_ref(DPCTLSyclQueueRef QRef, #else const bool finalizing = Py_IsFinalizing(); #endif - // if the main thread has not finilized the interpreter yet + // if the main thread has not finalized the interpreter yet if (initialized && !finalizing) { PyGILState_STATE gstate; gstate = PyGILState_Ensure(); diff --git a/dpctl/_sycl_device.pyx b/dpctl/_sycl_device.pyx index b887c313c2..6c6638e2e3 100644 --- a/dpctl/_sycl_device.pyx +++ b/dpctl/_sycl_device.pyx @@ -1210,7 +1210,7 @@ cdef class SyclDevice(_SyclDevice): sg_sizes = DPCTLDevice_GetSubGroupSizes( self._device_ref, &sg_sizes_len) if (sg_sizes is not NULL and sg_sizes_len > 0): - res = list() + res = [] for i in range(sg_sizes_len): res.append(sg_sizes[i]) DPCTLSize_t_Array_Delete(sg_sizes) @@ -1691,7 +1691,7 @@ cdef class SyclDevice(_SyclDevice): return _get_devices(DVRef) def create_sub_devices(self, **kwargs): - """create_sub_devices(partition=parition_spec) + """create_sub_devices(partition=partition_spec) Creates a list of sub-devices by partitioning a root device based on the provided partition specifier. @@ -1755,12 +1755,12 @@ cdef class SyclDevice(_SyclDevice): """ if "partition" not in kwargs: raise TypeError( - "create_sub_devices(partition=parition_spec) is expected." + "create_sub_devices(partition=partition_spec) is expected." ) partition = kwargs.pop("partition") if kwargs: raise TypeError( - "create_sub_devices(partition=parition_spec) is expected." + "create_sub_devices(partition=partition_spec) is expected." ) if isinstance(partition, int) and partition >= 0: return self.create_sub_devices_equally(partition) diff --git a/dpctl/_sycl_device_factory.pyx b/dpctl/_sycl_device_factory.pyx index 1689249bc9..7a9794ede0 100644 --- a/dpctl/_sycl_device_factory.pyx +++ b/dpctl/_sycl_device_factory.pyx @@ -416,7 +416,7 @@ cdef class _DefaultDeviceCache: cdef dict __device_map__ def __cinit__(self): - self.__device_map__ = dict() + self.__device_map__ = {} cdef get_or_create(self): """Return instance of SyclDevice and indicator if cache diff --git a/dpctl/_sycl_queue.pyx b/dpctl/_sycl_queue.pyx index b0b8336788..74b3b49d71 100644 --- a/dpctl/_sycl_queue.pyx +++ b/dpctl/_sycl_queue.pyx @@ -1786,7 +1786,7 @@ cdef class RawKernelArg: Variadic argument, see class documentation. Raises: - TypeError: In case of incorrect arguments given to constructurs, + TypeError: In case of incorrect arguments given to constructors, unexpected types of input arguments. """ def __cinit__(self, *args): diff --git a/dpctl/_sycl_queue_manager.pyx b/dpctl/_sycl_queue_manager.pyx index bf720e9402..9638ed211f 100644 --- a/dpctl/_sycl_queue_manager.pyx +++ b/dpctl/_sycl_queue_manager.pyx @@ -35,7 +35,7 @@ cdef class _DeviceDefaultQueueCache: cdef dict __device_queue_map__ def __cinit__(self): - self.__device_queue_map__ = dict() + self.__device_queue_map__ = {} def get_or_create(self, key): """Return instance of SyclQueue and indicator if cache diff --git a/dpctl/_sycl_timer.py b/dpctl/_sycl_timer.py index 09e668281a..9acca40747 100644 --- a/dpctl/_sycl_timer.py +++ b/dpctl/_sycl_timer.py @@ -190,7 +190,7 @@ def __init__( self.queue = None self.host_times = [] self.bracketing_events = [] - self._context_data = list() + self._context_data = [] if device_timer is None: device_timer = "queue_barrier" if device_timer == "queue_barrier": diff --git a/dpctl/apis/include/dpctl4pybind11.hpp b/dpctl/apis/include/dpctl4pybind11.hpp index 6e1a9fe3da..416227d9ac 100644 --- a/dpctl/apis/include/dpctl4pybind11.hpp +++ b/dpctl/apis/include/dpctl4pybind11.hpp @@ -157,11 +157,11 @@ class dpctl_capi { const bool initialized = Py_IsInitialized(); #if PY_VERSION_HEX < 0x30d0000 - const bool finilizing = _Py_IsFinalizing(); + const bool finalizing = _Py_IsFinalizing(); #else - const bool finilizing = Py_IsFinalizing(); + const bool finalizing = Py_IsFinalizing(); #endif - const bool guard = initialized && !finilizing; + const bool guard = initialized && !finalizing; if (guard) { delete p; diff --git a/dpctl/tests/helper/_helper.py b/dpctl/tests/helper/_helper.py index 475669976c..c79fddd305 100644 --- a/dpctl/tests/helper/_helper.py +++ b/dpctl/tests/helper/_helper.py @@ -43,7 +43,7 @@ def create_invalid_capsule(): return ctor(id(ctor), b"invalid", 0) -def get_queue_or_skip(args=tuple()): +def get_queue_or_skip(args=()): try: q = dpctl.SyclQueue(*args) except dpctl.SyclQueueCreationError: diff --git a/dpctl/tests/test_sycl_device.py b/dpctl/tests/test_sycl_device.py index c8828ee68f..e9eee7e223 100644 --- a/dpctl/tests/test_sycl_device.py +++ b/dpctl/tests/test_sycl_device.py @@ -192,7 +192,7 @@ def test_supported_aspect(supported_aspect): assert getattr(d_wa, "has_aspect_" + supported_aspect) except dpctl.SyclDeviceCreationError: # ValueError may be raised if no device with - # requested aspect charateristics is available + # requested aspect characteristics is available assert not has_it @@ -405,7 +405,7 @@ def test_peer_device_arg_validation(method): dev = dpctl.SyclDevice() except dpctl.SyclDeviceCreationError: pytest.skip("No default device available") - bad_dev = dict() + bad_dev = {} callable = getattr(dev, method) with pytest.raises(TypeError): callable(bad_dev) diff --git a/dpctl/tests/test_sycl_event.py b/dpctl/tests/test_sycl_event.py index 2985bf3af0..584c8932da 100644 --- a/dpctl/tests/test_sycl_event.py +++ b/dpctl/tests/test_sycl_event.py @@ -70,7 +70,7 @@ def test_create_event_from_capsule(): def test_invalid_constructor_arg(): with pytest.raises(TypeError): - dpctl.SyclEvent(list()) + dpctl.SyclEvent([]) def test_wait_with_event(): diff --git a/dpctl/tests/test_sycl_queue.py b/dpctl/tests/test_sycl_queue.py index 61af60da34..613a13adb6 100644 --- a/dpctl/tests/test_sycl_queue.py +++ b/dpctl/tests/test_sycl_queue.py @@ -209,7 +209,7 @@ def test_queue_invalid_property(): with pytest.raises(ValueError): dpctl.SyclQueue(property=4.5) with pytest.raises(ValueError): - dpctl.SyclQueue(property=["abc", tuple()]) + dpctl.SyclQueue(property=["abc", ()]) def test_queue_capsule(): @@ -345,13 +345,13 @@ def test_queue_memops(): q.prefetch(m1, 512) q.mem_advise(m1, 512, 0) with pytest.raises(TypeError): - q.memcpy(m1, list(), 512) + q.memcpy(m1, [], 512) with pytest.raises(TypeError): - q.memcpy(list(), m2, 512) + q.memcpy([], m2, 512) with pytest.raises(TypeError): - q.prefetch(list(), 512) + q.prefetch([], 512) with pytest.raises(TypeError): - q.mem_advise(list(), 512, 0) + q.mem_advise([], 512, 0) @pytest.fixture(scope="session") diff --git a/dpctl/tests/test_sycl_usm.py b/dpctl/tests/test_sycl_usm.py index c17951f993..b1aefa325c 100644 --- a/dpctl/tests/test_sycl_usm.py +++ b/dpctl/tests/test_sycl_usm.py @@ -101,7 +101,7 @@ def test_memory_without_context(): def test_memory_cpu_context(): mobj = _create_memory() - # type respective to the context in which + # USM type respective to the context in which # memory was created usm_type = mobj.get_usm_type() assert usm_type == "shared" @@ -110,9 +110,9 @@ def test_memory_cpu_context(): cpu_queue = dpctl.SyclQueue("cpu") except dpctl.SyclQueueCreationError: pytest.skip("SyclQueue('cpu') failed, skip further testing") - # type as view from CPU queue + # USM type as view from CPU queue usm_type = mobj.get_usm_type(cpu_queue) - # type can be unknown if current queue is + # USM type can be unknown if current queue is # not in the same SYCL context assert usm_type in ["unknown", "shared"] @@ -265,7 +265,7 @@ def test_usm_type_exceptions(): with pytest.raises(TypeError): m.get_usm_type(syclobj=Ellipsis) with pytest.raises(TypeError): - m.get_usm_type_enum(syclobj=list()) + m.get_usm_type_enum(syclobj=[]) def test_sycl_usm_array_interface(memory_ctor): @@ -419,7 +419,7 @@ def invalid_version(suai_iface): # data validation def invalid_data(suai_iface): "Set data to invalid" - suai_iface["data"] = tuple() + suai_iface["data"] = () return suai_iface v = View( @@ -439,7 +439,7 @@ def invalid_data(suai_iface): with pytest.raises(ValueError): MemoryUSMShared(v) - # typestr validation + # validate typestring def invalid_typestr(suai_iface): suai_iface["typestr"] = "invalid" return suai_iface diff --git a/dpctl/tests/test_utils.py b/dpctl/tests/test_utils.py index 2114346dbc..472edd2ff2 100644 --- a/dpctl/tests/test_utils.py +++ b/dpctl/tests/test_utils.py @@ -61,7 +61,7 @@ def test_intel_device_info(): def test_intel_device_info_validation(): - invalid_device = dict() + invalid_device = {} with pytest.raises(TypeError): dpctl.utils.intel_device_info(invalid_device) diff --git a/dpctl/utils/CMakeLists.txt b/dpctl/utils/CMakeLists.txt index 40569da8a4..8f27fb0566 100644 --- a/dpctl/utils/CMakeLists.txt +++ b/dpctl/utils/CMakeLists.txt @@ -57,7 +57,7 @@ foreach(python_module_name ${_pybind11_targets}) ${_dpctl_sycl_target_link_options} ) endif() - # TODO: update source so they refernece individual libraries instead of + # TODO: update source so they reference individual libraries instead of # dpctl4pybind11.hpp. It will allow to simplify dependency tree target_link_libraries(${python_module_name} PRIVATE DpctlCAPI) if (DPCTL_WITH_REDIST) diff --git a/dpctl/utils/_intel_device_info.py b/dpctl/utils/_intel_device_info.py index f4de00a8f4..c25d4575db 100644 --- a/dpctl/utils/_intel_device_info.py +++ b/dpctl/utils/_intel_device_info.py @@ -105,7 +105,7 @@ def intel_device_info(dev, /): if mbw: res["memory_bus_width"] = mbw return res - return dict() + return {} __all__ = [ diff --git a/examples/cython/README.md b/examples/cython/README.md index 010e871867..e2daa39be6 100644 --- a/examples/cython/README.md +++ b/examples/cython/README.md @@ -4,5 +4,5 @@ The `dpctl` package provides Cython definition files for types it defines. Use `cimport dpctl as c_dpctl` or `cimport dpctl.memory as c_dpm` to use these definitions. -Cython definition fille `dpctl.sycl` provides incomplete definitions of core SYCL runtime classes as +Cython definition file `dpctl.sycl` provides incomplete definitions of core SYCL runtime classes as well as conversion routine between `SyclInterface` reference types and SYCL runtime classes. diff --git a/examples/cython/sycl_buffer/README.md b/examples/cython/sycl_buffer/README.md index 89d57f0d40..6cda697dcf 100644 --- a/examples/cython/sycl_buffer/README.md +++ b/examples/cython/sycl_buffer/README.md @@ -1,6 +1,6 @@ # SYCL Extension Working NumPy Array Input via SYCL Buffers -## Decription +## Description Cython function expecting a 2D array in a C-contiguous layout that computes column-wise total by using SYCL oneMKL (as GEMV call with diff --git a/examples/cython/sycl_buffer/scripts/bench.py b/examples/cython/sycl_buffer/scripts/bench.py index 0589c7ad36..60be049e65 100644 --- a/examples/cython/sycl_buffer/scripts/bench.py +++ b/examples/cython/sycl_buffer/scripts/bench.py @@ -79,7 +79,7 @@ def run_offload(selector_string, X): for ss in ["opencl:cpu", "opencl:gpu", "level_zero:gpu"]: print(f"Result for '{ss}': {run_offload(ss, X)}") -print("=" * 10 + " Running bechmarks " + "=" * 10) +print("=" * 10 + " Running benchmarks " + "=" * 10) for ss in ["opencl:cpu", "opencl:gpu", "level_zero:gpu"]: print(f"Timing offload to '{ss}': {bench_offload(ss, X)}") diff --git a/examples/pybind11/onemkl_gemv/sycl_gemm/build.sh b/examples/pybind11/onemkl_gemv/sycl_gemm/build.sh index 221f484ae1..7e3a770d3b 100755 --- a/examples/pybind11/onemkl_gemv/sycl_gemm/build.sh +++ b/examples/pybind11/onemkl_gemv/sycl_gemm/build.sh @@ -1,15 +1,20 @@ #!/bin/bash -x -export PYBIND11_INCLUDES=$(python3 -m pybind11 --includes) -export DPCTL_INCLUDE_DIR=$(python -c "import dpctl; print(dpctl.get_include())") -export DPCTL_LIB_DIR=${DPCTL_INCLUDE_DIR}/.. -export PY_EXT_SUFFIX=$(python3-config --extension-suffix) -export HOST_COMPILER_FLAGS="-g -std=c++2a -O3 -Wno-return-type -Wno-deprecated-declarations -fPIC ${PYBIND11_INCLUDES} -I${DPCTL_INCLUDE_DIR}" +PYBIND11_INCLUDES=$(python3 -m pybind11 --includes) +export PYBIND11_INCLUDES +DPCTL_INCLUDE_DIR=$(python -c "import dpctl; print(dpctl.get_include())") +export DPCTL_INCLUDE_DIR +DPCTL_LIB_DIR=${DPCTL_INCLUDE_DIR}/.. +export DPCTL_LIB_DIR +PY_EXT_SUFFIX=$(python3-config --extension-suffix) +export PY_EXT_SUFFIX +HOST_COMPILER_FLAGS="-g -std=c++2a -O3 -Wno-return-type -Wno-deprecated-declarations -fPIC ${PYBIND11_INCLUDES} -I${DPCTL_INCLUDE_DIR}" +export HOST_COMPILER_FLAGS # -fsycl-host-compiler=g++ \ # -fsycl-host-compiler-options="${HOST_COMPILER_FLAGS}" \ dpcpp -O3 -fsycl -Wno-deprecated-declarations \ -fpic -fPIC -shared \ - ${PYBIND11_INCLUDES} -I${DPCTL_INCLUDE_DIR} \ - sycl_gemm.cpp -o _sycl_gemm${PY_EXT_SUFFIX} + "${PYBIND11_INCLUDES}" -I"${DPCTL_INCLUDE_DIR}" \ + sycl_gemm.cpp -o _sycl_gemm"${PY_EXT_SUFFIX}" diff --git a/examples/python/_runner.py b/examples/python/_runner.py index 94ab6b4077..452f0207b9 100644 --- a/examples/python/_runner.py +++ b/examples/python/_runner.py @@ -75,7 +75,7 @@ def run_examples(example_description, glbls_dict): if has_nondefault_params(sgn): if not args.quiet: print( - f"INFO: Skip exectution of {fn} as it " + f"INFO: Skip execution of {fn} as it " "requires arguments" ) else: diff --git a/examples/python/subdevices.py b/examples/python/subdevices.py index e5e69373b8..282674f297 100644 --- a/examples/python/subdevices.py +++ b/examples/python/subdevices.py @@ -35,7 +35,7 @@ def subdivide_root_cpu_device(): """ Create root CPU device, and equally partition it into smaller CPU devices 4 execution units each, - and then further parition those subdevice into + and then further partition those sub-devices into smaller sub-devices """ cpu_d = dpctl.SyclDevice("cpu") @@ -84,7 +84,7 @@ def create_subdevice_queue(): cpu_count = cpu_d.max_compute_units sub_devs = cpu_d.create_sub_devices(partition=cpu_count // 2) multidevice_ctx = dpctl.SyclContext(sub_devs) - # create a SyclQueue for each sub-device, using commont + # create a SyclQueue for each sub-device, using common # multi-device context q0, q1 = [dpctl.SyclQueue(multidevice_ctx, d) for d in sub_devs] # for each sub-device allocate 26 bytes diff --git a/examples/python/usm_memory_host_access.py b/examples/python/usm_memory_host_access.py index 21092a01a5..f6af9c4305 100644 --- a/examples/python/usm_memory_host_access.py +++ b/examples/python/usm_memory_host_access.py @@ -23,7 +23,7 @@ # USM-shared and USM-host pointers are host-accessible, # meaning they are accessible from Python, therefore -# they implement Pyton buffer protocol +# they implement Python buffer protocol # allocate 1K of USM-shared buffer ms = dpmem.MemoryUSMShared(1024) diff --git a/libsyclinterface/cmake/modules/GetProjectVersion.cmake b/libsyclinterface/cmake/modules/GetProjectVersion.cmake index 8968eec729..a45ad0ee96 100644 --- a/libsyclinterface/cmake/modules/GetProjectVersion.cmake +++ b/libsyclinterface/cmake/modules/GetProjectVersion.cmake @@ -45,7 +45,7 @@ function(get_version) if(NOT result EQUAL 0) message(WARNING "Something went wrong when executing \"git describe\". " - "Seting all version values to 0." + "Setting all version values to 0." ) set(VERSION_MAJOR 0 PARENT_SCOPE) set(VERSION_MINOR 0 PARENT_SCOPE) @@ -63,7 +63,7 @@ function(get_version) else() message(WARNING "The last git tag does not use proper semantic versioning. " - "Seting all version values to 0." + "Setting all version values to 0." ) set(VERSION_MAJOR 0 PARENT_SCOPE) set(VERSION_MINOR 0 PARENT_SCOPE) @@ -86,7 +86,7 @@ function(get_version) if(NOT result EQUAL 0) message(WARNING "Something went wrong when executing \"git describe\". " - "Seting all version values to 0." + "Setting all version values to 0." ) set(VERSION_MAJOR 0 PARENT_SCOPE) set(VERSION_MINOR 0 PARENT_SCOPE) diff --git a/libsyclinterface/dbg_build.bat b/libsyclinterface/dbg_build.bat index fd591d9399..6101f41471 100644 --- a/libsyclinterface/dbg_build.bat +++ b/libsyclinterface/dbg_build.bat @@ -5,7 +5,7 @@ if errorlevel 1 ( call "%ONEAPI_ROOT%\compiler\latest\env\vars.bat" if %ERRORLEVEL% neq 0 exit 1 ) -@REM conda uses %ERRORLEVEL% but FPGA scripts can set it. So it should be reseted. +@REM conda uses %ERRORLEVEL% but FPGA scripts can set it. So it should be reset. set ERRORLEVEL= rmdir /S /Q build diff --git a/libsyclinterface/dbg_build.sh b/libsyclinterface/dbg_build.sh index cba4e71d71..c090bc700c 100755 --- a/libsyclinterface/dbg_build.sh +++ b/libsyclinterface/dbg_build.sh @@ -5,10 +5,11 @@ mkdir build pushd build || exit 1 INSTALL_PREFIX=$(pwd)/../install -rm -rf ${INSTALL_PREFIX} +rm -rf "${INSTALL_PREFIX}" -# With DPC++ 2024.0 adn newer set these to ensure that +# With DPC++ 2024.0 and newer set these to ensure that # cmake can find llvm-cov and other utilities +# shellcheck disable=SC2034 LLVM_TOOLS_HOME=${CMPLR_ROOT}/bin/compiler PATH=$PATH:${CMPLR_ROOT}/bin/compiler @@ -17,8 +18,8 @@ cmake \ -DCMAKE_C_COMPILER=icx \ -DCMAKE_CXX_COMPILER=icpx \ -DCMAKE_CXX_FLAGS=-fsycl \ - -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \ - -DCMAKE_PREFIX_PATH=${INSTALL_PREFIX} \ + -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX}" \ + -DCMAKE_PREFIX_PATH="${INSTALL_PREFIX}" \ -DDPCTL_ENABLE_L0_PROGRAM_CREATION=ON \ -DDPCTL_BUILD_CAPI_TESTS=ON \ -DDPCTL_GENERATE_COVERAGE=OFF \ diff --git a/libsyclinterface/dbg_build_custom.sh b/libsyclinterface/dbg_build_custom.sh index ad738a0c8a..4c30cca1ce 100755 --- a/libsyclinterface/dbg_build_custom.sh +++ b/libsyclinterface/dbg_build_custom.sh @@ -2,10 +2,10 @@ set +xe rm -rf build mkdir build -pushd build +pushd build || exit 1 -INSTALL_PREFIX=`pwd`/../install -rm -rf ${INSTALL_PREFIX} +INSTALL_PREFIX=$(pwd)/../install +rm -rf "${INSTALL_PREFIX}" if [[ -z "${DPCPP_HOME}" ]]; then echo "Set the DPCPP_HOME environment variable to root directory." @@ -13,11 +13,11 @@ fi cmake \ -DCMAKE_BUILD_TYPE=Debug \ - -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \ - -DCMAKE_PREFIX_PATH=${INSTALL_PREFIX} \ - -DDPCTL_CUSTOM_DPCPP_INSTALL_DIR=${DPCPP_HOME} \ - -DCMAKE_LINKER:PATH=${DPCPP_HOME}/bin/lld \ - -DDPCTL_ENABLE_L0_PROGRAM_CREATION=${USE_LO_HEADERS} \ + -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX}" \ + -DCMAKE_PREFIX_PATH="${INSTALL_PREFIX}" \ + -DDPCTL_CUSTOM_DPCPP_INSTALL_DIR="${DPCPP_HOME}" \ + -DCMAKE_LINKER:PATH="${DPCPP_HOME}/bin/lld" \ + -DDPCTL_ENABLE_L0_PROGRAM_CREATION="${USE_LO_HEADERS}" \ -DDPCTL_BUILD_CAPI_TESTS=ON \ -DDPCTL_GENERATE_COVERAGE=ON \ .. @@ -32,4 +32,4 @@ make lcov-genhtml # ctest -V --progress --output-on-failure -j 4 # cd .. -popd +popd || exit 1 diff --git a/libsyclinterface/helper/source/dpctl_error_handlers.cpp b/libsyclinterface/helper/source/dpctl_error_handlers.cpp index 149eb26692..8ee9626f00 100644 --- a/libsyclinterface/helper/source/dpctl_error_handlers.cpp +++ b/libsyclinterface/helper/source/dpctl_error_handlers.cpp @@ -20,7 +20,7 @@ /// /// \file /// A functor to use for passing an error handler callback function to sycl -/// context and queue contructors. +/// context and queue constructors. //===----------------------------------------------------------------------===// #include "dpctl_error_handlers.h" diff --git a/libsyclinterface/include/syclinterface/Support/DllExport.h b/libsyclinterface/include/syclinterface/Support/DllExport.h index 0578387145..f2eb627bc7 100644 --- a/libsyclinterface/include/syclinterface/Support/DllExport.h +++ b/libsyclinterface/include/syclinterface/Support/DllExport.h @@ -1,4 +1,4 @@ -//===--------- DllExport.h - Decalres dllexport for Windows -*-C++-*- ===// +//===--------- DllExport.h - Declares dllexport for Windows -*-C++-*- ===// // // Data Parallel Control (dpctl) // diff --git a/libsyclinterface/include/syclinterface/dpctl_sycl_device_manager.h b/libsyclinterface/include/syclinterface/dpctl_sycl_device_manager.h index cec8ec076c..3f4f08e18f 100644 --- a/libsyclinterface/include/syclinterface/dpctl_sycl_device_manager.h +++ b/libsyclinterface/include/syclinterface/dpctl_sycl_device_manager.h @@ -41,7 +41,7 @@ DPCTL_C_EXTERN_C_BEGIN * @{ */ -// Declares a set of types abd functions to deal with vectors of +// Declares a set of types and functions to deal with vectors of // DPCTLSyclDeviceRef. Refer dpctl_vector_macros.h DPCTL_DECLARE_VECTOR(Device) diff --git a/libsyclinterface/include/syclinterface/dpctl_sycl_platform_manager.h b/libsyclinterface/include/syclinterface/dpctl_sycl_platform_manager.h index 99ff224317..5fce58bd19 100644 --- a/libsyclinterface/include/syclinterface/dpctl_sycl_platform_manager.h +++ b/libsyclinterface/include/syclinterface/dpctl_sycl_platform_manager.h @@ -39,7 +39,7 @@ DPCTL_C_EXTERN_C_BEGIN * @{ */ -// Declares a set of types abd functions to deal with vectors of +// Declares a set of types and functions to deal with vectors of // DPCTLSyclPlatformRef. Refer dpctl_vector_macros.h DPCTL_DECLARE_VECTOR(Platform) diff --git a/libsyclinterface/tests/test_service.cpp b/libsyclinterface/tests/test_service.cpp index b8581092d5..4b75b34e4c 100644 --- a/libsyclinterface/tests/test_service.cpp +++ b/libsyclinterface/tests/test_service.cpp @@ -1,4 +1,4 @@ -//===--- test_service.cpp - Test cases for sevice functions ===// +//===--- test_service.cpp - Test cases for service functions ===// // // Data Parallel Control (dpctl) // From 22954af8926518dc3d47d73eb3d6b309b3a668af Mon Sep 17 00:00:00 2001 From: Nikita Grigorian Date: Wed, 15 Apr 2026 20:23:07 -0700 Subject: [PATCH 05/13] ignore blame for linting commit --- .git-blame-ignore-revs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index 654afad97a..c60ead8a6f 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -17,3 +17,6 @@ b37657e6ad9af16eaec2982d8e2397acd2af2881 # Add cython-lint to pre-commit config 0ce1aef210ffb88b7d2ea3a89e861486498f652f + +# Add new linters and rules to pre-commit +5cf074899f226726d07026db9899bb7632d8c1de From a871555698dc0c0fbbe19dce17689801bbbe6f9a Mon Sep 17 00:00:00 2001 From: Nikita Grigorian Date: Wed, 15 Apr 2026 20:27:12 -0700 Subject: [PATCH 06/13] fix CI after linting changes --- .github/workflows/conda-package.yml | 9 +-------- .github/workflows/generate-coverage.yaml | 8 ++++---- .github/workflows/generate-docs.yml | 8 ++++---- 3 files changed, 9 insertions(+), 16 deletions(-) diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index 8924245c78..e1e24eb7ad 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -60,14 +60,7 @@ jobs: - name: Build conda package run: | # use bootstrap channel to pull NumPy linked with OpenBLAS - CHANNELS="-c conda-forge --override-channels" - VERSIONS="--python ${{ matrix.python }} --numpy 2.0" - TEST="--no-test" - conda build \ - "$TEST" \ - "$VERSIONS" \ - "$CHANNELS" \ - conda-recipe + conda build --no-test --python ${{ matrix.python }} --numpy 2.0 -c conda-forge --override-channels conda-recipe - name: Upload artifact uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: diff --git a/.github/workflows/generate-coverage.yaml b/.github/workflows/generate-coverage.yaml index d29cba85a3..a1f4e91c22 100644 --- a/.github/workflows/generate-coverage.yaml +++ b/.github/workflows/generate-coverage.yaml @@ -26,10 +26,10 @@ jobs: - name: Add Intel repository run: | - wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB - cat GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null - rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB - echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list + wget -qO- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \ + | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null + echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" \ + | sudo tee /etc/apt/sources.list.d/oneAPI.list sudo apt update - name: Install latest Intel OneAPI diff --git a/.github/workflows/generate-docs.yml b/.github/workflows/generate-docs.yml index cd47d7a3ea..fa81f764de 100644 --- a/.github/workflows/generate-docs.yml +++ b/.github/workflows/generate-docs.yml @@ -24,10 +24,10 @@ jobs: - name: Add Intel repository if: ${{ !github.event.pull_request || github.event.action != 'closed' }} run: | - wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB - cat GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null - rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB - echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list + wget -qO- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \ + | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null + echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" \ + | sudo tee /etc/apt/sources.list.d/oneAPI.list sudo apt update - name: Install Intel OneAPI if: ${{ !github.event.pull_request || github.event.action != 'closed' }} From e0e8f27e5ca0bda3bf444d7857731575b1fbb5da Mon Sep 17 00:00:00 2001 From: Nikita Grigorian Date: Wed, 15 Apr 2026 20:30:54 -0700 Subject: [PATCH 07/13] use mirrors-clang-format also moves to clang-format 22.1.3 --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 08fe5cee1a..58174eeafd 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -71,8 +71,8 @@ repos: rev: 7.3.0 hooks: - id: flake8 -- repo: https://github.com/pocc/pre-commit-hooks - rev: v1.3.5 +- repo: https://github.com/pre-commit/mirrors-clang-format + rev: v22.1.3 hooks: - id: clang-format args: ["-i"] From 759dcdc80d0d99790205e87bdd7c5d4f2e93a1ff Mon Sep 17 00:00:00 2001 From: Nikita Grigorian Date: Wed, 15 Apr 2026 20:37:05 -0700 Subject: [PATCH 08/13] reformat for clang-format 22.1.3 --- .../external_usm_allocation/_usm_alloc_example.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/pybind11/external_usm_allocation/external_usm_allocation/_usm_alloc_example.cpp b/examples/pybind11/external_usm_allocation/external_usm_allocation/_usm_alloc_example.cpp index b982fcaa20..f92a99026e 100644 --- a/examples/pybind11/external_usm_allocation/external_usm_allocation/_usm_alloc_example.cpp +++ b/examples/pybind11/external_usm_allocation/external_usm_allocation/_usm_alloc_example.cpp @@ -49,7 +49,7 @@ struct DMatrix : n_(rows), m_(columns), q_(q), alloc_(q), vec_(n_ * m_, alloc_) { } - ~DMatrix(){}; + ~DMatrix() {}; DMatrix(const DMatrix &) = default; DMatrix(DMatrix &&) = default; From 0bde0486266b1baab04a700f01ab83d4d1d21ebc Mon Sep 17 00:00:00 2001 From: Nikita Grigorian Date: Wed, 15 Apr 2026 21:12:25 -0700 Subject: [PATCH 09/13] add clang-format change to blame ignore --- .git-blame-ignore-revs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index c60ead8a6f..dccd02b48a 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -20,3 +20,6 @@ b37657e6ad9af16eaec2982d8e2397acd2af2881 # Add new linters and rules to pre-commit 5cf074899f226726d07026db9899bb7632d8c1de + +# Transition from clang-format 18 to clang-format 22 +759dcdc80d0d99790205e87bdd7c5d4f2e93a1ff From 434c07882adf1d01b6cc7a8d4bea22bd07eb84e3 Mon Sep 17 00:00:00 2001 From: Nikita Grigorian Date: Wed, 15 Apr 2026 21:53:56 -0700 Subject: [PATCH 10/13] add disable shellcheck --- .github/workflows/conda-package.yml | 36 ++++++++++++++++++----------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index e1e24eb7ad..55b2ee5d4b 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -185,8 +185,9 @@ jobs: CHANNELS="-c $GITHUB_WORKSPACE/channel ${{ env.CHANNELS }}" export CHANNELS PACKAGE_VERSION=$(python -c "${VER_SCRIPT1} ${VER_SCRIPT2}") - export PACKAGE_VERSION - conda create -n "${{ env.TEST_ENV_NAME }}" "${{ env.PACKAGE_NAME }}=${PACKAGE_VERSION}" python=${{ matrix.python }} "$CHANNELS" --only-deps --dry-run > lockfile + export PACKAGE_VERSION + # shellcheck disable=SC2086 + conda create -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=${PACKAGE_VERSION} python=${{ matrix.python }} $CHANNELS --only-deps --dry-run > lockfile cat lockfile - name: Set pkgs_dirs run: | @@ -210,7 +211,8 @@ jobs: export TEST_DEPENDENCIES PACKAGE_VERSION=$(python -c "${VER_SCRIPT1} ${VER_SCRIPT2}") export PACKAGE_VERSION - conda create -n "${{ env.TEST_ENV_NAME }}" "${{ env.PACKAGE_NAME }}=${PACKAGE_VERSION}" "${TEST_DEPENDENCIES}" python=${{ matrix.python }} "${CHANNELS}" + # shellcheck disable=SC2086 + conda create -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=${PACKAGE_VERSION} $TEST_DEPENDENCIES python=${{ matrix.python }} $CHANNELS # Test installed packages conda list -n "${{ env.TEST_ENV_NAME }}" - name: Smoke test @@ -553,7 +555,8 @@ jobs: export CHANNELS PACKAGE_VERSION=$(python -c "${VER_SCRIPT1} ${VER_SCRIPT2}") export PACKAGE_VERSION - conda create -n "${{ env.EXAMPLES_ENV_NAME }}" "${{ env.PACKAGE_NAME }}=${PACKAGE_VERSION}" python=${{ matrix.python }} "$CHANNELS" --only-deps --dry-run > lockfile + # shellcheck disable=SC2086 + conda create -n ${{ env.EXAMPLES_ENV_NAME }} ${{ env.PACKAGE_NAME }}=${PACKAGE_VERSION} python=${{ matrix.python }} $CHANNELS --only-deps --dry-run > lockfile cat lockfile - name: Set pkgs_dirs run: | @@ -577,20 +580,26 @@ jobs: export CHANNELS="${{ env.CHANNELS }}" . "$CONDA/etc/profile.d/conda.sh" DPCTL_DEPENDS="$(python -c "${VER_SCRIPT1} ${VER_SCRIPT3}")" + export DPCTL_DEPENDS echo "Dpctl dependencies: ${DPCTL_DEPENDS}" - conda create -n "${{ env.EXAMPLES_ENV_NAME }}" -y pytest python="${{ matrix.python }}" "setuptools<72.2.0" "$CHANNELS" + # shellcheck disable=SC2086 + conda create -n ${{ env.EXAMPLES_ENV_NAME }} -y pytest python=${{ matrix.python }} "setuptools<72.2.0" $CHANNELS echo "Environment created" - conda install -n "${{ env.EXAMPLES_ENV_NAME }}" -y cmake ninja "$CHANNELS" || exit 1 + # shellcheck disable=SC2086 + conda install -n ${{ env.EXAMPLES_ENV_NAME }} -y cmake ninja $CHANNELS || exit 1 echo "Cmake and Ninja installed" - conda install -n "${{ env.EXAMPLES_ENV_NAME }}" -y pybind11 cython scikit-build "$CHANNELS" || exit 1 + # shellcheck disable=SC2086 + conda install -n ${{ env.EXAMPLES_ENV_NAME }} -y pybind11 cython scikit-build $CHANNELS || exit 1 echo "scikit-build installed" - conda install -n "${{ env.EXAMPLES_ENV_NAME }}" -y mkl-dpcpp \ + # shellcheck disable=SC2086 + conda install -n ${{ env.EXAMPLES_ENV_NAME }} -y mkl-dpcpp \ mkl-devel-dpcpp dpcpp_cpp_rt "${DPCTL_DEPENDS}" \ - "$CHANNELS" || exit 1 + $CHANNELS || exit 1 echo "IPL installed" - conda create -y -n "${{ env.BUILD_ENV_NAME }}" "$CHANNELS" gcc_linux-64 gxx_linux-64 \ - "${{ env.DPCPP_CMPLR }}" "${DPCTL_DEPENDS}" \ - "sysroot_linux-64>=2.28" + # shellcheck disable=SC2086 + conda create -y -n ${{ env.BUILD_ENV_NAME }} $CHANNELS gcc_linux-64 gxx_linux-64 \ + ${{ env.DPCPP_CMPLR }} ${DPCTL_DEPENDS} \ + sysroot_linux-64>=2.28 echo "Compiler installed" conda list -n "${{ env.BUILD_ENV_NAME }}" - name: Install dpctl @@ -601,7 +610,8 @@ jobs: export CHANNELS PACKAGE_VERSION=$(python -c "${VER_SCRIPT1} ${VER_SCRIPT2}") export PACKAGE_VERSION - conda install -n "${{ env.EXAMPLES_ENV_NAME }}" -y "${CHANNELS}" "${{ env.PACKAGE_NAME }}=${PACKAGE_VERSION}" dpnp || exit 1 + # shellcheck disable=SC2086 + conda install -n ${{ env.EXAMPLES_ENV_NAME }} -y $CHANNELS ${{ env.PACKAGE_NAME }}=${PACKAGE_VERSION} dpnp || exit 1 - name: Build and run examples of pybind11 extensions shell: bash -l {0} run: | From 0cfc3a7905228eb2c6aa9a0cba7ba5e368f73a97 Mon Sep 17 00:00:00 2001 From: Nikita Grigorian Date: Thu, 16 Apr 2026 01:25:37 -0700 Subject: [PATCH 11/13] remove gdb test run from workflow element-wise tests no longer present after migration of tensor --- .github/workflows/conda-package.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index 55b2ee5d4b..ff53b958b5 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -220,15 +220,6 @@ jobs: . "$CONDA/etc/profile.d/conda.sh" conda activate "${{ env.TEST_ENV_NAME }}" python -c "import dpctl; dpctl.lsplatform(verbosity=2)" - - name: Install gdb - run: | - sudo apt-get update --fix-missing - sudo apt-get install -y gdb - - name: Run test_elementwise under gdb - run: | - . "$CONDA/etc/profile.d/conda.sh" - conda activate "${{ env.TEST_ENV_NAME }}" - gdb --batch -ex r -ex 'info sharedlibrary' -ex 'set print elements 1000' -ex bt --args "${CONDA_PREFIX}/bin/python" -m pytest -q -ra --disable-warnings --pyargs dpctl.tests.elementwise.test_trigonometric::test_trig_order -vv || true - name: Create test temp dir # create temporary empty folder to runs tests from # https://github.com/pytest-dev/pytest/issues/11904 From a2d0a2e4c75d9b99dd0a8d70d143ffea21d92eaa Mon Sep 17 00:00:00 2001 From: Nikita Grigorian Date: Thu, 16 Apr 2026 18:57:23 -0700 Subject: [PATCH 12/13] fix comment for cmd shell --- .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 ff53b958b5..a541ae940c 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -126,7 +126,7 @@ jobs: env: OVERRIDE_INTEL_IPO: 1 # IPO requires more resources that GH actions VM provides run: | - # TODO: roll back use of Intel channel when 2025.1 is available on conda-forge + :: TODO: roll back use of Intel channel when 2025.1 is available on conda-forge conda build --no-test --python ${{ matrix.python }} --numpy 2.0 -c ${{ env.INTEL_CHANNEL }} -c conda-forge --override-channels conda-recipe - name: Upload artifact From 39e7abb83f2a2552df93b934554f955539132dd3 Mon Sep 17 00:00:00 2001 From: Nikita Grigorian Date: Thu, 16 Apr 2026 18:57:49 -0700 Subject: [PATCH 13/13] remove w/a for old anaconda-client --- .github/workflows/conda-package.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index a541ae940c..40c8d60464 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -434,8 +434,6 @@ jobs: - name: Upload env: ANACONDA_TOKEN: ${{ secrets.ANACONDA_TOKEN }} - # remove when anaconda-client 1.13.1 is available - ANACONDA_CLIENT_FORCE_STANDALONE: true if: ${{ env.ANACONDA_TOKEN != '' }} run: | anaconda --token "${{ env.ANACONDA_TOKEN }}" upload --user dppy --label dev "${{ env.PACKAGE_NAME }}"-*.conda @@ -443,8 +441,6 @@ jobs: - name: Upload Wheels env: ANACONDA_TOKEN: ${{ secrets.ANACONDA_TOKEN }} - # remove when anaconda-client 1.13.1 is available - ANACONDA_CLIENT_FORCE_STANDALONE: true run: anaconda --token "${{ env.ANACONDA_TOKEN }}" upload --user dppy --label dev "${{ env.PACKAGE_NAME }}"-*.whl --version "${{ env.PACKAGE_VERSION }}" upload_windows: