Conversation
Signed-off-by: Paul S. Schweigert <paul@paulschweigert.com>
Signed-off-by: Paul S. Schweigert <paul@paulschweigert.com>
|
Colab test failure is due to same issue reported in #1640
|
Self-review notesWent back over this with fresh eyes. Two problems mean the per-PR job isn't actually exercising the Colab install path yet, so I don't want this merged as-is. Tracking the fixes here. Blocking
Correctness gaps
Coverage
Cleanups
|

Pull Request
Issue
Part of #89
Description
#1649 got the example notebooks running in CI, but the Colab setup cells stay tagged
skip-executionthere, so that run exercises the working tree rather than the path a Colab user actually takes: installing ollama, anduv pip install mellearesolving against Colab's preinstalled package set. #1649 called that out as out of scope. This covers it. (The release-checklist half of #89 is still open.)test/colab/run_notebooks.pypoints nbclient'sskip_cells_with_tagat a sentinel tag no cell carries, so theskip-executioncells execute, and setsUV_OVERRIDEso the notebooks' own unmodified!uv pip install melleainstalls the checked-out tree instead of the PyPI release. Selection comes from each notebook'smetadata.mellea.markers, the same blocktest/test_example_collection.pyenforces, so a new notebook is picked up automatically andslowones stay nightly-only. The executed copy is written to/tmpwhether or not a cell raised, so the traceback survives as an artifact.colab-notebooks.yml, split by cost.colab-constraintsruns per PR: no image pull, it installs mellea under-c test/colab/colab-constraints.txtand executes the notebooks under Colab's pins on a normal runner, using the Python version recorded in that file's header.colab-imageis nightly and on demand, because Colab's published runtime image is 23 GB: it moves Docker's data-root to/mnt, pulls the image, and runs the same script inside it.colab-imageextracts Colab's 700 packages and its Python version from the pristine image, uploads them as an artifact, and diffs them against the committed copy, warning on drift. Refreshing it stays a manual, reviewedgh run downloadstep (seetest/colab/README.md). The file is committed here so the per-PR job has something to resolve against from the start.notebooks.ymlis. Deliberately not part ofci.yml'scode-checksaggregate, sincepublish-release.ymldepends on that aggregate and a Colab-side change must not be able to block a release. The per-PR job is also stricter than real Colab:uv pip install -cmakes a version conflict an error, whereas Colab would upgrade the preinstalled package instead. A red X there means "mellea forces upgrades in Colab, check what moved", not "Colab is broken".mcp_example.ipynb's setup cell is only ever executed by this harness, and it now installsmcp<2: 2.x renamedFastMCPtoMCPServer, and the notebook uses the 1.x server API.test/colab/prepare_ollama_model.shcarries the same pins and rationale asnotebooks.yml(OLLAMA_VERSIONpinned per bug(ci): llama-server segfault cascade in quality job #1388,granite4.2:3bclamped tonum_ctx=8192so the published 131072 default does not spend 6 GB of a 16 GB runner on KV cache). It is idempotent, so the local entry pointuv run poe colabtestis safe to run on a developer machine; the two intentional side effects are documented intest/colab/README.md.Testing
Attribution
Adding a new component, requirement, sampling strategy, or tool?
If your PR adds or modifies one of the types below, check the matching box. A checklist of type-specific review items will be posted as a comment.
NOTE: Please ensure you have an issue that has been acknowledged by a core contributor and routed you to open a pull request against this repository. Otherwise, please open an issue before continuing with this pull request.