Migrating to JAX jax-v0.6.0
Version jax-v0.6.0 introduces 5 breaking changes. This guide details how to update your code.
Released: 4/17/2025
⚠️ Check Your Code
If you use any of these symbols, you need to read this guide:
jax.numpy.arrayconfig.jax_data_dependent_tracing_fallbackconfig.jax_eager_pmapjax.jitjax.pmapjax.jit.lowerjax.jit.tracejax.pmap.lowerjax.pmap.tracejax.lib.xla_extensionjax.interpreters.mlir.hlojax.interpreters.mlir.func_dialectjax.interpreters.mlir.custom_calljax.ffi.ffi_calljax.lib.xla_client.get_topology_for_devicesjax.lib.xla_client.heap_profilejax.lib.xla_client.mlir_api_versionjax.lib.xla_client.Clientjax.lib.xla_client.CompileOptionsjax.lib.xla_client.DeviceAssignmentjax.lib.xla_client.Framejax.lib.xla_client.HloShardingjax.lib.xla_client.OpShardingjax.lib.xla_client.Tracebackjax.util.HashableFunctionjax.util.as_hashable_functionjax.util.cachejax.util.safe_mapjax.util.safe_zipjax.util.split_dictjax.util.split_listjax.util.split_list_checkedjax.util.split_mergejax.util.subvalsjax.util.toposortjax.util.unzip2jax.util.wrap_namejax.util.wrapsjax.dlpack.to_dlpackjax.lax.infeedjax.lax.infeed_pjax.lax.outfeedjax.lax.outfeed_pBreaking Changes
●Issue #1
`jax.numpy.array` no longer accepts `None`; code passing None will raise a TypeError. Replace None arguments with valid arrays or guard against None.
●Issue #2
The `config.jax_data_dependent_tracing_fallback` option has been removed; remove any usage or set appropriate tracing configuration.
●Issue #3
The `config.jax_eager_pmap` option has been removed; update code to not rely on it.
●Issue #4
Calling `lower` or `trace` AOT APIs on a `jax.jit` (or `jax.pmap`) result after additional wrappers is now disallowed. Apply `jax.jit`/`jax.pmap` as the last wrapper.
●Issue #5
The `cuda12_pip` extra has been removed; install with `pip install jax[cuda12]` instead.
Migration Steps
- 1Replace any `jax.numpy.array(None, …)` calls with valid array creation or guard against None.
- 2Remove references to `config.jax_data_dependent_tracing_fallback` and `config.jax_eager_pmap` from configuration files.
- 3If you wrap a `jax.jit` (or `jax.pmap`) result with other transformations, ensure `jax.jit`/`jax.pmap` is applied last.
- 4Install JAX with the new extra syntax, e.g., `pip install jax[cuda12]` or `pip install jax[cuda12-local]`.
- 5Update `jax.jit` calls to pass the function argument positionally and use keyword arguments for other parameters.
- 6Switch any usage of deprecated APIs to their recommended replacements (e.g., `jax.tree.unflatten`, `jax.ffi`, `jax.extend.mlir`).
- 7Upgrade your CUDA toolkit to at least 12.1 and CuDNN to 9.8 to meet the new minimum requirements.
Release Summary
This release removes several legacy tracing and configuration options, raises the minimum CUDA/CuDNN versions, updates package extras syntax, and deprecates many old APIs while introducing stricter `jax.jit` calling conventions.
Need More Details?
View the full release notes and all changes for JAX jax-v0.6.0.
View Full Changelog