Skip to content

Commit f66f7eb

Browse files
authored
Merge branch 'master' into feature-sparse-linalg-solvers
2 parents 555e547 + 35010ee commit f66f7eb

19 files changed

Lines changed: 207 additions & 65 deletions

.github/workflows/build-sphinx.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ jobs:
119119
- name: Setup miniconda
120120
id: setup_miniconda
121121
continue-on-error: true
122-
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
122+
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
123123
with:
124124
miniforge-version: latest
125125
use-mamba: 'true'
@@ -129,7 +129,7 @@ jobs:
129129

130130
- name: ReSetup miniconda
131131
if: steps.setup_miniconda.outcome == 'failure'
132-
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
132+
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
133133
with:
134134
miniforge-version: latest
135135
use-mamba: 'true'
@@ -224,7 +224,7 @@ jobs:
224224
if: env.GH_EVENT_OPEN_PR_UPSTREAM == 'true'
225225
env:
226226
PR_NUM: ${{ github.event.number }}
227-
uses: mshick/add-pr-comment@64b8e914979889d746c99dea15a76e77ef64580a # v3.10.0.8.3.10.0
227+
uses: mshick/add-pr-comment@8e4927817251f1ff60c001f04568532b38e0b4a0 # v3.11.0.8.3.11.0
228228
with:
229229
message-id: url_to_docs
230230
message: |
@@ -268,7 +268,7 @@ jobs:
268268
git push tokened_docs gh-pages
269269
270270
- name: Modify the comment with URL to official documentation
271-
uses: mshick/add-pr-comment@64b8e914979889d746c99dea15a76e77ef64580a # v3.10.0.8.3.10.0
271+
uses: mshick/add-pr-comment@8e4927817251f1ff60c001f04568532b38e0b4a0 # v3.11.0.8.3.11.0
272272
with:
273273
message-id: url_to_docs
274274
find: |

.github/workflows/check-onemath.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ jobs:
9595
- name: Setup miniconda
9696
id: setup_miniconda
9797
continue-on-error: true
98-
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
98+
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
9999
with:
100100
miniforge-version: latest
101101
use-mamba: 'true'
@@ -106,7 +106,7 @@ jobs:
106106

107107
- name: ReSetup miniconda
108108
if: steps.setup_miniconda.outcome == 'failure'
109-
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
109+
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
110110
with:
111111
miniforge-version: latest
112112
use-mamba: 'true'
@@ -165,7 +165,7 @@ jobs:
165165
- name: ReRun tensor tests on Linux
166166
if: env.rerun-tests-on-failure == 'true'
167167
id: run_tensor_tests
168-
uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3.0.2
168+
uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0
169169
with:
170170
timeout_minutes: ${{ env.rerun-tests-timeout }}
171171
max_attempts: ${{ env.rerun-tests-max-attempts }}
@@ -227,7 +227,7 @@ jobs:
227227
- name: Setup miniconda
228228
id: setup_miniconda
229229
continue-on-error: true
230-
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
230+
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
231231
with:
232232
miniforge-version: latest
233233
use-mamba: 'true'
@@ -238,7 +238,7 @@ jobs:
238238

239239
- name: ReSetup miniconda
240240
if: steps.setup_miniconda.outcome == 'failure'
241-
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
241+
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
242242
with:
243243
miniforge-version: latest
244244
use-mamba: 'true'
@@ -297,7 +297,7 @@ jobs:
297297
- name: ReRun tensor tests on Linux
298298
if: env.rerun-tests-on-failure == 'true'
299299
id: run_tensor_tests_branch
300-
uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3.0.2
300+
uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0
301301
with:
302302
timeout_minutes: ${{ env.rerun-tests-timeout }}
303303
max_attempts: ${{ env.rerun-tests-max-attempts }}

.github/workflows/conda-package.yml

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ jobs:
6161
- name: Setup miniconda
6262
id: setup_miniconda
6363
continue-on-error: true
64-
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
64+
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
6565
with:
6666
miniforge-version: latest
6767
use-mamba: 'true'
@@ -71,7 +71,7 @@ jobs:
7171

