Skip to content

Commit 76a5879

Browse files
mmckyclaude
andauthored
Pin jax to 0.11.0 in the three execution-* workflows (#620)
* 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> * Keep the !pip install command on a single comment line The wrap split `!pip install quantecon jax` across two comment lines, so skimming the first showed `!pip install quantecon` with `jax` orphaned behind the next `# ` -- dropping the one token the sentence exists to explain. Matches the unbroken form already used in cache.yml, ci.yml and publish.yml. Comments only; the pin is unchanged. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 915bfd9 commit 76a5879

3 files changed

Lines changed: 27 additions & 3 deletions

File tree

.github/workflows/execution-linux.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,15 @@ 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
40+
# `!pip install quantecon jax` cell is satisfied and does not
41+
# upgrade.
42+
pip install "jax[CPU]==0.11.0"
3543
- name: Build Lectures (+ Execution Checks)
3644
shell: bash -l {0}
3745
run: jb build lectures --path-output=./ -W --keep-going

.github/workflows/execution-osx.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,15 @@ 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
40+
# `!pip install quantecon jax` cell is satisfied and does not
41+
# upgrade.
42+
pip install "jax[CPU]==0.11.0"
3543
- name: Build Lectures (+ Execution Checks)
3644
shell: bash -l {0}
3745
run: jb build lectures --path-output=./ -W --keep-going

.github/workflows/execution-win.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,15 @@ 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
44+
# `!pip install quantecon jax` cell is satisfied and does not
45+
# upgrade.
46+
pip install "jax[CPU]==0.11.0"
3947
- name: Build Lectures (+ Execution Checks)
4048
shell: powershell
4149
run: jb build lectures --path-output=./ -W --keep-going

0 commit comments

Comments
 (0)