Autograd v1.9.0
23 June 2026
Note
Autograd v1.9.0 is not on PyPI yet, but is expected to land soon!
We are happy to announce the Autograd v1.9.0 release. It brings broader NumPy 2.x and Python compatibility, several gradient correctness fixes, and better integration with array-like containers such as xarray's DataArray.
This release supports both NumPy 1.x and 2.x. Python versions 3.10 through 3.14 are supported. We have dropped support for Python 3.9, which is now end of life (#748).
Features and general enhancements
- Improved integration with NumPy ufuncs and array-like containers, making it possible to differentiate through
xarray.DataArrays that holdArrayBoxes (#717, #716). - Added a
'same'mode forscipy.signal.convolve, including its forward pass and VJP (#721).
Bug fixes
np.wherenow preserves native Python types instead of promoting them tofloat64(#779, fixes #671).- Fixed
np.mean,np.std,np.var, andlinalg.normfailing when passed alistortuplecontainingArrayBoxobjects (#757). - Added the missing VJP for
np.astype, which was introduced in NumPy 2.0 (#714). - Added the missing JVP for
np.conjugate(#713). - Fixed
np.absolutegradients so they handle the division-by-zero case the same waynp.absalready did (#712). - Registered
np.empty_likeandnp.full_likeas non-differentiable functions so they pass through tracing cleanly (#710). - Fixed
linalg.normVJP and JVP for complex numbers (#705, fixes #666).
Maintenance
- Adopted PEP 639 for license metadata and dropped the now-redundant license trove classifier (#783, #787).
- Followed PEP 765 (#740).
Miscellaneous
- Security hardening: added a Dependabot config for GitHub Actions, added Zizmor as a CI job, and pinned and updated pre-commit hooks (#785).
- Added
exclude-newer = "3 days ago"to guard against supply-chain attacks during dependency resolution (#775). - Replaced the retired
macos-13CI image withmacos-15-intel(#747). - Removed the outdated in-tree conda package recipe (#784).
Documentation
- Added a tutorial on working with
xarray.DataArrays (#782). - Added an examples section with a matplotlib dependency, and tidied up the existing examples (#756, #720).
- Updated the README and fixed the instructions for running a specific test (#704, #702, #711).
New contributors
- @jeremy-feng made their first contribution in #704
- @danra made their first contribution in #705
- @jvansanten made their first contribution in #720
- @Schefflera-Arboricola made their first contribution in #740
- @joewallwork made their first contribution in #756
- @aaishwarymishra made their first contribution in #777
- @mrityunjai01 made their first contribution in #721
- @tylerflex made their first contribution in #757
Full CHANGELOG: v1.8.0...v1.9.0