7272
- name: ReSetup miniconda
7373
if: steps.setup_miniconda.outcome == 'failure'
74-
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
74+
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
7575
with:
7676
miniforge-version: latest
7777
use-mamba: 'true'
@@ -91,15 +91,15 @@ jobs:
9191
- name: Build conda package
9292
id: build_conda_pkg
9393
continue-on-error: true
94-
run: conda build --no-test --python ${{ matrix.python }} --numpy 2.0 ${{ env.channels-list }} conda-recipe
94+
run: conda-build --no-test --python ${{ matrix.python }} --numpy 2.0 ${{ env.channels-list }} conda-recipe
9595
env:
96-
MAX_BUILD_CMPL_MKL_VERSION: '2026.0a0'
96+
MAX_BUILD_CMPL_MKL_VERSION: '2027.0a0'
9797

9898
- name: ReBuild conda package
9999
if: steps.build_conda_pkg.outcome == 'failure'
100-
run: conda build --no-test --python ${{ matrix.python }} --numpy 2.0 ${{ env.channels-list }} conda-recipe
100+
run: conda-build --no-test --python ${{ matrix.python }} --numpy 2.0 ${{ env.channels-list }} conda-recipe
101101
env:
102-
MAX_BUILD_CMPL_MKL_VERSION: '2026.0a0'
102+
MAX_BUILD_CMPL_MKL_VERSION: '2027.0a0'
103103

104104
- name: Upload artifact
105105
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
@@ -159,7 +159,7 @@ jobs:
159159
- name: Setup miniconda
160160
id: setup_miniconda
161161
continue-on-error: true
162-
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
162+
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
163163
with:
164164
miniforge-version: latest
165165
use-mamba: 'true'
@@ -169,7 +169,7 @@ jobs:
169169

170170
- name: ReSetup miniconda
171171
if: steps.setup_miniconda.outcome == 'failure'
172-
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
172+
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
173173
with:
174174
miniforge-version: latest
175175
use-mamba: 'true'
@@ -257,7 +257,7 @@ jobs:
257257
- name: Run tensor tests
258258
if: env.rerun-tests-on-failure == 'true'
259259
id: run_tests_tensor_linux
260-
uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3.0.2
260+
uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0
261261
with:
262262
timeout_minutes: ${{ env.rerun-tests-timeout }}
263263
max_attempts: ${{ env.rerun-tests-max-attempts }}
@@ -321,7 +321,7 @@ jobs:
321321
- name: Setup miniconda
322322
id: setup_miniconda
323323
continue-on-error: true
324-
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
324+
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
325325
with:
326326
miniforge-version: latest
327327
use-mamba: 'true'
@@ -331,7 +331,7 @@ jobs:
331331

332332
- name: ReSetup miniconda
333333
if: steps.setup_miniconda.outcome == 'failure'
334-
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
334+
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
335335
with:
336336
miniforge-version: latest
337337
use-mamba: 'true'
@@ -377,7 +377,7 @@ jobs:
377377
MAMBA_NO_LOW_SPEED_LIMIT: 1
378378

379379
- name: Install OCL CPU RT from Intel channel
380-
run: mamba install intel-opencl-rt=*=intel_* ${{ env.channels-list }}
380+
run: mamba install ${{ env.package-name }}=${{ env.PACKAGE_VERSION }} intel-opencl-rt=*=intel_* ${{ env.channels-list }}
381381

382382
- name: List installed packages
383383
run: mamba list
@@ -439,7 +439,7 @@ jobs:
439439
- name: Run tensor tests
440440
if: env.rerun-tests-on-failure == 'true'
441441
id: run_tests_tensor_win
442-
uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3.0.2
442+
uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0
443443
with:
444444
timeout_minutes: ${{ env.rerun-tests-timeout }}
445445
max_attempts: ${{ env.rerun-tests-max-attempts }}
@@ -493,7 +493,7 @@ jobs:
493493
- name: Setup miniconda
494494
id: setup_miniconda
495495
continue-on-error: true
496-
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
496+
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
497497
with:
498498
miniforge-version: latest
499499
use-mamba: 'true'
@@ -503,7 +503,7 @@ jobs:
503503

