Skip to content

Commit 3202e91

Browse files
authored
Merge pull request #45 from kmheckel/expand-python-314
Add Python 3.14 support
2 parents 12381c6 + 3c9f1b9 commit 3202e91

5 files changed

Lines changed: 1341 additions & 753 deletions

File tree

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,9 @@ jobs:
6262
strategy:
6363
fail-fast: false
6464
matrix:
65-
# pyproject pins requires-python = ">=3.11, <3.14" (flax 0.11 dropped
65+
# pyproject pins requires-python = ">=3.11, <3.15" (flax 0.11 dropped
6666
# 3.10). Keep this aligned with that range.
67-
python-version: ["3.11", "3.12", "3.13"]
67+
python-version: ["3.11", "3.12", "3.13", "3.14"]
6868
steps:
6969
- uses: actions/checkout@v4
7070
- name: Install uv

AGENTS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ forces JAX onto CPU and provides seeded `rngs` / `key` fixtures.
203203

204204
### Continuous integration
205205
`.github/workflows/ci.yml` runs four jobs on every PR: `lint` (ruff check +
206-
format), `test` (pytest matrix over Python 3.11/3.12/3.13 with the quant extra),
206+
format), `test` (pytest matrix over Python 3.11-3.14 with the quant extra),
207207
`docs` (`mkdocs build --strict`), and `smoke` (notebook-API drift). Match all
208208
four locally before pushing. `python-publish.yml` builds and publishes to PyPI
209209
when a GitHub release is published.
@@ -259,7 +259,7 @@ uv run mkdocs build # Build static site
259259
## Configuration
260260

261261
### Ruff (`pyproject.toml`)
262-
- Target: Python 3.11–3.13 (`requires-python = ">=3.11, <3.14"`)
262+
- Target: Python 3.11–3.14 (`requires-python = ">=3.11, <3.15"`)
263263
- Line length: 88 (Black-compatible)
264264
- Enabled rules: Pyflakes (F), pycodestyle errors (E), flake8-bugbear (B), import sorting (I)
265265
- Excluded: research/, docs/, scripts/, data/

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ modules. This is a **breaking release** — see the
3232
it over the time axis of `input_data`; `return_all_states=True` also returns
3333
per-timestep neuron states (membrane traces).
3434
- **Mixed precision** via `jmp` removed; pass `dtype=` / `param_dtype=` to layers.
35-
- **Python support** is now `>=3.11, <3.14` (was `>=3.10`).
35+
- **Python support** is now `>=3.11, <3.15` (was `>=3.10`); `flax>=0.12.7` (Python 3.14 fix) bumps the jax stack to 0.10.x.
3636
- Dependencies: added `flax>=0.11`, `grain`; removed `dm-haiku`, `jmp`.
3737

3838
### Added

pyproject.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@ dependencies = [
1212
# flax 0.11 changed the nnx.Optimizer signature to require `wrt=` and made
1313
# `optimizer.update(model, grads)` the canonical call. Spyx's tutorials and
1414
# spyx.quant target the newer API; pin accordingly.
15-
"flax>=0.11.0",
15+
# flax >=0.12.7 fixes a Python 3.14 __annotations__ crash in flax.linen.
16+
"flax>=0.12.7",
1617
"grain",
1718
]
1819
readme = "README.md"
19-
requires-python = ">=3.11, <3.14"
20+
requires-python = ">=3.11, <3.15"
2021
license = { text = "MIT" }
2122

2223
[project.optional-dependencies]

0 commit comments

Comments
 (0)