Skip to content

Commit cbecdfa

Browse files
mmckyclaude
andcommitted
Pin jax to 0.11.0 in the three execution-* workflows
The 2026-08-19 pin (#617) covered cache.yml, ci.yml and publish.yml, but this repo has six workflows that install jax. execution-linux.yml, execution-osx.yml and execution-win.yml install "jax[CPU]" unpinned and build with `jb build lectures -W --keep-going`, which executes every lecture -- so jax 0.11.1 fails them on CellTimeoutError in numpy_vs_numba_vs_jax. execution-linux.yml runs on a daily cron and has been red since 2026-08-18: run 32152771492 (08-18) and run 32268416676 (08-19, head_sha 915bfd9, i.e. after #617 merged) both log "Successfully installed jax-0.11.1 jaxlib-0.11.1" and then CellTimeoutError at the 600s myst-nb timeout. The 08-16 run resolved jax 0.11.0 and executed the same lecture in 4.35 seconds. Pinning jax alone is sufficient: jax 0.11.0's metadata carries Requires-Dist: jaxlib<=0.11.0,>=0.11.0, and the pairing is additionally enforced at import in both directions, so jaxlib cannot drift. Closes #619 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 915bfd9 commit cbecdfa

3 files changed

Lines changed: 24 additions & 3 deletions

File tree

.github/workflows/execution-linux.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,14 @@ jobs:
3131
- name: Install Jax [CPU]
3232
shell: bash -l {0}
3333
run: |
34-
pip install "jax[CPU]"
34+
# Pinned: jax 0.11.1 (2026-08-17) regresses XLA:CPU execution --
35+
# numpy_vs_numba_vs_jax's lax.fori_loop and lax.scan cells go
36+
# quadratic in n, so this -W build dies on CellTimeoutError. Matches
37+
# the pin already in cache/ci/publish.yml; evidence and the exposure
38+
# map are recorded in QuantEcon/workspace-lectures#49. With jax
39+
# already present, the lecture's unpinned `!pip install quantecon
40+
# jax` cell is satisfied and does not upgrade.
41+
pip install "jax[CPU]==0.11.0"
3542
- name: Build Lectures (+ Execution Checks)
3643
shell: bash -l {0}
3744
run: jb build lectures --path-output=./ -W --keep-going

.github/workflows/execution-osx.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,14 @@ jobs:
3131
- name: Install Jax [CPU]
3232
shell: bash -l {0}
3333
run: |
34-
pip install "jax[CPU]"
34+
# Pinned: jax 0.11.1 (2026-08-17) regresses XLA:CPU execution --
35+
# numpy_vs_numba_vs_jax's lax.fori_loop and lax.scan cells go
36+
# quadratic in n, so this -W build dies on CellTimeoutError. Matches
37+
# the pin already in cache/ci/publish.yml; evidence and the exposure
38+
# map are recorded in QuantEcon/workspace-lectures#49. With jax
39+
# already present, the lecture's unpinned `!pip install quantecon
40+
# jax` cell is satisfied and does not upgrade.
41+
pip install "jax[CPU]==0.11.0"
3542
- name: Build Lectures (+ Execution Checks)
3643
shell: bash -l {0}
3744
run: jb build lectures --path-output=./ -W --keep-going

.github/workflows/execution-win.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,14 @@ jobs:
3535
- name: Install Jax [CPU]
3636
shell: bash -l {0}
3737
run: |
38-
pip install "jax[CPU]"
38+
# Pinned: jax 0.11.1 (2026-08-17) regresses XLA:CPU execution --
39+
# numpy_vs_numba_vs_jax's lax.fori_loop and lax.scan cells go
40+
# quadratic in n, so this -W build dies on CellTimeoutError. Matches
41+
# the pin already in cache/ci/publish.yml; evidence and the exposure
42+
# map are recorded in QuantEcon/workspace-lectures#49. With jax
43+
# already present, the lecture's unpinned `!pip install quantecon
44+
# jax` cell is satisfied and does not upgrade.
45+
pip install "jax[CPU]==0.11.0"
3946
- name: Build Lectures (+ Execution Checks)
4047
shell: powershell
4148
run: jb build lectures --path-output=./ -W --keep-going

0 commit comments

Comments
 (0)