504504
- name: ReSetup miniconda
505505
if: steps.setup_miniconda.outcome == 'failure'
506-
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
506+
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
507507
with:
508508
miniforge-version: latest
509509
use-mamba: 'true'
@@ -578,7 +578,7 @@ jobs:
578578
- name: Setup miniconda
579579
id: setup_miniconda
580580
continue-on-error: true
581-
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
581+
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
582582
with:
583583
miniforge-version: latest
584584
use-mamba: 'true'
@@ -588,7 +588,7 @@ jobs:
588588

589589
- name: ReSetup miniconda
590590
if: steps.setup_miniconda.outcome == 'failure'
591-
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
591+
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
592592
with:
593593
miniforge-version: latest
594594
use-mamba: 'true'
@@ -696,7 +696,7 @@ jobs:
696696

697697
- name: Post result to PR
698698
if: ${{ github.event.pull_request && !github.event.pull_request.head.repo.fork }}
699-
uses: mshick/add-pr-comment@64b8e914979889d746c99dea15a76e77ef64580a # v3.10.0.8.3.10.0
699+
uses: mshick/add-pr-comment@8e4927817251f1ff60c001f04568532b38e0b4a0 # v3.11.0.8.3.11.0
700700
with:
701701
message-id: array_api_results
702702
message: |
@@ -727,7 +727,7 @@ jobs:
727727
- name: Setup miniconda
728728
id: setup_miniconda
729729
continue-on-error: true
730-
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
730+
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
731731
with:
732732
miniforge-version: latest
733733
use-mamba: 'true'
@@ -737,7 +737,7 @@ jobs:
737737

738738
- name: ReSetup miniconda
739739
if: steps.setup_miniconda.outcome == 'failure'
740-
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
740+
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
741741
with:
742742
miniforge-version: latest
743743
use-mamba: 'true'

.github/workflows/cron-run-tests.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ jobs:
6161
- name: Setup miniconda
6262
id: setup_miniconda
6363
continue-on-error: true
64-
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
64+
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
6565
with:
6666
miniforge-version: latest
6767
use-mamba: 'true'
@@ -72,7 +72,7 @@ jobs:
7272

7373
- name: ReSetup miniconda
7474
if: steps.setup_miniconda.outcome == 'failure'
75-
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
75+
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
7676
with:
7777
miniforge-version: latest
7878
use-mamba: 'true'

.github/workflows/generate_coverage.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ jobs:
7878
- name: Setup miniconda
7979
id: setup_miniconda
8080
continue-on-error: true
81-
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
81+
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
8282
with:
8383
miniforge-version: latest
8484
use-mamba: 'true'
@@ -88,7 +88,7 @@ jobs:
8888

8989
- name: ReSetup miniconda
9090
if: steps.setup_miniconda.outcome == 'failure'
91-
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
91+
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
9292
with:
9393
miniforge-version: latest
9494
use-mamba: 'true'

.github/workflows/openssf-scorecard.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,6 @@ jobs:
7272

7373
# Upload the results to GitHub's code scanning dashboard.
7474
- name: "Upload to code-scanning"
75-
uses: github/codeql-action/upload-sarif@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
75+
uses: github/codeql-action/upload-sarif@e46ed2cbd01164d986452f91f178727624ae40d7 # v4.35.3
7676
with:
7777
sarif_file: results.sarif

.pre-commit-config.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ repos:
6969
- id: black
7070
exclude: "dpnp/_version.py"
7171
- repo: https://github.com/pycqa/isort
72-
rev: 8.0.1
72+
rev: 9.0.0a3
7373
hooks:
7474
- id: isort
7575
name: isort (python)
@@ -89,7 +89,7 @@ repos:
8989
- flake8-docstrings==1.7.0
9090
- flake8-bugbear==24.12.12
9191
- repo: https://github.com/pre-commit/mirrors-clang-format
92-
rev: v22.1.3
92+
rev: v22.1.4
9393
hooks:
9494
- id: clang-format
9595
args: ["-i"]

