|
| 1 | +# Changelog |
| 2 | + |
| 3 | +## 1.5.1 (2024-03-20) |
| 4 | + |
| 5 | +## Minor Changes |
| 6 | + |
| 7 | +- Add [HTML documentation](https://data-apis.org/array-api-compat/). Includes |
| 8 | + new documentation on the [module scope](scope) and new [developer |
| 9 | + documentation](dev/index.md). |
| 10 | + |
| 11 | +- Fix `array_api_compat.numpy.asarray(torch.Tensor)` to return a NumPy array. |
| 12 | + |
| 13 | +- Allow Python scalars in torch functions. |
| 14 | + |
| 15 | +- Fix the `torch.std` wrapper when correction is an `int`. |
| 16 | + |
| 17 | +- Fix issues with `qr` and `svd` in the Dask wrappers. |
| 18 | + |
| 19 | +## 1.5 (2024-03-07) |
| 20 | + |
| 21 | +### Major Changes |
| 22 | + |
| 23 | +- Add support for Dask ([@lithomas1](https://github.com/lithomas1)). |
| 24 | + |
| 25 | +- Add support for JAX. Note that unlike other array libraries, |
| 26 | + array-api-compat does not contain any wrappers for JAX functions. All JAX |
| 27 | + array API support is in JAX itself. Thus, there is no `array_api_compat.jax` |
| 28 | + submodule, and `array_namespace(<JAX array>)` returns the |
| 29 | + `jax.experimental.array_api` module. |
| 30 | + |
| 31 | +- The functions `is_numpy_array(x)`, `is_cupy_array(x)`, `is_torch_array(x)`, |
| 32 | + `is_dask_array(x)`, `is_jax_array(x)` are now part of the public |
| 33 | + `array_api_compat` API. |
| 34 | + |
| 35 | +- Add wrappers for the `fft` extension module for NumPy, CuPy, and PyTorch. |
| 36 | + |
| 37 | +### Minor Changes |
| 38 | + |
| 39 | +- Allow `'2022.12'` as the `api_version` in `array_namespace()`. `'2021.12'` |
| 40 | + is also supported but will issue a warning since the returned namespace will |
| 41 | + still be a 2022.12 compliant one. |
| 42 | + |
| 43 | +- Add wrapper for numpy.linalg.solve, which broadcasts the inputs according to |
| 44 | + the standard. |
| 45 | + |
| 46 | +- Add wrappers for various PyTorch linalg functions. |
| 47 | + |
| 48 | +- Fix a bug with `numpy.linalg.vector_norm(keepdims=True)`. |
| 49 | + |
| 50 | +- BREAKING: Update `vecdot` wrappers to apply `axes` before broadcasting, not |
| 51 | + after. This matches the updated 2023.12 standard wording, and also the |
| 52 | + behavior of the new `numpy.vecdot` gufunc in NumPy 2.0. |
| 53 | + |
| 54 | +- Fix some linalg functions which were supposed to be in both the main |
| 55 | + namespace and the linalg extension namespace. |
| 56 | + |
| 57 | +- Add Ruff to CI. ([@adonath](https://github.com/adonath)) |
| 58 | + |
| 59 | +- Test that internal definitions of `__all__` are self-consistent, which |
| 60 | + should help to avoid issues where wrappers are accidentally not exported to |
| 61 | + the compat namespaces properly. |
| 62 | + |
| 63 | +## 1.4.1 (2024-01-18) |
| 64 | + |
| 65 | +### Minor Changes |
| 66 | + |
| 67 | +- Add support for the upcoming NumPy 2.0 release. |
| 68 | + |
| 69 | +- Added a torch wrapper for `trace` (`torch.trace` doesn't support the |
| 70 | + `offset` argument or stacking) |
| 71 | + |
| 72 | +- Wrap numpy, cupy, and torch `nonzero` to raise an error for zero-dimensional |
| 73 | + input arrays. |
| 74 | + |
| 75 | +- Add torch wrapper for `newaxis`. |
| 76 | + |
| 77 | +- Improve error message for `array_namespace` |
| 78 | + |
| 79 | +- Fix linalg.cholesky returning the conjugate of the expected upper |
| 80 | + decomposition for numpy and cupy. |
| 81 | + |
| 82 | +## 1.4 (2023-09-13) |
| 83 | + |
| 84 | +### Major Changes |
| 85 | + |
| 86 | +- Releases are now made with GitHub Actions (thanks |
| 87 | + [@matthewfeickert](https://github.com/matthewfeickert)). |
| 88 | + |
| 89 | +### Minor Changes |
| 90 | + |
| 91 | +- Fix `torch.result_type()` cross-kind promotion |
| 92 | + ([@lucascolley](https://github.com/lucascolley)). |
| 93 | + |
| 94 | +- Fix the torch.take() wrapper to make axis optional for ndim = 1. |
| 95 | + |
| 96 | +- Add requires-python metadata to the package |
| 97 | + ([@matthewfeickert](https://github.com/matthewfeickert)). |
| 98 | + |
| 99 | +## 1.3 (2023-06-20) |
| 100 | + |
| 101 | +### Major Changes |
| 102 | + |
| 103 | +- Add [2022.12](https://data-apis.org/array-api/2022.12/) standard support. |
| 104 | + This includes things like adding complex dtype support, adding the new |
| 105 | + `take` function, and various minor changes in the specification. |
| 106 | + |
| 107 | +### Minor Changes |
| 108 | + |
| 109 | +- Support `"cpu"` in CuPy `to_device()`. |
| 110 | + |
| 111 | +- Return a new array in NumPy/CuPy `reshape(copy=False)`. |
| 112 | + |
| 113 | +- Fix signatures for PyTorch `broadcast_to` and `permute_dims`. |
| 114 | + |
| 115 | +## 1.2 (2023-04-03) |
| 116 | + |
| 117 | +### Major Changes |
| 118 | + |
| 119 | +- Support the linalg extension in the `array_api_compat.torch` namespace. |
| 120 | + |
| 121 | +- Add `isdtype()`. |
| 122 | + |
| 123 | +### Minor Changes |
| 124 | + |
| 125 | +- Fix the `k` keyword argument to `tril` and `triu` in `torch`. |
| 126 | + |
| 127 | +## 1.1.1 (2023-03-10) |
| 128 | + |
| 129 | +### Major Changes |
| 130 | + |
| 131 | +- Rename `get_namespace()` to `array_namespace()` (`get_namespace()` is |
| 132 | + maintained as a backwards compatible alias). |
| 133 | + |
| 134 | +### Minor Changes |
| 135 | + |
| 136 | +- The minimum supported NumPy version is now 1.21. Fixed a few issues with |
| 137 | + NumPy 1.21 (with `unique_*` and `asarray`), although there are also a few |
| 138 | + known issues with this version (see the README). |
| 139 | + |
| 140 | +- Add `api_version` to `get_namespace()`. |
| 141 | + |
| 142 | +- `array_namespace()` (*née* `get_namespace()`) now works correctly with |
| 143 | + `torch` tensors. |
| 144 | + |
| 145 | +- `array_namespace()` (*née* `get_namespace()`) now works correctly with |
| 146 | + `numpy.array_api` arrays. |
| 147 | + |
| 148 | +- `array_namespace()` (*née* `get_namespace()`) now raises `TypeError` instead |
| 149 | + of `ValueError`. |
| 150 | + |
| 151 | +- Fix the `torch.std` wrapper. |
| 152 | + |
| 153 | +- Add `torch` wrappers for `ones`, `empty`, and `zeros` so that `shape` can be |
| 154 | + passed as a keyword argument. |
| 155 | + |
| 156 | +## 1.1 (2023-02-24) |
| 157 | + |
| 158 | +### Major Changes |
| 159 | + |
| 160 | +- Added support for PyTorch. |
| 161 | + |
| 162 | +- Add helper function `size()` (required if torch is used as |
| 163 | + `torch.Tensor.size` is a method that is incompatible with the array API |
| 164 | + [`.size`](https://data-apis.org/array-api/latest/API_specification/generated/array_api.array.size.html#array_api.array.size)). |
| 165 | + |
| 166 | +- All wrapper functions that wrap existing library functions now pass through |
| 167 | + arbitrary `**kwargs`. |
| 168 | + |
| 169 | +### Minor Changes |
| 170 | + |
| 171 | +- Added CI to run against the [array API testsuite](https://github.com/data-apis/array-api-tests). |
| 172 | + |
| 173 | +- Fix `sort(stable=False)` and `argsort(stable=False)` with CuPy. |
| 174 | + |
| 175 | +## 1.0 (2022-12-05) |
| 176 | + |
| 177 | +### Major Changes |
| 178 | + |
| 179 | +- Initial release. Includes support for NumPy and CuPy. |
0 commit comments