[GH-ISSUE #1691] [Bug] Labs don't load #13547

Closed
opened 2026-05-17 17:42:11 -05:00 by GiteaMirror · 6 comments
Owner

Originally created by @bdub-1 on GitHub (May 6, 2026).
Original GitHub issue: https://github.com/harvard-edge/cs249r_book/issues/1691

Area

Other

Location

(All labs it seems) https://mlsysbook.ai/labs/vol1/lab_01_ml_intro/

Description

It seems both online and local versions do not work. I get an internal error when attempting to boot up. No information is loaded, just a blank white screen with the error popup in the corner.

Message: "An internal error has occured"

Expected Behavior

Lab should load completely in online and local versions.

Environment (TinyTorch bugs only)

Output
---------------------
Tiny🔥Torch v0.1.10
Python 3.14.4
/Users/bdub/dev/tinytorch/.venv
Originally created by @bdub-1 on GitHub (May 6, 2026). Original GitHub issue: https://github.com/harvard-edge/cs249r_book/issues/1691 ### Area Other ### Location (*All labs it seems*) https://mlsysbook.ai/labs/vol1/lab_01_ml_intro/ ### Description It seems both online and local versions do not work. I get an internal error when attempting to boot up. No information is loaded, just a blank white screen with the error popup in the corner. Message: "An internal error has occured" ### Expected Behavior Lab should load completely in online and local versions. ### Environment (TinyTorch bugs only) ``` Output --------------------- Tiny🔥Torch v0.1.10 Python 3.14.4 /Users/bdub/dev/tinytorch/.venv ```
GiteaMirror added the type: bugarea: labs labels 2026-05-17 17:42:12 -05:00
Author
Owner

@Shashank-Tripathi-07 commented on GitHub (May 7, 2026):

The environment output shows Python 3.14.4, which is the likely cause.

Python 3.14 is still in pre-release (alpha/beta) and mlsysim currently declares support for Python 3.10 through 3.13. Running on 3.14 can cause import failures or silent breakage in dependencies (pydantic, pint, numpy, plotly) before the lab even renders, which matches the blank screen with "An internal error has occurred" that Marimo shows on startup failure.

To confirm: try downgrading to Python 3.12 or 3.13 and recreating the venv:

python3.12 -m venv .venv
source .venv/bin/activate
pip install marimo mlsysim
marimo run labs/vol1/lab_01_ml_intro.py

If it loads on 3.12/3.13, the issue is Python 3.14 compatibility, not a bug in the labs themselves.

For the online version at mlsysbook.ai/labs/, the labs run via WebAssembly (Pyodide) which is pinned to its own Python version and is unaffected by your local Python install. If the online version also shows a blank screen, please share the browser console output (F12 > Console tab) as that will give more detail on what is failing.

One small note: the URL in the report (/labs/vol1/lab_01_ml_intro/) has a trailing slash. The correct URL is https://mlsysbook.ai/labs/vol1/lab_01_ml_intro.html.

<!-- gh-comment-id:4400252822 --> @Shashank-Tripathi-07 commented on GitHub (May 7, 2026): The environment output shows **Python 3.14.4**, which is the likely cause. Python 3.14 is still in pre-release (alpha/beta) and mlsysim currently declares support for Python 3.10 through 3.13. Running on 3.14 can cause import failures or silent breakage in dependencies (pydantic, pint, numpy, plotly) before the lab even renders, which matches the blank screen with "An internal error has occurred" that Marimo shows on startup failure. **To confirm:** try downgrading to Python 3.12 or 3.13 and recreating the venv: ```bash python3.12 -m venv .venv source .venv/bin/activate pip install marimo mlsysim marimo run labs/vol1/lab_01_ml_intro.py ``` If it loads on 3.12/3.13, the issue is Python 3.14 compatibility, not a bug in the labs themselves. **For the online version** at `mlsysbook.ai/labs/`, the labs run via WebAssembly (Pyodide) which is pinned to its own Python version and is unaffected by your local Python install. If the online version also shows a blank screen, please share the browser console output (F12 > Console tab) as that will give more detail on what is failing. One small note: the URL in the report (`/labs/vol1/lab_01_ml_intro/`) has a trailing slash. The correct URL is `https://mlsysbook.ai/labs/vol1/lab_01_ml_intro.html`.
Author
Owner

@Shashank-Tripathi-07 commented on GitHub (May 7, 2026):

Investigated further by reproducing locally on Python 3.14.4 (same version as reported).

Root cause confirmed: missing mlsysim in the venv, not a Python 3.14 issue.

The environment output in the report shows a tinytorch venv path:

/Users/bdub/dev/tinytorch/.venv

The TinyTorch venv has marimo installed (needed for TinyTorch modules) but does not have mlsysim or plotly, which every lab requires. When marimo loads the lab and hits from mlsysim.labs.state import DesignLedger (setup cell), the import fails and marimo surfaces it as "An internal error has occurred" with a blank screen.

Python 3.14 itself is not the problem. All lab dependencies (marimo, mlsysim, plotly, pint, pydantic, numpy) install and run cleanly on 3.14.

Fix: labs need their own venv, separate from the TinyTorch venv.

cd cs249r_book
pip install marimo mlsysim plotly
marimo run labs/vol1/lab_01_ml_intro.py

Or follow the Co-Labs local setup guide which lists the exact requirements. Do not run labs from inside the TinyTorch venv.

The online version at mlsysbook.ai/labs/ installs mlsysim via a bundled WASM wheel and is unaffected by local venv state. If the online version also shows a blank screen, please share the browser console output (F12 > Console tab).

Closing as a setup issue rather than a bug. Feel free to reopen if the problem persists after installing mlsysim in a clean venv.

<!-- gh-comment-id:4400380283 --> @Shashank-Tripathi-07 commented on GitHub (May 7, 2026): Investigated further by reproducing locally on Python 3.14.4 (same version as reported). **Root cause confirmed: missing mlsysim in the venv, not a Python 3.14 issue.** The environment output in the report shows a `tinytorch` venv path: ``` /Users/bdub/dev/tinytorch/.venv ``` The TinyTorch venv has `marimo` installed (needed for TinyTorch modules) but does not have `mlsysim` or `plotly`, which every lab requires. When marimo loads the lab and hits `from mlsysim.labs.state import DesignLedger` (setup cell), the import fails and marimo surfaces it as "An internal error has occurred" with a blank screen. Python 3.14 itself is not the problem. All lab dependencies (marimo, mlsysim, plotly, pint, pydantic, numpy) install and run cleanly on 3.14. **Fix: labs need their own venv, separate from the TinyTorch venv.** ```bash cd cs249r_book pip install marimo mlsysim plotly marimo run labs/vol1/lab_01_ml_intro.py ``` Or follow the [Co-Labs local setup guide](https://mlsysbook.ai/labs/) which lists the exact requirements. Do not run labs from inside the TinyTorch venv. The online version at `mlsysbook.ai/labs/` installs mlsysim via a bundled WASM wheel and is unaffected by local venv state. If the online version also shows a blank screen, please share the browser console output (F12 > Console tab). Closing as a setup issue rather than a bug. Feel free to reopen if the problem persists after installing mlsysim in a clean venv.
Author
Owner

@bdub-1 commented on GitHub (May 7, 2026):

Console output for browser:

[py] Starting marimo...
lab_01_ml_intro/:1 The resource https://mlsysbook.ai/labs/vol1/lab_01_ml_intro/assets/gradient-yHQUC_QB.png was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.Understand this warning
lab_01_ml_intro/:1 The resource https://mlsysbook.ai/labs/vol1/lab_01_ml_intro/assets/noise-60BoTA8O.png was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.Understand this warning
useEventListener-BR0C1MaI.js:1 Not running in a secure context; interrupts are not available.
warn @ useEventListener-BR0C1MaI.js:1
setInterruptBuffer @ state-DHlRrwyY.js:3
(anonymous) @ state-DHlRrwyY.js:3
$t @ state-DHlRrwyY.js:1
d @ state-DHlRrwyY.js:1
postMessage
send @ worker-ztl1wuLb.js:1
ne @ worker-ztl1wuLb.js:1
(anonymous) @ worker-ztl1wuLb.js:1
(anonymous) @ worker-ztl1wuLb.js:73
(anonymous) @ worker-ztl1wuLb.js:1
onMessage @ worker-ztl1wuLb.js:73
JsvFunction_CallBound @ pyodide.asm.js:10
$JsMethod_Vectorcall_impl @ pyodide.asm.wasm:0x17594b
$func355 @ pyodide.asm.wasm:0x17168d
$PyObject_Vectorcall @ pyodide.asm.wasm:0x1c5018
$_PyEval_EvalFrameDefault @ pyodide.asm.wasm:0x2a2d8d
$PyEval_EvalCode @ pyodide.asm.wasm:0x29884c
$func3398 @ pyodide.asm.wasm:0x2960a4
$_PyEval_EvalFrameDefault @ pyodide.asm.wasm:0x2a1c56
$func3435 @ pyodide.asm.wasm:0x2a75df
$_PyFunction_Vectorcall @ pyodide.asm.wasm:0x1c53af
$PyObject_Vectorcall @ pyodide.asm.wasm:0x1c5018
$_pyproxy_apply @ pyodide.asm.wasm:0x177d9b
callPyObjectKwargs @ pyodide.asm.js:10
callKwargs @ pyodide.asm.js:10
runPython @ pyodide.asm.js:10
startSession @ worker-ztl1wuLb.js:41
(anonymous) @ worker-ztl1wuLb.js:41
startSession @ worker-ztl1wuLb.js:73Understand this warning
worker-ztl1wuLb.js:1 micropip already loaded from default channel
worker-ztl1wuLb.js:1 Loading Pygments, docutils, jedi, numpy, parso, pyodide-http
worker-ztl1wuLb.js:1 Loaded Pygments, docutils, jedi, numpy, parso, pyodide-http
pyodide.asm.js:10 numpy already loaded from default channel
pyodide.asm.js:10 Loading annotated-types, pandas, platformdirs, pydantic, pydantic_core, python-dateutil, pytz, six, typing-extensions
pyodide.asm.js:10 Loaded annotated-types, pandas, platformdirs, pydantic, pydantic_core, python-dateutil, pytz, six, typing-extensions
cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (Hbol) Traceback (most recent call last):
  File "/lib/python3.12/site-packages/marimo/_runtime/executor.py", line 112, in execute_cell_async
    await eval(cell.body, glbls)
  File "/tmp/marimo_42/__marimo__cell_Hbol_.py", line 11, in <module>
    await micropip.install(
  File "/lib/python3.12/site-packages/micropip/package_manager.py", line 146, in install
    return await install(
           ^^^^^^^^^^^^^^
  File "/lib/python3.12/site-packages/micropip/install.py", line 52, in install
    await transaction.gather_requirements(requirements)
  File "/lib/python3.12/site-packages/micropip/transaction.py", line 71, in gather_requirements
    await asyncio.gather(*requirement_promises)
  File "/lib/python3.12/site-packages/micropip/transaction.py", line 92, in add_requirement
    return await self.add_wheel(wheel, extras=set(), specifier="")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lib/python3.12/site-packages/micropip/transaction.py", line 303, in add_wheel
    await wheel_download_task
  File "/lib/python3.12/site-packages/micropip/wheelinfo.py", line 150, in download
    with zipfile.ZipFile(io.BytesIO(self._data)) as zf:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lib/python312.zip/zipfile/__init__.py", line 1349, in __init__
    self._RealGetContents()
  File "/lib/python312.zip/zipfile/__init__.py", line 1416, in _RealGetContents
    raise BadZipFile("File is not a zip file")
zipfile.BadZipFile: File is not a zip file


cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (Hbol) {"type":"exception","msg":"File is not a zip file","exception_type":"BadZipFile","raising_cell":null,"traceback":null}
cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (RGSE) {"type":"exception","msg":"An ancestor raised an exception (BadZipFile): ","exception_type":"Ancestor raised","raising_cell":"Hbol","traceback":null}
cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (MJUe) {"type":"exception","msg":"An ancestor raised an exception (BadZipFile): ","exception_type":"Ancestor raised","raising_cell":"Hbol","traceback":null}
cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (lEQa) {"type":"exception","msg":"An ancestor raised an exception (BadZipFile): ","exception_type":"Ancestor raised","raising_cell":"Hbol","traceback":null}
cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (SFPL) {"type":"exception","msg":"An ancestor raised an exception (BadZipFile): ","exception_type":"Ancestor raised","raising_cell":"Hbol","traceback":null}
cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (PKri) {"type":"exception","msg":"An ancestor raised an exception (BadZipFile): ","exception_type":"Ancestor raised","raising_cell":"Hbol","traceback":null}
cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (Kclp) {"type":"exception","msg":"An ancestor raised an exception (BadZipFile): ","exception_type":"Ancestor raised","raising_cell":"Hbol","traceback":null}
cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (Xref) {"type":"exception","msg":"An ancestor raised an exception (BadZipFile): ","exception_type":"Ancestor raised","raising_cell":"Hbol","traceback":null}
cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (BYtC) {"type":"exception","msg":"An ancestor raised an exception (BadZipFile): ","exception_type":"Ancestor raised","raising_cell":"Hbol","traceback":null}
cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (bkHC) {"type":"exception","msg":"An ancestor raised an exception (BadZipFile): ","exception_type":"Ancestor raised","raising_cell":"Hbol","traceback":null}
cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (vblA) {"type":"exception","msg":"An ancestor raised an exception (BadZipFile): ","exception_type":"Ancestor raised","raising_cell":"Hbol","traceback":null}
<!-- gh-comment-id:4400428403 --> @bdub-1 commented on GitHub (May 7, 2026): Console output for browser: ``` [py] Starting marimo... lab_01_ml_intro/:1 The resource https://mlsysbook.ai/labs/vol1/lab_01_ml_intro/assets/gradient-yHQUC_QB.png was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.Understand this warning lab_01_ml_intro/:1 The resource https://mlsysbook.ai/labs/vol1/lab_01_ml_intro/assets/noise-60BoTA8O.png was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.Understand this warning useEventListener-BR0C1MaI.js:1 Not running in a secure context; interrupts are not available. warn @ useEventListener-BR0C1MaI.js:1 setInterruptBuffer @ state-DHlRrwyY.js:3 (anonymous) @ state-DHlRrwyY.js:3 $t @ state-DHlRrwyY.js:1 d @ state-DHlRrwyY.js:1 postMessage send @ worker-ztl1wuLb.js:1 ne @ worker-ztl1wuLb.js:1 (anonymous) @ worker-ztl1wuLb.js:1 (anonymous) @ worker-ztl1wuLb.js:73 (anonymous) @ worker-ztl1wuLb.js:1 onMessage @ worker-ztl1wuLb.js:73 JsvFunction_CallBound @ pyodide.asm.js:10 $JsMethod_Vectorcall_impl @ pyodide.asm.wasm:0x17594b $func355 @ pyodide.asm.wasm:0x17168d $PyObject_Vectorcall @ pyodide.asm.wasm:0x1c5018 $_PyEval_EvalFrameDefault @ pyodide.asm.wasm:0x2a2d8d $PyEval_EvalCode @ pyodide.asm.wasm:0x29884c $func3398 @ pyodide.asm.wasm:0x2960a4 $_PyEval_EvalFrameDefault @ pyodide.asm.wasm:0x2a1c56 $func3435 @ pyodide.asm.wasm:0x2a75df $_PyFunction_Vectorcall @ pyodide.asm.wasm:0x1c53af $PyObject_Vectorcall @ pyodide.asm.wasm:0x1c5018 $_pyproxy_apply @ pyodide.asm.wasm:0x177d9b callPyObjectKwargs @ pyodide.asm.js:10 callKwargs @ pyodide.asm.js:10 runPython @ pyodide.asm.js:10 startSession @ worker-ztl1wuLb.js:41 (anonymous) @ worker-ztl1wuLb.js:41 startSession @ worker-ztl1wuLb.js:73Understand this warning worker-ztl1wuLb.js:1 micropip already loaded from default channel worker-ztl1wuLb.js:1 Loading Pygments, docutils, jedi, numpy, parso, pyodide-http worker-ztl1wuLb.js:1 Loaded Pygments, docutils, jedi, numpy, parso, pyodide-http pyodide.asm.js:10 numpy already loaded from default channel pyodide.asm.js:10 Loading annotated-types, pandas, platformdirs, pydantic, pydantic_core, python-dateutil, pytz, six, typing-extensions pyodide.asm.js:10 Loaded annotated-types, pandas, platformdirs, pydantic, pydantic_core, python-dateutil, pytz, six, typing-extensions cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (Hbol) Traceback (most recent call last): File "/lib/python3.12/site-packages/marimo/_runtime/executor.py", line 112, in execute_cell_async await eval(cell.body, glbls) File "/tmp/marimo_42/__marimo__cell_Hbol_.py", line 11, in <module> await micropip.install( File "/lib/python3.12/site-packages/micropip/package_manager.py", line 146, in install return await install( ^^^^^^^^^^^^^^ File "/lib/python3.12/site-packages/micropip/install.py", line 52, in install await transaction.gather_requirements(requirements) File "/lib/python3.12/site-packages/micropip/transaction.py", line 71, in gather_requirements await asyncio.gather(*requirement_promises) File "/lib/python3.12/site-packages/micropip/transaction.py", line 92, in add_requirement return await self.add_wheel(wheel, extras=set(), specifier="") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/lib/python3.12/site-packages/micropip/transaction.py", line 303, in add_wheel await wheel_download_task File "/lib/python3.12/site-packages/micropip/wheelinfo.py", line 150, in download with zipfile.ZipFile(io.BytesIO(self._data)) as zf: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/lib/python312.zip/zipfile/__init__.py", line 1349, in __init__ self._RealGetContents() File "/lib/python312.zip/zipfile/__init__.py", line 1416, in _RealGetContents raise BadZipFile("File is not a zip file") zipfile.BadZipFile: File is not a zip file cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (Hbol) {"type":"exception","msg":"File is not a zip file","exception_type":"BadZipFile","raising_cell":null,"traceback":null} cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (RGSE) {"type":"exception","msg":"An ancestor raised an exception (BadZipFile): ","exception_type":"Ancestor raised","raising_cell":"Hbol","traceback":null} cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (MJUe) {"type":"exception","msg":"An ancestor raised an exception (BadZipFile): ","exception_type":"Ancestor raised","raising_cell":"Hbol","traceback":null} cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (lEQa) {"type":"exception","msg":"An ancestor raised an exception (BadZipFile): ","exception_type":"Ancestor raised","raising_cell":"Hbol","traceback":null} cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (SFPL) {"type":"exception","msg":"An ancestor raised an exception (BadZipFile): ","exception_type":"Ancestor raised","raising_cell":"Hbol","traceback":null} cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (PKri) {"type":"exception","msg":"An ancestor raised an exception (BadZipFile): ","exception_type":"Ancestor raised","raising_cell":"Hbol","traceback":null} cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (Kclp) {"type":"exception","msg":"An ancestor raised an exception (BadZipFile): ","exception_type":"Ancestor raised","raising_cell":"Hbol","traceback":null} cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (Xref) {"type":"exception","msg":"An ancestor raised an exception (BadZipFile): ","exception_type":"Ancestor raised","raising_cell":"Hbol","traceback":null} cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (BYtC) {"type":"exception","msg":"An ancestor raised an exception (BadZipFile): ","exception_type":"Ancestor raised","raising_cell":"Hbol","traceback":null} cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (bkHC) {"type":"exception","msg":"An ancestor raised an exception (BadZipFile): ","exception_type":"Ancestor raised","raising_cell":"Hbol","traceback":null} cells-CJlo_hG2.js:229 [STDERR] [12:30:26 PM] (vblA) {"type":"exception","msg":"An ancestor raised an exception (BadZipFile): ","exception_type":"Ancestor raised","raising_cell":"Hbol","traceback":null} ```
Author
Owner

@Shashank-Tripathi-07 commented on GitHub (May 7, 2026):

Root cause identified.

micropip.install("../../wheels/mlsysim-0.1.1-py3-none-any.whl") resolves to mlsysbook.ai/labs/wheels/mlsysim-0.1.1-py3-none-any.whl in the browser. The live site was last deployed before the 0.1.1 wheel landed (commit 1eb30f5f8), so that URL returns a 404 HTML page. micropip passes it to zipfile, which raises BadZipFile. Every downstream cell then fails with "Ancestor raised".

Immediate fix (no code change needed): retrigger labs-publish-live.yml via workflow_dispatch. The build compiles the 0.1.1 wheel fresh and deploys it.

PR #1696 adds two guards to prevent this recurring:

  • a static test that asserts the wheel file actually exists on disk (catches the gap before CI passes)
  • a version consistency check in build_site.sh that fails the build immediately if the built wheel version does not match what the labs reference via micropip
<!-- gh-comment-id:4400749681 --> @Shashank-Tripathi-07 commented on GitHub (May 7, 2026): **Root cause identified.** `micropip.install("../../wheels/mlsysim-0.1.1-py3-none-any.whl")` resolves to `mlsysbook.ai/labs/wheels/mlsysim-0.1.1-py3-none-any.whl` in the browser. The live site was last deployed before the `0.1.1` wheel landed (commit `1eb30f5f8`), so that URL returns a 404 HTML page. `micropip` passes it to `zipfile`, which raises `BadZipFile`. Every downstream cell then fails with "Ancestor raised". **Immediate fix (no code change needed):** retrigger `labs-publish-live.yml` via `workflow_dispatch`. The build compiles the `0.1.1` wheel fresh and deploys it. **PR #1696** adds two guards to prevent this recurring: - a static test that asserts the wheel file actually exists on disk (catches the gap before CI passes) - a version consistency check in `build_site.sh` that fails the build immediately if the built wheel version does not match what the labs reference via `micropip`
Author
Owner

@bdub-1 commented on GitHub (May 8, 2026):

Python 3.14 is still in pre-release (alpha/beta)

Also, @Shashank-Tripathi-07, as a friendly fyi, Python 3.14 has been in stable release since October 7th of 2025. Reference if you're interested :)

<!-- gh-comment-id:4410517692 --> @bdub-1 commented on GitHub (May 8, 2026): > Python 3.14 is still in pre-release (alpha/beta) Also, @Shashank-Tripathi-07, as a friendly fyi, Python 3.14 has been in stable release since October 7th of 2025. [Reference if you're interested](https://www.python.org/downloads/release/python-3140/) :)
Author
Owner

@Shashank-Tripathi-07 commented on GitHub (May 9, 2026):

yeah, that I missed cause I was version testing the labs with other versions of python, just a slip of tongue 😄

<!-- gh-comment-id:4411427883 --> @Shashank-Tripathi-07 commented on GitHub (May 9, 2026): yeah, that I missed cause I was version testing the labs with other versions of python, just a slip of tongue 😄
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/cs249r_book#13547