CHANGELOG.md

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,25 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7-
## [0.20.0] - MM/DD/2026
7+
## [0.21.0] - MM/DD/2026
8+
9+
### Added
10+
11+
### Changed
12+
13+
### Deprecated
14+
15+
### Removed
16+
17+
### Fixed
18+
19+
* Fixed incorrect in-place advanced indexing for 4D arrays when using `range` or `list` as index keys [#2872](https://github.com/IntelPython/dpnp/pull/2872)
20+
* Fixed `conda build` command syntax in GitHub workflows and documentation to use `conda-build` [#2888](https://github.com/IntelPython/dpnp/pull/2888)
21+
22+
### Security
23+
24+
25+
## [0.20.0] - 2026-04-22
826

927
This release introduces a major architectural change: the Array API-compliant tensor implementation has been migrated from `dpctl.tensor` into `dpnp.tensor`, simplifying maintenance, reducing cross-project dependencies, and allows the tensor implementation to evolve within `dpnp`.
1028
This release changes the license from `BSD-2-Clause` to `BSD-3-Clause`.
@@ -28,7 +46,7 @@ Also, that release drops support for Python 3.9, making Python 3.10 the minimum
2846
* Added implementation of `dpnp.divmod` [#2674](https://github.com/IntelPython/dpnp/pull/2674)
2947
* Added implementation of `dpnp.isin` function [#2595](https://github.com/IntelPython/dpnp/pull/2595)
3048
* Added implementation of `dpnp.scipy.linalg.lu` (SciPy-compatible) [#2787](https://github.com/IntelPython/dpnp/pull/2787)
31-
* Added support for ndarray subclassing via `dpnp.ndarray.view` method with `type` parameter [#2815](https://github.com/IntelPython/dpnp/issues/2815)
49+
* Added support for ndarray subclassing via `dpnp.ndarray.view` method with `type` parameter [#2815](https://github.com/IntelPython/dpnp/pull/2815)
3250
* Migrated tensor implementation from `dpctl.tensor` into `dpnp.tensor`, making `dpnp` the primary owner of the Array API-compliant tensor layer [#2856](https://github.com/IntelPython/dpnp/pull/2856)
3351
* Added implementation of `dpnp.scipy.sparse.linalg import LinearOperator, cg, gmres, minres` [#2841](https://github.com/IntelPython/dpnp/pull/2841)
3452

@@ -94,8 +112,6 @@ Also, that release drops support for Python 3.9, making Python 3.10 the minimum
94112
* Resolved a deadlock in `dpnp.linalg.qr` by releasing the GIL before OneMKL `orgqr` call to prevent host tasks contention [#2850](https://github.com/IntelPython/dpnp/pull/2850)
95113
* Fixed `dpnp.linalg.matrix_rank` to properly handle an empty input array [#2853](https://github.com/IntelPython/dpnp/pull/2853)
96114

97-
### Security
98-
99115

100116
## [0.19.1] - 2025-11-27
101117

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ cmake_minimum_required(VERSION 3.21...3.27 FATAL_ERROR)
3131

3232
project(
3333
dpnp
34-
VERSION 0.20
34+
VERSION 0.21
3535
LANGUAGES CXX
3636
DESCRIPTION "NumPy-like API accelerated by SYCL."
3737
)

conda-recipe/meta.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{% set max_compiler_and_mkl_version = environ.get("MAX_BUILD_CMPL_MKL_VERSION", "2027.0a0") %}
2-
{% set required_compiler_and_mkl_version = "2025.0" %}
3-
{% set required_dpctl_version = "0.22.0*" %}
2+
{% set required_compiler_and_mkl_version = "2026.0" %}
3+
{% set required_dpctl_version = "0.22.0" %}
44

55
{% set pyproject = load_file_data('pyproject.toml') %}
66
{% set py_build_deps = pyproject.get('build-system', {}).get('requires', []) %}

0 commit comments

Comments
 (0)