Skip to content

Commit 5f0fb82

Browse files
authored
docs: add changelog for v2025.12 specification revision
PR-URL: #989 Reviewed-by: Evgeni Burovski
1 parent 9db13b3 commit 5f0fb82

File tree

5 files changed

+104
-6
lines changed

5 files changed

+104
-6
lines changed

CHANGELOG.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,77 @@
44
55
This changelog is organized by specification version and notes all changes with respect to the previous version. Within the section for a specific version (e.g., v2022.12), separate sections are used for (a) changes to existing APIs and requirements, (b) new APIs and new requirements, and (c) errata.
66

7+
## v2025.12
8+
9+
### Updates
10+
11+
> Updates to existing APIs and requirements.
12+
13+
#### Normative
14+
15+
- Clarify guidance regarding device placement of returned output arrays ([gh-919](https://github.com/data-apis/array-api/pull/919))
16+
17+
#### APIs
18+
19+
- `__array_namespace__`: remove guidance recommending that the returned namespace only include those names which are part of this specification ([gh-931](https://github.com/data-apis/array-api/pull/931))
20+
- `__array_namespace_info__().default_device`: clarify support for `None` when the default device is not predictable ([gh-961](https://github.com/data-apis/array-api/pull/961))
21+
- `__setitem__`: specify type promotion behavior when the `value` argument is an array ([gh-920](https://github.com/data-apis/array-api/pull/920))
22+
- `asarray`: clarify that behavior when providing a nested sequence is unspecified ([gh-917](https://github.com/data-apis/array-api/pull/917))
23+
- `clip`: clarify type promotion behavior when providing scalar values for `min` and/or `max` arguments ([gh-926](https://github.com/data-apis/array-api/pull/926))
24+
- `expand_dims`: add support for specifying a tuple of axis positions ([gh-988](https://github.com/data-apis/array-api/pull/988))
25+
- `permute_dims`: add support for negative axes ([gh-980](https://github.com/data-apis/array-api/pull/980))
26+
27+
##### Scalar Argument Support
28+
29+
The following APIs were updated to support both scalar and array arguments for one or more arguments:
30+
31+
- `searchsorted`: add scalar argument support ([gh-982](https://github.com/data-apis/array-api/pull/982))
32+
33+
* * *
34+
35+
### Additions
36+
37+
> New APIs and requirements added to the specification.
38+
39+
#### APIs
40+
41+
The following APIs were added to the specification:
42+
43+
- `broadcast_shapes`: broadcast one or more shapes against one another ([gh-983](https://github.com/data-apis/array-api/pull/983))
44+
- `isin`: test for each element in `x1` whether the element is in `x2` ([gh-959](https://github.com/data-apis/array-api/pull/959))
45+
46+
#### Extensions
47+
48+
The following APIs were added to optional specification extensions:
49+
50+
- `linalg.eig`: return the eigenvalues and eigenvectors of a real or complex matrix ([gh-978](https://github.com/data-apis/array-api/pull/978))
51+
- `linalg.eigvals`: return the eigenvalues of a real or complex matrix ([gh-978](https://github.com/data-apis/array-api/pull/978))
52+
53+
* * *
54+
55+
### Breaking Changes
56+
57+
The following is a list of breaking changes relative to the previous version of the specification:
58+
59+
#### APIs
60+
61+
- `__array_namespace_info__().devices`: return a tuple rather than a list ([gh-981](https://github.com/data-apis/array-api/pull/981))
62+
- `broadcast_arrays`: return a tuple rather than a list ([gh-981](https://github.com/data-apis/array-api/pull/981))
63+
- `meshgrid`: return a tuple rather than a list ([gh-981](https://github.com/data-apis/array-api/pull/981))
64+
65+
* * *
66+
67+
### Errata
68+
69+
The following is a list of fixes and points of clarification with regard to the previous version of the specification:
70+
71+
- `clip`: clarify type promotion behavior when providing scalar values for `min` and/or `max` arguments ([gh-926](https://github.com/data-apis/array-api/pull/926))
72+
- `linalg.eigh`: fix typing for output tuple ([gh-924](https://github.com/data-apis/array-api/pull/924))
73+
- `meshgrid`: fix typing for `indexing` argument ([gh-915](https://github.com/data-apis/array-api/pull/915))
74+
- `sqrt`: fix special case for complex-valued input ([gh-987](https://github.com/data-apis/array-api/pull/987))
75+
76+
* * *
77+
778
## v2024.12
879

980
### Updates

src/array_api_stubs/_draft/creation_functions.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -481,6 +481,9 @@ def meshgrid(*arrays: array, indexing: Literal["xy", "ij"] = "xy") -> Tuple[arra
481481
482482
.. versionchanged:: 2022.12
483483
Added complex data type support.
484+
485+
.. versionchanged:: 2025.12
486+
Changed the return value from a List to a Tuple.
484487
"""
485488

486489

src/array_api_stubs/_draft/info.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def __array_namespace_info__() -> Info:
4646
info.default_dtypes()
4747
# ...
4848
49-
.. versionadded: 2023.12
49+
.. versionadded:: 2023.12
5050
"""
5151

5252

@@ -66,7 +66,7 @@ def capabilities() -> Capabilities:
6666
Notes
6767
-----
6868
69-
.. versionadded: 2023.12
69+
.. versionadded:: 2023.12
7070
7171
.. versionchanged:: 2024.12
7272
Added support for querying the maximum number of supported dimensions.
@@ -87,7 +87,10 @@ def default_device() -> device:
8787
8888
- A conforming array library may return ``None`` if the default device is not predictable due to library specific device placement rules.
8989
90-
.. versionadded: 2023.12
90+
.. versionadded:: 2023.12
91+
92+
.. versionchanged:: 2025.12
93+
Clarified support for returning ``None`` when the default device is not predictable.
9194
"""
9295

9396

@@ -120,7 +123,7 @@ def default_dtypes(
120123
121124
- Some array libraries have the concept of a device context manager, allowing library consumers to manage the current device context. When ``device`` is ``None``, libraries supporting a device context **must** return the default data types for the current device. For libraries without a context manager or supporting only a single device, those libraries **must** return the default data types for the default device.
122125
123-
.. versionadded: 2023.12
126+
.. versionadded:: 2023.12
124127
"""
125128

126129

@@ -170,7 +173,7 @@ def dtypes(
170173
171174
- Some array libraries have the concept of a device context manager, allowing library consumers to manage the current device context. When ``device`` is ``None``, libraries supporting a device context **must** return the supported data types for the current device. For libraries without a context manager or supporting only a single device, those libraries **must** return the supported data types for the default device.
172175
173-
.. versionadded: 2023.12
176+
.. versionadded:: 2023.12
174177
"""
175178

176179

@@ -191,5 +194,8 @@ def devices() -> Tuple[device, ...]:
191194
Notes
192195
-----
193196
194-
.. versionadded: 2023.12
197+
.. versionadded:: 2023.12
198+
199+
.. versionchanged:: 2025.12
200+
Changed the return value from a List to a Tuple.
195201
"""

src/array_api_stubs/_draft/manipulation_functions.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@ def broadcast_arrays(*arrays: array) -> Tuple[array, ...]:
3333
-------
3434
out: Tuple[array, ...]
3535
tuple of broadcasted arrays. Each array **must** have the same shape. Each array **must** have the same dtype as its corresponding input array.
36+
37+
Notes
38+
-----
39+
40+
.. versionchanged:: 2025.12
41+
Changed the return value from a List to a Tuple.
3642
"""
3743

3844

@@ -143,6 +149,9 @@ def expand_dims(x: array, /, axis: Union[int, Tuple[int, ...]]) -> array:
143149
- each entry of the tuple is normalized to positive axis positions according to the number of dimensions in the expanded output array.
144150
- the normalized positive axis positions are sorted in ascending order.
145151
- the normalized positive axis positions are unique.
152+
153+
.. versionchanged:: 2025.12
154+
Added support for specifying a tuple of axis positions.
146155
"""
147156

148157

@@ -209,6 +218,12 @@ def permute_dims(x: array, /, axes: Tuple[int, ...]) -> array:
209218
-------
210219
out: array
211220
an array containing the axes permutation. The returned array **must** have the same data type as ``x``.
221+
222+
Notes
223+
-----
224+
225+
.. versionchanged:: 2025.12
226+
Added support for negative axes.
212227
"""
213228

214229

src/array_api_stubs/_draft/searching_functions.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,9 @@ def searchsorted(
171171
172172
.. versionchanged:: 2024.12
173173
Fixed incorrect boundary conditions.
174+
175+
.. versionchanged:: 2025.12
176+
Added scalar argument support.
174177
"""
175178

176179

0 commit comments

Comments
 (0)